VB6相当于string.IsNullOrEmpty

时间:2012-01-06 18:06:11

标签: string vb6

我正在做遗留应用程序的一些工作,而我的VB6技能并不是那么好。我需要检查String字段是否已初始化并设置为null / nothing或空字符串以外的其他字符串。在C#中,我只做了类似的事情:

if (string.IsNullOrEmpty(myObj.Str))

我不确定在VB6中与此相当的是什么,我对使用If myObj.Str = ""并将其称为好而感到紧张。这样做的正确方法是什么?

为了澄清,如果以下任何一种情况属实,我想要一些会返回True的东西:

  • 该字段尚未初始化
  • 该字段为空字符串(str =“”,length = 0)
  • 该字段设置为null,或Nothing,或vbnull,或任何形式的null值都适用于VB6字符串。

该字段最初为Long,我正在替换的代码检查它是否设置为0。

7 个答案:

答案 0 :(得分:41)

VB6旨在轻松

使用

If str = "" Then 
  ' uninitialised, null or empty ""
  • 字符串会自动初始化为[编辑]空字符串。
  • 空字符串是vbNullString。
  • 但是不要担心关于空字符串。对于(几乎)任何字符串操作,VB6空字符串与空字符串“”无法区分。

答案 1 :(得分:11)

满足您3项要求的最优化和最安全的方法如下:

If LenB(myObj.Str) = 0 
Then Debug.Print "String is empty/null/not initialized" 
Else Debug.Print "Not Empty"

答案 2 :(得分:3)

使用 Null 表示订单

使用 len (“ string ”)代替“ string ”=“”,因为它更快

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

问候

答案 3 :(得分:2)

我试过,If str = ""然后

但它不起作用。

确定给定字符串是否为空的最佳方法是:

If IsNull(str)然后

'这将完美地运作

答案 4 :(得分:0)

由于'Nulls'和'Empty Strings'实际上是不同的值,这种方法可以很容易地捕获它们:

If strValue & "" = "" Then
    'This is Null
Else
    'This is NOT Null
End If

答案 5 :(得分:0)

只需将信息添加到MarkJ的答案中即可。如果您正在使用记录集,那么

if rs.fields.item("rsField").value = "" then

如果该项为null,则会抛出运行时错误。你应该这样做:

if rs.fields.item("rsField").value & "" = "" then
祝你好运。

答案 6 :(得分:0)

'使用VbNullstring可能是一种非常有效的方式

Dim YourString as string  
dim HasValue as boolean

If YourString = vbnullstring then  
    HasValue = False  
Else  
HasValue = True  
End if