Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Опрос: Рейтинг форум-клиентов.   Найти похожие ветки 

 
cyborg ©   (2004-08-12 10:28) [120]


>  [118] Danilka ©   (12.08.04 10:19)
> Хм, а что именно ужастно? Приведенный код вполне нормальный,
> не вижу в нем ничего ужасного.

Ужасно reset


 
nikkie ©   (2004-08-12 10:42) [121]

>[117] Fay
что в приведенном коде не понравилось? (на форматирование не пеняйте - это Gero его так отформатировал).

>А вычисление количества строк через ReadLn в цикле - просто шедевр.
какие есть альтернативы?

>[119] Fay
Но вот пример

пример чего? вроде вполне компилируемый код...  :)
оставлены, конечно, следы тыканья в потемках, понятно, что ты за хинты зацепился. последняя версия модуля, кстати, не публиковалась еще. приведенный кусок кода из последней версии:
(******************************************************************************)
(*  EmbeddedNS.pas                                                            *)
(*    Implementation of EmbeddedNS component                                  *)
(*    Author:   Nikolai Adrianov                                              *)
(*    Created:  10/08/2003                                                    *)
(*                                                                            *)
(*  v1.01  03/04/2004 NA                                                      *)
(*        A problem with thread creation is fixed.                            *)
(*        The problem sometimes resulted in AV.                               *)
(*                                                                            *)
(*  v1.02  23/06/2004 NA                                                      *)
(*        More problems with multithreading are fixed.                        *)
(******************************************************************************)
function TEmbeddedNSHandler.EndReportData: HResult;
var
 ft1, ft2: FILETIME;
begin
 FTerminateCS.Enter;
 try
   FWaitingData := False;
   if FTerminated then begin
     Result := E_ABORT;
     Exit;
   end;

   if FProtocolSink <> nil then begin
     FProtocolSink.ReportData(BSCF_INTERMEDIATEDATANOTIFICATION or
                              BSCF_LASTDATANOTIFICATION or
                              BSCF_DATAFULLYAVAILABLE, 0, 0);
     FProtocolSink.ReportResult(S_OK, 0, nil);
   end;

   ft1.dwLowDateTime := 0;
   ft1.dwHighDateTime := 0;
   ft2.dwLowDateTime := 0;
   ft2.dwHighDateTime := 0;

   CommitUrlCacheEntry(PChar(FUrl), PChar(FCacheFileName),
     ft1, ft2, NORMAL_CACHE_ENTRY, nil, 0,
     PChar(FFileExtension), 0);
 finally
   FTerminateCS.Leave;
 end;
 Result := S_OK;
end;


 
nikkie ©   (2004-08-12 10:48) [122]

>[120] cyborg
>Ужасно reset

я, наверное, что-то пропустил?


 
Fay ©   (2004-08-12 10:49) [123]

2 cyborg ©   (12.08.04 10:28) [120]
В оригинале Rewrite.

Только append строки делается несколько иначе.

AssignFile(F, FileName);
 if FileExists(FileName) then begin
   Append(F);
 end else begin
   Rewrite(F);
 end;
 try
   Write(F, Answers.Text);
 finally
   CloseFile(F);
 end;
я бы заменил на
f(FileName, Answers.Text);
где f что-то вроде

procedure f(FileName, Text : String);
var
 h, n : Cardinal;
begin
 h := CreateFile(PChar(FileName), GENERIC_WRITE, FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0);
 if h = INVALID_HANDLE_VALUE then RaiseLastOSError;
 SetFilePointer(h, 0, nil, FILE_END);
 WriteFile(h, PChar(Text)^, Length(Text), n, nil);
 CloseHandle(h);
end;


 
miwa ©   (2004-08-12 10:55) [124]


> [112] Piter ©   (12.08.04 01:00)
> дело даже не в этом. Исходники клиента McSimm потерял.

А. Значит это не только я так умею :о)) А вообще - жаль.


> [113] MDFE ©   (12.08.04 03:10)
> Скриншот не вышедшей версии http://www.pechora.org/merrily.png

Хм, а почему она так и не вышла? Не хочешь подключатся к "большой войне клиентов"? ;о) Те все рисунки вверху - они несут функциональную нагрузку? Другими словами - это кнопки? Тогда классно придумано. По-мультяшному, правда, но все равно на первый взгляд неплохо. А. И еще. Помню, когда-то у меня клиент начинал подтормаживать при размере базы в 30-50 мегабайт. Теперь это исправлено?


