Поэтому после тщательного поиска в документации 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 и полный скрипт.
Спасибо всем!