Страница: 1 |
Страница: 1 |
Вопрос: Слияние двух текстовых файлов на VBScript.
Добавлено: 09.06.07 20:26
Автор вопроса: Vitaly
Скажите,пожалуйста, можно ли при помощи VBScript выполнить слияние двух текстовых файлов в один. Если да, то скажите каким способом(может быть процедура или функция).
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 09.06.07 23:06
Есть механизм взаимодействия с файловой системой, называется он FSO. В поиск.
Номер ответа: 2
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #2
Добавлено: 12.06.07 00:53
Shell "copy text1.txt+text2.txt itog.txt"
Номер ответа: 3
Автор ответа:
alroy
Вопросов: 3
Ответов: 28
Профиль | | #3
Добавлено: 13.06.07 09:43
Вот это для того чтоб считать файл
Объект FileSystemObject
Объект TextStream
Методы
ReadAll
Синтаксис:
ReadAll
Назначение:
Считывает весь файл и возвращает полученную строку.
Параметры:
Нет.
Описание:
Для больших файлов использование этого метода потребует больших ресурсов памяти.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject"
Set File = FSO.GetFile("C:\boot.ini"
Set TextStream = File.OpenAsTextStream(1)
MsgBox TextStream.ReadAll()
TextStream.Close
а вот это записат в файл
Объект FileSystemObject
Объект TextStream
Методы
WriteLine
Синтаксис:
WriteLine(<String>
Назначение:
Записывает в файл указанную строку. В файл записываются символы возврата каретки и новой строки.
Параметры:
<String> - необязательный, строка для записи в файл. Если опущен, в файл записывается пустая строка.
Описание:
Без комментариев.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject"
Set TextStream = FSO.CreateTextFile("C:\Test.txt"
TextStream.WriteLine "Text"
TextStream.Close
а дальше подгоняй под себя тебе нужно с чатать оба файла а потом записать в один файл
Номер ответа: 4
Автор ответа:
Vitaly
Вопросов: 5
Ответов: 7
Профиль | | #4
Добавлено: 13.06.07 13:30
А можете более подробно описать данный метод.Не совсем понял
Номер ответа: 5
Автор ответа:
alroy
Вопросов: 3
Ответов: 28
Профиль | | #5
Добавлено: 13.06.07 15:10
'"C:\tmp\1.txt" 'Это первый файл который считывается
'"C:\tmp\2.txt" Это второй файл который считывается
'"C:\tmp\3.txt" а этот создается и в нег записывается оба файла
Call OB_txt("C:\tmp\1.txt", "C:\tmp\2.txt", "C:\tmp\3.txt" 'запуск функции
Function OB_txt(in_fail1, in_fail2, out_file)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso
Set FSO = CreateObject("Scripting.FileSystemObject"
Set File = FSO.GetFile(in_fail1)
Set File2 = FSO.GetFile(in_fail2)
Set TextStream = File.OpenAsTextStream(1)
Set TextStream2 = File2.OpenAsTextStream(1)
Set out_file = FSO.OpenTextFile(out_file, ForAppending, True) ' создали обьединеный файл
str_f1 = TextStream.ReadAll() ' считали в переменную первый файл
str_f2 = TextStream2.ReadAll()' считали в переменную второй файл
out_file.WriteLine ("Это первый файл"
out_file.WriteLine (str_f1) ' записали в новый файл первый
out_file.WriteLine ("Это Второй файл"
out_file.WriteLine (str_f2) ' записали в новый файл второй
TextStream.Close
TextStream2.Close
out_file.Close
Set FSO = Nothing
End Function
вот быстро и грубо набросал но уж дальше вылизывай код сам !!! если и сейчас непонятно то букварь в руки
Номер ответа: 6
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #6
Добавлено: 14.06.07 01:39
Я всегда пользуюсь как Arseny написал. Гораздо быстрее чем обрабатывать файл в скрипте.
Просто выполнить copy 1.txt+2.txt result.txt
Причем так можно кучу файлов сразу объединять.
Номер ответа: 7
Автор ответа:
Vitaly
Вопросов: 5
Ответов: 7
Профиль | | #7
Добавлено: 14.06.07 15:18
Большое спасибо, Alroy. Разобрался.
Номер ответа: 8
Автор ответа:
Vitaly
Вопросов: 5
Ответов: 7
Профиль | | #8
Добавлено: 14.06.07 15:25
Arseny или ZagZag, напишите более подробно метод объединения файлов с использованием Shell.
Номер ответа: 9
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #9
Добавлено: 14.06.07 23:59
Куда подробнее то?
Есть 2 или более файлов.
Допустим их имена 1.txt 2.txt 3.txt и так далее
Надо обединить их в файл RESULT.TXT
В консоли, либо командой Shell из бейсика выполняем команду:
copy 1.txt+2.txt+3.txt RESULT.TXT
И все!
Здесь указаны относительные имена файлов из текущей папки, для указания полных имен можно заместо 1.txt писать допустим "C:\папка\1.txt" и т.п.
Номер ответа: 10
Автор ответа:
Vitaly
Вопросов: 5
Ответов: 7
Профиль | | #10
Добавлено: 15.06.07 12:36
Большое всем спасибо.Разобрался. Тема считается закрытой.
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 15.06.07 23:45
2 ZagZag, см форум - он VBScript. Какой Shell?
Номер ответа: 12
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #12
Добавлено: 16.06.07 05:09
Экие вы все недогадливые!
objWSHShell.Run "cmd /c copy C:\1.txt+C:\2.txt C:\3.txt",0
Номер ответа: 13
Автор ответа:
Pitkin
Вопросов: 1
Ответов: 3
Профиль | | #13
Добавлено: 27.04.11 12:34
Всем доброго времени суток.
Товарищи я в скриптах не силен, уже перелопатил все мануалы по vbscript, но ничего не нашел
Как объединить несколько файлов, тут как раз все понятно. Но понадобилось объеденить около 200 маленьких текстовых файлов в один, а писать в скрипте имя каждого файла как то не сподручно. Подскажите, пожалуйста, кто может, как объединить все файлы в один. Буду очень признателен.
Номер ответа: 14
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #14
Добавлено: 27.04.11 16:27
dim str as string
for j=1 to 200
str=str+"+" & path(i)
next
objWSHShell.Run "cmd /c copy " & str & " C:\3.txt",0