> [117] Fay ©   (12.08.04 10:10)
> 2 nikkie ©   (12.08.04 09:33) [116]
> Работа с файлами просто ужасная. А вычисление количества
> строк через ReadLn в цикле - просто шедевр. Даже круче,
> чем
>
> if FileExists(FileName) then
>  begin
>    Append(F);
>  end
> else
>  begin
>    Reset(F);
>  end;
* * *
> [120] cyborg ©   (12.08.04 10:28)
> Ужасно reset

Все же объясните, пожалуйста, почему приведенный код ужасен? Насколько мне известно (сам пробовал) "ReadLn в цикле" работает намного быстрее чем, например, TStringList.LoadFromFile. А насчет кода - так вообще теряюсь в догадках. А. Надо было Rewrite вместо Reset?


 
miwa ©   (2004-08-12 11:02) [125]


> [123] Fay ©   (12.08.04 10:49)

А вот и пример того, почему OpenSource есть гуд ;о). Если бы код был закрытым - было бы так как было; а так nikkie сейчас может заменить кусок кода (если посчитает нужным) и в список благодарностей засунуть Fay"a.

Кстати, Fay, у меня пишет, что твоя анкета не найдена ;о(


 
nikkie ©   (2004-08-12 11:04) [126]

>я бы заменил
имеешь право. мне этот код тоже нравится, но это стиль апи-программирования. а вот думаю здесь найдется достаточно народа, который скажет, что вариант с AssignFile и т.д. лучше. лучше читается, понимается и т.п. не будешь же ты настаивать, что весь код с использованием AssignFile, Reset, Append, Rewrite - ужасный. в конце концов я вместо себя Тексейру с Пачеко подставлю.


 
nikkie ©   (2004-08-12 11:06) [127]

кстати, должен извиниться - Gero не форматировал тот кусок кода. это Fay постарался :))


 
app ©   (2004-08-12 11:09) [128]

Вы как то не заметно с рейтинга клиентов скатились на проектирование какого то конкретного клиента. Заведите отдельную ветку для этой цели.


 
Fay ©   (2004-08-12 11:09) [129]


> не будешь же ты настаивать, что весь код с использованием
> AssignFile, Reset, Append, Rewrite - ужасный.

Я именно на этом и настаиваю. А указаные товарищи - просто неплохие писатели. Я не верю, что они сами так пишут. (Кстати, не пробовали по их книжке сделать i += 1;? 8))


 
cyborg ©   (2004-08-12 11:10) [130]


> [124] miwa ©   (12.08.04 10:55)
> Все же объясните, пожалуйста, почему приведенный код ужасен?

Потому, что ошибка выйдет, если файла нет.


> [123] Fay ©   (12.08.04 10:49)
> 2 cyborg ©   (12.08.04 10:28) [120]
> В оригинале Rewrite.

Ну так не нужно пудрить людям мозги.


 
Думкин ©   (2004-08-12 11:12) [131]

> [129] Fay ©   (12.08.04 11:09)
> Я именно на этом и настаиваю. А указаные товарищи - просто
> неплохие писатели. Я не верю, что они сами так пишут. (Кстати,
> не пробовали по их книжке сделать i += 1;?

Это не по их книжке.


 
cyborg ©   (2004-08-12 11:13) [132]


> [129] Fay ©   (12.08.04 11:09)

Ну и плохо что так считаешь, я именно так пишу, потому, что ещё с Турбо Паскаля этому научен. И это в 10 раз проще, чем та муть, которую ты расписал.


 
mrcat ©   (2004-08-12 11:14) [133]

>nikkie
Поставил последнюю версию DMClient. Отлично работает, но есть один момент: наткнулся на него в форуме "Потрепаться" - партия с Фрицем как-раз игралась :) - не было видно последнего сообщения темы "Мастера - Фриц" в списке тем.
+ одно ма-а-ленькое пожелание: Alt-Left переставить на Backspace


 
Fay ©   (2004-08-12 11:15) [134]

2 Думкин ©   (12.08.04 11:12) [131]
Borland Delphi6 Руководство разработчика. Основные направления программирования. Операторы присвоения с действием (с. 72).
>> Теперь, подобно языкам Java и С, вполне допустим следующий код.
>> x += 5;


 
Sandman25 ©   (2004-08-12 11:16) [135]

