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

Вниз

имеет ли смысл задержка?   Найти похожие ветки 

 
brother ©   (2008-05-29 09:34) [0]

на onClose:
Memo1.Lines.SaveToFile(extractfilepath(Application.ExeName)+"auto_copy_ftp_log.txt");
sleep(500);

задумался...


 
Palladin ©   (2008-05-29 09:35) [1]

интересно, а о чем ты думал, когда писал это?


 
brother ©   (2008-05-29 09:38) [2]

думал о скорости записи на винт при интенсивной нагрузке онного...


 
Palladin ©   (2008-05-29 09:40) [3]

а как соотносится скорость записи на винт и ввод потока в спячку на пол секунды? а почему на пол секунды, а не на секунду или на час?


 
Thrasher ©   (2008-05-29 09:46) [4]

Нет, не имеет. Если боишься, что данные не запишутся, то ставь обработчик на OnCloseQuery:

CanClose:=false;
try
Memo1.Lines.SaveToFile(....);
except
ShowMessage("Ошибка при записи лога! ");
CanClose:=True;
end;
CanClose:=True;


 
Palladin ©   (2008-05-29 09:48) [5]


> Thrasher ©   (29.05.08 09:46) [4]

а с какой целью такая свистопляска с безсмысленными назначениями CanClose значений если в конце концов оно все равно будет True ?


 
clickmaker ©   (2008-05-29 09:48) [6]

> Если боишься, что данные не запишутся

try
 Memo1.Lines.SaveToFile(extractfilepath(Application.ExeName)+"auto_copy_ftp_log.txt");
 Memo1.Lines.SaveToFile(extractfilepath(Application.ExeName)+"auto_copy_ftp_log.txt");
 Memo1.Lines.SaveToFile(extractfilepath(Application.ExeName)+"auto_copy_ftp_log.txt");
except
 Memo1.Lines.SaveToFile(extractfilepath(Application.ExeName)+"auto_copy_ftp_log.txt");
end;

чтоб наверняка ))


 
brother ©   (2008-05-29 09:50) [7]

система пишет файл гигов 20... в это время моя прга пишет лог ПРИ ЗАКРЫТИИ... Спрашиваю... будет ли записан файл?


 
ANB   (2008-05-29 09:52) [8]


> система пишет файл гигов 20... в это время моя прга пишет
> лог ПРИ ЗАКРЫТИИ... Спрашиваю... будет ли записан файл?

Будет. SaveToFile - неасинхронный метод. Если лог здоровый - то программа просто будет долго завершаться и всех делов.


 
Palladin ©   (2008-05-29 09:58) [9]


> будет ли записан файл?

Неа, не будет, если на винте осталось только 15Гб. Твоему логу тупо нехватит места. Или потому, что ты где-то напортачил с данными и получил AV. Или потому, что пользователь снял, к чертям собачьим, задачу. Или reset нажал, к тем же чертям.

А хранить лог в памяти приложения и делать дамп только при событии OnClose какой то формы (или чего другого) это более чем странно.


 
ANB   (2008-05-29 10:03) [10]


> Неа, не будет, если на винте осталось только 15Гб. Твоему
> логу тупо нехватит места. Или потому, что ты где-то напортачил
> с данными и получил AV. Или потому, что пользователь снял,
>  к чертям собачьим, задачу. Или reset нажал, к тем же чертям.
>  

Тады и приложение не закроется.

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


 
Palladin ©   (2008-05-29 10:04) [11]


> Но писать лог лучше сразу в файл.

об том и речь...


 
brother ©   (2008-05-29 10:20) [12]

по идее место позволяет, то прога не закроется пока не запишет (в моем случае)... тогда sleep не нужен конечно )


 
TForumHelp ©   (2008-05-29 11:10) [13]


> задумался...

смеялся... :)

попробуй построчно записывать, когда запишешь последнюю, сделай переменную какую-нибудь = True.


var
 i: Integer;
 done: Boolean;

begin
 i := -1;
 done := False;
 While not done do begin
   Application.ProcessMessagess;
   Inc(i);
   //записывай в файл строку Memo1.Lines[i]
 End;
end;


в событии OnCloseQuery:

begin
 CanClose := done;
 If not done then ShowMessage("Пишется строка " + IntToStr(i) + "! Подождите...");


если так переживаешь! =)


 
Kolan ©   (2008-05-29 15:24) [14]

> чтоб наверняка ))

Забыл «контрольку» :)
I := 0;
while (I <= 9) and (not FileExists(extractfilepath(Application.ExeName)+"auto_copy_ftp_log.txt")) do
 Memo1.Lines.SaveToFile(extractfilepath(Application.ExeName)+"auto_copy_ftp_log.txt");


 
Stas ©   (2008-05-29 17:43) [15]

brother ©   (29.05.08 09:34)  
>имеет ли смысл задержка?
Если эта задержка у девшки... )))
Может лучше лог писать по ходу появления событий, на которые добавляются строки в MEMO1 ?
Т.к. при аварийном закрытии программы потеряете лог!



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

Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.04 c
2-1211620887
Magos
2008-05-24 13:21
2008.06.22
Изменение расстояния между символами в Label.


2-1211800811
Fr1K
2008-05-26 15:20
2008.06.22
Поиск в файле


2-1212010220
AXL
2008-05-29 01:30
2008.06.22
как извлечь из opendialog только путь к файлу без его имени


15-1210230201
koha
2008-05-08 11:03
2008.06.22
Можно ли найти работу программистом без вышки?


2-1211786887
Сергей
2008-05-26 11:28
2008.06.22
Подскажите, пожалуйста как передать данные из формы в форму.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский