VBscript эквивалент простого сценария ruby - PullRequest
0 голосов
/ 02 июня 2010

Я задал вопрос о разборе файла в ruby. Я принял ответ и написал следующий скрипт:

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. К сожалению, я ничего раньше не писал на 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

Ответы [ 2 ]

0 голосов
/ 02 июня 2010

Вы ищете Заменить или Середина?

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

 Mid(sText,4,1)=Mid(sText,6,1)
0 голосов
/ 02 июня 2010

Похоже, вы на 90% пути.

Поскольку VBScript не обеспечивает прямой произвольный доступ к строковому содержимому, вам необходимо использовать некоторые функции для манипулирования строками.

Я бы пошел с Середина и Слева .

1011 * Е.Г. *

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

Выход: World

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...