[133] mrcat ©   (12.08.04 11:14)

Можно настраивать любые кнопки по своему желанию прямо в клиенте (Форум, Настройки, Горячие клавиши)


 
Думкин ©   (2004-08-12 11:17) [136]

>  [134] Fay ©   (12.08.04 11:15)

Это обсуждалось. Это не их книжка. Это плохой перевод. Не более.


 
mrcat ©   (2004-08-12 11:19) [137]

>Sandman25
дело в том, что Backspace он воспринимает как отсутствие "горячей" клавиши


 
Anatoly Podgoretsky ©   (2004-08-12 11:21) [138]

Fay ©   (12.08.04 11:09) [129]
Это не их книжка, а наших переводчиков


 
app ©   (2004-08-12 11:23) [139]

Обсуждение книги тоже не по теме ветки.


 
Fay ©   (2004-08-12 11:24) [140]

2 Думкин ©   (12.08.04 11:17) [136]
2 Anatoly Podgoretsky ©   (12.08.04 11:21) [138]
Понял. Но посмеяться успел 8)


 
nikkie ©   (2004-08-12 11:26) [141]

>[133] mrcat
>[135] Sandman25
да, хоткеи настраиваются, но во-первых, Backspace и Delete не введешь в THotKey, а во-вторых, Backspace не ловится в EmbeddedWB.OnTranslateAccelerator - есть такая особенность у WebBrowser. придется ради этого, видимо городить обработчик в Application.OnMessage, чего мне не хочется...


 
Игорь Шевченко ©   (2004-08-12 11:31) [142]

Я пользовался разными клиентами, в результате, вернулся на Internet Explorer, самый удобный клиент.


 
mrcat ©   (2004-08-12 11:31) [143]

>городить обработчик в Application.OnMessage
оно того не стоит ;) просто при внешней аналогии с ie забываешь о различиях в хот-кеях


 
Anatoly Podgoretsky ©   (2004-08-12 11:34) [144]

Игорь Шевченко ©   (12.08.04 11:31) [142]
Точно зачем нужна не актуальная копия (локальный кэш), а трафик только в определенных точках мира является проблемой.


 
cyborg ©   (2004-08-12 11:36) [145]


> [144] Anatoly Podgoretsky ©   (12.08.04 11:34)
> Игорь Шевченко ©   (12.08.04 11:31) [142]
> Точно зачем нужна не актуальная копия (локальный кэш), а
> трафик только в определенных точках мира является проблемой.

Вот из за таких вот, бывает, некоторые участки сети тормозят! ;)


 
Danilka ©   (2004-08-12 11:42) [146]

[144] Anatoly Podgoretsky ©   (12.08.04 11:34)
> а трафик только в определенных точках мира является проблемой.

Дык, скупой я. :)) Кроме того, на работе теперь ограничение 100МБ в месяц, после чего доступна только почта.
Опять-же, уменьшение трафика не за счет уменьшения количества посетителей, а за счет использования клиентов сайту только выгодно.


 
Sandman25 ©   (2004-08-12 11:46) [147]

[146] Danilka ©   (12.08.04 11:42)

Это и всем посетителям выгодно - меньше 500-х ошибок.


 
nikkie ©   (2004-08-12 11:47) [148]

> Fay и если кто еще захочет присоединиться
по настоянию app я завел отдельную ветку для обсуждения кода DMClient
http://delphimaster.net/view/14-1092296755/


 
Prohodil Mimo ©   (2004-08-12 12:08) [149]

[144] Anatoly Podgoretsky,
трафик у меня не ограничен, но зато с клиентом намного быстрее и 500й эррор я стал очень редко наблюдать. да и посты отмечаются, которые я уже читал и кучу веток открыть можно без захламления таскбара. При необходимости закрыл клиента без потери открытых веток, при следующем запуске не надо вспоминать, какие ветки интересовали и открывать их по новой.


 
Anatoly Podgoretsky ©   (2004-08-12 12:10) [150]

Prohodil Mimo ©   (12.08.04 12:08) [149]
Ты как то аппроксимировал все эти возможности на все клиенты, наверно не заметил.


 
Prohodil Mimo ©   (2004-08-12 12:13) [151]

Я понадеялся, что вы помните на каком я :о)


 
nikkie ©   (2004-08-12 12:14) [152]

