Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: ksa-nsk on November 14, 2014, 09:52:35 PM
-
Вот небольшой фрагмент кода - помещаю содержимое текстового файла в массив, потом перебираю строки, если пустая, то хочу пропустить, если нет, то записываю в другой массив, проверку делаю через INT строки (там первыми стоят цифры),
проблема - вылет на $v_arr_test = $f_arr[$v]
TFReadArr($tek_work_file, $f_arr)
FOR ($v=0, $v < ARRSIZE($f_arr))
$v_arr_test = $f_arr[$v]
IF (INT($v_arr_test) > 0)
$v_arr = INT(STRCUT($v_arr_test, 1, 5))
ARRPUSH($f_reg, $v_arr)
END_IF
END_CYC
-
TFReadArr("lib.txt", $f_arr)
FOR ($v=0, $v < ARRSIZE($f_arr))
print($f_arr[$v])
END_CYC
halt
если в файле есть "пустая"(0A 0D) строка, print($f_arr[$v]) на этой строке вызывает ошибку выполнения
Вообще то логично, массив строковый, в нем не может быть 0, как у цифровых, а выдать несуществующий элемент программа не может.
2ksa-nsk: временное решение заменить все "пустые" строки в файле на какой-нибудь не используемый обычно символ(альт+19 - ‼ , например)
2Johnny: Надо бы заменить "пустые" строки из файла в массиве на что-нибудь, на 00, 255 или ввести константу #_Null, #_Epty, чтоб можно было вычислять пустые строки и при том чтоб небыло несуществующих элементов массива
-
проблема не смертельная, просто хотел спросить у коллег (свою винду уже замучил основательно, может только моя глючит).
Раз не только у меня, то заострим внимание автору проекта.