Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Tode am 10.10.06 - 10:43:55

Titel: Bug 6.5.5: @Comtains mit @Char( 0 ) und Umlauten
Beitrag von: Tode am 10.10.06 - 10:43:55
Probiert mal -wenn Ihr 6.5.5 installiert habt- folgenden Code in einem berechneten Feld aus:

fv := "über";

@If(@Contains(fv;@Char(0));@Return(@Prompt([ok];"";"Ein Zeilenumbruch ist nicht möglich!"));"");


In 6.5.4 passiert... nix: ist ja auch logisch...

In 6.5.5 kommt IMMER das Prompt, wenn fv einen Umlaut enthält.

Wäre mal interessant zu wissen, in welchen Versionen der Bug noch so vorkommt...

Gruß
Tode

P.S.: KB liefert nix, aber LDD: hier (http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/e3768c14d2b9f9d685257109005e3954?OpenDocument)
Titel: Re: Bug 6.5.5: @Comtains mit @Char( 0 ) und Umlauten
Beitrag von: Axel am 10.10.06 - 12:23:56
Fehler kann ich nachstellen. Ist auch logisch, da mit 6.5.5 probiert.

Aber folgender Würkdrumrum scheint zu funktionieren:

@If(@Contains(@Ascii(fv);@Char(0));@Return(@Prompt([Ok];"";"Ein Zeilenumbruch ist nicht möglich!"));"")



Axel
Titel: Re: Bug 6.5.5: @Comtains mit @Char( 0 ) und Umlauten
Beitrag von: tks am 10.10.06 - 13:31:17
Soll in 6.5.6 (http://www-10.lotus.com/ldd/r5fixlist.nsf/5c087391999d06e7852569280062619d/347aa79b865c574a8525714800420fae?OpenDocument) behoben sein.

Gruß

Thomas
Titel: Re: Bug 6/7: @Contains mit Umlauten
Beitrag von: haessler am 29.10.07 - 12:01:08
Das ist wirklich ein ganz mieser Bug! @Contains ist definitiv noch fehlerhaft unter Notes 7.02.  :-\

Ich habe folgendes herausgefunden:

@Contains(s1 ; s2) liefert falsche Ergebnisse z.B. auch bei dieser Konstellation:

1. s1 und s2 beginnen mit gleichem Buchstaben
2. s1 und s2 enthalten Zeilenumbrüche
3. s1 enthält Umlaut

BEISPIEL:

s1 := {ab
ä};
s2 := {a
c};
@If(@Contains(s1 ; s2) ; @Prompt([ok] ; "Test" ; "Teilstring enthalten") ; @Prompt([ok] ; "Test" ; "Teilstring nicht enthalten")) ;


Probiert es aus! Das ist absolut absurd  :-:
Ein Anwendungsfall könnte sein, das Vorkommen eines Namens in einem Adressblock zu prüfen. Mich hat die Suche nach dem Fehler einige Zeit gekostet. Unter Notes 5 gab es dieses Problem nicht.

Man muss in manchen Situationen also auf @Contains verzichten. Alternativ kann @Right oder @Left verwendet werden, diese Funktionen scheinen noch korrekt zu funktionieren, z.B.

nicht @Contains(s1 ; s2);
sondern @Right(s1 + "~"; s2) != ""

Viele Grüße!

Bert