>Anatoly Podgoretsky
так возможности у разных клиентов разные. поэтому находятся пользователи и для тех, и для других. даже у Magic Forum-a (который суть клон DMClient, да простит меня Piter) фанаты намечаются.


 
Anatoly Podgoretsky ©   (2004-08-12 12:23) [153]

Предлагаю сделать features list если найдется доброволец, поможет в выборе клиента.


 
Piter ©   (2004-08-12 12:27) [154]

Игорь Шевченко ©   (12.08.04 11:31) [142]
Я пользовался разными клиентами, в результате, вернулся на Internet Explorer, самый удобный клиент


а можно поинтересоваться, чем DMClient ПРОИГРЫВАЕТ Internet Explorer"у?


 
Думкин ©   (2004-08-12 12:29) [155]

> [154] Piter ©   (12.08.04 12:27)

Не видно плюсомета иногда. Тебе RO - а ты его не видишь. Вот Игорь и боится пропустить замечание модераторов. :))


 
Piter ©   (2004-08-12 12:31) [156]

Удалено модератором
Примечание: Личная переписка, используй персональные методы общения, хоть тот же чат


 
Piter ©   (2004-08-12 12:31) [157]

Думкин ©   (12.08.04 12:29) [155]
Не видно плюсомета иногда. Тебе RO - а ты его не видишь. Вот Игорь и боится пропустить замечание модераторов


а-а-а :))) Тогда понятно


 
Anatoly Podgoretsky ©   (2004-08-12 12:35) [158]

Думкин ©   (12.08.04 12:29) [155]
Правильно, есть предупреждение, и туж же сразу получается игнорирование, кэш не актуален, но входить в обстоятельства, что мол использую клиент модератор не будет, это проблема того кто делает постинг, обеспечивай актуальность кэша или читай форум не кешируемым клиентом.


 
nikkie ©   (2004-08-12 12:51) [159]

>Piter
там промеж скобок смайлик затерялся...

нет, дело вовсе не в использовании моего юнита. на мой взгляд идея интерфейса у него такая же, да и выглядит он весьма похоже. Dolphin и DMFC внешне и по логике работы совсем другие. ведь есть куча еще вариантов, как можно было бы построить клиента. вот идея MDFE реализовать клиента в виде news-сервера - насколько это реализуемо и удобно отдельный вопрос, но идея оригинальная. можно реализовать клиента в виде веб-приложения или самописного веб-сервера, а просмотр - в любимом браузере. плюс - не надо реализовывать свой интерфейс а-ля браузер, можно иметь одного клиента и одну базу на свою локальную сеть.

>Тебе просто не нравится, что вместо присоединения к твоему проекту я начал собственный...
да, немножко жаль, потому что мог бы пользу там принести, например, ту же поддержку БД дописать. но ты мне уже объяснял, что я с открытием исходников опоздал. да и благодаря тебе поймался баг в EmbeddedNS, так что польза все равно есть :)


 
Anatoly Podgoretsky ©   (2004-08-12 13:00) [160]

nikkie ©   (12.08.04 12:51) [159]
Предлагал несколько раз такую идею, локальный NEWS сервер, он взаимодействует с сервером, а клиент уже с ним по стандартному протоколу. Представление конечно будет отличаться от веб, где сейчас все в одной странице, как единое сообщение, там же будет каждое сообщение отдельно, зато все возможности по работе стандартные для NEWS. База может быть не только на локальную сеть, но может быть и глобальной, кроме того легко расширять на другие форумы.
Очень хорошая вещь, изолирование представление данных от транспорта и возможность использувать любой удобный клиент, но пока никто не хочет браться за эту идею.



Страницы: 1 2 3 4 5 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.84 MB
Время: 0.035 c
1-1092984256
nicesc
2004-08-20 10:44
2004.09.05
Работа во времени


14-1092555687
Мазут
2004-08-15 11:41
2004.09.05
Я всё еще жив парни! Всем привет из подмосковья!


14-1092731251
jack128
2004-08-17 12:27
2004.09.05
Убийство за оскорбление в чате..


14-1092657903
WondeRu
2004-08-16 16:05
2004.09.05
E-mail клиент на мобильнике!!!!!!!!!!!!!!!!!!


1-1092767959
Jrek
2004-08-17 22:39
2004.09.05
Как добавить субдиректории