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

Вниз

Флёнов М.   Найти похожие ветки 

 
Marser ©   (2006-08-27 14:30) [240]

> WinwowsDirLabel.Caption := Format("%s", [PathArray]);

Вот здесь я почему-то плакалъ больше всего. Ошибки никакой, но бессмысленность убийственная :-)


 
Юрий Зотов ©   (2006-08-27 14:31) [241]

Sleep загружает систему...

Боже мой! Да человек, сказавший ТАКОЕ, вообще не имеет права писать никаких книг, где хоть раз встречается вызов функции WinAPI.

Ему их САМОМУ еще читать и читать надо.

Кошмар...


 
Marser ©   (2006-08-27 14:32) [242]

> ]);
>
> Вот здесь я почему-то плакалъ больше всего. Ошибки никакой,
> но бессмысленность убийственная :-)

Разве что он конвертацией таким образорм занимается.


 
Мефисто   (2006-08-27 14:43) [243]


> Marser ©   (27.08.06 14:32) [242]


А может это издание в соавторстве еще с одним автором? Помнится случайно в одной ветке данный автор всплыл по нестандартным приемам программирования :)


 
Marser ©   (2006-08-27 14:50) [244]

> [243] Мефисто   (27.08.06 14:43)

Ага, шобы выделяцца. В 242 я ступил, оно всё равно бессмысленно :-)


 
Ketmar ©   (2006-08-27 15:19) [245]

> [233] Loginov Dmitry ©   (27.08.06 12:07)
> // Ошибка никогда не возникает
авотфиг. теоретически -- может.

> [239] Anatoly Podgoretsky ©   (27.08.06 14:26)
Анатолий, я сначала хотел сделать такие же выдержки. потом понял, что во-первых, придётся цитировать всю книгу, во-вторых -- зачем народ пугать? %-)

> [241] Юрий Зотов ©   (27.08.06 14:31)
да. я долго медитировал над этой фразой. потом попытался найти источник, откуда это стырено. не нашел. видимо, ииновационное изобретение самого Ф.
Юрий, если б оно там было одно такое... %-)


 
Loginov Dmitry ©   (2006-08-27 16:04) [246]

> begin...end ©   (27.08.06 12:09) [234]
>
> Можно пояснить, где в приведённом коде производится инициализация
> указателей нулями?


ХМ.. А что, там даже этого не было?

Я подумал, что PChar = "" тоже самое что и PChar = nil


> Anatoly Podgoretsky ©   (27.08.06 14:21) [238]

> Первый код назвать правильным можно только по пьянке.
> Второй код получше, но тоже нельзя считать правильным, по
> крайней мере с точки оптимизации.
> Резюме - оба кода в помойку


Уважаемый Анатолий! Объясните пожалуйста, чем Вам конкретно не понравился первый и второй код? Лично я считаю и 1-й и 2-й способы абсолютно корректными с точки зрения защиты ресурсов.
Приведите свои "правильные" варианты.


> Anatoly Podgoretsky ©   (27.08.06 14:26) [239]
> Ой зачем ты это привел, теперь всю ночь кошмары будут мучать.
> Садист.


Так я же ничё плохого.. Просто мелкие замечания...


> Ketmar ©   (27.08.06 15:19) [245]

> авотфиг. теоретически -- может.


Теоретически может 2+2=5


 
default ©   (2006-08-27 17:13) [247]

Вы мне скажите только после всего этого: какое слово более ругательно- Архангельский или Фленов?


 
Юрий Зотов ©   (2006-08-27 17:21) [248]

> Loginov Dmitry ©   (27.08.06 16:04) [246]

Рискну ответить за Анатолия.

Вариант 1.
Fist := TList.Create;
Вы считаете, что ошибки в этой строке возникнуть не может. Она и правда почти невероятна, но все же не исключена. Например, на исходе динамическая память, или глючок в коде VCL. И тогда зависают ресурсы, занятые FStream.

Вариант 2.
В строке
FStream1.Free;
тоже может возникнуть ошибка. Она тоже почти невероятна, но тоже не исключена (например, из-за того же глючка в коде VCL). И тогда зависают ресурсы, занятые FStream2.

