Легко, если проблема в VBScript - PullRequest
0 голосов
/ 08 июля 2010

я пытаюсь скопировать вторую строку из txt, это прекрасно работает, теперь я пытаюсь сделать оператор if, который проверяет txt, есть ли что-то в строке 2.

 Set fso = CreateObject("Scripting.FileSystemObject")
 Set MyFile = fso.CreateTextFile("testfile.txt", True)
 MyFile.WriteLine("" + LastMessage + "")
 MyFile.Close

 rownumber = 0

 file = "testfile.txt"
 Set fs = CreateObject("Scripting.FileSystemObject")
 Set File = fs.OpenTextFile(file , 1, true)
 Do While not file.AtEndOfStream
  rownumber = rownumber+1
  row = (file.ReadLine)
  if rownumber = 2 then
   new =  row
   msgbox row
  end if
  If row = 0 Then
   msgbox "nothing found"
  else
   msgbox "found"
  end if
 Loop

Если строка = 0 не будет работать, у кого-нибудь есть идея?

Сообщение об ошибке: несовместимые типы: '[string: ""]'

Строка: если строка = 0, то

С уважением, Матиас

Ответы [ 2 ]

2 голосов
/ 08 июля 2010

Вы сравниваете строку с числом - содержимое row будет строкой, поэтому при сравнении ее с числом имеется несоответствие типов.

Попробуйте узнать, содержит ли строка число 0:

If row = "0" Then

Если вы хотите узнать, пуста ли строка, попробуйте это:

If row = "" Then
2 голосов
/ 08 июля 2010

row - строка, потому что метод ReadLine возвращает строку.Возможно, вы хотите сказать If row = "" или If Len(row) = 0.

Вот улучшенная версия ваших скриптов:

  • Скрипт для написания:

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set File = FSO.CreateTextFile("testfile.txt", True)
    File.WriteLine LastMessage  ' Why "" + ... + ""?
    File.Close
    
  • Скрипт для чтения:

    RowNumber = 0
    FileName = "testfile.txt"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set File = FSO.OpenTextFile(FileName, 1, True)
    Do Until File.AtEndOfStream
        RowNumber = RowNumber + 1
        Row = File.ReadLine
        If RowNumber = 2 Then
            NewRow = Row   ' NewRow is nowhere used
            MsgBox Row
        End If
        If Len(Row) = 0 Then
            MsgBox "nothing found"
        Else
            MsgBox "found"
        End If
    Loop
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...