Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятки с циклом while 
:(
    Опции темы
IamDreamer
Дата 8.10.2005, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 867
Регистрация: 6.6.2005

Репутация: нет
Всего: 7



Код

var file_1: textfile;
begin
AssignFile(file_1,'c:\78.txt');
Rewrite(file_1);
while true do
  begin
    writeln(file_1,'text');
  end;
Reset(file_1);
CloseFile(file_1);
end;
end.

При запуске программы загруженность процессора аж 100%, по-моему это должно быть из-за постоянного открытия файла, НО бесконечный цикл ведь не заканчивается => как дело доходит до Reset'a?

Это сообщение отредактировал(а) IamDreamer - 8.10.2005, 19:39
PM MAIL WWW Jabber   Вверх
SoWa
Дата 8.10.2005, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Ну цикл-то бесконечный, т.к. true всегда true!
А вот зачем Reset(file_l) я не понимаю! Это же откроет файл для чтения. Но файл уже открыт, поэтому должна быть ошибка, но и её нет, т.к. цикл бесконечен и до выполнения Reset не дойдет.
A файл ты постоянно не открываешь, а только пишешь в него. Грамматика кода хромает.
Вот как должно выглядеть:
Код

var f: text;
g: boolean;
begin
assignfile(f,'c:\i.txt');
rewrite(f);
while g do
 writeln(f,'text');
closefile(f);
end.

В результате пока переменная g = true в файл добавляется 'text', а если ты сделаешь g := false то цикл закончится.

Это сообщение отредактировал(а) SoWa - 8.10.2005, 19:50


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Zero
Дата 8.10.2005, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



IamDreamer тут какая то бессмыслица написана, скажи что хочешь сделать этим:
Цитата(IamDreamer @ 8.10.2005, 19:38)
AssignFile(file_1,'c:\78.txt');
Rewrite(file_1);
while true do
  begin
    writeln(file_1,'text');
  end;


PM MAIL ICQ   Вверх
Voyager
Дата 8.10.2005, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 2
Всего: 18



Забить место на винте наверно smile
PM   Вверх
FRAGNATIC
Дата 8.10.2005, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



ну тогда уж лучше в цикле не по одной строке записывать а сразу копировать всё содержмое файла и опять записывать его и так по наростающей выдет куджа больше и быстрее или лучше не текстовый файла а так любой ехе на харде =)
PM MAIL   Вверх
SoWa
Дата 9.10.2005, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



Домысливаем, ребята. Я разве не рабочий код привел. Ему надо, пусть использует.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Dimannn
Дата 9.10.2005, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 14.4.2005
Где: Владимир

Репутация: нет
Всего: 1



Если забить место, то лучше виндовским способом сразу гигобайтный файл создать. И быстро, и без кряхтения.


--------------------
Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут?
Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 9.10.2005, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Хммм... Если все-таки по-старинке делать, то вроде вылезет ошибочка записи в файл, когда все место израсходуется...
Отсюда мораль:
Код

var f: text;
g: boolean;
begin
assignfile(f,'c:\i.txt');
rewrite(f);
g:=true;
while g do
 try
  writeln(f,'text');
 except
  g:=false;
 end;
closefile(f);
end.

И переменную использовали по логике, и цикл завершился, и файл закрылся...


PM   Вверх
Dimannn
Дата 10.10.2005, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 14.4.2005
Где: Владимир

Репутация: нет
Всего: 1



Цитата(lonely @ 9.10.2005, 21:05)
когда все место израсходуется


По моему в фате максимальный размер файла не больше 2-х гегов?


--------------------
Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут?
Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru
PM MAIL ICQ   Вверх
Marriage
Дата 10.10.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



Dimannn
4096 Мегабайт максимум ..., вродебы ...


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
_hunter
Дата 10.10.2005, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98





--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Dimannn
Дата 11.10.2005, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 14.4.2005
Где: Владимир

Репутация: нет
Всего: 1



Цитата(Marriage @ 10.10.2005, 18:08)
4096 Мегабайт максимум ..., вродебы ...


Не суть, главное весь диск не забьёшь


--------------------
Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут?
Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.