Подтвердить что ты не робот

VB6 эквивалент string.IsNullOrEmpty

Я работаю над устаревшим приложением, и мои навыки VB6 не так уж хороши. Мне нужно проверить, было ли инициализировано поле String и установлено значение, отличное от null/nothing или пустая строка. В С# я бы просто сделал что-то вроде:

if (string.IsNullOrEmpty(myObj.Str))

Я не уверен, что эквивалентно этому в VB6, и я нервничаю из-за использования If myObj.Str = "" и называю это хорошим. Каков правильный способ сделать это?

Чтобы уточнить, я хочу что-то, что вернет True, если любое из следующих утверждений верно:

  • Поле не было инициализировано
  • Поле представляет собой пустую строку (str = "", length = 0)
  • Поле установлено равным null, или Nothing или vbnull, или любая форма нулевого значения применяется к строкам VB6.

Поле изначально было длинным, а код, который я заменяю, проверял, было ли оно установлено на 0.

4b9b3361

Ответ 1

VB6 был разработан как easy

Используйте

If str = "" Then 
  ' uninitialised, null or empty ""
  • Строки автоматически инициализируются в [ редактировать] пустую строку.
  • Нулевая строка - vbNullString.
  • Но не беспокойтесь о нулевых строках. Нулевая строка VB6 неотличима от пустой строки "" для (почти) любых манипуляций с строкой.

Ответ 2

Самый оптимизированный и безопасный способ удовлетворить ваши 3 требования заключается в следующем:

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

Ответ 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

рассматривает

Ответ 4

Я пробовал, If str = "" Затем

но это не сработало.

Лучший способ определить, является ли данная строка нулевой:

If IsNull(str) Тогда

'Это будет отлично работать

Ответ 5

Как "Нули" и "Пустые строки" на самом деле являются разными значениями, этот подход может легко захватить для вас:

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

Ответ 6

Просто добавьте информацию в ответ MarkJ. Если вы работаете с набором записей, это

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

Выбросит ошибку времени выполнения в случае, если элемент имеет значение null. Вы должны сделать это:

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

Удачи.

Ответ 7

'Использование VbNullstring может быть очень эффективным способом

Dim YourString as string  
dim HasValue as boolean

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