Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.033 c
2-1162248774
funky
2006-10-31 01:52
2006.11.19
Наложение картинки на картинку


15-1162547532
Stanislav1
2006-11-03 12:52
2006.11.19
WinAPI программист


15-1162310042
Cyrax
2006-10-31 18:54
2006.11.19
Кодинг COM-порта на Win32API


15-1162332094
_Lost
2006-11-01 01:01
2006.11.19
Остаться в живых


1-1160046544
WebSqlNeederr
2006-10-05 15:09
2006.11.19
Как обрабатывать текст в Exel?




   Наверх