Чего ему надо? Почему ошибка?

 
int handle;
handle=FileOpen(FileName,FILE_READ|FILE_CSV|FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_COMMON,";");
//Print(handle);
if(handle==(-1))
{
Print(MasterAccount," no connection to the server, the last error: ",_LastError);
ResetLastError();
return(-1);//continue;
}
FileSeek(handle,0,SEEK_SET);
string s0="";s0=FileReadString(handle,3);
Print(s0," ",StringToInteger(s0));
if(StringToInteger(s0)!=107){Print("Получен некорректный файл!");return(-1);}
string s1=FileReadString(handle);
2020.04.24 20:56:56.251 hagh7 (USDCHF,H1) 107 0
2020.04.24 20:56:56.251 hagh7 (USDCHF,H1) Получен некорректный файл!

В файле 107;1587761402;0;
 
вернее все правильно отрабатывает, но почему StringToInteger(s0)); выдает 0 ?
 

закоментил FileSeek и сделал закрытие файла после ифа при правде

боль как рукой сняло.

 
попробуй создать отдельную переменную long и ей присвоить значение stringtointeger, посмотри что будет выдавать. 
 
Alexandr Bryzgalov:
вернее все правильно отрабатывает, но почему StringToInteger(s0)); выдает 0 ?

При чтении из csv-файла длину строки также указывать не надо, будет прочитана строка от текущего положения до ближайшего разделителя либо до признака конца текстовой строки.

 
Sergey Chalyshev:

При чтении из csv-файла длину строки также указывать не надо, будет прочитана строка от текущего положения до ближайшего разделителя либо до признака конца текстовой строки.

да, спасибо, это от отчаяния поставил, в первоначальном варианте длинна строки не указывалась

 

рабочий вариант выглядит так:

   int handle;
   handle=FileOpen(FileName,FILE_READ|FILE_CSV|FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_COMMON,";");
//Print(handle);
   if(handle==(-1))
     {
      Print(MasterAccount," no connection to the server, the last error: ",_LastError);
      ResetLastError();
      return(-1);//continue;
     }
   //FileSeek(handle,0,SEEK_SET);
   string s0=FileReadString(handle);
   if(StringToInteger(s0)!=107){FileClose(handle);Print("Получен некорректный файл!");return(-1);}
   string s1=FileReadString(handle);
Причина обращения: