Тема: AHK: При записи в файл цикл копирования строк работает лишь частично
Здравствуйте. С MsgBox цикл, вроде бы, работает (при каждом нажатии OK копируется следующая ссылка):
#NoEnv
Haystack1 =
(
nLpvkPRx/SDR001.jpg
fRxcYNv5/SDR002.jpg
Gm0PB2vH/SDR003.jpg
)
Haystack2 =
(
[spoiler="[SDR001] Khoa (2015)"]
[123][456]
[/spoiler]
[spoiler="[SDR002] Lissa (2015)"]
[123][456]
[/spoiler]
[spoiler="[SDR003] Phil (2015)"]
[123][456]
[/spoiler]
)
Loop, parse, Haystack1, `n
{
Cat := regexreplace(A_LoopField, "`am)^.*\/(.*).jpg$", "$1")
pos := InStr(Haystack2, "[spoiler=""["Cat)
MsgBox % RegExReplace(Haystack2, "s)(?<=\[123\]).*?(?=\[456\])", A_LoopField,, 1, pos)
}
Но при записи в файл записывается, почему-то, только третья ссылка, а первая и вторая не записываются (текст в файлах Haystack1.txt и Haystack2.txt тот же самый):
#NoEnv
FileRead, Haystack1, Haystack1.txt
FileRead, Haystack2, Haystack2.txt
Loop, parse, Haystack1, `n
{
Cat := regexreplace(A_LoopField, "`am)^.*\/(.*).jpg$", "$1")
pos := InStr(Haystack2, "[spoiler=""["Cat)
Haystack3 := RegExReplace(Haystack2, "s)(?<=\[img=right\]).*?(?=\[/img\])", A_LoopField,, 1, pos)
}
file := FileOpen("Haystack2.txt", "w `n", "UTF-8")
if !IsObject(file)
log("Can't open " Haystack2 " for writing.")
file.Write(Haystack3)
file.Close()
При записи в файл результат получается таким:
[spoiler="[SDR001] Khoa (2015)"]
[123][456]
[/spoiler]
[spoiler="[SDR002] Lissa (2015)"]
[123][456]
[/spoiler]
[spoiler="[SDR003] Phil (2015)"]
[123]Gm0PB2vH/SDR003.jpg[456]
[/spoiler]
Версия Autohotkey 1.1.34.4.