Форум: "Потрепаться";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизОпрос: Рейтинг форум-клиентов. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.86 MB
Время: 0.045 c