Что нового

[Автоматизация] Вставка ссылок с параметрами из текстового файла! Помогите!

uritalex

Новичок
Сообщения
197
Репутация
3
Версия AutoIt: 3.

Описание:
Добрый день и снова вопрошаю у знатоков Есть некий сайт. На данном сайте необходимо создавать задания (вставлять ссылки, добавлять разные значения в поля). Сайт написан на яве. Но суть вопроса не в этом А вот и сам вопрос : Те ссылки и доп параметры добавления (которые нужно вводить в поля) можно ли вынести из скрипта в отдельный текстовый файл? Зачем? Ссылок оч много и в определенное время их нужно менять (в задании на выполнения) и чтоб каждый раз не компилировать скрипт проще их менять в текстовом файле с указанием параметров. За ранее Благодарю за ответ.
Примечания:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Re: [Автоматизация] Вставка ссылок с параметрами из текстового файла!! Помогите!!!

uritalex
можно ли вынести из скрипта в отдельный текстовый файл?
Можно. Но что вам нужно от стола заказов? Код выноса ссылок и параметров из скрипта в файл? Или код чтения ссылок и параметров из файла?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: [Автоматизация] Вставка ссылок с параметрами из текстового файла!! Помогите!!!

uritalex, Не нужно лепить столько смайликов и восклицательных знаков в названии темы. Исправьте пожалуйста.
 
Автор
U

uritalex

Новичок
Сообщения
197
Репутация
3
Все исправил Шеф!
Из файла в скрипт. И скрипт выполнялся столько раз сколько ссылок в текстовом файле.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
uritalex
Из файла в скрипт
Код:
; читаем файл построчно в массив
$aURL = FileReadToArray("url.txt")

Run("notepad.exe")
WinWait("[class:Notepad]")

; работаем с массивом строк
For $i = 0 To UBound($aURL) - 1
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i] & @CRLF)
  Sleep(300)
Next


Содержимое url.txt
Код:
www.yandex.ru
www.mail.ru
www.autoit-script.ru
www.autoitscript.com
 
Автор
U

uritalex

Новичок
Сообщения
197
Репутация
3
Прошу прощения немного отвлекся на решение других задач :smile: Да пример то что нужно но, возможно ли усложнить задачу таким образом: к примеру (так как данный способ будет работать для заполнения формы в хроме) файл с данными url.txt (не будем отходить от примера) будет иметь дополнительные параметры в виде: www.yandex.ru, 100, 23, 5 возможно ли сделать что то вроде такого:
Код:
; читаем файл построчно в массив
$aURL = FileReadToArray("url.txt")

Run("notepad.exe")
WinWait("[class:Notepad]")

; работаем с массивом строк
For $i = 0 To UBound($aURL) - 1
  Тут условие наличия окна, поиска нужного поля определение параметров поля (с этим нет проблем)
       ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i] & @CRLF); тут вносится 1 часть строки www.yandex.ru
  Тут ищем следующее поле
       И вод тут через ControlSend (????) или через ControlSetText(?????) нужно ввести в поле 2-ю часть 1-й строки: 100
И так далее ....
  Sleep(300)
Next

Возможно ли такое осуществить?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
uritalex
дополнительные параметры
Код:
#include <File.au3>

Global $aURL

; читаем файл построчно в двумерный массив
_FileReadToArray("url.txt", $aURL, 0, ",")
If @error Then Exit

Run("notepad.exe")
WinWait("[class:Notepad]")

; работаем с двумерным массивом
For $i = 0 To UBound($aURL) - 1
  ; Тут условие наличия окна, поиска нужного поля определение параметров поля (с этим нет проблем)
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][0] & ","); тут вносится 1 часть строки
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][1] & ","); тут вносится 2 часть строки
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][2] & ","); тут вносится 3 часть строки
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][3] & @LF); тут вносится 4 часть строки
  Sleep(300)
Next


Содержимое url.txt
Код:
www.yandex.ru,100,23,5
www.mail.ru,101,24,6
www.autoit-script.ru,102,25,7
www.autoitscript.com,103,26,8
 
Автор
U

uritalex

Новичок
Сообщения
197
Репутация
3
Благодарю :smile: в очередной раз Вы меня выручаете. Но можно чуток позанудствовать т.к. хочу понять для себя правильно ли я понял алгоритм или нет:
Код:
Global $aURL

; читаем файл построчно в двумерный массив
_FileReadToArray("url.txt", $aURL, 0, ","); тут создается, условно, таблица из файла "url.txt", элементу в строке присваивается переменная $aURL, 0 - честно не понял (попытаюсь догадаться что первая строка нумеруется как нулевая)  :(, а вот "," это разделитель значений в строке (как понимаю он может быть любым уникальным)
If @error Then Exit

Run("notepad.exe")
WinWait("[class:Notepad]")

; работаем с двумерным массивом
For $i = 0 To UBound($aURL) - 1
  ; Тут условие наличия окна, поиска нужного поля определение параметров поля (с этим нет проблем)
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][0] & ","); тут вносится 1 часть строки:  тут тоже вроде понятно [$i] - это грубо говоря строка с которой потом работаем, [0]-это номер части строки массива  & - это задает параметр вставки с какой строки какую часть  "," - это разделитель  
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][1] & ","); тут вносится 2 часть строки
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][2] & ","); тут вносится 3 часть строки
  ControlSend("[class:Notepad]", "", "Edit1", $aURL[$i][3] & @LF); тут вносится 4 часть строки; 
  Sleep(300)
Next

Не, все таки оч интересно получатся пока писал вопросы этапам скрипта большую часть уже сам понял / нашел :smile:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
uritalex
элементу в строке присваивается переменная $aURL
Нет. $aURL - это вся таблица (двумерный массив) целиком.

0 - честно не понял
См. справку. Если ноль ($FRTA_NOCOUNT), то элементы массива будут отсчитываться от нуля. Если единица ($FRTA_COUNT), то в элементах $aURL[0][0] и $aURL[0][1] будет размер массива, а строки будут начинаться с единицы.

uritalex
"," это разделитель значений в строке (как понимаю он может быть любым уникальным)http://autoit-script.ru/autoit3_docs/keywords.htm
Верно.

uritalex
& - это задает параметр вставки с какой строки какую часть
Нет. Это просто оператор объединения строк, чтобы добавить запятую или какой-нибудь другой разделитель.
 
Автор
U

uritalex

Новичок
Сообщения
197
Репутация
3
Благодарю за проявленное терпение и помощь ! Буду дальше изучать и дальше прикручивать все в одно :smile:
 
Верх