Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

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

 
JTAG   (2006-11-01 12:29) [0]

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


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

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


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

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


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

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


 
Anatoly Podgoretsky ©   (2006-11-01 12:57) [4]

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

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


 
Stanislav ©   (2006-11-01 13:07) [5]

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


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

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

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


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

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:35) [8]

[7] JTAG   (01.11.06 13:28)

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


 
Anatoly Podgoretsky ©   (2006-11-01 13:37) [9]

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


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

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


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

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

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

Application.ProcessMessages;

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

not Application.Terminated



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
15-1162141580
foofuu
2006-10-29 20:06
2006.11.19
Меню в TheBat!


2-1162307017
Megabyte
2006-10-31 18:03
2006.11.19
После формирования отчета в Excel висит процесс


15-1161954526
GRAND25
2006-10-27 17:08
2006.11.19
1С:Несуразности


15-1162221542
Lebedev
2006-10-30 18:19
2006.11.19
MediaPlayer не приигрывает avi видео-ролик цифрового фотика.


2-1161955662
Stanislav
2006-10-27 17:27
2006.11.19
Непонятная база