1

Тема: VBS: Замена строк в Файле

Необходимо сделать замену в текстовом файле всех символов "," на символ ";", но только в первом вхождении этого символа в строке .

Например, файл 1

подумайте сами,только вдумайтесь сами
порой,иногда
этот,данный
видный,образный,подобный
°снимите,°сшибите
1,один,одного,первого,одно,одну,одна
10,десять,десяти,десятого,десятый
100,сто

Нужно чтобы файл 2 после замены выгдел так

подумайте сами;только вдумайтесь сами
порой;иногда
этот;данный
видный;образный,подобный
°снимите;°сшибите
1;один,одного,первого,одно,одну,одна
10;десять,десяти,десятого,десятый
100;сто

P.S. Файл очень большой , TXT - 45 mb. Даже не знаю справится ли с ним скрипт ...
Помогите, нужно срочно

2

Re: VBS: Замена строк в Файле

Ну, коли срочно…

Option Explicit

' IOMode Enum
Const ForReading   = 1
Const ForWriting   = 2
Const ForAppending = 8


Dim objFSO
Dim objTSIn
Dim objTSOut

Set objFSO   = WScript.CreateObject("Scripting.FileSystemObject")
Set objTSIn  = objFSO.OpenTextFile(WScript.Arguments.Item(0), ForReading)
Set objTSOut = objFSO.OpenTextFile(WScript.Arguments.Item(1), ForWriting, True)

Do Until objTSIn.AtEndOfStream
    objTSOut.WriteLine Replace(objTSIn.ReadLine(), ",", ";", 1, 1)
Loop

objTSOut.Close
objTSIn.Close

Set objTSOut = Nothing
Set objTSIn  = Nothing
Set objFSO   = Nothing

WScript.Quit 0

Входной и результирующий имена текстовых файлов указываете аргументами скрипта, наподобие:

cscript.exe //nologo 0001.vbs "E:\Песочница\0052\In.txt" "E:\Песочница\0052\Out.txt"

3

Re: VBS: Замена строк в Файле

Как вариант


Do Until WScript.StdIn.AtEndOfStream
    WScript.StdOut.WriteLine Replace(WScript.StdIn.ReadLine(), ",", ";", 1, 1)
Loop

Пример использования

cscript.exe //nologo 0001.vbs < "E:\Песочница\0052\In.txt" > "E:\Песочница\0052\Out.txt"
( 2 * b ) || ! ( 2 * b )

4

Re: VBS: Замена строк в Файле

Спасибо
Сработало и довольно бысто ...