1

Тема: AHK: Замена переменных в загружаемом файле

Добрый день уважаемые форумчане.
У меня такая проблема, ни как не могу понять как из файла загрузить текст так что бы переменные в нем заменялись на значения этих переменных.
Если просто в файле переменная например:

Файл test.txt
Содержимое: Привет %name%. Как дела?

То тут все понятно, код следующий:

 FileRead,txt_file,test.txt
Transform, txt_file, Deref, %txt_file% 
MsgBox, %txt_file%

Но у меня проблема в массивах.
То есть у меня в файле могут быть переменные вида user.name или user["name"]
Как вот именно такие переменные вывести.
Помогите решить проблему пожалуйста.

2

Re: AHK: Замена переменных в загружаемом файле

Сделал обходной путь через парсинг ошибки. Если есть другой способ то поделитесь пожалуйста, а я делюсь своим способом.

StrDeref(str) {
    r_f := false
    while r_f = false ; проверка окончания цикла
    {
        type_m := 0
        try {
            Transform,str,Deref,%str%
            r_f := true	
            return,% str	
        }
        catch e {
            type_m := RegExMatch(e.message,"illegal character:`n""(.*)\[(.*)\]""",err) > 0 ? 1 : RegExMatch(e.message,"illegal character:`n""(.*)\.(.*)""",err) > 0 ? 2 : 0           
            if (err <> "") {
                RegExMatch(err2, "\$(.*)",err_p)
                if (err_p = "") {
                    zm := %err1%[err2]
                    er := type_m = 2 ? "%" . err1 "\." err2 . "%" : "%" . err1 "\[" err2 . "\]%"
                }
                else {
                    zm := %err1%[%err_p1%]
                    er := type_m = 2 ? "%" . err1 ".\" err2 . "%" : "%" . err1 "\[\" err2 . "\]%"
                }
                str := RegExReplace(str,er,zm,all)
            }
            else 
                return, e.message
        }	
    }	
    return,% str	
}

3

Re: AHK: Замена переменных в загружаемом файле

andrey.a.polyakov.b2c, если бы привели примерный текст файла, и что вы хотите с ним сделать, было бы понятнее.

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