Поэтому после тщательного поиска в документации AHK, stackexchange и ahk_forum, я решил обратиться за помощью к экспертам.

Я объясню код, над которым я работаю, а затем опубликую несколько примеров.

Я написал скрипт, который извлекает значение непереведенных и непроверенных слов из 6 разных файлов слов и делает это для 23 разных языков через WebTranslateIt (сайт). Мне удалось заставить его работать, скопировав блок кода и установив переменную fileid для одного из 6 файлов перед каждым новым запросом, однако, когда я пришел к части итерации языка, я быстро заметил, что это будет много более эффективно (и значительно меньше кода) просто иметь один цикл внутри цикла, проходить через два массива до конца массива.

Этот скрипт обращается к веб-сайту с помощью Google Chrome, затем переходит к внедрению нескольких jQueries в инструменты разработчика и извлечению результатов в переменные с независимыми именами (которые я хотел бы назначить как часть связанного массива).

Это часть, с которой у меня возникают проблемы ... Я могу пройти через массив успешно через:

langid := ["bg", "cs", "da", "el", "eu", "fi", "hr" , "ja", "ko", "lt", "nb", 
"nl", "pl", "pt", "ro" , "ru", "sk", "sl", "sv", "th" , "tr", "zh", "zh-Hant"]

For Key, Value in langid
;   MsgBox, %A_Index% = %Value%    ; the MsgBox displays index values correctly but when putting my script in a loop start after the For Key part, it does not provide a value when sending the var inside a url. This works fine when I set the var manually before sending the URL.

Но когда я попытался запустить это прямо перед циклом выполнения сценария, который выполняет основной запрос, переменная 'langid' в URL-адресе, который я посылаю для изменения языка, пуста.

Я хотел бы повторить сценарий 23 раза на всех языках. Когда скрипт входит в цикл, есть часть, которая вводит URL страницы с% langid%, и я не могу заставить эту часть работать с приведенным выше кодом.

В дополнение к этому, я также хотел бы назначить дополнительные значения для каждого ключа в индексе следующим образом:

langid := ["bg", "cs", "da", "el", "eu", "fi", "hr" , "ja", "ko", "lt", "nb", 
"nl", "pl", "pt", "ro" , "ru", "sk", "sl", "sv", "th" , "tr", "zh", "zh-Hant"]

lang := ["Bulgarian", "Czech", "Danish", "Greek", "Basque", "Finnish", 
"Hungarian", "Japanese", "Korean", "Lithuanian", "Norwegian", "Dutch", 
"Polish", "Portuguese", "Romanian", "Russian"]

Массив 'lang' должен ссылаться на позицию индекса в 'langid', так как я использую его в качестве описательной переменной в некоторых MsgBox, которые показывают прогресс в подсчете слов, и функцию в конце, которая записывает итоговые результаты по 6 файлам на язык. (Это чисто эстетично, но я бы хотел, чтобы это работало в цикле)

Мне также нужно что-то очень похожее с wordfiles:

filenum := ["342553", "342582", "342411", "342367", "342467", "342502"]

wrdfile := ["OHFrontend", "OHFrontendListing", "HouseTypeAndSubType", "GuestType", "RoomTypeFeatureName", "RoomTypeFaturePrefixAndBracketOption"]

Массив 'wrdfile' также является чисто эстетическим, так как я скорее отображаю имя файла, а не filenum в итоговых подтверждениях. Filenum, однако, важен и должен проходить по каждому значению в массиве один раз, пока не достигнет конца, после чего его нужно перезапустить, но со следующим языком в массиве 'lang'.

Я думаю, что следующая структура будет работать:

langid := [val1, val2, etc..]
lang := [val1, val2, etc..]
For Key, Value in langid     ; iterate through Languages
    Loop
    {
    filenum := [val1, val2, etc...]
    wrdfile := [val1, val2, etc...]
    Run Chrome
    Open Site
    For Key, Value in filenum    ;iterate through Wordfiles
        Loop
        {
        Send URL containing 'langid' var & 'filenum' var
        Open DevTools and send jQuery and store totals
        Confirm totals in MsgBox and save in txt file
        }
Return

Стоит отметить, что все языки должны проходить через одни и те же 6 файлов слов, поэтому, возможно, файловый массив также может быть частью первого ассоциативного массива вместо двух разных ...? Не уверен, что здесь лучший подход.

Пожалуйста, помогите мне найти правильную структуру и синтаксис для циклов и, если возможно, указать мне правильное направление, насколько массивы идут. (Я знаю, что не правильно связываю их)

Ссылка на AHK_Forum и полный скрипт.

Спасибо всем!

0