Кибор » Кибор - Интегрированная среда разработки ботов » Отчет о ошибках » freadlineall баг

Страниц (1): [1]
 

1. Nikanr - 10 Июля, 2021 - 12:58:41 - перейти к сообщению
На диск C:\ поместить файл config.txt со следующим содержанием:

1111
111
222222
222222
222222

Код вставить в редактор:

CODE:
string temp[4];

string bla[4], edit_t;

if(fopen ("C:\config.txt", "r")){

freadline(temp[0]);

freadline(temp[1]);

//int y3 = freadlineall(#bla[0], 100);

for(int f = 0; f < freadlineall(#bla[0], 100); f++){

edit_t = edit_t + bla[f] + "^r^n";
}

fclose();
}

messagebox(edit_t);


Вернет значение только 1 строки. Если использовать y3 вместо передачи напрямую, вернет значения всех 3х строк
2. Zireael - 10 Июля, 2021 - 13:16:55 - перейти к сообщению
 Цитата:
for(int f = 0; f < freadlineall(#bla[0], 100); f++)

Нет никакого бага.
На первой итерации читается файл до конца, функция вернёт 3 строки в массив, на второй итерации читать уже нечего, т. к. курсор находится в конце файла, цикл завершается.
3. Zireael - 14 Сентября, 2021 - 05:06:12 - перейти к сообщению
CODE:
// для теста создать файл, в котором 5 строк
if (fopen ("C:\test_file123.txt", "w"))
{
for(int i=0; i<5; i++)
{
fwrite("Строка"+format(i)); fwrite(ENDL);
}
fclose();
}


string text[999];
loop(5)
{
if (fopen ("C:\test_file123.txt", "r"))
{
freadlineall(#text[0], sizearray(text)); // прочитать весь файл
fclose();
}
messagebox(text[2]); // на каждой итерации строка дописывается
}
4. Kibor - 18 Сентября, 2021 - 00:54:05 - перейти к сообщению
Исправлено.

Powered by ExBB FM 1.0 Final