|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] замена текста в файле по шаблону |
|
|
VBS/WSH/JS - [решено] замена текста в файле по шаблону
|
Новый участник Сообщения: 9 |
День добрый, форумчане.
помогите разобраться, есть задача, нет опыта)) Есть целевой файл-простой текстовик , есть исходный файл-таблица эксель с данными в двух колонках. Нужно найти вхождения значения первой колонки в целевом файле и заменить его на значение второй колонки, записать результат в текстовый файл. Вот что я наваял. При открытии пишет что файл бинарный и показывает в нем набор символов. Что не так? Const ForReading = 1 Const ForWriting = 2 Set oXL = CreateObject("Excel.Application") Set oXLSource = CreateObject("Excel.Application") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("w:\VB\connections_4.txt", ForReading) Set objFile2 = objFSO.OpenTextFile("c:\connections_4.txt", ForWriting) oXLSource.Visible = False Set oWBSource = oXLSource.Workbooks.Open("w:\VB\2.xls", ForReading) Set oSheetSource = oWBSource.Worksheets(1) Buffer = objFile.ReadAll For i = 1 To 50 d_number=oSheetSource.Cells(i,1).value d_name=oSheetSource.Cells(i,2).value Buffer = Replace(Buffer, d_number, d_name, 1, -1, 1) Next objFile2.Write Buffer objFile2.Close objFile.Close oWBSource.Close Set oSheetSource = Nothing Set oWBSource = Nothing oXLSource.Quit Set oXLSource = Nothing |
|
Отправлено: 12:21, 29-06-2011 |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать fXLS = "H:\Delete\ggg.xls" ' Где Excel-файл fTxt1 = "H:\Delete\Целевой файл.txt" ' Где Исходный текстовый файл fTxt2 = "H:\Delete\Результат.txt" ' Где Результат Set FSO = CreateObject("Scripting.FileSystemObject") Set F = FSO.OpenTextFile(fTxt1, 1) S = F.ReadAll F.Close Range1 = "A1" ' В какой клетке первое данное Set XL = CreateObject("Excel.Application") XL.Visible = True XL.Workbooks.Open fXLS i = 0 Do While True Txt1 = XL.Range("A1").Offset(i, 0) If Txt1 = "" Then Exit Do Txt2 = XL.Range("A1").Offset(i, 1) S = Replace(S, CStr(Txt1), CStr(Txt2)) ' MsgBox CStr(Txt1) + " " + CStr(Txt2) i = i + 1 Loop ' XL.ActiveWorkbook.Save XL.Quit Set F = FSO.CreateTextFile(fTxt2, True) F.Write S F.Close |
------- Отправлено: 13:54, 29-06-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Спасибо за ответ, но у меня до 66561 знака идут квадратики... что это? в моем примере тоже самое. скрин прилагается.
|
Отправлено: 15:01, 29-06-2011 | #3 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать да, Ваш пример работает. прикреплю мое творчество, а то ведь больше спросить не у кого(
|
Отправлено: 11:08, 30-06-2011 | #4 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать квадратики от того что, кодировка utf-16 и файлы не txt, а xml
если сменить кодировку на ANSI, то работает |
|
Последний раз редактировалось ferget, 26-08-2011 в 02:47. Отправлено: 11:42, 30-06-2011 | #5 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Премного благодарен! Куда плюсик ставить?)
|
Отправлено: 13:37, 30-06-2011 | #6 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать здравствуйте, тоже появилась необходимость сделать замену в текстовом файле заменить одни значения другими при этом это значение не целая строчка, а просто текст в произвольном месте, кроме замененного текста, все остальное должно остаться...значений около 300, попробовал вбить в excel макросы выше, ругается на синтаксис, прямо с первой строчки fXLS = "H:\Delete\ggg.xls" подскажите пожалуйста, как решить проблему? значение имени файла подставлял свои, кириллицу и пробелы не использовал
|
Последний раз редактировалось 4EJLO6PEK, 29-12-2013 в 02:03. Отправлено: 01:53, 29-12-2013 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 4EJLO6PEK, для начала выложите Ваши файлы и укажите что, чем и как менять.
|
Отправлено: 01:57, 29-12-2013 | #8 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать текстовый файл вида
это из экспорта видео монтажа, а мне надо все MVI_????.MOV заменить на соответствующие им другие названия типа ?-?-?.mov у меня есть эксель файл две колонки MVI_6763.MOV 1-1-2.mov MVI_6776.MOV 1-2-4.mov MVI_6776.MOV 2-1-4.mov и т.д. |
Отправлено: 03:45, 29-12-2013 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Выложить файлы — это означает: упаковать их в архив, и прикрепить последний к сообщению.
|
Отправлено: 11:50, 29-12-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Поиск и замена текста в файле | TERMINAL | AutoIt | 6 | 16-03-2011 17:49 | |
CMD/BAT - Как проверить наличие текста в файле | mamont1 | Скриптовые языки администрирования Windows | 6 | 16-09-2010 16:32 | |
Разное - [решено] FoxPro 2.6 Замена фрагментов текста в txt-файле | Pashka | Программирование и базы данных | 7 | 18-01-2010 19:20 | |
CMD/BAT - Расположение текста в файле в 2 колонки | Serg2010 | Скриптовые языки администрирования Windows | 6 | 28-08-2009 18:31 | |
CMD/BAT - [решено] Изменение текста в файле | tarasov.evgeny | Скриптовые языки администрирования Windows | 5 | 12-08-2009 16:21 |
|