Поэтому абсолютно корректным нельзя назвать ни первый, ни второй вариант. Гарантию здесь может дать только вложенный try-finally.


 
Юрий Зотов ©   (2006-08-27 17:22) [249]

> default ©   (27.08.06 17:13) [247]

Безлично-обобщенное: "халтурщик".


 
Ketmar ©   (2006-08-27 17:36) [250]

> [246] Loginov Dmitry ©   (27.08.06 16:04)
а практически -- например, некорректная работа с указателями порушила хип. прости-прощай теория, здравствуй, исключение.


 
begin...end ©   (2006-08-27 17:39) [251]

> Loginov Dmitry ©   (27.08.06 16:04) [246]
> Я подумал, что PChar = "" тоже самое что и PChar = nil

Это не так. В указатель будет помещён адрес пустой строки, а не nil.


 
default ©   (2006-08-27 17:40) [252]

вопрос на засыпку:
procedure P;
begin
 P;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 try
   try
     P;
   finally
     ShowMessage("1");
     P;
   end;
 finally
   ShowMessage("2");
 end;
end;

появится-ли окошко с двойкой?


 
DevilDevil ©   (2006-08-27 19:28) [253]

> Marser ©   (27.08.06 14:17) [237]
> Мощно! Но где же DevilDevil? :-)


Marser, это - провокация. Пришлось взять, листать книгу...

> Loginov Dmitry ©   (27.08.06 10:59) [225]
1) искал, искал... чё то похожих строк не нашёл, тем более на 42 странице. В любом случае, не отрицаю, что некая доля истины в этой фразе присутствует; надо у него спросить. В любом случае - очередная придирка.

Мастера, напишите, в каких ситуациях следует использовать указанную выше конструкцию. Интересно.

2) Это вообще главная фишка! Это что, интересно получится, если к строке "C:\Windows" прибавить "\scanbisk.log" ? Цитирую Логинова Дмитрия [225]: "Что окажется в переменной Filedir - одному Фленову известно (а может и ему не это не известно)." Это, извините, только одному Дмитрию, похоже, не известно...

Следующее... GetWindowDirectory(windir, 255);
Вы все до сих пор наивно полагаете, что буфер надо обнулять? Мдя...
Все дружно пишем и радуемся жизни:

procedure TForm1.Button1Click(Sender: TObject);
var
 ARR : array[0..255] of char;
begin
 fillchar(ARR, 256, "D");
 GetWindowsDirectory(ARR, 255);
 Caption := ARR;
end;


> Нельзя было обойтись одним CloseFile и ELSE ?
Ну а это что? Не пустая придирка?

Ошибка в коде есть? - Нет.
По-моему, сей код - хороший стиль (+ более читабелен). Следующие строки означают "создать файл Filedir и больше не париться, есть он или нет":
if not FileExists(Filedir) then
begin

Rewrite(f);
CloseFile(f);
end;


Никита Культин подобные задачи решает следующим образом:
{$I-}
Append(f);
{$I+}
if IOResult <> 0
then Rewrite(f);


Ну и какой вариант по-твоему читабельнее? Кто больше заботится о читателе? Это та же история... кто то спросил, а знает ли Флёнов оператор case?
Нет, я конечно понимаю, что обсуждаем в данном случае мелочь... Да только вот тёска мой, похоже, не понимает... а вы все дружно подхватываете.

> WindowsDirLabel.Caption := Format("%s", [PathArray]);
А ты почему не приводишь остальные 5-10 строк?
По-моему, читабельнее способа не найти. это моё имхо.

Большинство примеров в алгоритмических книгах эфективнее писать на ассемблере... А вот пишут их почему-то на Си, псевдоязыке или Паскале... К чему бы это? Может к тому, что писатели о читателях заботятся... Хотя Вам, похоже, этого не понять; ДАЁШЬ НЕПОНЯТНЫЕ КНИГИ !!!
<-- ребят, ну чё здесь обсуждать то? ... ей богу...

5) Дмитрий, Вас же и процетирую: "Без комментариев..."

