При повторном считывании файла CSV добавляет лишнюю (null) строку

 

Индикатор считывает CSV в матрицу. По данным из файла строятся линии. Индикатор каждые 30 сек реиницилизируется путем в OnDeinit вызове опять OnInit. При первом запуске все ок. При второй, во время считывания файла добавляет пустую (null) строку. Не подскажете а чем может быть проблема? Функция по считыванию( что не объявлено тут, объявлено глобально:

void ReadFile(){
 
   sizei=0;sizej=0;
   i=0; j=0;
   int handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_CSV|FILE_READ, ";"); // открываем файл
   if(handle!=INVALID_HANDLE){ //если файл открылся успешно
      Print("File is open for reading ",InpFileName);
      while(!FileIsEnding(handle)){ 
         if (!FileIsLineEnding(handle)){ 
               array[i][j++]=FileReadString(handle); 
               PrintFormat("array[%d][%d]=%d",i,j,array[i][j]);
               }
         else { 
              sizej=j;
              j=0;
              i++;
              array[i][j++]=FileReadString(handle);
              PrintFormat("array[%d][%d]=%s",i,j,array[i][j]);
              } 
         } 
      
      sizei=i;
      FileClose(handle); // закрываем файл
      PrintFormat("Values was read, file %s closed",InpFileName);
     }
   else{
      PrintFormat("Can't open file %s, Error number = %d",InpFileName,GetLastError()); //если файл не открылся
      }
   
 
 }