powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема со считыванием строк
30 сообщений из 30, показаны все 2 страниц
Проблема со считыванием строк
    #33799953
Всем привет!

Читаю файл построчно вот таким образом
while(!feof(fp)){
fgets(str, 925, fp);
/////////Íîìåð äîêóìåíòà
*str_tmp = 0;
strncpy(str_tmp, str+33, 3);
str_tmp[3] = '\0';
SG_DOC->Cells[0][count] = str_tmp;
count++;}

Почему все строки из файла прочитываются по два раза?
Как исправить ситуацию?
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33799963
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, читай весь файл сразу, потом парсь.
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33799972
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковSG_DOC->Cells[0][count] = str_tmp;
в одну и ту же ячейку все строки читаешь ?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33799976
А при чём тут парсить? Я просто читаю тестовый файл состоящий из строк?
Мне нужно прочитать файл построчно...
Считалась строка - вытащил из неё куски, следующую прочитал - вытащил из неё куски и т.д....
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33799984
НА SG_DOC внимания не обращаем....
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33799987
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А притом что строки за тебя кто разбирать будет ? Пушкин что ли ? Ты же построчно хочешь. Как минимум ловить в буфере нужно будет '\0' + '\n'
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800008
Так поясните, как правильно сделать нужно?
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800030
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.firststeps.ru/
Вам сюда.
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800041
Понятно....
Одни спецы...
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800052
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зря обижаешься. Там действительно все расписано. Я частенько туда заглядываю. Мне какой резон тебе шнягу советовать ?
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800093
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как ты понял, что строки считываются дважды ?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800125
При считывании в StringGrid строк получается в два раза больше чем в файле..
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800128
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
925 откуда взялось ?
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800155
Длина строки в файле...
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800160
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А откуда ты решил что она именно такая ?
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800163
Посмотрел в файле...
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800208
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты привел не весь код.
Ты не привел пример данных и что получается
И наехал, что тебе не помогают

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800216
Goldminer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А 33 что такое? А 3? авторПочему все строки из файла прочитываются по два раза?Они считываются по 1-му разу. Только потом с ними что-то несусветное делают. В жизни большего бреда не видел...
авторКак исправить ситуацию?
1. Понять, что нужно сделать со считанной строкой.
2. Сделать именно это. ;-)
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800226
Из считанной строки нужно считать кусок от символа N до символа N1 и результат запихнуть в ячейку StringGrid...

Жду вариантов....
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800237
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковЖду вариантов
я бы вобще все не так сделал :)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800254
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
void GetFile()
{
	int iLen= 0 ;
	try
	{
		ifstream iFile("File.txt");
		if (iFile.is_open() ) 
			 throw (ios::failure("Error Open File"));
		char _char;
		while (iFile)
		{
			iFile.get(_char) ;
			iLen ++;

		}
       iFile.close(); 
	} catch (ios::failure error  ){cout <<error.what() << endl;  }

}
Ну вот так , побайтно попробуй.
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800301
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас
АлексейПыриковЖду вариантов
я бы вобще все не так сделал :)
Ну чего вы человека мучите ))
Расскажите ему, в конце концов, про StringGrid->Rows->LoadFromFile()
))

to АлексейПыриков ты бы хоть в Help слазил прежде чем спрашивать, что-ли...
Ээээх, ваще народ разленился...
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800379
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrii K.DK> Ну чего вы человека мучите ))
DK> Расскажите ему, в конце концов, про
DK> StringGrid->Rows->LoadFromFile() ))
нееее, не скажу
не факт, что там, в файле, строки, оканчивающиеся переводом строки.
Я ж говорю: мало входной информации, отвечать нечего, только зубы поскалить
разве что дак он обижается, ну и ладно, ему надо, не мне

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800551
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу предположить, что строки разделяются двумя символами новой строки, у дебаггера какое мнение по этому поводу?
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800558
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, 925 - это точная длина строки?
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800612
Да не обижаюсь я...
Жду любых советов....
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800623
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковЖду любых советов
долго будешь ждать

1. ты весь код привел ? возможно проблема не в чтении файла
2. как определил, что строки именно удваиваются ? (может просто одна и таже
везде ? или может файл кривой ?)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800644
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковВсем привет!

Читаю файл построчно вот таким образом
while(!feof(fp)){
fgets(str, 925, fp);
/////////Íîìåð äîêóìåíòà
*str_tmp = 0;
strncpy(str_tmp, str+33, 3);
str_tmp[3] = '\0';
SG_DOC->Cells[0][count] = str_tmp;
count++;}

Почему все строки из файла прочитываются по два раза?
Если 925 - точная длина строки и все строки одинаковой длины (а похоже так оно и есть, хотя и странно), то происходит примерно следующее:
1. fgets читает 925 символов (то есть всю строку кроме самого символа конца строки)
2. работа очередной итерации цикла....заполняется ячйка грида куском считанного буфера
3. fgets находит тот самый несчитанный "конец строки", считывает его (и больше ничего!) при этом не изменяя содержимое str
4. работа очередной итерации цикла....заполняется ещё одна ячйка грида куском "старого" буфера
5. ну и так далее...
АлексейПыриковКак исправить ситуацию?
Поставить 926 :)

и почитать справку по fgets
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800675
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrii K.Поставить 926 :)
я бы вобще отказался от работы через gets, раз строки фиксированной длины.
CreateFileMapping + вычитывание определенных кусков в цикле = реальный
выигрыш в скорости.
А еще если отказаться от стринггрида в пользу drawgrid - тогда вобще песня
а апофеозом станет отказ от плоских файлов в пользу СУБД

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема со считыванием строк
    #33800726
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас
Dmitrii K.Поставить 926 :)
я бы вобще отказался от работы через gets, раз строки фиксированной длины.
CreateFileMapping + вычитывание определенных кусков в цикле = реальный
выигрыш в скорости.
А еще если отказаться от стринггрида в пользу drawgrid - тогда вобще песня
а апофеозом станет отказ от плоских файлов в пользу СУБД

Есть предложение автору топика протестировать предложенные методы, сравнить производительность и результат выложить на форум ))
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема со считыванием строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]