6) Этой темой не интересовался, не испытывал; сейчас испытывать лень.

> isasa ©   (27.08.06 11:29) [227]
Ерунда какая то! Хорошая книга всегда будет пользоваться популярностью. "Глючная"   "DirectX графика в проектах Delphi" Краснова была впервые выпущена в 2001 году тиражом вроде в 3000 экземпляров (стандарт). Потом ещё несколько раз дополнительно тиражировалась (тоже по 3000 экз), у меня выпуск 2005 года. В том, что книга Юрия будет интереснее и качественнее, вряд ли кто то станет сомневаться.

Юрий, все мои вопросы и предложения по поводу книги остаются в силе. Ну так?

Мастера! Всё, что Вы приводите - сплошные дешёвые придирки. Максимум, что Вы можете привести - это номера неработающих проектов... которых я не отвергал и отвергать не стану. Смысла в этом не будет. Дмитрий, пожалуйста, без обид! Юрий, подскажите, в каких(ой) из перечисленных книг посетители форума и все остальные смогут найти шире рассмотренные и более интересные темы, реализованные в книге "Delphi глазами Хакера"?

P.S. Чё то хотел сказать... сказал, похоже, раньше

С Уважением


 
Loginov Dmitry ©   (2006-08-27 19:59) [254]

> DevilDevil ©   (27.08.06 19:28) [253]

>1) искал, искал... чё то похожих строк не нашёл, тем более на 42 странице

Эти строчки на другой странице. Позже. Придирка обоснована - дезинформация. Причем вводят в заблуждение по функции Sleep() именно новичков.

2) Это вообще главная фишка!

Фифти-фифти, что Флёнов и сам не знал об этой фишке. Во второй половине книги он сам уже говорит, что буфер нужно обнулять.
Это фишка именно функции GetWindowDirectory() не факт, что и другие API-функции будут вставлять нуль в конце строки. Также не факт, что функция GetWindowDirectory() вставляет нуль в любой Винде.

На счет CloseFile() - это действительно придирка. Понимание кода лишний CloseFile() НУ НИКАК не улучшает.

> WindowsDirLabel.Caption := Format("%s", [PathArray]);
А ты почему не приводишь остальные 5-10 строк?
По-моему, читабельнее способа не найти. это моё имхо.


Ей богу, смешно. А код
WindowsDirLabel.Caption := PathArray

вы считаете менее читабельным?

DevilDevil, я считаю, что тебе рановато пока спорить со мной, а тем более с более компитентными форумчанами. Без обид!


 
default ©   (2006-08-27 20:12) [255]

может DevilDevil это Фленов?
не полениться писать в таком количестве строк и постов нелепые отмазы по поводу среднестатистичской книги по программированию...


 
Loginov Dmitry ©   (2006-08-27 20:14) [256]

> Юрий Зотов ©   (27.08.06 17:21) [248]
>
> Вариант 2.
> В строке
> FStream1.Free;
> тоже может возникнуть ошибка. Она тоже почти невероятна,
> но тоже не исключена (например, из-за того же глючка в
> коде VCL). И тогда зависают ресурсы, занятые FStream2.
>
> Поэтому абсолютно корректным нельзя назвать ни первый, ни
> второй вариант. Гарантию здесь может дать только вложенный
> try-finally.


>И тогда зависают ресурсы, занятые FStream2.

Ошибаетесь. Эти ресурсы будут освобождены не хуже, чем при вложенном try-finally. Ошибки, произошедшие в блоке finally не останавливают выполнение данного блока. А насчет вложенного try-finally - это некрасиво.
Неужели если я создаю 10 объектов, то мне нужно 10 вложенных try-finally?
Нет! Достаточно обнулить указатели до try.


> default ©   (27.08.06 17:40) [252]
> вопрос на засыпку:
...


Сам-то хоть ответ узнал? У меня IDE напрочь повисла вместе с самой программой. Минут 5 запускался один только диспетчер задач. Так что я не увидел даже сообщения "1".


 
Anatoly Podgoretsky ©   (2006-08-27 20:16) [257]

Дьявол в квадрате - ацкий сотона


 
Anatoly Podgoretsky ©   (2006-08-27 20:18) [258]

