Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 31.12.2006, 17:06   #1
FEAR
Пользователь
 
Аватар для FEAR
 
Регистрация: 29.12.2006
Сообщений: 13
По умолчанию Не могу прочитать файл до конца...

Пожалуйста помогите!
Я не могу прочитать текстовый файл до конца.
FEAR вне форума Ответить с цитированием
Старый 31.12.2006, 17:45   #2
Flash_
Пользователь
 
Аватар для Flash_
 
Регистрация: 19.12.2006
Сообщений: 91
По умолчанию

Цитата:
Сообщение от FEAR Посмотреть сообщение
Пожалуйста помогите!
Я не могу прочитать текстовый файл до конца.
Исчерпывающее описание проблемы=) Поподробней можно?
Flash_ вне форума Ответить с цитированием
Старый 31.12.2006, 20:09   #3
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

функция eof (End Of File) возвращает True, если достигнут конец файла.
В С++ зайди в помощь, набери эту функцию, там исчерпыющее описание, и пример дан, думаю разберёшься.
zetrix вне форума Ответить с цитированием
Старый 03.01.2007, 08:56   #4
FEAR
Пользователь
 
Аватар для FEAR
 
Регистрация: 29.12.2006
Сообщений: 13
По умолчанию

Да пробывал я этот EOF чет не получается (( на Delphi все проще а тут чета не получается... (
К сожалению код выложить не могу ( я не дома, но при первой же возможности выложу...
Если возможно по приведите конкретный пример буду очень благодарен!
Заранее благодарю... ...0
FEAR вне форума Ответить с цитированием
Старый 03.01.2007, 09:38   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

#include <sys\stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
int handle;
char msg[] = "This is a test";
char ch;

/* создание файла */
handle = open("DUMMY.FIL",
O_CREAT | O_RDWR,
S_IREAD | S_IWRITE);

/* записывание данных в файл */
write(handle, msg, strlen(msg));

/* переход в начало файла (тоже самое что закрыть, а потом открыть файл для чтения) */
lseek(handle, 0L, SEEK_SET);

/* чтение из файла символов до тех пор, пока не достигнут конец файла */
do
{
read(handle, &ch, 1);
printf("%c", ch);
} while (!eof(handle));
close(handle);
return 0;
}

P.S.: пример взят из хелпа Turbo C++ 3.0
zetrix вне форума Ответить с цитированием
Старый 04.01.2007, 11:15   #6
FEAR
Пользователь
 
Аватар для FEAR
 
Регистрация: 29.12.2006
Сообщений: 13
По умолчанию :)

СПС.. Помогло
FEAR вне форума Ответить с цитированием
Старый 04.01.2007, 11:18   #7
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Кроме eof есть feof:
Код:
#include <stdio.h>

int main(void)
{
   FILE *stream;

   /* open a file for reading */
   stream = fopen("DUMMY.FIL", "r");

   /* read a character from the file */
   fgetc(stream);

   /* check for EOF */
   if (feof(stream))
      printf("We have reached end-of-file\n");

   /* close the file */
   fclose(stream);
   return 0;
}
zetrix вне форума Ответить с цитированием
Старый 04.01.2007, 15:21   #8
FEAR
Пользователь
 
Аватар для FEAR
 
Регистрация: 29.12.2006
Сообщений: 13
По умолчанию

Не подскажите какой метод наиболее удобный, гибкий корче говоря более совершенный...
FEAR вне форума Ответить с цитированием
Старый 04.01.2007, 18:36   #9
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

А что тебе нужно сделать? Напиши условие(если есть), и то, что ты уже сделал.
zetrix вне форума Ответить с цитированием
Старый 04.01.2007, 21:46   #10
fresh
 
Регистрация: 04.01.2007
Сообщений: 3
По умолчанию

Кроме того можна использовать именно С++, смотри классы std::ifstream, std::fstream.

А по поводу совершенства наверное все зависит от поставленной задачи,
если файлы надо быстро читать одно дело, а если они при этом большие то другое. Я наверное пользовался бы непосредственно АПИ функциями, там будет побыстрее (и иногда эффективнее :-))...
fresh вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прочитать текстовый файл на удаленном компьютере/сервере (с авторизацией) 3lander Общие вопросы Delphi 4 07.08.2008 17:20
Не могу прочитать параметры BlackOmen Общие вопросы Delphi 9 25.07.2008 10:37
Помогите прочитать reg файл в RichEdit или ListBox inndim Общие вопросы Delphi 4 09.06.2008 11:56
как в Си прочитать ЕХЕ файл в HEX виде ?? Юрий_BASE Общие вопросы C/C++ 1 18.04.2008 21:54
как прочитать файл бодяга Общие вопросы Delphi 1 09.09.2007 19:37


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840