![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
E-Mail Indi 10 (BDS 4) TIdMessage DateTime format [WinXP]
iXT © (2006-11-08 17:32:00)Время доброе всем.
Есть вопросик. При создании сообщения (TIdMessage) значение Date: ............ hh:mm:ss +0000
Логично, что из-за этого при приеме время улетает на 3 (ну у кого как) часа
Почему он ставит "нулевой часовой пояс". Где какую галку поставить
P.S.
В окнах все стоит как надо: +3
iXT (2006-11-15 17:13:00) [1]
> Правильно без нужды не переходи, а то придется перестравивать
> мозги и идеологию.
Уже поздняк метаться :)
> Но что же ты не прислушался к рекомендациям, они решают
> проблему
Которые именно ???
Anatoly Podgoretsky (2006-11-15 13:45:00) [2]> iXT (15.11.2006 12:12:26) [26]
Правильно без нужды не переходи, а то придется перестравивать мозги и идеологию.
Но что же ты не прислушался к рекомендациям, они решают проблему
iXT (2006-11-15 12:12:00) [3]Переставил, Delphi с Indi 9. Работает правильно (пока). Если нарвусь еще на косяк, будет повод подумать всетаки перейти на ICS. Пока останусь. Благодарю за дисскусию по проблеме. Всем желаю удачи!
Anatoly Podgoretsky (2006-11-13 11:31:00) [4]> iXT (13.11.2006 11:13:24) [24]
Это другой комплект компонент для работы с Интернет, работающий по другим принципам, Борланд на него облизывался, но автор не дал, тогда подобрали Инди.
Инди разрабатывался для мира Юникс и портировали неглядя на Виндоус, отсюда некоторые проблемы, надо вникать в его идеологию и писать в ее стиле. И что плохо, чем дальше, тем больше становится монстром, но работать можно, с учетом идеологий, если не обращать на идеологию внимания, то вполне достойный набор. Работать только тяжеловато, но это на первых порах. Я решил не затягивать этот период, а сразу рвануть на идеологию Виндоус и Дельфи. Пока не жалею, но некоторым наоборот ICS не нравится, им с Инди проще.
iXT (2006-11-13 11:13:00) [5]Кто юзает 2006 (Indy 10), гляньте, плз, модуль IdSysVCL.pas функция TIdSysVCL.OffsetFromUTC. Может это только у меня такое "ранение тяжелое"?
2 Anatoly Podgoretsky
> Я потратил на него достаточно много времени, потом плюнул и перешел на ICS.
Что за зверь?
iXT (2006-11-11 13:21:00) [6]Нашел КОСЯК
Реализация функции OffsetFromUTS:
Indi 9:
{$IFDEF MSWINDOWS}
function OffsetFromUTC: TDateTime;
var
iBias: Integer;
tmez: TTimeZoneInformation;
begin
Case GetTimeZoneInformation(tmez) of
TIME_ZONE_ID_INVALID:
raise EIdFailedToRetreiveTimeZoneInfo.Create(RSFailedTimeZoneInfo);
TIME_ZONE_ID_UNKNOWN :
iBias := tmez.Bias;
TIME_ZONE_ID_DAYLIGHT :
iBias := tmez.Bias + tmez.DaylightBias;
TIME_ZONE_ID_STANDARD :
iBias := tmez.Bias + tmez.StandardBias;
else
raise EIdFailedToRetreiveTimeZoneInfo.Create(RSFailedTimeZoneInfo);
end;
{We use ABS because EncodeTime will only accept positve values}
Result := EncodeTime(Abs(iBias) div 60, Abs(iBias) mod 60, 0, 0);
{The GetTimeZone function returns values oriented towards convertin
a GMT time into a local time. We wish to do the do the opposit by returning
the difference between the local time and GMT. So I just make a positive
value negative and leave a negative value as positive}
if iBias > 0 then begin
Result := 0 - Result;
end;
end;
{$ENDIF}
Indi 10
class function TIdSysVCL.OffsetFromUTC: TIdDateTimeBase;
begin
Result := 0;
end;
Афигительная процедура
Anatoly Podgoretsky (2006-11-10 18:26:00) [7]> iXT (10.11.2006 17:38:21) [21]
Вот теперь по пункту 1 понятно, для тестовых целей.
По пункту 2, другая программа имеет право менять данный заголовок как считает нужным.
У меня сейчас была открыта справка, я посмотрел немного и по Инди.
Заголовок Date относится к TIdMesssage одноименное поле, оперировать надо с ним и в данном случае использовать надо UTC.
Другое свойство UseNowForDate если оно установлено в False то будет использовано свойство Date, которое и установи в UTC
Можно также попробовать работать с заголовками напрямую, для этого еще покопайся со справкой, как получить и как их изменить
iXT (2006-11-10 17:38:00) [8]1. Сейчас сохраняю, чтобы посмотреть что формируется! Сперва отправлял сразу - получил что фаил отправлен "через 3 часа". Поэтому решил сохранить в файл.
2. Вообще задумка, что программа которая формирует (что отправить) может и не иметь на месте возможность отправлять по SMTP. Она кладет в определенное место файл. А другая программулька должна смотреть, если есть, то отправлять.
Anatoly Podgoretsky (2006-11-10 17:05:00) [9]> iXT (10.11.2006 16:59:19) [19]
Вижу, если бы не монстр и если бы я не поставил на нем крест, то тоже бы взглянул, а так оно мне надо. Но я тебя спросил про сохранение файла, прояснился бы?
iXT (2006-11-10 16:59:00) [10]
> как же люди работают то. Ведь это базовая вещь.
И я про то!
> это должно настраиваться, поройся по справке, по исходному
> тексту,
Роюсь, роюсь! Даже Indi 9 пропробывал (D7)
Anatoly Podgoretsky (2006-11-10 16:14:00) [11]> iXT (10.11.2006 16:00:17) [17]
Я уже забросил Инди, но это должно настраиваться, поройся по справке, по исходному тексту, иначе я не пойму как же люди работают то. Ведь это базовая вещь.
iXT (2006-11-10 16:00:00) [12]Indi 9 делает +0300 !!!!!!!!!!!!!!!!!!!!!!!!
Бред
iXT (2006-11-10 14:55:00) [13]
> а если про отправку, то не понятна сама идея сохранять в
> файле.
Нет, сообщения отправляются. Ну это не суть проблемы. Сейчас дабы перед тем как посмотреть что я отправлю, я ее в файл сохраняю.
Anatoly Podgoretsky (2006-11-10 13:46:00) [14]> iXT (10.11.2006 10:24:14) [14]
> У меня сообщение сохраняется в фаил. Думаю самый простой способ исправить это после в файле.
Так ты про полученые сообщения говоришь, тогда решение правильное, а если про отправку, то не понятна сама идея сохранять в файле.
iXT (2006-11-10 10:24:00) [15]Вобщем, итог таков.
Самое противное, что куча народа писали программы с TIdMessage (в том числе и demo) - результат вышеописан...
У меня сообщение сохраняется в фаил. Думаю самый простой способ исправить это после в файле.
Есть вариант править это в TIdMessage, и наверное он более правелен, но как это сделать практически не знаю (.Headers.Count = 0). Может еще где???
Топик остается открытым, если у кого еще созреют идеи ...
2 Anatoly Podgoretsky
[13] после [10] писал!
iXT (2006-11-09 17:07:00) [16]Ладно, есть идеи, как сие должно работать?
Anatoly Podgoretsky (2006-11-09 17:06:00) [17]> iXT (09.11.2006 16:51:09) [9]
Сам я крест на Инди поставил месяц назад и успел уже полностью забыть. Снова изучать не стоит. Хотя и справка и примеры есть. Но это должна быть управляемая вещь.
Anatoly Podgoretsky (2006-11-09 17:05:00) [18]> iXT (09.11.2006 16:51:09) [9]
Так они же американцы.
Смотри справку по Инди, хоть и тяжело, но надо.
Допускаю возможность, что это не возможно, они же американцы.
Anatoly Podgoretsky (2006-11-09 17:04:00) [19]> iXT (09.11.2006 16:51:09) [9]
В ноль были точки!
iXT (2006-11-09 16:51:00) [20]
> Что то я не видел этой строки Date: Thu, 9 Nov 2006 11:52:
> 03 +0000 раньше!
Она была в [0] (немного цифры на hh,mm и т.п. поменял)
В том то и дело, что TIdMessage создает именно такую строку.
(какого +0000, откуда???)
Пример который с Indi идет создает такиеже сообщения (+0000)