Fehler in contains()?

Übergeordnete Themen zum gesamten Paket passend
Antworten
satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Fehler in contains()?

Beitrag von satmax »

Ich denke die Funktion contains() arbeitet falsch, ich suche nach "UNT_ID" und gefunden wird "LIZ_UNT_ID":

Code: Alles auswählen

sFieldlist is string= "LIZ_Seriennummer<CR>LIZ_Firma<CR>LIZ_ErstelltDat<CR>LIZ_Cnt<CR>LIZ_FreiOK<CR>LIZ_FreiDat<CR>LIZ_MDM_IMEI<CR><CR>LIZ_UNT_ID<CR>LIZ_VerweigertDat<CR>LIZ_MDM_Seriennummer<CR>LIZ_SysID<CR>LIZ_KonfigPath<CR>"

IF Contains(Upper(sFieldlist),"UNT_ID",  WholeWord) THEN
	IF Position(sFieldlist,"LIZ_UNT_ID",1, IgnoreCase+WholeWord+FromBeginning) THEN // RA: Workaround für WINDEV fehler da UNT_ID LIZ_UNT_ID findet windev 23
		Trace ("FOUND 1, should never be reached!")
	ELSE	
		Trace ("FOUND 2 is correct!")
	END
END
getestet mit Windev22 + Windev23

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Fehler in contains()?

Beitrag von Herbert »

Ja, das Kleingedruckte...
WholeWord Search for a whole word (enclosed in punctuation characters or in space characters).

Er erwartet bei WholeWord also Hochkommas oder Abstände. Daher muss geprüft werden. Leider.

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Fehler in contains()?

Beitrag von satmax »

JA, is leider so, das _ wird als Separator erkannt.

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Fehler in contains()?

Beitrag von Herbert »

Bezieht sich übrigens au andere Befehle auch, z.B. Position.
Die TrennCharaktere sind von den Einstellungen von Windows abhängig.

Um sicher zu gehen, können die nicht berücksichtigten Zeichen so gefunden werden:

Code: Alles auswählen

s is string
FOR i = 0 to 255
  IF Charact(i) <> StringFormat(Charact(i), ccIgnorePonctuationAndSpace) THEN
     s += Charact(i)
  END
END

Antworten