Author Topic: Очистка массива или строки при новой итерации  (Read 1536 times)

0 Members and 2 Guests are viewing this topic.

Karapuz

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Привет,

Есть файл записями вида

xxx0;yyy0;zzzz0;...;nnn0
xxx1;yyy1;zzzz1;...;nnn1
xxx2;yyy2;zzzz3;...;nnn4

читаю его построчно

Code: (clickermann) [Select]
SUB(insert, $ins)
KEYPRESS(#BACKSPACE)
TOCLIP($ins)

KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
END_SUB

$filename = "test.txt"
$i = 1

WHILE( $i < TFCOUNT($filename) + 1 )

$string = TFREAD($filename, $i)
STRSEPARATE($string, ";", $data)
LCLICK(501,371)   //select DNS input
insert($arr[0]) // insert DNS
LCLICK(501,463)   //select Max session
insert($arr[1])

END_CYC

получается нахожу нужную область и вставляю соотвествуюшие данными, при первом проходе всё окей. заполяется данными из строки 0 (или 1)

все же последуюший заполняются из строки 0 (или 1), хотя ожидаю что из строки 0 + $i

Стандартный вариант очишать массив или строку при новой итераций, но чтобы не делал проявляется проблема выше. Те не ясно как правильно ичистить переменую.

Спасибо.

Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Ответ навскидку из мануала (раздел Язык сценариев / подраздел Работа с числами):

Quote
UNDEFINE
Синтаксис
UNDEFINE ($var) - удаляет переменную из памяти

Параметры
$var - символьное имя переменной

Примечания
Если обратиться к удаленной переменной, ее значение представится как 0
Стоит понимать, что удаление переменной высвобождает память и в некоторой степени ускоряет последующую работу кликера с переменными

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
WHILE не наращивает сам переменную, тебе нужен цикл FOR

Code: (clickermann) [Select]
SUB(insert, $ins)
   KEYPRESS(#BACKSPACE)
   TOCLIP($ins)
   WAITMS (50)
   KEYDOWN (#CTRL)
   WAITMS (50)
   KEYDOWN (#V)
   WAITMS (50)
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (50)
END_SUB

$filename = "test.txt"

FOR($a=1,$a<TFCOUNT($filename)+1)
   STRSEPARATE(TFREAD($filename, $a), ";", $arr_data)
   LCLICK(501,371)   //select DNS input
   WAITMS (50)
   insert($arr_data[0]) // insert DNS
   LCLICK(501,463)   //select Max session
   WAITMS (50)
   insert($arr_data[1])
   UNDEFINE($arr_data)
END_CYC
« Last Edit: November 06, 2016, 06:53:06 PM by Oraven »