Как отловить конец строки?

 
Открываю файл за пределами "песочницы", функция FileIsEnding не работает. Как в этом случае отловить конец строки?
P.S. обычный текстовый файл (*.txt
)
 
Что значит за пределами "песочницы"?
 
drknn >>:
Что значит за пределами "песочницы"?


В МТ4 существует три каталога (с подкаталогами), в которых могут располагаться рабочие файлы:
  • /HISTORY/<текущий брокер> - специально для функции FileOpenHistory;
  • /EXPERTS/FILES - общий случай;
  • /TESTER/FILES - специально для тестирования.
Работа с файлами из других каталогов пресекается.

У меня файл открывается в другом месте и никак не получается отловить конец строки.
 
bool FileIsLineEnding( int handle) 
Возвращает TRUE, если файловый указатель находится в конце строки файла формата CSV, иначе возвращает FALSE. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError(). 
Эта штука не работает тоже?
Если не работает, то можно файл обрабатывать через DLL
 
drknn >>:
Эта штука не работает тоже?
Если не работает, то можно файл обрабатывать через DLL
Эта штука не работает. А без dll не никак не обойтись?
 

Если Вы читаете файл, как описано в рекомендованной статье, то у Вас весь текст записывается в одну строку, а ее длина определяется StringLen(text).

 
Talex >>:

Эта штука не работает. А без dll не никак не обойтись?


Вы сознательно нарушаете правила, которые приписывает MQL. В этом случае нужно быть готовым к тому, что какая-то часть языка откажется работать. Значит выход остаётся один - пользоваться другим, более гибким языком.
 
Roger >>:

Если Вы читаете файл, как описано в рекомендованной статье, то у Вас весь текст записывается в одну строку, а ее длина определяется StringLen(text).

Из ветки https://www.mql5.com/ru/forum/100532, предшествующей статье, прочитал "... Добавить немного проверки на символы разделители и на символы конца строки..." подумал может кто знает как, подскажет. У меня это не получилось. Мне удобнее было бы записать и считывать построчно, но пришлось, пока, сделать в одну строку.

 

Покажите пример файла, который надо прочитать.

 
Все разобрался.
...
read=_lread(handle,char,1);
res=res+char;
len=StringLen(res);
temp=StringSubstr(res,len-2,2);
if(temp=="\n") {
....
}
Сначала искал символ конца строки считывая два последних байта, т.к. "\n" - это два символа.
А вот сейчас попробовал считать один байт и все прокатило. )))

...
read=_lread(handle,char,1);
res=res+char;
len=StringLen(res);
temp=StringSubstr(res,len-1,1);
if(temp=="\n") {
....
}
Причина обращения: