Вниз
Скачать: 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.017 c
1-16263
denis24
2004-01-24 12:27
2004.02.06
listbox


1-16325
NailMan
2004-01-28 13:11
2004.02.06
Потоки: запутался с обработчиком событий


1-16406
Yurij
2004-01-22 17:42
2004.02.06
MapiMail


11-16208
Danil
2003-05-21 01:13
2004.02.06
Как изобразить на кнопке смайлик?


4-16829
Simon
2003-11-27 22:20
2004.02.06
WinAPI




   Наверх