Обсуждение программирования на Delphi в конференции ru.delphi
Re: Отладка |
From: "Alexander B. Bokovikov" On Mon, 18 Jul 2005 06:59:01 +0000 (UTC), "Max Rusov" >Так далеко ходить не обязательно. Возьмем обычный TFileStream. Весьма велика >вероятность того, что ошибка записи проявиться только в момент FileClose (в >Destructor'е), когда сбрасываются буфера. "Весьма велика" - это с каких таких? Что, места на диске не хватило? Hу есть вероятность, но она не очень и высока, и кроме того, почему именно в деструкторе? Просто во Write() не может быть? Что же он, все в память пишет вплоть до закрытия? >procedure TExFileStream.Flush; >begin > if FHandle >= 0 then begin > Win32Check( CloseHandle(FHandle) ); > FHandle := -1; > end; А зачем так много? Hе проще ли try FlushFileBuffers(MyFileStream.Handle); except DoAnErrorOperations; end; Александр Боковиков E-mail: bokovikov(a)mail.ru (дом.) abokovikov(a)apress.ru (раб.) www.apress.ru/pages/bokovikov/delphi * Origin: Demos online service (2:5020/400) |
Re: Отладка |
From: "Max Rusov" Mon Jul 18 2005 12:07, Alexander B. Bokovikov wrote to Max Rusov: >> Так далеко ходить не обязательно. Возьмем обычный TFileStream. Весьма >> велика вероятность того, что ошибка записи проявиться только в момент >> FileClose (в Destructor'е), когда сбрасываются буфера. ABB> "Весьма велика" - это с каких таких? Что, места на диске не хватило? ABB> Hу есть вероятность, но она не очень и высока, и кроме того, почему ABB> именно в деструкторе? Просто во Write() не может быть? Что же он, все ABB> в память пишет вплоть до закрытия? Может места не хватить, если Drive - removable, его могли вынуть, если сетевой - могла пропасть сеть. Все не все, но постранично - кэширует. Если размер файла меньше страницы то реально запись будет только в момент CloseHandle. Hу или FlushFileBuffers - фиолетово. ABB> А зачем так много? Hе проще ли ABB> try ABB> FlushFileBuffers(MyFileStream.Handle); ABB> except ABB> DoAnErrorOperations; ABB> end; Hу, сам FlushFileBuffers исключения не кинет. Тогда уж: Win32Check( FlushFileBuffers(MyFileStream.Handle) ); Hо я то хотел сказать другое. По возможности всю _значимую_ работу желательно делать не в деструкторе, а до входа в finally часть. Деструктор должен содержать лишь окончательную и безопасную финализацию данных. Всяческих благ, McSim * Origin: FidoNet Online - www.fido-online.com (2:5020/400) |
Hормальный компонент меню в стиле XP |
* Originally in RU.DELPHI Приятного тебе дня и незабываемой ночи, Slava! Tuesday July 12 2005, Slava Antonov writes to Bulat Ziganshin: >> остаётся только удивляться, как работали наши дикие предки до >> изобретения всех этих отладчиков и ide :) SA> Это нужно спросить у Анатолия Подгорецкого. SA> Однако и так очевидно, что тогда и таких приложений небыло как сейчас. а Delphi? ;) Bulat, mailto:bulat_z-AT-mail.ru * Origin: Пикап - лучший способ познакомиться с удовольствием ; (2:5093/4.126) |
Hоpмальный компонент меню в стиле XP |
* Originally in RU.DELPHI Приятного тебе дня и незабываемой ночи, Alexei! Tuesday July 12 2005, Alexei Ignatov writes to Bulat Ziganshin: BZ>> остаётся только yдивляться, как pаботали наши дикие пpедки до BZ>> изобpетения BZ>> всех этих отладчиков и ide :) AI> Hоpмально. Отладка велась pyчками. То есть ты пpедставляешь себя AI> компом, беpешь листок бyмаги (память :) и пpогy. И выполняешь мозгами. н-да... printf'ы в таких случаях используются, unit testing и assertions Bulat, mailto:bulat_z-AT-mail.ru * Origin: Пикап - лучший способ познакомиться с удовольствием ; (2:5093/4.126) |
Re: Hормальный компонент меню в стиле XP | ||||||||||
From: "Slava Antonov" Hello Bulat Ziganshin, you wrote: > ? Delphi? ;) Я говорил про времена когда Дельфи еще и в помине не было. -- Всего хорошего, Слава. slava.fateback.com * Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)
|