Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.046 c
15-1162528208
BorisMor
2006-11-03 07:30
2006.11.19
трабл в Turbo Delphi


15-1162029354
Petr V.Abramov
2006-10-28 13:55
2006.11.19
Изъятую у браконьеров черную икру будут уничтожать


2-1162267319
D@Nger
2006-10-31 07:01
2006.11.19
RxDBLookupcomboBox


15-1162457313
dr Gonzo
2006-11-02 11:48
2006.11.19
Нужен ли софтверной фирме открытый форум?


1-1160114258
DVM
2006-10-06 09:57
2006.11.19
Фреймы самопроизвольно превращаются в формы!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский