2013-09-23 72 views
0

從輸入文件(input.txt中)開始,我必須找到一些字符串,並將其在另一個文件TXT(output.txt的)這是input.txt中寫的是空輸出文件使用VBScript

********************************************************** 
* NAME   : CONTROLLER               
* FUNCTION  : NOTHING IMPORTANT           
* BEGIN DATE  : 31/07/13        
* TIME BEGIN  : 23.39.17.75        
********************************************************** 
* DATA INPUT READ : 000000540        
********************************************************** 

這是代碼:

Const ForReading = 1 
Const ForWriting = 2 
Dim objFSO 'File System Object 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Dim objInputTS 'Text Stream Object 
Set objInputTS = objFSO.OpenTextFile("D:\input.txt", ForReading, False) 
Dim objOutputTS 'Text Stream Object 
Set objOutputTS = objFSO.OpenTextFile("D:\output.txt", ForWriting, True) 

Do Until objInputTS.AtEndOfStream 
    Dim strLine 
    strLine = objInputTS.ReadLine() 
    If (Left(strLine, 13) = "BEGIN DATE:") Then objOutputTS.WriteLine(Mid(strLine, 20)) 
    If (Left(strLine, 13) = "TIME BEGIN:") Then objOutputTS.WriteLine(Mid(strLine, 20)) 
    If (Left(strLine, 18) = "DATA INPUT READ:") Then objOutputTS.WriteLine(Mid(strLine, 22))  
Loop 

objOutputTS.Close() 
objInputTS.Close() 

但是在輸出文件中什麼也沒有出現。任何幫助?我想這個輸出esxample

20/05/2013 22/05/2013 21.00.00.00 0000000054

回答

1

* BEGIN DATE  : 31/07/13 

不符合條件

If (Left(strLine, 13) = "BEGIN DATE:") 

你有AC * 計數 *的 「*」也是前綴。

拼寫出來:

>> s1 = "* BEGIN DATE  : 31/07/13" 
>> s2 = Left(s, 13) 
>> WScript.Echo """" & s2 & """" 
>> 
"* BEGIN DATE " 
>> c1 = "BEGIN DATE:" 
>> c2 = "* BEGIN DATE " 
>> WScript.Echo 1, CStr(c1 = s2) 
>> WScript.Echo 2, CStr(c2 = s2) 
>> 
1 False 
2 True 
+0

所以我有什麼做的? –

+0

@David_D看看'WScript.Echo Left(「* BEGIN DATE:31/07/13」,13)'的輸出,它應該變得很明顯你需要做什麼。 –

+0

對不起,但它是第一次我使用vbs :(所以問題是'*'? –