default ©   (27.08.06 17:13) [247]
Вы мне скажите только после всего этого: какое слово более ругательно- Архангельский или Фленов?

Первый публикуется давно и выпустил кучу макулатуры, чего с ним Флеонова сравнивать.


 
Мефисто   (2006-08-27 20:19) [259]


> Ошибки, произошедшие в блоке finally не останавливают выполнение
> данного блока.


А проверить? :)

 var
   A, B: TObject;
begin
 A := TObject.Create;
 B := TObject.Create;
 try

 finally
   A.Free;
   Raise Exception.Create("Error");
   B.Free;
   Caption := "Free?";
 end;


 
Ketmar ©   (2006-08-27 20:20) [260]

> [253] DevilDevil ©   (27.08.06 19:28)
1) в моём pdf -- присутствует. называется этот приём Ф. -- "наглая дезинформация без обоснований".
2) в принципе -- не обязательно обнулять. никто почти и не обнуляет. но чисто теоретически -- полезно. разбор "почему" оставлю как упражнение на логику и знание винды.
3) ошибка в Rewrite()/CloseFile() есть. после CloseFile() файл может быть удалён другим процессом. и что тогда откроет Append()? у Культина (не знаю, кто он %-) решено и корректней, и короче. и код читабельней да понятней. Ф., кажется, заботится не о читателе, а о количестве строк в книге. видимо, платят построчно.

насчёт "дешёвых придирок" -- я просто плакалъ. по-твоему, "некорректный и неработающий код" -- это "дешёвая придирка"? офигеть просто. тебе метлу выслать, или сам купишь? грязных дворов всё ещё много...
а названия книг уже приводились неоднократно. правда, там нет пояснений, как сделать "летающий пуск", "завершение работы Windows без ведома пользователя" (кстати, я уже не помню, а pdf убил -- Ф. там пытается привилегии получать? или так, "на халявку"?) или "уезжание окон за экран". впрочем, лично я (как, полагаю, и многие остальные на этом форуме) подобные темы серьёзными ну никак не считаю.

в книге тех же Т. и П. серьёзных тем -- навалом. я ней зачитываюсь как хорошим классическим детективом. Ф. же -- это "Гугнявый против Сопливого". никто не спорит, что подобная макулатура имеет спрос. вопрос в её практической ценности. и если псевдохудожественный мусор не так страшен, имо, то мусор типа "D. глазами Х." -- это уже прямая диверсия.


 
default ©   (2006-08-27 20:44) [261]

"Ошибки, произошедшие в блоке finally не останавливают выполнение данного блока."
"Вскоре напишу статейку по защите ресурсов, где постараюсь изложить возможные подводные камни." (c)  Loginov Dmitry
пожалуйста, Димочка, не пиши никаких статей или только в стол! заклинаю!
а то есть архангелищина есть фленовщина будет тогда и логинишна, думаю тебе этого не надо
Loginov Dmitry
"Сам-то хоть ответ узнал?"
конечно, "1" ты должен был увидеть


 
Юрий Зотов ©   (2006-08-27 20:56) [262]

> Loginov Dmitry ©   (27.08.06 20:14) [256]

> Ошибки, произошедшие в блоке finally не останавливают выполнение
> данного блока.

Дмитрий, спорить даже и не буду. Пусть нас рассудит вот эта программка:

procedure TForm1.FormCreate(Sender: TObject);
begin
 try
   Caption := "Dmitry Loginov is lamer";
 finally
   raise Exception.Create("");
   Caption := "Yuri Zotov is lamer";
 end
end;

На будущее - прежде, чем спорить (тем более, писать статьи!!!), вспомните, пожалуйста, что, по Вашим же словам, всего полтора года назад Вы были совсем зеленым новичком.

Неужели это Вам ни о чем не говорит?


 
Anatoly Podgoretsky ©   (2006-08-27 20:59) [263]

Подлый ламер Юрий на месте убил :-)


 
Ketmar ©   (2006-08-27 21:02) [264]

> [262] Юрий Зотов ©   (27.08.06 20:56)
так размножаются флёновы? %-))


 
Loginov Dmitry ©   (2006-08-27 21:05) [265]

