2010-06-02 68 views
0

我問過一個question關於分析一個紅寶石文件。我接受了答案,寫了下面的Ruby腳本:VBscript相當於一個簡單的紅寶石腳本

file = File.open('X:myfile.txt', 'r') 
file.each_line do |line| 
    ccyy = line[53...57] 
    mmdd = line[57...61] 
    line[53...57] = mmdd 
    line[57...61] = ccyy 
    File.open('c:\myfile_MODIFIED.txt', 'a') do |f2| 
     f2.puts line 
    end 
end 

這個腳本會在生產運行和更改文件,然而,生產是在Windows中,只有VBScript是允許在其上運行。 Unfortunatley我以前沒有在VB中寫過任何東西。有人可以幫助將上面的代碼轉換爲vb嗎?

我至今是:

Dim oFolder, oFile, sText, ots 

Set OFSO = CreateObject("Scripting.FileSystemObject") 
Set oFolder = OFSO.GetFolder("X:\myfolder") 
Set RegXP=New RegExp 
RegXP.IgnoreCase=1 
RegXP.Pattern="PROD_FILE_\d+.txt" 



For Each oFile in oFolder.Files 
    If (RegXP.test(oFile.Name)) Then 
     WScript.Echo oFile.Name 
     set ots = OFSO.opentextfile(oFile) 
     Do While Not ots.AtEndOfStream 
      sText = ots.ReadLine 
        'read file line by line. change characters in the line. write line to new file' 
     Loop 
     ots.close 

    End If 
Next 

回答

0

看起來像你的存在方式90%。

由於VBScript不提供對字符串內容的直接隨機訪問,因此需要使用一些函數來執行字符串操作。

我會去MidLeft

E.g.

dim a, b 
a = "Hello, World!" 
b = left(mid(a, 8), 5) 
wscript.echo(b) 

輸出:World

+0

謝謝。但仍然沒有取代字符串。從你的例子....說我想要替換第六個字符 – john 2010-06-02 18:35:02

+0

只是將它分成4個塊:開始,ccyy,mmdd,結束第四個字符。然後將它重新組合爲'start&mmdd&ccyy&end'。 – dmb 2010-06-04 21:17:50

0

您是否在尋找替換或中秋節?

''Replace(expression, find, replace [, start ] [, count ] [, compare ]) 
Replace(sText,"a","b") 

Mid(sText,4,1)=Mid(sText,6,1)