2010-06-02 2 views
0

나는 루비에서 파일 구문 분석에 대해 question을 요청했다. 내가 대답을 받아 다음과 같은 루비 스크립트 작성이 스크립트 파일을 생산에 실행하고 변경됩니다간단한 루비 스크립트에 해당하는 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 

을하지만, 생산은 윈도우 박스 만의 VBScript는 그것을 실행할 수있다. Unfortunatley 전에 VB에서 아무것도 쓰지 않았습니다. 누군가 위의 코드의 고기를 VB로 변환하는 데 도움이 될 수 있습니까?

는 내가 지금까지있는 것은 : 당신이 거기 방식의 90 % 것 같은

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

보인다.

VBScript는 문자열 내용에 대한 직접 임의 액세스를 제공하지 않으므로 문자열 조작을 수행하는 데 몇 가지 기능을 사용해야합니다.

나는 MidLeft으로 가고 싶습니다.

예.

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

출력 : World

+0

감사합니다. 하지만 여전히 문자열을 대체하지 않습니다. 귀하의 예를 들어 .... 내가 4 번째 문자를 – john

+0

의 여섯 번째 문자로 대체하려고하면 시작, ccyy, mmdd, 끝 4 개의 덩어리로 나누십시오. 'start & mmdd & ccyy & end'로 다시 넣으십시오. – dmb

0

당신은 교체하거나 중간을 찾고 계십니까?

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

Mid(sText,4,1)=Mid(sText,6,1) 
관련 문제