Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
4-1090356969
[ping]VIN
2004-07-21 00:56
2004.09.05
GetLogicalDrivers


3-1092312735
sesh
2004-08-12 16:12
2004.09.05
PostgreSQL


14-1092395274
Pul
2004-08-13 15:07
2004.09.05
Что-то орешник давно не пополнялся


14-1092572756
YurikGL
2004-08-15 16:25
2004.09.05
Черный список вредоносных программ


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





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