1

Тема: AHK: Преобразование переменной

Возник такой вопрос, к примеру есть код:


url := тут ссылка на php обработчик.
HTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HTTP.Open("GET", url, true)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0)")
HTTP.Send()
HTTP.WaitForResponse() 
ans = % Http.responseText

Проблема вот в чем, Http.responseText возвращает путь до файла с иконкой в формате:


%A_Temp%\test.png

И возвращает именно буквально, то есть через ":=", а такое код не воспринимает, ему нужен именно путь.
В первый раз, получилось обойти это как сейчас в скрипте:


ans = % Http.responseText

Но вот незадача, сработало это и потом я думал что проблема решена, а через пару дней, решил сесть дописывать код, но этот метод уже не работает, выручайте.

2

Re: AHK: Преобразование переменной

Правильно так:

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

3 (изменено: serzh82saratov, 2016-04-12 23:35:35)

Re: AHK: Преобразование переменной

Думаю ТС про то, что строка состоит из подстрок вида "%built-in variable%" и текста, и ему надо в конечной строке заменить их на значения.

Хотя может есть более очевидный способ:


Text = `%A_Temp`%\`n`%A_ScriptDir`%\`n(`%A_ScriptHWND`%)  
MsgBox % VarReplace(Text)

VarReplace(Text, p := 1) {
	While p := RegExMatch(Text, "%(\w+)%(.*)", m, p += StrLen(%m1%)) 
		Text := SubStr(Text, 1, p - 1) . %m1% . m2   
	Return Text
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Преобразование переменной

serzh82saratov, то что доктор прописал! Спасибо.

5 (изменено: serzh82saratov, 2016-04-12 23:34:42)

Re: AHK: Преобразование переменной

На всякий:
Если у переменной нет значения, оставить этот текст как есть.


Text = `%A_Temp`%\`n`%Var`%\
MsgBox % VarReplace(Text)

Text = `%A_Temp`%\`n`%A_ScriptDir`%\
MsgBox % VarReplace(Text)

VarReplace(Text, p := 1) {
	While p := RegExMatch(Text, "%(\w+)%(.*)", m, p)
		Text := SubStr(Text, 1, p - 1) . (%m1% = "" ? "%" m1 "%" : %m1%) . m2
		, p += StrLen(%m1% = "" ? "%" m1 "%" : %m1%)
	Return Text
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui