1

Тема: AHK: Замена фразы в файле

Приветствую, есть текстовый файл размером 20kb и over 1000 строк (он темой ниже выложен) задача заменить все D:\Test.txt (около 240 раз) на %logpath%. Неважно каким образом главное не вручную.
Пробовал так:

StringReplace, clipboard, clipboard, D:\Test.txt, `%logpath`%, All

Но, замены не происходит только удаление всех D:\Test.txt, + русские буквы не переживают и превращаются в абракадабру

2 (изменено: DD, 2011-08-13 03:14:20)

Re: AHK: Замена фразы в файле

У меня сработал:

#SingleInstance Force
#Persistent

clipboard =
(
D:\Test.txt
D:\Test.txt
D:\Test.txt
D:\Test.txt
D:\Test.txt
D:\Test.txt
авровеглвед
D:\Test.txt
D:\Test.txt
)

  Loop
  {
    StringReplace, clipboard, clipboard, D:\Test.txt, `%logpath`%, All
      If ErrorLevel = 0  ; No more replacements needed.
        Break
  }

  MsgBox, % clipboard
  return

3 (изменено: ilya20069, 2011-08-13 15:03:31)

Re: AHK: Замена фразы в файле

Оригинальный пример работает прекрасно.
А у меня в clipboard не лезет текст грит:Error at line 4, Continuation is too long, Program will exit
---------
Если впихнуть только половину то тоже все нормально... собственно возникает вопрос максимального кол-ва знаков в ClipBoard..
---------
не только ClipBoard но и любая другая переменная не тянет все 1000 строчек..

4 (изменено: DD, 2011-08-13 21:53:10)

Re: AHK: Замена фразы в файле

А этак:

#SingleInstance Force

FileRead, Var, C:\work.txt

Loop
{
  StringReplace, Var, Var, D:\Test.txt, `%logpath`%, All
    If ErrorLevel = 0  ; No more replacements needed.
      Break
}

FileAppend %Var%, C:\%A_Now% ok.txt
Run C:\%A_Now% ok.txt
return
ilya20069 пишет:

главное не вручную

Поиск --> Замена как раз для таких случаев

5

Re: AHK: Замена фразы в файле

to DD
русские буквы дохнут...

>Поиск --> Замена как раз для таких случаев

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

6

Re: AHK: Замена фразы в файле

Мои русские живёхоньки.
Выполни вот такой reg-файл (перезагрузка нужна):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"

Он ядрёный, должен пронять.

7

Re: AHK: Замена фразы в файле

to DD
О, теперь все работает, спасибо большое.