1 (изменено: Вася Пупкин, 2011-09-12 23:51:25)

Тема: AHK: Замена строки в файле

Необходимо заменить строку в текстовом файле:
Browser Window=*,*,*,*,*
заменить на:
Browser Window=91,30,1285,683,0

http://pupkin759.narod.ru/Musor/1.jpeg

Текстовый файл, скачать:
http://narod.ru/disk/24933429001/operaprefs.rar.html

P.s.: Как вы уже наверно поняли, в исходном файле (окно №1), значения в "Browser Window=" могут быть разные, а заменить их надо на конкретные(фиксированные):
Browser Window=91,30,1285,683,0 (окно №2)

Спасибо.

2

Re: AHK: Замена строки в файле

Считываете файл в переменную.
Просматриваете переменную построчно, дописывая каждую строку в вторую переменную.
При наличии в строке "Browser Window=" заменяете строку на необходимую.
Удаляете исходный файл.
Записываете в файл с именем и расположением как у исходного содержимое второй переменной.

Следует обратить внимание на кодировку используемую в исходном файле.

3

Re: AHK: Замена строки в файле

Я бы посмотрел в сторону RegExReplace().

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: Замена строки в файле

Ну вот, я думал, мне как обычно на блюдечке выдадут готовый скрипт, и разжуют
А тут такие умные слова.
Может всётаки, дадите ссылки на какие нибудь готовые скрипты, которые похожи на мой случай?

5

Re: AHK: Замена строки в файле

Вася Пупкин пишет:

...я думал, мне как обычно на блюдечке выдадут готовый скрипт...

Замечательная логика, а как на счёт вникнуть/почитать?

6

Re: AHK: Замена строки в файле

OFF: 2Вася Пупкин: здесь не бесплатное приложение к журналу «Сельская молодёжь». Главная цель — научить Вас учиться, ежели Вы того сами хотите.

7

Re: AHK: Замена строки в файле

creature.ws пишет:

Считываете файл в переменную.
Просматриваете переменную построчно, дописывая каждую строку в вторую переменную.
При наличии в строке "Browser Window=" заменяете строку на необходимую.
Удаляете исходный файл.
Записываете в файл с именем и расположением как у исходного содержимое второй переменной.

Что-то у меня не получается подобное воспроизвести.  Перепробовал все комбинации чтения файлов и переписывания строк.
  Либо через "loop" удаётся найти нужную строку в файле, но не ясно как заменить именно её в самом файле
  Либо в переменной, куда считан файл не понятно, как вычленить именно нужную строку, чтобы её заменить.
 

  Помогите, пожалуйста.

8 (изменено: Александр_, 2012-07-02 18:18:31)

Re: AHK: Замена строки в файле

Pokerist пишет:

Либо через "loop" удаётся найти нужную строку в файле, но не ясно как заменить именно её в самом файле
  Либо в переменной, куда считан файл не понятно, как вычленить именно нужную строку, чтобы её заменить.

Имелась ввиду конструкция типа:

str := ""
Loop, read, %FileName%
{
   if(???)
      ...
   else
      str := str . A_LoopReadLine . "`r`n"
}
FileDelete, %FileName%
FileAppend, %str%, %FileName%

Только обычно RegExReplace достаточно.

9

Re: AHK: Замена строки в файле

Оказывается совсем не понимал как это "построчно" работает. Я всё пытался что-то в "A_LoopReadLine" внести. Спасибо большое!

10 (изменено: Malcev, 2012-07-03 13:11:30)

Re: AHK: Замена строки в файле

str = Browser Window= 192, 168, 123, 254, 0
MsgBox, % RegExReplace(str, "Browser Window=(.*)", "Browser Window= bla, bla, bla")