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

Вниз

Записать в файл сразу, аналог flush pascal   Найти похожие ветки 

 
AV ©   (2012-02-15 10:55) [0]

есть вероятность падения приложения
есть задача свести потерю лога к минимуму
имею
FFSLogAction := TFileStream.Create(

 FFSLogAction.Position := FFSLogAction.Size;
 FFSLogAction.WriteBuffer(sAction[1], Length(sAction));
 FlushFileBuffers(FFSLogAction.Handle);

правильно?


 
Ega23 ©   (2012-02-15 11:20) [1]


>  FFSLogAction.WriteBuffer(sAction[1], Length(sAction));

FFSLogAction.WriteBuffer(sAction[1], Length(sAction)* SizeOf(Char));
Если я правильно понял.


 
AV ©   (2012-02-15 11:24) [2]


> FlushFileBuffers

не совсем, мне именно сброс буферов нужен.
т.е. попросить ОС записать сразу,
обычно, все что хочет средний человек, уже реализовано
т.е. ожидая найти FFSLogAction. Flush был расстроен :)

отсюда,
применим ли вариант
FlushFileBuffers(FFSLogAction.Handle);


 
CRLF   (2012-02-15 12:01) [3]

А может стоит CreateFile с FILE_FLAG_WRITE_THROUGH, а затем TFileStream.Create(Handle)?


 
AV ©   (2012-02-16 11:21) [4]

Ладно. В принципе это работает.

тогда еще вопрос
как писать в файл так, что бы все могли читать, но не могли писать?
если fmCreate  - то ему кажется все равно, что я еще понаписал, он не дает и читать тоже.

Если изголиться так
 if not(FileExists(s)) then
   FfsLog := TFileStream.Create(s, fmCreate or fmShareDenyWrite);
 FfsLog.Free;
 FfsLog := TFileStream.Create(s, fmOpenWrite or fmShareDenyWrite);
то нормально,
но плохо смотрится :)
Как бы хорошо сделать?


 
Anatoly Podgoretsky ©   (2012-02-16 11:27) [5]

> AV  (16.02.2012 11:21:04)  [4]

Убери права на запись в файл



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

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

Наверх




Память: 0.48 MB
Время: 0.258 c
2-1337169674
Дмитрий Белькевич
2012-05-16 16:01
2013.03.22
автоинкрементное поле в TClientDataSet


15-1342038603
Юрий
2012-07-12 00:30
2013.03.22
С днем рождения ! 12 июля 2012 четверг


15-1346949003
Опять я
2012-09-06 20:30
2013.03.22
Вопрос по Яндекс-почте.


15-1340346931
AV
2012-06-22 10:35
2013.03.22
Похоже что-то с машинкой.. Все так медленно с утра


15-1353946630
Разведка
2012-11-26 20:17
2013.03.22
Кто знает как использовать DCPCrypt библиотеку?