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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закрытие файла 
:(
    Опции темы
Гость_Lamer
  Дата 17.9.2004, 09:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Проблема!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1 Прохожу по всему диску ищу файлы с расшерением *.TXT
2 Допустим нашел
3 Вызываю процедуру просмотра файла
4 Ищу заданное слово в этом файле
5 Допустим нашел и сразуже CloseFile(f); Exit;

Файлов с расшерением *.TXT содержащих заданное слово может быть много

Если идти по F7 то все прекрасно работает

запуск по F9 выдает ошибку File Access denied

Я так понимаю что при трассировке файл успевает закрываться а при прогоне по F9 нет

Как можно дождаться закрытия файла
sample.gif


  Вверх
Guest
Дата 17.9.2004, 10:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код в студию, и где в коде ошибка вылетает?
  Вверх
Гость_Lamer
Дата 17.9.2004, 11:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











begin
{I-}
AssignFile(F, Puti);
Reset(F); // вот здесь вылетает ошибка

{I+}
While not eof(f) do
begin
Readln(F, S);
res:=pos(UpperCase(Trim(Form1.Edit2.Text)),UpperCase(Trim(S)));
if res <> 0 then
begin
Form1.ListBox2.Items.Add(Puti);
CloseFile(F);
Puti:='';
exit;
end;
end;
CloseFile(F);
end;

Если идти по F7 то все работает нормально
  Вверх
RA
Дата 17.9.2004, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

Репутация: 14
Всего: 115



Код
{$i-}
Reset(F);
{$i+}

PM   Вверх
lotas
Дата 17.9.2004, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Все равно не работает
PM MAIL   Вверх
RA
Дата 17.9.2004, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

Репутация: 14
Всего: 115



Это я в код невчитывался, а сразу посмотрел на место где якобы еррор вылетает.

Сейчас посмотрел код, и скажу тебе одно: такой код не будет работать
если F это File, F должен быть F : textFile; + непомешалобы после
Reset(F); вставить
if IOResult <> 0 then Exit;

Это сообщение отредактировал(а) RAdmin - 17.9.2004, 15:20
PM   Вверх
Girder
Дата 17.9.2004, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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

Репутация: 31
Всего: 155



1) var f:TextFile;
2) Puti:=FilePath+FileName (т.е C:\Lotas\Readme.txt)
3) {I-} и {I+} - удаляеш
Код
procedure TForm1.Button1Click(Sender: TObject);
var f:TextFile;
   Puti,S:String;
   F_O:Boolean;
begin
Puti:='C:\Readme.txt';
f_O:=false;
try
 AssignFile(F,Puti);
 try
  Reset(f);
  f_O:=true;
 except
 end;
 if f_O then
  begin
   Readln(f,s);
   Caption:=s;
  end;
except
end;
if f_O then CloseFile(f);
end;
При дизайне - ошибки будут вылетать, но при запуске проги не из под Delphi - сообщение об ошибки не увидеш.

Конечно, ИМХО, лудше использовать fileopen(ft:=Fileopen(Puti,fmOpenRead or fmShareDenyNone);

Удачи.

Это сообщение отредактировал(а) Girder - 17.9.2004, 15:24


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Pakshin A. S.
Дата 17.9.2004, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если бы я писал, то так:
Код

begin
 {Поиск файла}
 {если найден, то дулаем это}
 AssignFile(F, Puti);
 Reset(F); // вот здесь вылетает ошибка
 res:=false;
 While (not eof(f)) and (not res)  do
  begin
   Readln(F, S);
   if pos(UpperCase(Trim(Form1.Edit2.Text)),UpperCase(Trim(S))) <> 0
    then
     begin
      Form1.ListBox2.Items.Add(Puti);
      res:=true;
     exit;
  end;
 CloseFile(F);
 {...}
end;

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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