VisualBasic Wie reagiert eine if auf einen leeren String

Zwicke

Lieutenant
Registriert
Aug. 2006
Beiträge
526
Hi,
ich wollt mal fragen ob eine if in VBS auf einen leeren String mit einem True reagiert.

Code:
Dim nichts
If (LCase(nichts)="string") Then
  'was es tun soll
End If

Nach ein bisschen googlen hab ich gesehn, dass einen leeren String zurück gibt.
Da das Script immer in die if gesprungen ist nehme ich an, dass ein leerer String ein true erzeugt oder liege ich da falsch? (Dazu konnte mir Google leider keine auskunft geben)

Bitte fragt mich nicht über den Sinn, ich habs nur Ausbügeln müssen.

Danke für eure Antworten!
 
Ein leerer String ist "" also wirklich leer.
Ist der String irgendwo vorher initialisiert worden? weil theoretisch sollte die anweisung nicht ausgeführt werden, da "" != "string"
 
Der String ist nicht initialisiert worden. Das stört mich ja daran. hab mir halt gedacht, dass das vll einen Eigenheit von VBS is.
 
muss man bei VB keine Doppel "=" setzen?

//anscheinend nicht.. sorry :D


Du kannst ja ganz leicht Testen ob da eine Eigenheit von VBS ist wenn du mal reinschreibst "" = "string"
was aber bestimmt nicht hinhaut
 
Zuletzt bearbeitet:
Ja hab ich grad ausprobiert lässt sich aber nicht reproduzieren.
Da stell ich meine Frage anders: Gibt es einen speziellen Fall bei dem immer True raus kommt bei einer if egal mit was verglichen wird?
 
Was ergibt denn if(nichts)?

Komische Sache, aber ich kenne mich mit VB auch nicht aus...
 
Bei if (nichts) springts auch ned rein ich muss nochmal über den ursprünglichen Code und mal schaun ob da nicht doch was passiert. Bei 870 Zeilen kann man schon mal was übersehn^^


Habs gefunden!
Es liegt am "On Error Resume Next" damit springt das Script scheinbar in die nächste Zeile. Dadurch wurde der Inhalt ausgeführt.
 
Zuletzt bearbeitet:
on error ist eh böse ;P damit kannst du die übersicht eigentlich gleich vergessen ^^
 
Ich habe schon etliche Jahre nichts mehr in VB gemacht, aber ich schätze dass dein Objekt Nothing ist, daher der Fehler. Du musst nämlich zwischen einem leeren String ("") und Nothing (die Referenz) unterscheiden.

Probier mal folgendes:

Code:
Dim nichts

If not nichts is nothing then
  If (LCase(nichts)="string") Then
    'was es tun soll
  End If
End If
 
Zurück
Oben