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

Вниз

TFileStream   Найти похожие ветки 

 
Akni ©   (2004-01-26 14:02) [0]

Добрый день всем.

Создаю файл с пом. след. кода:
var fFileName: String;
fLogFile: TFileStream;
...
fLogFile:=TFileStream.Create(fFileName,fmCreate or fmShareDenyNone) //новый файл

или
fLogFile:=TFileStream.Create(fFileName,fmOpenReadWrite or fmShareDenyNone); //сущест. файл
Записываю в него след. образом:
var TempStr: string;
...
fLogFile.Write(TempStr[1],length(TempStr));

согласно справке, параметр fmShareDenyNone разрешает другим приложениям обращаться к этому файлу как для чтения, так и для записи.

Пытаюсь открыть этот файл через Editor, на что получаю сообщение, что файл занят другим процессом.

При попытке создания файла с опцией fmShareDenyWrite - такая же история.

Как создать файл с пом. TFileStream, чтобы он был доступен другим приложениям хотя бы для чтения?


 
YuRock ©   (2004-01-26 14:13) [1]

Если я не ошибаюсь,

fmShareDenyNone означает, что другие приложения (другие коннекшкны к файлу) не могут ни читать, ни писать в файл (запрет на все);
fmShareDenyWrite - запрет на запись;
fmShareDenyRead - запрет на чтение;

Попробуйте этот параметр "забить нулем".


 
Hooch ©   (2004-01-26 14:19) [2]

почему or ? тип доступа это 3 параметр в конструкторе, help погляди


 
Anatoly Podgoretsky ©   (2004-01-26 14:22) [3]

У тебя все правильно, но другие тоже должны открывать в этом режиме.


 
icWasya ©   (2004-01-26 14:23) [4]

>YuRock © (26.01.04 14:13) [1]
>Если я не ошибаюсь,
ошибаешься, fmShareDenyNone означает как раз, что другие приложения могут читать и писать, но только те, которые открывают файл тоже в режиме fmShareDenyNone. Editor открывает файл в монопольном режиме, по этому и происходит ошибка


 
YuRock ©   (2004-01-26 14:27) [5]

Да, извините, я солгал.


 
Akni ©   (2004-01-26 14:32) [6]

ну тогда совсем глупый вопрос: как из другого приложения (Editor, Word) указать режим доступа (если это вообще возможно)?


 
panov ©   (2004-01-26 14:41) [7]

>Akni © (26.01.04 14:32) [6]

ну тогда совсем глупый вопрос: как из другого приложения (Editor, Word) указать режим доступа (если это вообще возможно)?

В чужом приложении - невозможно.


 
Akni ©   (2004-01-26 18:21) [8]

открываю файл в одном приложении так, как описано в первом посте; открываю из другого своего приложения этот же файл в таком режиме:
fLogFile:=TFileStream.Create(fFileName,fmOpenRead or fmShareDenyNone);
все равно говорит, что не может открыть, т.к. файл занят другим приложением.
комбинация режимов открытия fmShareDenyWrite и fmShareDenyRead (в одном приложении производится только запись, в другом - только чтение) тоже результатов не дает.

Что я опять делаю не так?



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
4-16827
Reanimator
2003-11-30 23:28
2004.02.06
Как по хендлу окна получить путь к екзешнику


1-16376
Сергей В.
2004-01-22 20:47
2004.02.06
Передача длинных строк PChar в dll.


8-16517
Alexey123
2003-10-03 19:08
2004.02.06
Вывод на печать графического объекта


1-16407
Prankster
2004-01-20 21:47
2004.02.06
FindFirst,FindNext


3-16052
kvit
2004-01-12 16:04
2004.02.06
проблеммы с trigger ом