![]() |
VBS: Редактирование текстового файла
Здравствуйте!
Подскажите плиз. Сам я в скриптах только начинающий :) Наваял (по примерам с форумов) скрипт. Он заменяет значения функций в инишнике. Значение можно вводить самому. Но дело в том, что старое значение остаётся - оно следует после нововведённого. То есть: Имеем в файле строку: max = 200 Нам надо чтобы строка приняла вид: max = 100 (100 - произвольное значение, вводимое нами с помощью UserName=InputBox("Макс [max]","File.ext","ВВОДИТЕ")) Вот операция замены: Код:
strOldText = "max = " max = 100 200 Где max - функция, 100 - нововведённое значение, 200 - старое значение. Далее к примеру нам надо поменять значение max на 50. Строка принимает вид: max = 50 100 200 И строка пухнет... Я нашел выход только с комментарием ";" strNewText = "max = "&UserName&" ;" Строка принимает вид: max = 50 ;100 ;200 Хоть и - работает программа с таким инишником... Но это совсем не дело :( Я совсем новичок в VBS. Прошу помощи. Сам скрипт: Скрытый текст
Код:
Dim fso Тут в конце строки Код:
strNewText = "max1 = "&UserName&" ;" Программа не воспринимает закомментированное старое значение. Иного выхода борьбы со следами старых значений не нашёл... Но хоть что-то :) Только вот плодятся эти комментарии после каждого введённого значения. Строка распухает. Мысли: 1) Использовать для поиска регулярные выражения. Убейте - не понимаю, как сделать реплейс на инпутбокс в них... 2) Сначала удалить найденную строку, а потом на её место записать "max1 = "&UserName&". Не нашёл как удалять строчки... 3) Закомментировать найденную строку, а потом на следующую строку записать "max1 = "&UserName&". Файл распухнет теперь построчно... 4) Мысль работать с копией файла. То есть с самого начала создаётся копия файла в каком-нмбуль каталоге, и при каждом изменении - удаляется текущий файл а на его место копируется мастер-копия и все операции проводятся с ней. //То есть: 4-0) создаём папку "BackUp" 4-1) копируем туда File.Ext 4-2) удаляем исходный File.Ext 4-3) копируем из BackUp File.ext обратно 4-4) конец операции Вопрос: как можно сие провернуть? |
Цитата:
Код:
myString = "max = 101" & vbNewLine & "max = 102" & vbNewLine & "max = 103" |
DmitriiV,
Спасибо! Только я совсем запутался... Пробовал и так и эдак вставлять Ваш код в сценарий... Но в лучшем случае на выходе получаю файлы вида: Код:
max_item_mass = 101 Если не затруднит - пожалуйста набросайте полностью код ( с комментами если можно) - я в тупике :( |
Цитата:
Цитата:
Код:
Dim objRegExp, objFSO, objFile |
DmitriiV,
Огромное спасибо! Начинаю немного понимать... Вот регулярное выражение - думаю как написать... Код:
max(тут любое кол-во пробелов или ТАБ-ов)=(тут любое кол-во пробелов или ТАБ-ов)\d+ Не подскажешь? PS Если VBS этот получится - многие мои друзья спасибо скажут! Я в комментах к нему тебя укажу. |
_D_V_S_, смотрите здесь http://forum.script-coding.com/viewt...d=58092#p58092.
|
Время: 11:36. |
Время: 11:36.
© OSzone.net 2001-