До конца текста доходит.Пытался посмотреть значение функции напрямую Print("с=",FileIsEnding(handle));, говорит с= 0.
Как такое может быть просто не врубаюсь.
До конца текста доходит.Пытался посмотреть значение функции напрямую Print("с=",FileIsEnding(handle));, говорит с= 0.
Как такое может быть просто не врубаюсь.
очень просто - в вашем файле больше 50 строк. И смысл строки
if (i>100) break;которая стоит в цикле, где i<50, полностью теряется
очень просто - в вашем файле больше 50 строк. И смысл строки
которая стоит в цикле, где i<50, полностью теряетсяОператор этот совершенно не важен в данном примере. Что с ним, что без него все едино. Не работает.
Что еще интересно: каждая строка файла записывается в журнал дважды.
Не проще ли функцию сократить?
int handle = FileOpen(FileName, FILE_CSV|FILE_READ, ";"); string str1; if (handle>0) { while (!FileIsEnding(handle)) { str1=FileReadString(handle); Print("строка=",str1); } Print("Конец файла"); FileClose(handle); }
А насчет дублирования строк в журнале - вообще не пойму о чем речь.
Бесконечным он будет только в случае бесконечности файла, что довольно сомнительно.
Может просто файл довольно большой (порядка нескольких гиг)? Тогда в журнал долго и нудно будет переписываться содержимое файла.
Бесконечным он будет только в случае бесконечности файла, что довольно сомнительно.
Может просто файл довольно большой (порядка нескольких гиг)? Тогда в журнал долго и нудно будет переписываться содержимое файла.
Бесконечный он потому, что функция FileIsEnding не принимае нужного значения. Она вообще никакого значения не принимает. В этом суть вопроса. А в файле всего 50 строк.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как пример:
handle = FileOpen(FileName, FILE_CSV|FILE_READ, ";");
string str1;
int i;
if (handle>0)
{
while (i<50)
{
str1=FileReadString(handle);
Print("строка=",str1);
Print("с=",FileIsEnding(handle));
if (FileIsLineEnding(handle)) Print("Конец строки");
if (FileIsEnding(handle))
{
Print("Конец файла");
break;
}
i++;
if (i>100) break;
}
FileClose(handle);
}
//----
return(0);
}
В журнале не пишется "Конец файла"
пишет с= 0
Кто знает?