Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: m3 am 28.12.07 - 17:10:17

Titel: If und Strings auf Windows und AIX
Beitrag von: m3 am 28.12.07 - 17:10:17
Gegeben sei folgender (nicht sehr hübscher) Code:

Code
 1 Sub Initialize
 2     On Error Goto wqserror
 3 
 4     Print "hallo<br>"
 5 
 6     Dim text1 As String
 7     Dim text2 As String
 8 
 9     text1 = "1.1.1980"
10     text2 = "1.1.1990"
11 
12     If text1 Or text2 Then
13         Print "text1 und text2 definiert<br>"
14     End If
15 
16     text2 = ""
17 
18     If text1 Or text2 Then
19         Print "text1 definiert, text2 nicht"
20     End If
21 
22     Exit Sub
23 wqserror:
24     Print "Fehler in Zeile " & Str(Erl) & ", Nummer " & Str(Err) & ", Text: " & Error$
25     Exit Sub
26 End Sub

Auf einer Windows-Maschine stürzt er in Zeile 18 mit einem "Text: Type mismatch".
Auf einer AIX hingegen bereits in Zeile 12 mit "Text: Type mismatch".

Hat wer eine Idee, warum ich nicht auf beiden Systemen identische "Fehler" bekomme?
Titel: Re: If und Strings auf Windows und AIX
Beitrag von: guesswho am 28.12.07 - 18:20:28
Hallo Martin,

weil AIX wohl schlauer ist und sich schon ab Zeile 12 denkt: "was ein Quatsch..."  ;D

tschuldige bitte, aber sag an, forschst du oder hast du diesen "unhübschen" Quellcode so geerbt  ???

Jo
Titel: Re: If und Strings auf Windows und AIX
Beitrag von: m3 am 28.12.07 - 18:55:09
eher zweiteres, wobei "geerbt" nur halb stimmt - ich durfte das problem "beheben", nachdem das kollege früher gehen musste  >:(

Wie man sowas "sauber" schreibt, weiß ich schon, mit gehts mehr um "Jugend forscht"
Titel: Re: If und Strings auf Windows und AIX
Beitrag von: guesswho am 28.12.07 - 19:51:51
Zitat
Wie man sowas "sauber" schreibt, weiß ich schon, mit gehts mehr um "Jugend forscht"

war mir schon klar, ich wage aber zu bezweiflen, dass man jemals erfahren oder "erforschen" kann, warum sich das auf unterschiedlichen Systemen so grundverschieden verhält...

Vielleicht die Entwickler, ob die aber daran Interesse haben....

(IMHO)
Jo

Titel: Re: If und Strings auf Windows und AIX
Beitrag von: m3 am 28.12.07 - 21:25:43
Ich denke, ich werde am Mittwoch einen ESR aufmachen. Bissi IBM ärgern, warum sich die Plattformen unterschiedlich verhalten.  ;D Das sollte nicht sein.
Titel: Re: If und Strings auf Windows und AIX
Beitrag von: koehlerbv am 28.12.07 - 23:58:21
Code
text1 Or text2

Das läuft ja auf eine bitweise OR-Verknüpfung heraus. Ein bisschen gross, die Speicherzonen, die da verknüpft werden sollen. Und durchaus denkbar, dass da die Speichermodelle DES Windows und DES Linux auf DEM Prozessor oder DEN Prozessoren sich da unterscheiden.

Für solchen Code sollte es eigentlich noch Error #13a geben: "What the fuck you're trying?"

Bernhard
Titel: Re: If und Strings auf Windows und AIX
Beitrag von: Andrew Harder am 08.01.08 - 09:53:51
Ein Leerstring ist in LotusScript eben nicht false und ein gefüllter String eben nicht true. Das konnte zwar das Basic im C64 schon, Lotus Script kann es aber leider nicht.
Das hat mich auch schon geärgert, aber daraus folgt...

Zitat
If condition Then [ statements ] [ Else [ statements ] ]
Elements
condition
Any numeric expression. A value of 0 is interpreted as FALSE, and any other value is interpreted as TRUE.
Nix numeric bei Strings und damit ist für mich die Windowsvariante diejenige, die einen Bug hat.

Bisher umgehe ich das mit einem Len(Ausdruck$), wäre aber schön wenn man bei IBM mal auf die Idee käme, das ein Leerstring false sein könnte.
Wobei... Abwärtskompatibilität... *schluchtz*
Titel: Re: If und Strings auf Windows und AIX
Beitrag von: flaite am 08.01.08 - 10:47:57
Ein Leerstring ist in LotusScript eben nicht false und ein gefüllter String eben nicht true. Das konnte zwar das Basic im C64 schon, Lotus Script kann es aber leider nicht.
Auf der Sprachenebene wäre das mehr als vermutlich sehr einfach zu implementieren.
Nur glauben halt viele Leute, dass solche Abkürzungen zu schwer lesbaren Code führen. Unter anderem ich.
Perl "kann" eine Menge solcher geeky hacks, nur wird das an der Sprache auch oft kritisiert.

Man müßte auch erstmal klären was überhaupt ein Leerstring ist. Nur
""
oder auch " "
Und was ist mit "<zeilenumbruch>"  ??? Qualifiziert sich das als Leerstring?

Gruß Axel