Autor Thema: If und Strings auf Windows und AIX  (Gelesen 2574 mal)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
If und Strings auf Windows und AIX
« 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?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline guesswho

  • Senior Mitglied
  • ****
  • Beiträge: 291
Re: If und Strings auf Windows und AIX
« Antwort #1 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
5 Server 9.x auf W2K3/W2K8
ca. 550 Clients: 9.x auf Win7
Notes Traveler
iQ.Suite
BCC Charon 4
panagenda Marvel Client
BES 10/12 und viele Blackberrys
paar iPad und iPhones
Teamstudio

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: If und Strings auf Windows und AIX
« Antwort #2 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"
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline guesswho

  • Senior Mitglied
  • ****
  • Beiträge: 291
Re: If und Strings auf Windows und AIX
« Antwort #3 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

« Letzte Änderung: 28.12.07 - 19:53:24 von guesswho »
5 Server 9.x auf W2K3/W2K8
ca. 550 Clients: 9.x auf Win7
Notes Traveler
iQ.Suite
BCC Charon 4
panagenda Marvel Client
BES 10/12 und viele Blackberrys
paar iPad und iPhones
Teamstudio

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: If und Strings auf Windows und AIX
« Antwort #4 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.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: If und Strings auf Windows und AIX
« Antwort #5 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

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: If und Strings auf Windows und AIX
« Antwort #6 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*
Andy

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: If und Strings auf Windows und AIX
« Antwort #7 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
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz