Войти

Показать полную графическую версию : [решено] объединить содержимое txt файлов


caustic
19-03-2011, 09:19
Привет всем.
подскажите пожалуйста, как построчно объединить два *.txt файла в один с добавлением кавычек или любого другого символа?
к примеру имеем 2 файла со следующим содержимым, и третий, конечный результат объединения первых двух + кавычки:

1.txt 2.txt3.txt
oneодинone" "один"
twoдва two" "два"
threeтри three" "три"

Iska
19-03-2011, 09:30
caustic, насколько критично «CMD/BAT»? А то вот, фактически, то же: [решено] Соеденить два файла построчно (http://forum.oszone.net/thread-202095.html), разве что кавычки добавить.

caustic
19-03-2011, 09:50
Нет не критично
но у меня не совсем получается выполнить данный vbs скрипт:

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

как я понял item(0), (1), (2) - это мои текстовые файлы?


плюс ошибка выходит, скрин в приложении. работаю на семерке

Iska
19-03-2011, 11:53
caustic, Вы правите не там. Текстовые файлы указываете параметрами при вызове скрипта.

Вот скрипт (согласно Вашему описанию (http://forum.oszone.net/post-1638448.html#post1638448), перед строкой из первого файла кавычка не ставится):
Option Explicit

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


Dim objFSO

Dim objTSIn1
Dim objTSIn2
Dim objTSOut


Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

Set objTSIn1 = objFSO.OpenTextFile(WScript.Arguments.Item(0), ForReading)
Set objTSIn2 = objFSO.OpenTextFile(WScript.Arguments.Item(1), ForReading)
Set objTSOut = objFSO.OpenTextFile(WScript.Arguments.Item(2), ForWriting, True)

Do Until objTSIn1.AtEndOfStream And objTSIn2.AtEndOfStream
If Not objTSIn1.AtEndOfStream Then
objTSOut.Write objTSIn1.ReadLine & """"
End If

objTSOut.Write " "

If Not objTSIn2.AtEndOfStream Then
objTSOut.Write """" & objTSIn2.ReadLine & """"
End If

objTSOut.WriteLine
Loop

objTSOut.Close
objTSIn2.Close
objTSIn1.Close

Set objTSOut = Nothing
Set objTSIn2 = Nothing
Set objTSIn1 = Nothing

Set objFSO = Nothing

WScript.Quit 0
Вызов:
Script.vbs <Путь ко входному файлу 1> <Путь ко входному файлу 2> <Путь к выходному файлу>

caustic
19-03-2011, 14:34
все. теперь я разобрался это работает.
огромное спасибо ) да кавычки вначале не нужны )




© OSzone.net 2001-2012