char str[1024];
ifstream infile(OpenFile->Text.c_str());
if (!infile)
{
ShowMessage("File not found.");
return;
}
while (!infile.eof())
{
infile.getline(str, 1024);
...
}
Остановка чтения из файла
Я в С++ Builder 6 открываю файл и построчно читаю из него.
Код:
Но поскольку файл очень большой, то иногда приходится прервать чтение этого файла. Скажите как это сделать?
Я делал глобальную переменную равную 0, и в цикле while (в том, что файл читает) ставил условие, что если переменная равна 1 - то прервать чтение. И соответственно добавлял кнопку, которая задавала значение переменной = 1. Но, в процессе выполнения программы, она настолько была загружена, что кнопка отмены просто не нажималась. Скажите как это исправить???
Или вставить в цикл чтения Application->ProcessMessages(), или, что гораздо лучше, вынести цикл чтения в отдельный поток (TThread), и в нём проверять этот самый признак прекращения чтения.
Цитата:
Originally posted by fellow
Или вставить в цикл чтения Application->ProcessMessages(), или, что гораздо лучше, вынести цикл чтения в отдельный поток (TThread), и в нём проверять этот самый признак прекращения чтения.
Или вставить в цикл чтения Application->ProcessMessages(), или, что гораздо лучше, вынести цикл чтения в отдельный поток (TThread), и в нём проверять этот самый признак прекращения чтения.
А не расскажешь поподробнее про то, как цикл чтения в отдельный поток TThread вынести, и если можно кусочек кода с примером, плз...:)
Про это хорошо в справке написано, и в примерах есть. Смотрите пример, там ничего сложного.
Цитата:
Originally posted by fellow
Про это хорошо в справке написано, и в примерах есть. Смотрите пример, там ничего сложного.
Про это хорошо в справке написано, и в примерах есть. Смотрите пример, там ничего сложного.
Чего-то у меня даже создать процесс не получается ...
Может кто-нибудь всё-таки скинет примерчик рабочий :).
Цитата:
Originally posted by MVH
Может кто-нибудь всё-таки скинет примерчик рабочий :).
Может кто-нибудь всё-таки скинет примерчик рабочий :).
Какой тебе нужно пример? Hew->Thread, добавил создал поток по нажатию кнопки
Код:
YouThread = new TYouThread(false);
В главной функции потока пишешь свою функцию чтения из файла
Код:
while(true){
do{
//читаешь здесь
}while(!Stop);
}
do{
//читаешь здесь
}while(!Stop);
}
А как синхронизировать поток с формой написано прямо в .срр файла потока.