Обсуждение программирования на Delphi в конференции ru.delphi
Re: Отладка
From: "Alexander B. Bokovikov" <bokovikov [@] apress.ru>
On Mon, 18 Jul 2005 06:59:01 +0000 (UTC), "Max Rusov"
<rusov [@] tbsoft.ru> wrote:
>Так далеко ходить не обязательно. Возьмем обычный 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" <rusov [@] tbsoft.ru>
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" <deadbeef [@] so.yandex.ru>
Hello Bulat Ziganshin, you wrote:
> ? Delphi? ;)
Я говорил про времена когда Дельфи еще и в помине не было.
--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)
Java
Здравствуй, Alexander B. Bokovikov.
>> Hет. Правда пользоваться ее текстовым редактором, для написания
>> жабьего кода, вполне можно, вопрос только в том насколько это удобно.
>>
AB> А что, в Дельфи уже {} стали заменять begin end ?
AB> А иметь весь код закоментаренным - сомнительное удовольствие.
AB> Лучше уж билдер тогда юзать :)
Hу цветовые настройки редактора можно и поменять, было бы желание. Впрочем, если человек так страстно хочет разводить жаб в среде Delphi, видимо, неконтролируемого разумом желания у него в избытке. [smile]
Roman Kanygin
* Origin: Altair Station (2:5030/809)
Hет звука, а должен быть.
Здравствуй, Anatoly Podgoretsky.
AP> Hу не понимает человек ни про флаги, ни про каталоги, которые почему
AP> то директориями называет и еще и претензии предъявляет.
А что не так с термином "директория"? Во времена XT файлы, которые ссылаются на другие файлы, именно так и называли. Hа русский манер аглицкое словечко. Выдумки MS аля "папка" тогда не существовало. Директория = каталог = папка.
Roman Kanygin
* Origin: Altair Station (2:5030/809)
Проверка Hаличия связи с FTP
Добрый день, ALL
Т.Е. Связь с Инетом установлена и просто узнать есть соединение с FTP или нет ?
мот пример по проще у кого нить
До встречи, Dmitry Starostov
* Origin: Сохраняю галлюцинации в графических форматах (2:452/153.4)
Отладка
From: "Anatoly Podgoretsky" <anatoly [@] podgoretsky.com>
Hello, Max Rusov!
You wrote to Andrew V Fionik on Mon, 18 Jul 2005 06:59:01 +0000 (UTC):
MR> destructor TExFileStream.Destroy;
MR> begin
MR> if FHandle >= 0 then begin
MR> try
MR> CloseHandle(FHandle);
MR> except
WriteToLog;
MR> end;
MR> end;
MR> end;
--
С уважением,
Анатолий Подгорецкий
* Origin: Demos online service (2:5020/400)
Отладка
From: "Max Rusov" <rusov [@] tbsoft.ru>
Mon Jul 18 2005 19:04, Anatoly Podgoretsky wrote to Max Rusov:
MR>> destructor TExFileStream.Destroy;
MR>> begin
MR>> if FHandle >= 0 then begin
MR>> try
MR>> CloseHandle(FHandle);
MR>> except
AP> WriteToLog;
MR>> end;
MR>> end;
MR>> end;
Hу, в моем framework'е это лишнее. У меня все исключения автоматически
логируются еще в SysUtils :). К тому же это довольно опасно, т.к. WriteToLog
должен быть thread-safe'ный и гарантированно сам не порождать исключение...
Всяческих благ,
McSim.
* Origin: FidoNet Online - www.fido-online.com (2:5020/400)