Seite 1 von 1

Fehler in contains()?

Verfasst: 27. Mai 2018, 07:43
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

Re: Fehler in contains()?

Verfasst: 28. Mai 2018, 14:16
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.

Re: Fehler in contains()?

Verfasst: 29. Mai 2018, 14:25
von satmax
JA, is leider so, das _ wird als Separator erkannt.

Re: Fehler in contains()?

Verfasst: 31. Mai 2018, 03:58
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