Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: clicker_student on April 16, 2019, 10:29:23 PM
-
Имею файл с 15 строками, каждая строка содержит 7 значений, разделенных ";" (CSV-файл)
Пытаюсь загрузить этот файл в массив и разобрать каждую строку функцией STRSEPARATE() для дальнейшего распарсивания . Но столкнулся, что получаемый массив токенов с каждым вызовом STRSEPARATE() растет - то есть массив не убивается, новые токены добавляются в него
// загрузим файла в массив
TFREADARR("parameters.csv", $parameters_arr)
$line = STRCONCAT("TFREADARR(parameters.csv, $parameters_arr): ARRSIZE($parameters_arr)=", ARRSIZE($parameters_arr))
$params_count = ARRSIZE($parameters_arr)
FOR ($par_ind = 0, $par_ind < $params_count, 1)
$curr_line = $parameters_arr[$par_ind]
STRSEPARATE($curr_line, ";", $param_tokens)
$line = STRCONCAT($par_ind, ": ARRSIZE($param_tokens)=", ARRSIZE($param_tokens))
TFWRITE("log.txt", $line)
// попытка зачистить массив $param_tokens не сработала
$tokens = ARRSIZE($param_tokens)
FOR($kount=0,$kount < $tokens, 1)
ARRPOP($param_tokens)
END_CYC
END_CYC
Результат:
TFREADARR(parameters.csv, $parameters_arr): ARRSIZE($parameters_arr)=15
0: ARRSIZE($param_tokens)=7
1: ARRSIZE($param_tokens)=14
2: ARRSIZE($param_tokens)=21
3: ARRSIZE($param_tokens)=28
4: ARRSIZE($param_tokens)=35
5: ARRSIZE($param_tokens)=42
6: ARRSIZE($param_tokens)=49
7: ARRSIZE($param_tokens)=56
8: ARRSIZE($param_tokens)=63
9: ARRSIZE($param_tokens)=70
10: ARRSIZE($param_tokens)=77
11: ARRSIZE($param_tokens)=84
12: ARRSIZE($param_tokens)=91
13: ARRSIZE($param_tokens)=98
14: ARRSIZE($param_tokens)=105
Что делать, как с этим бороться? Мне нужно чтобы перед следующим вызовом STRSEPARATE() массив $param_tokens был нулевого размера.
Буду благодарен объяснению моей ошибки или любому костылю, который решит мою проблему.
-
Спасибо!!!! Скоро все тонкости узнаю.
Я уже пытался по топорномму рубить :) Не помогло
SETVAR($param_tokens, 0) // вешает скрипт
$param_tokens = 0 // не реагирует
-
$param_tokens = 0 // не реагирует
Если $param_tokens - массив, то такая команда эквивалентна присвоению значения первому элементу
$param_tokens[0] = 0
Само собой массив так не очистить.