Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Записать в файл сразу, аналог 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.059 c
15-1330461002
Юрий
2012-02-29 00:30
2013.03.22
С днем рождения ! 29 февраля 2012 среда


15-1349072562
NailMan
2012-10-01 10:22
2013.03.22
Что то не было давно весте с небесного фронта


15-1349179159
картман
2012-10-02 15:59
2013.03.22
частица "же"


15-1352739879
Куку
2012-11-12 21:04
2013.03.22
Combobox с разным наполнением для разных строк в cxGrid


2-1328617065
AV
2012-02-07 16:17
2013.03.22
TClientDataSet (TDataset) проапдейтить поле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский