Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Delphi в конференции ru.delphi


Re: Отладка

From: "Alexander B. Bokovikov"

On Mon, 18 Jul 2005 06:59:01 +0000 (UTC), "Max Rusov"
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"

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)





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"

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"

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)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты