Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Господа подскажите плз как узнать открыт ли файл?


JTAG ©   (2006-11-01 12:29:00) 

Господа подскажите плз как узнать открыт ли файл?


Percent   (2006-11-01 13:59:00) [1]

Надо отдельный поток делать. По-любому.

Или еще, как вариант, далеко не самый лучший, поставить внутри цикла:

Application.ProcessMessages;

И в условии цикла, вместо (2 > 1):

not Application.Terminated


JTAG   (2006-11-01 13:50:00) [2]

Это у меня основной цикл программы он все время крутится,
может внутри этого бесконеного цикла нужно какой нибудь оператор выхода по нажатию "Х" поставить?


Anatoly Podgoretsky   (2006-11-01 13:37:00) [3]

Вот в этой строчке и узнаешь   writeln(outfile, systemtime);


Percent   (2006-11-01 13:35:00) [4]

[7] JTAG   (01.11.06 13:28)

Этот цикл у тебя где крутится?


JTAG   (2006-11-01 13:28:00) [5]

while 2>1 do
  begin
  receivebyte:=readsymbol(1);
 
                   if a=1 then begin
            a:=0;
            a1:=readsymbol(1)-48;
            a2:=readsymbol(1)-48;
            a3:=readsymbol(1)-48;
            a4:=readsymbol(1)-48;
            a5:=readsymbol(1)-48;
value:=a1*10000+a2*1000+a3*100+a4*10+a5;
   try
systemtime:= FormatDateTime('dd.mm.yyyy hh:nn:ss', Now);
  AssignFile(outfile,filename);
  Append(outfile);
  writeln(outfile, systemtime);
  writeln(outfile, level);

  closeFile(outfile);
  except
  closeFile(outfile);
  form1.VaCom.Close;
  exit;
  end;
            end;
//   form1.Memo1.Lines.Append(' receivebyte='+inttostr(receivebyte)+'  ');

  end


Percent   (2006-11-01 13:10:00) [6]

Я в цикле написал

Цикл увидеть можно?
Какие условия прерывания цикла?
Как обрабатываются сообщения Windows?


Stanislav   (2006-11-01 13:07:00) [7]

JTAG   (01.11.06 12:39) [3]
Скорее это работает дополнительный поток, который общаятся с com портом.


Anatoly Podgoretsky   (2006-11-01 12:57:00) [8]

> JTAG  (01.11.2006 12:39:03)  [3]

И почему ты решил, что это из-за незакрытого файла?


JTAG   (2006-11-01 12:39:00) [9]

Моей программой,
У меня программа принимает данные через ком порт и запаисывает их в файл. принимает так, пришли данные открыл файл для добавления  потом закрыл и опять жду в цикле. Но когда пытаюсь закрыть программу    нажав на "Х"
то виндовс пишит что программа не отвечает и после нескольких нажатий на "Х" все таки закрывается , но вылезет окно выбрано завершение не отвечающей программы , послать собщении в микросовт или нет.
Как корректно завершить программу.
Я в цикле написал исключительную ситуаия
try
открыть файл для записи и записать
закрыть файл
exception
exit;
end;
теперь хочу перед exit сделать проверку открыт ли файл и если да , то закрыть его.


Still Swamp   (2006-11-01 12:33:00) [10]

Я бы попытался его открыть его с полными правами, после разбирал бы полученную ошибку.


Desdechado   (2006-11-01 12:31:00) [11]

открыт кем? твоей или посторонней программой?


Наверх

Титульная страница Поиск, карта сайта Написать письмо