Je travaille sur une application héritée et mes compétences en VB6 ne sont pas très bonnes. Je dois vérifier si un champ Chaîne a été initialisé et défini sur autre chose que null/rien ou une chaîne vide. En C #, je ferais juste quelque chose comme:
if (string.IsNullOrEmpty(myObj.Str))
Je ne suis pas sûr de savoir ce que cela équivaut à VB6, et je suis inquiet à l'idée d'utiliser If myObj.Str = ""
et de dire que c'est bien. Quelle est la bonne façon de faire cela?
Pour clarifier, je veux quelque chose qui retournera True si l'une des conditions suivantes est vraie:
À l'origine, le champ était long et le code que je remplaçais vérifiait s'il était réglé à 0.
VB6 a été conçu pour être facile
Utilisation
If str = "" Then
' uninitialised, null or empty ""
La manière la plus optimisée et la plus sûre de répondre à vos 3 exigences est la suivante:
If LenB(myObj.Str) = 0
Then Debug.Print "String is empty/null/not initialized"
Else Debug.Print "Not Empty"
use Is Null pour les piqûres ou n'est rien pour les objets
utilisez len ("string") au lieu de "string" = "" car c'est plus rapide
Dim s As String
If Not (s Is Null) Then
MsgBox "SET"
if (len(s)>0) then
MsgBox "size > 0"
else
MsgBox "size = 0"
end if
Else
MsgBox "not SET"
End If
cordialement
J'ai essayé, If str = ""
Ensuite
mais cela n'a pas fonctionné.
Le meilleur moyen d'identifier si la chaîne donnée est null est:
If IsNull(str)
Alors
'Cela fonctionnera parfaitement
Il suffit d'ajouter des informations à la réponse de MarkJ. Si vous travaillez avec un jeu d’enregistrements, cela
if rs.fields.item("rsField").value = "" then
Lance une erreur d'exécution au cas où cet élément est null. Vous devriez faire ceci:
if rs.fields.item("rsField").value & "" = "" then
Bonne chance.
Comme les 'Nulls' et 'Empty Strings' sont en réalité des valeurs différentes, cette approche peut capturer facilement les deux:
If strValue & "" = "" Then
'This is Null
Else
'This is NOT Null
End If
'Utiliser VbNullstring peut être un moyen très efficace
Dim YourString as string
dim HasValue as boolean
If YourString = vbnullstring then
HasValue = False
Else
HasValue = True
End if