Автор Тема: Цикл чтения из файла txt построчно и заполнение полей стороннего окна c условием  (Прочитано 1415 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Absolutelight [?]

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.

Описание:

Привет, уважаемые форумчане. Нужна ваша помощь.
Нужно, чтобы скрипт читал текстовый файл reader.txt и вписывал данные в диалоговое окно приложения autotelnet.exe (приложил). Есть исходник autotelnet на vb.net (по запросу). Так же приложил пример файл откуда читать - reader.txt
На vb.net я так и не понял как использовать правильно библиотеку user23.dll для работы с хендалами и классами полей в консольном приложении. Как их ловить и вписывать значения... Решил запускать скрипт отдельно на AutoIt. 
Вот описание программы для autoit: 



(нажмите для показа/скрытия)

Вопрос, как правильно оформить while вместе с построением массива данных и передать  2 токена в окно autotelnet из этого массива   ?
Вот код autoit:

Код: AutoIt [Выделить]
#include <file.au3>
#include <Array.au3>

local $localip = FileRead("localip.txt", 1)
; 'тут эксперементировал с ini
; 'local $getip = IniRead( $file,"1 code","ip","default" )
; 'local $getname = IniRead( $file,"1 code","value1", "default" )
local $telcode = ("q")
local $telcode2 = ("command-output 'show tech all' tftp")
local $telcode3 = ("SWITCH")
local $telcode4 = (".txt")


; вопрос как читать построчно и передавать в окно autotelnet.  Записал ниже просто строки, которые помогут наверняка составить правильный код.

Global $records
If Not _FileReadToArray(@ScriptDir&'\reader.txt', $records) Then
   MsgBox(4096,"Ошибка", "Невозможно прочитать массив" & @error)
   Exit
EndIf


While True
   
    ; здесь нужно сделать массив, но не хватает опыта сделать правильно чтения файла и подставлять переменные в цикл.
    ; For $i = 1 to $token0[0] , $token1(1)
   

    $telnet = WinWait ("AutoTelnet 1.3.0 - Telnet automation tool", "", 1)
      if not ($telnet = 0) then
      WinActivate ("AutoTelnet 1.3.0 - Telnet automation tool")
      ControlSetText("AutoTelnet 1.3.0 - Telnet automation tool", "", "[CLASS:WindowsForms10.EDIT.app.0.141b42a_r14_ad1; INSTANCE:3]", $localip )
      ControlSetText("AutoTelnet 1.3.0 - Telnet automation tool", "", "[CLASS:WindowsForms10.RichEdit20W.app.0.141b42a_r14_ad1; INSTANCE:1]", $telcode )
      ControlSetText("AutoTelnet 1.3.0 - Telnet automation tool", "", "[CLASS:WindowsForms10.RichEdit20W.app.0.141b42a_r14_ad1; INSTANCE:1]", "{ENTER}")
      ControlSetText("AutoTelnet 1.3.0 - Telnet automation tool", "", "[CLASS:WindowsForms10.RichEdit20W.app.0.141b42a_r14_ad1; INSTANCE:1]", $telcode2+$token0+$telcode3+$token1+$telcode4 )
      send ("{CTRLDOWN}")
      send ("{r}")
      send ("{CTRLUP}")
      Sleep(5000)
          ControlGetText("AutoTelnet 1.3.0 - Telnet automation tool", "Execution script completed", 1052122 )
     

Next

Endif
   Wend

 


Примечания:

Прикрепил autotelnet.exe
Прикрепил reader.txt

Я пытался написать эту часть на vb.net, но ничего не получилось.
Вот начало программы на vb.net:

(нажмите для показа/скрытия)


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Декабрь 28, 2016, 14:58:57 от Absolutelight, Причина: Исправление ошибок »

Русское сообщество AutoIt


Оффлайн Absolutelight [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Absolutelight
(нажмите для показа/скрытия)

Приветствую! Спасибо за совет. Так хорошо?

Онлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1210
  • Репутация: 172
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия AutoIt: 3.3.12.0
OffTopic
Так хорошо?
Да, спасибо. Сам на телефоне, пока помоч не могу.

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3598
  • Репутация: 950
    • Награды
  • Версия AutoIt: 3.3.14.0
Absolutelight
Цитировать
ожидание вывода сообщения в control id 1052122 окна: "Execution script completed"
Получить текст "панели статуса" без спецсредств не получится. Поэтому, будем ждать подключение по тексту в синем поле. Замените в скрипте строку "Execution script completed" на часть сообщения при успешном соединении
(нажмите для показа/скрытия)

Русское сообщество AutoIt


Оффлайн Absolutelight [?]

  • Новичок
  • *
  • Сообщений: 4

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Absolutelight
Цитировать
ожидание вывода сообщения в control id 1052122 окна: "Execution script completed"
Получить текст "панели статуса" без спецсредств не получится. Поэтому, будем ждать подключение по тексту в синем поле. Замените в скрипте строку "Execution script completed" на часть сообщения при успешном соединении
(нажмите для показа/скрытия)

Спасибо большое за помощь. Я составил код скрипта.
Но последняя задача такая (все в эту же тему):

Считать два массива и посылать две разных переменных одной строкой в окно. При этом переменных: $aTokens может быть 0 и 1 (как Вы правильно сделали).
А переменных $aComm может быть сколько угодно 0, 1, 2, 3, 4... + (они вводятся пользователем и сохраняются в файл commands.txt, затем файл commands.txt и считывается в массив.)
Нужно обойти ошибку количества команд и правильно оформить функцию for $i

(нажмите для показа/скрытия)

« Последнее редактирование: Январь 09, 2017, 17:09:23 от Absolutelight »


Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3211 Просмотров
Последний ответ Август 06, 2011, 20:50:02
от WSWR
6 Ответов
3752 Просмотров
Последний ответ Август 28, 2011, 00:39:21
от arigami67
10 Ответов
4104 Просмотров
Последний ответ Март 09, 2012, 02:24:08
от Rakim
4 Ответов
2748 Просмотров
Последний ответ Апрель 14, 2012, 19:42:20
от DStalker
8 Ответов
3592 Просмотров
Последний ответ Июль 17, 2012, 00:23:10
от Dk
11 Ответов
3872 Просмотров
Последний ответ Июль 22, 2012, 00:00:29
от madmasles
13 Ответов
3770 Просмотров
Последний ответ Май 14, 2013, 01:41:08
от AZJIO
2 Ответов
1037 Просмотров
Последний ответ Ноябрь 25, 2014, 22:38:57
от Black_Sunlight
2 Ответов
857 Просмотров
Последний ответ Май 09, 2016, 19:37:11
от avtoIT
1 Ответов
289 Просмотров
Последний ответ Июнь 21, 2017, 07:55:11
от Garrett