procedure TForm1.FormCreate(Sender: TObject);
begin
try
  Caption := "Dmitry Loginov is lamer";
finally
  raise Exception.Create("");
  Caption := "Yuri Zotov is lamer";
end
end;

А я хитро поступил - убрал строку raise Exception.Create("") :))


 
Loginov Dmitry ©   (2006-08-27 21:08) [266]

> На будущее - прежде, чем спорить (тем более, писать статьи!
> !!), вспомните, пожалуйста, что, по Вашим же словам, всего
> полтора года назад Вы были совсем зеленым новичком.
>
> Неужели это Вам ни о чем не говорит?


Где - то я уже об этом слышал (все программисты со стажем <= 1.5 года - лаймеры, с которыми и разговаривать не очень-то хочется).
Уж не на vr-online.ru ли?


 
Ketmar ©   (2006-08-27 21:10) [267]

> [266] Loginov Dmitry ©   (27.08.06 21:08)
задело? а Юрий вовсе не авторитетом давил и не на скудоуме намекал. а всего лишь на недостаток банального опыта.


 
default ©   (2006-08-27 21:18) [268]

"DevilDevil, я считаю, что тебе рановато пока спорить со мной, а тем более с более компитентными форумчанами. Без обид!" опять тот же Логинов Дима, пост [254] внизу
и после этого он обижается на справедливую критику ЮЗ, пост [266]
то есть он считает уместным кого-то ставить на место кого он считает ниже себя по уровню знаний и умений, а если кто-то ставит его на месте кто выше его по тем же критериям - он обижается, какова же персона!


 
Loginov Dmitry ©   (2006-08-27 21:28) [269]

> default ©   (27.08.06 21:18) [268]

> то есть он считает уместным кого-то ставить на место кого
> он считает ниже себя по уровню знаний и умений, а если кто-
> то ставит его на месте кто выше его по тем же критериям
> - он обижается, какова же персона!


Я обижаюсь? Да вы что? С чего мне обижаться? Для меня уже вошло в норму узнавать истину по результатам своих же проколов. Так что Юрию спасиба! А за пост [256] простите. Ляпнул, не подумав. Просто привык доверять прочитанным источникам. Вот на чем я прокололся:

Архангельский А.Я. :


Блок try...finally позволяет защитить код, записанный в finally разделе, от исключений, которые в силу различных ошибок могут генерироваться операторами в разделе try. Операторы раздела finally будут выполняться независимо от того, было или не было сгенерировано исключение при выполнении операторов раздела try. Если где-то в разделе try произошла ошибка и сгенерировано исключение, то выполнение блока try прерывается и управление немедленно передается разделу finally. Даже если при выполнении операторов раздела finally случилась ошибка, операторы этого раздела все-таки выполняются до конца.

Обычно в раздел finally помещают операторы "зачистки", необходимые для того, чтобы "прибраться" в приложении: освободить динамически выделенную память, закрыть ненужные файлы, удалить временные файлы и т.д. Если не помещать такие операторы в защищенный раздел finally, то из-за прерывания выполнения вследствие возможных ошибок они могут оказаться не выполненными, что приведет к "утечке ресурсов".
В блок try...finally не включаются обработки исключений. При выполнении операторов раздела finally неизвестно, было или не было сгенерировано исключение (такие средства проверки, как функция ExceptAddr, этого не показывают). Для обработки исключений используются блоки try...except, которые никак не связаны с блоками try...finally. Впрочем, эти виды блоков могут использоваться совместно. Например:


К сожалению, другие авторы не противопоставляют этому заблуждению ничего, вот я и повелся на то, что было.


 
Anatoly Podgoretsky ©   (2006-08-27 21:42) [270]

Loginov Dmitry ©   (27.08.06 21:08) [266]
Где - то я уже об этом слышал (все программисты со стажем <= 1.5 года - лаймеры, с которыми и разговаривать не очень-то хочется).

