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

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



Память: 0.47 MB
Время: 0.018 c
3-16146
Yamaha
2004-01-15 09:24
2004.02.06
Вставка записей в TDBF


1-16478
Sphinx
2004-01-26 12:04
2004.02.06
Ресурсы в dll


7-16779
Borys
2003-11-21 16:16
2004.02.06
CreateFileMapping


4-16819
Talla2k
2003-11-27 14:01
2004.02.06
Dll и сообщение


14-16697
GrayFace
2004-01-14 21:03
2004.02.06
Как сделать так, чтобы прога не убивалась при завершении сеанса?




   Наверх