Liebe Gäste des Forums
Danke, dass ihr euch hier auf dem inoffiziellen Windev-Forum umschaut. Hier werden Tipps und Hinweise zu der von PC-Soft angebotenen Software Windev besprochen.
Windev ist eine leistungsstarke, sehr umfangreiche Entwicklersoftware für Webseiten, Handys und Rechner verschiedener Betriebssysteme. Mehr unter http://www.windev.com

Fehler in contains()?

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

Fehler in contains()?

Beitrag von satmax » 27. Mai 2018, 07:43

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: 386
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Fehler in contains()?

Beitrag von Herbert » 28. Mai 2018, 14:16

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
Member
Beiträge: 198
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Fehler in contains()?

Beitrag von satmax » 29. Mai 2018, 14:25

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

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

Re: Fehler in contains()?

Beitrag von Herbert » 31. Mai 2018, 03:58

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