Даже простой анализ данного ресурса не подверждает данной теории.
Если человек ламер, то это навечно.
Есть прекрасные примеры, когда человек с нуля проходит путь до хорошего программиста за два месяца, а есть такие которые за пять лет остались на прежнем начальном уровне, если  них он был.


 
Мефисто   (2006-08-27 21:49) [271]


> Архангельский А.Я. :


Ну сколько можно предупреждать? :)


 
Ketmar ©   (2006-08-27 21:57) [272]

> [269] Loginov Dmitry ©   (27.08.06 21:28)
уж сколько раз твердили миру -- не читайте перед обедом советских газет... одна фамилия "архангельский" уже должна была насторожить.

но я сильно подозреваю, что это просто опечатка. вставим после "операторов" слово "до" -- и получим вполне осмысленный текст. %-)
вывод: в технической литературе надо стараться не строить предложения так, чтобы выпадение двух буковок кардинально меняло смысл. пусть лучше предложение становится тогда совсем быссмысленным. кстати, и есть такое правило, на самом деле. но наши доморощенные авторы о нём не знают.

зыж а как он думал -- технические книги писать легко? %-)


 
vrem   (2006-08-27 22:04) [273]

Для технических текстов другое правило - если не знаешь значение термина - не обращай внимание, смысл текста сохраняется и без этого термина :)


 
Мефисто   (2006-08-27 22:15) [274]


> Ketmar ©   (27.08.06 21:57) [272]


Конечно легко.
Перевод типа. Справка на английском -> Promt (tm) - > Из него выходит падонковский албанский -> далее полученый албанский переводится на русский.

А то, что небольшое не соотвествие выходит, это читатель и сам выяснит во время практики (может быть)... :)


 
Юрий Зотов ©   (2006-08-27 22:24) [275]

> DevilDevil ©   (27.08.06 19:28) [253]

> 1) В любом случае - очередная придирка.

Cтр. 97, а не 42. После того, что там написано о Sleep, книгу можно дальше не читать. Почему - см. [241]. И это не придирка, а правда.

> в каких ситуациях следует использовать указанную выше
> конструкцию.


Ни в каких. Она заменяется одним словом - Sleep. Делает то же самое, систему вовсе не грузит, а еще не отжирает у нее лишний объект ядра (что данная конструкция и делает).

> Следующее... GetWindowDirectory(windir, 255);

Зачем так усложнять? Вот то же самое, но в 1 строку:
var
 S: ShortString;
begin
 S[0] := Char(GetWindowsDirectory(@S[1], 254));
end;

И всех дел. Но этот код так же плох, как и тот, который приведен в книжке. Сравните его с таким вариантом:
var
 S: string;
begin
 SetLength(S, MAX_PATH + 1);
 SetLength(S, GetWindowsDirectory(PChar(S), MAX_PATH))
end;

Если Вы знаете, где расположены локальные переменные, что стек надо экономить и какой размер имеет переменная S, то легко поймете, почему этот вариант ровно в 64 раза лучше. А если не знаете - то извините, но не надо спорить.

> По-моему, сей код - хороший стиль (+ более читабелен).
> Следующие строки означают "создать файл Filedir и больше не париться,
> есть он или нет":


"Сей код" содержит кучу совершенно лишних файловых операций (а файловые операции - штука довольно медленная). Поэтому сей стиль - это стиль новичка, которому надо не писать, а читать книжки. Вот код, который еще более прост и понятен, делает то же самое и не выполняет никаких лишних операций:
if FileExists(...) then
 Append(f)
else
 Rewrite(f);
WriteLn(f, ...);
CloseFile(f);


> WindowsDirLabel.Caption := Format("%s", [PathArray]);
> По-моему, читабельнее способа не найти. это моё имхо.


А мое имхо такое, что вот эта строка и намного читабельнее, и делает то же самое, и выполняется намного быстрее:
WindowsDirLabel.Caption := PathArray;
Снова видим стиль новичка. Format с шаблоном "%s"... это ж надо такое придумать... нормальному программеру такое даже спьяну в голову не придет.

Кстати, что касается информации о версии системы, то стоило бы знать, что в SysUtils есть уже готовые переменные, ее содержащие.

