strings - VB6 equivalente de string.IsNullOrEmpty
strings instr (7)
Estoy trabajando en una aplicación heredada, y mis habilidades de VB6 no son tan buenas. Necesito verificar si un campo de cadena se ha inicializado y configurado en algo distinto de nulo / nada o una cadena vacía. En C # acabo de hacer algo como:
if (string.IsNullOrEmpty(myObj.Str))
No estoy seguro de cuál era el equivalente a esto en VB6, y estoy nervioso por usar If myObj.Str = ""
y llamarlo bien. ¿Cuál es la forma correcta de hacer esto?
Para aclarar, quiero algo que devolverá True si se cumple alguna de las siguientes condiciones:
- El campo no ha sido inicializado.
- El campo es una cadena vacía (str = "", longitud = 0)
- El campo se establece en nulo, Nothing o vbnull, o cualquier forma del valor nulo se aplica a las cadenas VB6.
El campo originalmente era Largo, y el código que estoy reemplazando verificaba si estaba configurado en 0.
''Usar VbNullstring puede ser una manera muy efectiva
Dim YourString as string
dim HasValue as boolean
If YourString = vbnullstring then
HasValue = False
Else
HasValue = True
End if
Como ''Nulls'' y ''Empty Strings'' son en realidad valores diferentes, este enfoque puede capturar ambos fácilmente:
If strValue & "" = "" Then
''This is Null
Else
''This is NOT Null
End If
El uso es nulo para las picaduras o no es nada para los objetos.
use len (" cadena ") en lugar de " cadena " = "" porque es más rápido
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
Saludos
La forma más optimizada y segura de cumplir con sus 3 requisitos es la siguiente:
If LenB(myObj.Str) = 0
Then Debug.Print "String is empty/null/not initialized"
Else Debug.Print "Not Empty"
Lo intenté, If str = ""
entonces
Pero no funcionó.
La mejor manera de identificar si la cadena dada es nula es:
If IsNull(str)
entonces
''Esto funcionará perfectamente
Solo añadiendo información a la respuesta de MarkJ. Si está trabajando con un conjunto de registros, este
if rs.fields.item("rsField").value = "" then
Lanzará un error de tiempo de ejecución en caso de que el elemento sea nulo. Usted debe hacer esto:
if rs.fields.item("rsField").value & "" = "" then
Buena suerte.
VB6 fue diseñado para ser fácil
Utilizar
If str = "" Then
'' uninitialised, null or empty ""
- Las cadenas se inicializan automáticamente para [ editar ] una cadena nula.
- La cadena nula es vbNullString.
- Pero no te preocupes por las cuerdas nulas. Una cadena nula VB6 es indistinguible de una cadena vacía "" para (casi) cualquier manipulación de cadena.