Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Остановка чтения из файла

1.8K
27 июля 2004 года
MVH
43 / / 03.09.2003
Здраствуйте.
Я в С++ Builder 6 открываю файл и построчно читаю из него.
Код:
char str[1024];
ifstream infile(OpenFile->Text.c_str());
if (!infile)
  {
  ShowMessage("File not found.");
  return;
  }
while (!infile.eof())
  {
  infile.getline(str, 1024);
  ...
  }

Но поскольку файл очень большой, то иногда приходится прервать чтение этого файла. Скажите как это сделать?
Я делал глобальную переменную равную 0, и в цикле while (в том, что файл читает) ставил условие, что если переменная равна 1 - то прервать чтение. И соответственно добавлял кнопку, которая задавала значение переменной = 1. Но, в процессе выполнения программы, она настолько была загружена, что кнопка отмены просто не нажималась. Скажите как это исправить???
310
27 июля 2004 года
fellow
853 / / 17.03.2003
Или вставить в цикл чтения Application->ProcessMessages(), или, что гораздо лучше, вынести цикл чтения в отдельный поток (TThread), и в нём проверять этот самый признак прекращения чтения.
1.8K
27 июля 2004 года
MVH
43 / / 03.09.2003
Цитата:
Originally posted by fellow
Или вставить в цикл чтения Application->ProcessMessages(), или, что гораздо лучше, вынести цикл чтения в отдельный поток (TThread), и в нём проверять этот самый признак прекращения чтения.


А не расскажешь поподробнее про то, как цикл чтения в отдельный поток TThread вынести, и если можно кусочек кода с примером, плз...:)

310
28 июля 2004 года
fellow
853 / / 17.03.2003
Про это хорошо в справке написано, и в примерах есть. Смотрите пример, там ничего сложного.
1.8K
31 июля 2004 года
MVH
43 / / 03.09.2003
Цитата:
Originally posted by fellow
Про это хорошо в справке написано, и в примерах есть. Смотрите пример, там ничего сложного.


Чего-то у меня даже создать процесс не получается ...

1.8K
01 августа 2004 года
MVH
43 / / 03.09.2003
Может кто-нибудь всё-таки скинет примерчик рабочий :).
1
04 августа 2004 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by MVH
Может кто-нибудь всё-таки скинет примерчик рабочий :).


Какой тебе нужно пример? Hew->Thread, добавил создал поток по нажатию кнопки

 
Код:
YouThread = new TYouThread(false);

В главной функции потока пишешь свою функцию чтения из файла
 
Код:
while(true){

  do{
 //читаешь здесь
 
}while(!Stop);
}

А как синхронизировать поток с формой написано прямо в .срр файла потока.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог