Форум: "WinAPI";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Внизкак узнать открыт файл или нет? Найти похожие ветки
← →
ANB © (2005-09-23 17:05) [40]
> Или например, при запуске проги надо убедиться, что это
> первый ее екземпляр.
- это делается намного проще. А вот конкретный пример из реального проекта :
Есть консольная прога (текстовый режим, никаких окон), она время от времени отвечает на звонки по модему и складывает ответ в файл. Другая прога должна прочитать этот файл только, когда он не занят (в него не пишут). Повторное чтение неизмененного файла уже обработано и некритично. Вот таким способом и сделано - каждая из прог открывает файл в монопольном режиме и если не получается - ждет, пока получится. Хотя я бы сам, имхо, сделал бы по другому, но это самый тупорылый вариант, с учетом того, что из управляещей проги нет доступа к WinAPI.
← →
Мексиканец © (2005-09-24 00:27) [41]Не пойму чем не нравится такая конструкция?
hFile:= CreateFile();
if hFile = -1 then
case GetLastError() of
...
end;
Если можно объясните? Тем более что можно точно узнать причину по которой файл открыть не удалось. У меня, где-то была таблица значения возвращаемых значений, будет время, найду и кину сюда.
← →
Мексиканец © (2005-09-24 00:47) [42]umbra © (23.09.05 14:43) [31]
>ну, к примеру, есть две проги, одна пишет в файл, другая из него читает.
>запускаются автоматически, интервалы между запусками изменяющиеся. А
>читать надо только после того, как все записано
В виндовс каждая софтина для которой важно иметь монопольный доступ к файлу, должна выставить соответствующие атрибуты, тогда другая софтина просто не сможет прочитать файл пока та софтина не закончит с ним работу и не освободит его. Все просто. Не думаю что здесь есть почва для творчества.
>Или например, при запуске проги надо убедиться, что это первый ее
>екземпляр.
ИМХО строить решение данной задачи на файле, не стоит.
← →
Fay © (2005-09-24 02:44) [43]2 ANB © (23.09.05 17:05) [40]
>> с учетом того, что из управляещей проги нет доступа к WinAPI
Это как?!
Страницы: 1 2 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.016 c