Имею файл с 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 был нулевого размера.
Буду благодарен объяснению моей ошибки или любому костылю, который решит мою проблему.