2010-07-08 80 views
0

我嘗試第二行從一個txt,即偉大工程的問題複製現在我儘量讓if語句是檢查TXT,是有什麼在第2行很容易,只要在VBScript問題

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將無法正常工作,有一個想法?

錯誤消息:不兼容的類型: '[字符串: 「」]'

線:如果行= 0然後

問候, 的Matthias

+0

你是什麼意思「不管用」?你有錯誤嗎?你期望發生什麼?什麼沒有發生? – Oded 2010-07-08 07:24:21

+0

它出現錯誤:不兼容的類型:'[string:'「]' – Sebastian 2010-07-08 07:31:08

+0

兩個無關的提示:1.我認爲你不能使用'new'作爲變量名稱,因爲它是一個關鍵字。 2.使用'&'運算符來連接字符串,而不是'+'。 – Philipp 2010-07-08 07:34:24

回答

2

您比較一個字符串到數字 - 內容t的row將是一個字符串,所以在將其與數字進行比較時存在類型不匹配。

試試這個,看看是否行包含數字0:

If row = "0" Then 

如果你想知道,如果該行是空的,試試這個:

If row = "" Then 
+0

謝謝如果row =「0」然後是正確的:-D – Sebastian 2010-07-08 07:37:51

2

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