> писатели о читателях заботятся...
Ну, как писатель заботится о читателях, скармливая им дезинформацию и отвратительный код - это мы уже видели.

> Хотя Вам, похоже, этого не понять

Да где уж нам... мы же сразу мастерами родились, а новичками никогда и не были...  над книжками непонятными не мучались... где уж нам понять-то...

Вы уж извините, но скажу прямо - это как раз Вы в силу пока еще малых знаний просто не понимаете, какой же лажей Вас кормят.

> Юрий, все мои вопросы и предложения по поводу книги остаются
> в силе. Ну так?


А какие, собственно, у Вас были предложения? Чтобы я написал книгу? Хорошее предложение, ничего не скажешь. А конкретные предложения у Вас есть?

> Мастера! Всё, что Вы приводите - сплошные дешёвые
> придирки.


Вы действительно в этом уверены? Ну что ж, тогда книга действительно нашла своего читателя. И сделала из него именно того, кого и должна была сделать. Это уже второй зафиксированный случай. Наверное, не последний.

Не уверен, что Вы это воспримете, но на всякий случай (вдруг еще не все потеряно?) скажу - Вы даже не представляете, насколько Вы еще мало знаете и насколько ОГРОМНА разница между нами в понимании грамотного программирования, хорошего стиля и т.п. Хотите верьте, хотите нет - но те примеры, которые здесь приводились, не просто плохи - они УЖАСНЫ. Так что ни о каких "придирках" даже и речи быть не может.

> Юрий, подскажите, в каких(ой) из перечисленных книг посетители
> форума и все остальные смогут найти шире рассмотренные и более
> интересные темы, реализованные в книге "Delphi глазами Хакера"?


Что касается WinAPI - начните с Румянцева (выше я упоминал 2 его книги по Win32). После него и MSDN уже читать сможете, и к Рихтеру ("Windows для профессионалов") можно переходить, и к другим книгам тоже.

А что касатся Delphi - для начала рекомендую Тейксейру и Пачеко, потом - Конопку (хотя можно и наоборот, но посложнее будет). А потом и сами поймете, что Вам дальше нужно.


 
vuk ©   (2006-08-27 22:27) [276]

to Loginov Dmitry ©   (27.08.06 21:28) [269]:
>Просто привык доверять прочитанным источникам.
Не читайте всякие мурзилки. Читайте доки, они рулез.

If an exception is raised but not handled in the finally clause, that exception is
propagated out of the try...finally statement...

Умному достаточно. :o)


 
DevilDevil ©   (2006-08-27 22:29) [277]

> Anatoly Podgoretsky ©   (27.08.06 21:42) [270]
> Если человек ламер, то это навечно.

Анатолий, я - ламер?


 
ronyn ©   (2006-08-27 22:36) [278]


> Гарри Поттер ©   (26.08.06 07:50) [159]
> Книжку, имхо, назвать надо было "Дельфи и начинающий хакер",
>  если уж слово "хакер" обязательно.
>
> При прочтении ветки сложилось впечатление что ronyn это
> Фленов.

Ага. Мнение о своей книжке узнать хотел...


 
Ketmar ©   (2006-08-27 22:39) [279]

> [277] DevilDevil ©   (27.08.06 22:29)
если оно выглядит, как утка, крякает, как утка, ведёт себя как утка -- может, это действительно утка?


 
Мефисто   (2006-08-27 22:41) [280]

Судя по вновь распухшей ветке - пиар вокруг книги вновь удался... :)



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 вся ветка

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

Наверх





Память: 1.12 MB
Время: 0.133 c
15-1156490034
Суслик
2006-08-25 11:13
2006.09.17
Apache+Subversion (вопрос про настройку Apache)


15-1156635504
Лирик
2006-08-27 03:38
2006.09.17
Вопрос физикам


1-1154958562
webpauk
2006-08-07 17:49
2006.09.17
Расположение кнопок в ToolBar


15-1156694224
Griha
2006-08-27 19:57
2006.09.17
Скрыть от приложения деактивацию его окна (WM_ACTIVATE)


15-1156409559
wal
2006-08-24 12:52
2006.09.17
Проблема с QuickReport





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