Author Topic: проблема в работе с массивом, только у меня?  (Read 1501 times)

0 Members and 1 Guest are viewing this topic.

ksa-nsk

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Вот небольшой фрагмент кода - помещаю содержимое текстового файла в массив, потом перебираю строки, если пустая, то хочу пропустить, если нет, то записываю в другой массив, проверку делаю через INT строки (там первыми стоят цифры),
проблема - вылет на $v_arr_test = $f_arr[$v]

Code: (clickermann) [Select]
    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

quant13

  • Активный участник
  • ***
  • Posts: 174
    • View Profile
Code: (Clickermann) [Select]
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, чтоб можно было вычислять пустые строки и при том чтоб небыло несуществующих элементов массива
« Last Edit: November 15, 2014, 03:39:28 AM by quant13 »

ksa-nsk

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
проблема не смертельная, просто хотел спросить у коллег (свою винду уже замучил основательно, может только моя глючит).
Раз не только у меня, то заострим внимание автору проекта.