-
> Gero (13.11.2006 09:19:37) [37]
Ну я не про потом. Да ладно, шучу я :-)
-
> [40] Anatoly Podgoretsky © (13.11.06 09:57)
А, я сразу не понял о чем речь ;)
-
> [38] Anatoly Podgoretsky © (13.11.06 09:21)
Ну так на места, в которых уже всё понятно, можно переписывать, причём по возможности до написания нового кода. > старое описание то есть и оно валидное, компилятор тут > не помогает.
Для старого описания есть такая штука
или директива depercated > Документация - ожидалось, что в RFC все описано, оказалось > что нет
Бывает. Не на всё есть хелп и МСДН, кое-что и выдумывать приходится :-( > [33] Ketmar © (13.11.06 01:55)
> [35] Gero © (13.11.06 02:14)
Никого я не обвиняю (было бы в чём), но реальность суровая... В код других клиентов не вникал, теперь боюсь. зы: завёл тему про копирование в борландовских ньюзгрупах, посмотрим насколько китайцы дружные ;-)
-
> guav (13.11.2006 13:50:42) [42]
> Не на всё есть хелп и МСДН, кое-что и выдумывать приходится
Статус все таки разные, пока я искал я обратил внимание, что кроме меня еще множество народу ищет и в ответ что несуразное, например обращаться в Беркли, мол там есть один человек, который это знает. А ведь это одна их базовых команд и без ее формата реализовать сервер невозможно. Но что хорошо, что есть альтернатива - гнусный XHDR, по крайней мере ОЕ если определяет, что XOVER не поддержан, то переходит на него. Но я например неуверен, что многие другие клиенты смогут работать если XOVER не будет поддержан.
> Для старого описания есть такая штука // или директива depercated
Видимо я не четко выразился, я про следующее, например скопировал из другого модуля или из другого обработчика следующий код.
:= XXX1.YYY
XXX1 валиден, а нужен XXX2 - очень легко нарваться, если не изменил, и программа будет работать, поскольку и XXX1 и XXX2 валидны в месте применения, в одном блоке, но будет непонятно, почему иногда результаты не те, это китайское противодействие. Конечно пример простой, но понятно о чем речь. Если куски копирования маленькие, то конечно не ошибешься, а если сотни строк, то элементарно. Но китайские метод дает хорошие характеристики по скорости, в ущерб надежности. Поэтому последнее время приучаю себя не копировать, пусть дольше, но надежнее. В данном сервере я допустил несколько ляпов подобного рода, но во время обнаружил, в итоге вместо экономии была потеря времени и нервов.
Но к сожалению пока еще это плохо выходит, надо быть настойчивее и сразу бить по рукам самого себя.
Кстати Д2006 очень плохо относится к китайскому методу, при копировании блока свойств и связаных объявлений обработчиков - она просто довольно быстро зависает, при том намертво, так что приходится снимать из процессов. И то с трудом. В рефакторинге я не нашел функции по полю создать одноименное свойство и Get/Set методы
-
К вопросу об клиентском скрипте, вот данное сообщение было перемещено в 13:16 а оповещение поступило только сейчас, вместе с ним перемещалось еще одно сообщение, оповещения пока нет
--= Eagle =-- © (13.11.2006 13:16) [D7, Win2k, WinXP] »» Перемещено в конференцию "WinAPI"
-
Вот наконей поступило, но как удаленое, о чем ввиде ошибки сообщил OE
-
> Anatoly Podgoretsky (13.11.2006 15:08:44) [44]
Вот спустя 5 минут пришло и второе оповещение, хотя разница в секунды и кроме того скрипт выдал в рассылке список уже давно удаленые (перемещеные) сообщения и как прикажешь с подобным жить?
--
-
Вот теперь еще раз выдал, уже повторно.
-
> if MultiByteToWideChar(cp_utf8, 0, PChar(S), -1, PWideChar(WS) > , Length(WS) + 1) = 0 then begin
cbMultiByte
[in] Specifies the size in bytes of the string pointed to by the lpMultiByteStr parameter, or it can be -1 if the string is null terminated. Note that if cbMultiByte is 0, the function fails. Т.е. -1 не обязательно, можно смело передавать Length, которая в байтах тоже.
-
Gero © (13.11.06 02:14) [35] Я уже молчу про DMClient, который начал писать один человек, не собираясь никому показывать ни исходный код, ни саму программу, а теперь дописывает другой.
Ничего я не дописывал! :)
Anatoly Podgoretsky © (13.11.06 09:21) [38] Документация - ожидалось, что в RFC все описано, оказалось что нет, один формат XOVER столько пришлось перешерстить Интернета
Анатолий, я тоже искал, а как оказолось это банальный STAT :)
-
оказолось это банальный STAT :)
Имею ввиду, формат
-
> guav (15.11.2006 01:36:48) [48]
Ну и какой Length ты передашь для utf-8
-
> Другой (15.11.2006 05:54:49) [49]
Даже если бы это было и так, то в rfc нет никакого намека на это, но на самом деле ничего даже близкого к STAT нет и не пахнет
-
> Другой (15.11.2006 05:54:50) [50]
И я это же имею в виду.
-
> [51] Anatoly Podgoretsky © (15.11.06 09:16) > Ну и какой Length ты передашь для utf-8
Тот что возращаеся Length(). Он в байтах.
-
> guav (15.11.2006 10:19:54) [54]
То есть то что я говорил про двойной вызов функции, а данное предложение я понял как про одинарный вызов функии. Пусть прояснится, что он имел в виду.
-
> Anatoly Podgoretsky (15.11.2006 10:47:55) [55]
moder=app action=close
-
moder=app action=move 6
-
> Кстати Д2006 очень плохо относится к китайскому методу, > при копировании блока свойств и связаных объявлений обработчиков > - она просто довольно быстро зависает, при том намертво, > так что приходится снимать из процессов. И то с трудом.
Такое бывает, если установлен Punto Switcher, до v2.8 включительно, с включеной фунцией "сохранение буфера обмена в дневнике". Лично я пользуюсь этой функцией, для восстановления кода (текста), который долго набирал, но не сумел сохранить. Или в случае неудачной отправки сообщения из клиента.
-
Дату поста вижу, но всяк случай напишу если у кого нить подобные грабли будут))))
вместо MultiByteToWideChar юзайте StringToWideChar
или так
function StringToWChar(const S: string): PWideChar; var Buffer: array[0..127] of WideChar; begin result:=StringToWideChar(S, Buffer, SizeOf(Buffer) div 2); end;
|