Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.01.16;
Скачать: [xml.tar.bz2];

Вниз

Как декодировать сообщения из TIdPOP3   Найти похожие ветки 

 
Делфиец   (2010-10-26 08:43) [0]

Пишу простую почтовую проверялку писем с использованием компонентов Indy  TIdPOP3, TidMessage.

Проблема: в том, что некоторые письма отображаются в ином коде.  
Вопрос: Есть ли какой нибудь компонент Indy, который бы автоматически распознавал кодировку и декодировал в нужный код? Или как-нибудь исправить другим способом?


 
Anatoly Podgoretsky ©   (2010-10-26 08:51) [1]

Если есть в заголовке признак кодировке, то можно перекодировать, в ограниченое количество других кодировок, но естественно руками.


 
George ©   (2010-10-26 09:41) [2]


> Anatoly Podgoretsky ©   (26.10.10 08:51) [1]

А если нету, то эцих с гвоздями отправителю. :) А вообще Инди же вроде автоматически это все делает, когда получает письмо, не?


 
Anatoly Podgoretsky ©   (2010-10-26 09:48) [3]

Ну да автоматически, и при этом телепатическим методом, определяет в какую кодировку преобразовывать. POP3 это не визуальный компонент.


 
Делфиец   (2010-10-26 09:56) [4]


> Anatoly Podgoretsky ©   (26.10.10 08:51) [1]
> Если есть в заголовке признак кодировке, то можно перекодировать,
>  в ограниченое количество других кодировок, но естественно
> руками.


В некоторых есть, а в некоторых нет:

-------------------------------------------------------
2 Subject:  | From.Name: =?UёF-8?B?0K/QvdC40L0g0JDQu9C10LrRgdC10Lk=?= | From.Adress: aleksey.yanin@usk.ilimgroup.ru | From.Size   : 1093 | Date: 19.10.2010 16:56:39
IdMessage.Headers.GetText:Return-Path: <aleksey.yanin@usk.ilimgroup.ru>
Received: from [195.46.103.14] (HELO [192.168.164.36])
 by usk.ilimgroup.ru (CommuniGate Pro SMTP 5.2.11)
 with ESMTP id 4026409 for konstantin.naumkin@usk.ilimgroup.ru; Tue, 19 Oct 2010 16:56:40 +0900
X-AntiVirus: Checked by Dr.Web [version: 5.0, engine: 5.00.2.03300, virus records: 1686365, updated: 19.10.2010]
Message-ID: <4CBD4F37.3010708@usk.ilimgroup.ru>
Date: Tue, 19 Oct 2010 16:56:39 +0900
From: =?UTF-8?B?0K/QvdC40L0g0JDQu9C10LrRgdC10Lk=?=
<aleksey.yanin@usk.ilimgroup.ru>
Organization: =?UTF-8?B?0J7QkNCeICLQk9GA0YPQv9C/0LAgItCY0LvQuNC8Ig==?=
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.9) Gecko/20100915 Thunderbird/3.1.4
MIME-Version: 1.0
To: konstantin.naumkin@usk.ilimgroup.ru
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

2 Subject:  | From.Name: =?UTF-8?B?0K/QvdC40L0g0JDQu9C10LrRgdC10Lk=?= | From.Adress: aleksey.yanin@usk.ilimgroup.ru | From.Size   : 1093 | Date: 19.10.2010 16:56:39
-------------------------------------------------------
3 Subject: Информация | From.Name: PostMaster | From.Adress: post@usk.ilimgroup.ru | From.Size   : 1857478 | Date: 20.10.2010 13:45:08
IdMessage.Headers.GetText:Return-Path: <post@usk.ilimgroup.ru>
Received: from [195.46.103.14] (account post HELO kirshinaSA)
 by usk.ilimgroup.ru (CommuniGate Pro SMTP 5.2.11)
 with ESMTPA id 4030570 for all@usk.ilimgroup.ru; Wed, 20 Oct 2010 13:45:10 +0900
X-AntiVirus: Checked by Dr.Web [version: 5.0, engine: 5.00.2.03300, virus records: 1687584, updated: 20.10.2010]
From: "PostMaster" <post@usk.ilimgroup.ru>
To: <all@usk.ilimgroup.ru>
Subject: =?koi8-r?B?6c7Gz9LNwcPJ0Q==?=
Date: Wed, 20 Oct 2010 13:45:08 +0900
Message-ID: <002801cb7011$937c6870$ba753950$@ilimgroup.ru>
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0029_01CB705D.03641070"
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Actv/7JdlAclew9EQnGEdbe4Ybfz4gACOsNAAAI5LlA=
Content-Language: ru

3 Subject: йОЖПТНБГЙС | From.Name: PostMaster | From.Adress: post@usk.ilimgroup.ru | From.Size   : 1857478 | Date: 20.10.2010 13:45:08
-------------------------------------------------------


 
George ©   (2010-10-26 10:02) [5]


> Anatoly Podgoretsky ©   (26.10.10 09:48) [3]

Дык почему телепатическим? Насколько я знаю, исходя из заголовков как раз таки пляска идет.


 
Делфиец   (2010-10-26 10:06) [6]


> Делфиец   (26.10.10 09:56) [4]


Интересно, что отправленные письма из Outlook не содержат:
Content-Type
Content-Transfer-Encoding
Но в Subject: =?koi8-r?B?6c7Gz9LNwcPJ0Q==?=    - содержит указание на кодировку как бы этим воспользоваться.

Модуль для конвертации koi8 в Windows-1251 имеется, но вот а если письмо попадется в другой кодировке это что нужно иметь на все типы кодировок разные модули?


 
Dennis I. Komarov ©   (2010-10-26 10:58) [7]


> это что нужно иметь на все типы кодировок разные модули?

Да нет конечно, просто пишешь юзеру мессагу, типа влом мне всякой ересью заниматься...


 
George ©   (2010-10-26 12:30) [8]


> Но в Subject: =?koi8-r?B?6c7Gz9LNwcPJ0Q==?=    - содержит
> указание на кодировку как бы этим воспользоваться.

И это, насколько я помню, Инди должен автоматом хавать. Ну у меня хавал.


 
Anatoly Podgoretsky ©   (2010-10-26 12:54) [9]

> Делфиец  (26.10.2010 09:56:04)  [4]

Вот это можно перекодировать.


 
Anatoly Podgoretsky ©   (2010-10-26 12:58) [10]

> George  (26.10.2010 10:02:05)  [5]

Телепатически, не телепатически откуда, а куда иначе ни как.


 
Anatoly Podgoretsky ©   (2010-10-26 12:59) [11]

> Делфиец  (26.10.2010 10:06:06)  [6]

koi-8 можно перекодировать только в 1251, 866, ISO, MAC, IBM


 
Anatoly Podgoretsky ©   (2010-10-26 13:01) [12]


> И это, насколько я помню, Инди должен автоматом хавать.
> Ну у меня хавал.

Что значит хавал, то есть с помощью ГСЧ выбирал одну из пяти кодировок и перекодировал, а я там еще Юникод упустил.


 
George ©   (2010-10-26 14:23) [13]


> Anatoly Podgoretsky ©   (26.10.10 13:01) [12]

Ну видимо да, как то так.


 
Игорь Шевченко ©   (2010-10-26 15:02) [14]

для Mail2000 я руками писал. Работает


 
Делфиец   (2010-10-27 07:30) [15]

Как то пришлось потрудиться придумал такой способ определения кодировки:

Type TMsgCode = (UNK, KOI8R, KOI8U, WIN1251, UTF8);

const
 c_win_1251 = "windows-1251";
 c_koi8_r  = "koi8-r";
 c_koi8_u  = "koi8-u";
 c_utf8    = "utf8";

function GetCode(Msg: TIdMessage): TMsgCode;

implementation

function StrToCodeType(Str: String): TMsgCode;
var index: Integer;
begin
 index := AnsiIndexStr(Str,["",c_koi8_r,c_koi8_u,c_win_1251,c_utf8]);
 Result := TMsgCode(Index);
end;

function ExtractCharType(StrValue: String): String;
begin
 StrValue := StringReplace(StrValue,"=?","",[rfIgnoreCase]);
 Result   := Copy(StrValue,1,AnsiPos("?",StrValue)-1);
end;

function GetCode(Msg: TIdMessage): TMsgCode;
var temp: string;
begin
 if Msg.CharSet <> "" then begin
   Result := StrToCodeType(AnsiLowerCase(Msg.CharSet));
   Exit;
 end;
 
 if Msg.Headers.Values["Subject"] <> "" then begin
   Result := StrToCodeType(AnsiLowerCase(Msg.Headers.Values["Subject"]));
 end;
end;

end;

// ................ применение .........

case GetCode(IdMessage) of
 UNK     : ;
 KOI8R   : ;
 KOI8U   : ;
 WIN1251 : ;
 UTF8    : ;
end;


 
Делфиец   (2010-10-27 08:30) [16]

исправил некий ляп:

function GetCode(Msg: TIdMessage): TMsgCode;
var temp: string;
begin
 if Msg.CharSet <> "" then begin
   Result := StrToCodeType(AnsiLowerCase(Msg.CharSet));
   Exit;
 end;

 if Msg.Headers.Values["Subject"] <> "" then begin
   Result := StrToCodeType(ExtractCharType(AnsiLowerCase(Msg.Headers.Values["Subject"])));
   Exit;
 end;

 if Msg.Headers.Values["From"] <> "" then begin
   Result := StrToCodeType(ExtractCharType(AnsiLowerCase(Msg.Headers.Values["From"])));
   exit;
 end;

end;


 
Сергей М. ©   (2010-10-27 10:00) [17]


> Делфиец


Ты изобрел велосипед.

Просто подключи к проекту, использующему IdPOP3, юнит след.содержания:


unit MsgHdrCoders;

interface

uses
 IdHeaderCoderPlain;

type
 TCodeMatrix = array[1..255] of char;

const
 FirstCodes =
   #1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28+
  #29#30#31" !"#$%&""()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^" +
   "_`abcdefghijklmnopqrstuvwxyz{|}~";
 cmAnsiToKoi8R: TCodeMatrix = FirstCodes
 + "€&#129;‚&#402;„…†‡&#710;‰&#352;‹&#338;&#141;&#381;&#143;&#144;‘’“”•–—?™&#353;›& #339;&#157;&#382;&#376; &#161;&#162;&#163;¤&#165;¦§&#168;©&#170;«¬­®&#175;°±&#178;&#179;&#180;µ¶·&#163;— &#186;»&#188;&#189;&#190;&#191;&#225;&#226;&#247;&#231;&#228;&#229;&#246;&#250;& #233;"
   + "&#234;&#235;&#236;&#237;&#238;&#239;&#240;&#242;&#243;&#244;&#245;&#230;&#232;& #227;&#254;&#251;&#253;&#255;&#249;&#248;&#252;&#224;&#241;&#193;&#194;&#215;&#1 99;&#196;&#197;&#214;&#218;&#201;&#202;&#203;&#204;&#205;&#206;&#207;&#208;&#210 ;&#211;&#212;&#213;&#198;&#200;&#195;&#222;&#219;&#221;&#223;&#217;&#216;&#220;& #192;&#209;";
 cmAnsiToKoi8U: TCodeMatrix = FirstCodes
 + "€&#129;‚&#402;„…†‡&#710;‰&#352;‹&#338;&#141;&#381;&#143;&#144;‘’“”•–—?™&#353;›& #339;&#157;&#382;&#376; &#161;&#162;&#163;¤&#165;¦§&#168;©&#170;«¬­®&#175;°±&#178;&#179;&#180;µ¶·&#163;— &#186;»&#188;&#189;&#190;&#191;&#225;&#226;&#247;&#231;&#228;&#229;&#246;&#250;& #233;"
   + "&#234;&#235;&#236;&#237;&#238;&#239;&#240;&#242;&#243;&#244;&#245;&#230;&#232;& #227;&#254;&#251;&#253;&#255;&#249;&#248;&#252;&#224;&#241;&#193;&#194;&#215;&#1 99;&#196;&#197;&#214;&#218;&#201;&#202;&#203;&#204;&#205;&#206;&#207;&#208;&#210 ;&#211;&#212;&#213;&#198;&#200;&#195;&#222;&#219;&#221;&#223;&#217;&#216;&#220;& #192;&#209;";
 cmKoi8RToAnsi: TCodeMatrix = FirstCodes
 + "-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-&#184;&#227;&#227;¬¬¬LLL---¦¦¦¦&#168;¦¦TTT¦¦¦+++©&#254;&#224;&#225;&#246;&#228;&#229;&#244;&#227;&#245;"
   + "&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;&#255;&#240;&#241;&#242;&#243;& #230;&#226;&#252;&#251;&#231;&#248;&#253;&#249;&#247;&#250;&#222;&#192;&#193;&#2 14;&#196;&#197;&#212;&#195;&#213;&#200;&#201;&#202;&#203;&#204;&#205;&#206;&#207 ;&#223;&#208;&#209;&#210;&#211;&#198;&#194;&#220;&#219;&#199;&#216;&#221;&#217;& #215;&#218;";
 cmKoi8UToAnsi: TCodeMatrix = FirstCodes
 + "-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-&#184;&#186;&#227;&#179;&#191;¬LLL-&#180;&#162;¦¦¦¦&#168;&#170;¦&#178;&#175;T¦¦¦+&#165;&#161;©&#254;&#224;&#225;&#246;&#228;&#229;&#244;&#227;&#245;"
   + "&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;&#255;&#240;&#241;&#242;&#243;& #230;&#226;&#252;&#251;&#231;&#248;&#253;&#249;&#247;&#250;&#222;&#192;&#193;&#2 14;&#196;&#197;&#212;&#195;&#213;&#200;&#201;&#202;&#203;&#204;&#205;&#206;&#207 ;&#223;&#208;&#209;&#210;&#211;&#198;&#194;&#220;&#219;&#199;&#216;&#221;&#217;& #215;&#218;";
 cmOemDosToAnsi: TCodeMatrix = FirstCodes
 + "&#192;&#193;&#194;&#195;&#196;&#197;&#198;&#199;&#200;&#201;&#202;&#203;&#204;& #205;&#206;&#207;&#208;&#209;&#210;&#211;&#212;&#213;&#214;&#215;&#216;&#217;&#2 18;&#219;&#220;&#221;&#222;&#223;&#224;&#225;&#226;&#227;&#228;&#229;&#230;&#231 ;&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;---¦+¦¦¬¬¦¦¬---¬L+T+-+¦¦L"
   + "&#227;¦T¦=+¦¦TTLL-&#227;++----¦¦-&#240;&#241;&#242;&#243;&#244;&#245;&#246;&#247;&#248;&#249;&#250;&#251;&#252;&# 253;&#254;&#255;&#168;&#184;&#170;&#186;&#175;&#191;&#161;&#162;°•·v&#185;¤¦ ";
 cmIsoToAnsi: TCodeMatrix = FirstCodes
 + "???????????????????????????????? &#168;€&#129;&#170;&#189;&#178;&#175;&#163;&#352;&#338;&#381;&#141;­&#161;&#143; &#192;&#193;&#194;&#195;&#196;&#197;&#198;&#199;&#200;&#201;&#202;&#203;&#204;&# 205;&#206;&#207;&#208;&#209;&#210;&#211;&#212;&#213;&#214;&#215;&#216;"
   + "&#217;&#218;&#219;&#220;&#221;&#222;&#223;&#224;&#225;&#226;&#227;&#228;&#229;& #230;&#231;&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;&#240;&#241;&#242;&#2 43;&#244;&#245;&#246;&#247;&#248;&#249;&#250;&#251;&#252;&#253;&#254;&#255;&#185 ;&#184;&#144;&#402;&#186;&#190;&#179;&#191;&#188;&#353;&#339;&#382;&#157;§&#162; &#376;";
type

 TIdHeaderCoderKOI8 = class(TIdHeaderCoderPlain)
 public
   class function Decode(const ACharSet, AData: String): String; override;
   class function Encode(const ACharSet, AData: String): String; override;
   class function CanHandle(const ACharSet: String): Boolean; override;
 end;

function ConvertCharset(AString: String; AMatrix: TCodeMatrix): String;

implementation

uses IdGlobal, IdHeaderCoderBase;

function ConvertCharset(AString: String; AMatrix: TCodeMatrix): String;
var
 i: Integer;
begin
 Result := "";
 for i:= 1 to Length(AString) do
   Result := Result + AMatrix[Ord(AString[i])];
end;

{ TIdHeaderCoderKOI8 }

class function TIdHeaderCoderKOI8.CanHandle(const ACharSet: String): Boolean;
begin
 Result := TextIsSame(ACharSet, "KOI8-R") or TextIsSame(ACharSet, "KOI8-U");
end;

class function TIdHeaderCoderKOI8.Decode(const ACharSet, AData: String): String;
begin
 if TextIsSame(ACharSet, "KOI8-R") then
   Result := ConvertCharset(AData, cmKoi8RToAnsi)
 else if TextIsSame(ACharSet, "KOI8-U") then
   Result := ConvertCharset(AData, cmKoi8UToAnsi);
end;

class function TIdHeaderCoderKOI8.Encode(const ACharSet, AData: String): String;
begin
 if TextIsSame(ACharSet, "KOI8-R") then
   Result := ConvertCharset(AData, cmAnsiToKoi8R)
 else if TextIsSame(ACharSet, "KOI8-U") then
   Result := ConvertCharset(AData, cmAnsiToKoi8U);
end;

initialization
 RegisterHeaderCoder(TIdHeaderCoderKOI8); // регистрация класса KOI8-кодека ! Аналогично пишется и регистрируется любой другой кодек
finalization
 UnregisterHeaderCoder(TIdHeaderCoderKOI8);

end.


 
Сергей М. ©   (2010-10-27 10:00) [18]


unit MsgHdrCoders;

interface

uses
 IdHeaderCoderPlain;

type
 TCodeMatrix = array[1..255] of char;

const
 FirstCodes =
   #1#2#3#4#5#6#7#8#9#10#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#27#28+
  #29#30#31" !"#$%&""()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^" +
   "_`abcdefghijklmnopqrstuvwxyz{|}~";
 cmAnsiToKoi8R: TCodeMatrix = FirstCodes
 + "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—?™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·Ј—є»јЅѕїбвчздецъй"
   + "клмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС";
 cmAnsiToKoi8U: TCodeMatrix = FirstCodes
 + "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—?™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·Ј—є»јЅѕїбвчздецъй"
   + "клмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС";
 cmKoi8RToAnsi: TCodeMatrix = FirstCodes
 + "-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-ёг㬬¬LLL---¦¦¦¦Ё¦¦TTT¦¦¦+++©юабцдефгх"
   + "ийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ";
 cmKoi8UToAnsi: TCodeMatrix = FirstCodes
 + "-¦-¬L-++T++---¦¦---?¦•v??? ?°?·?=¦-ёєгії¬LLL-ґў¦¦¦¦ЁЄ¦ІЇT¦¦¦+ҐЎ©юабцдефгх"
   + "ийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ";
 cmOemDosToAnsi: TCodeMatrix = FirstCodes
 + "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп---¦+¦¦¬¬¦¦¬---¬L+T+-+¦¦L"
   + "г¦T¦=+¦¦TTLL-г++----¦¦-рстуфхцчшщъыьэюяЁёЄєЇїЎў°•·v№¤¦ ";
 cmIsoToAnsi: TCodeMatrix = FirstCodes
 + "???????????????????????????????? ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШ"
   + "ЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ";
type

 TIdHeaderCoderKOI8 = class(TIdHeaderCoderPlain)
 public
   class function Decode(const ACharSet, AData: String): String; override;
   class function Encode(const ACharSet, AData: String): String; override;
   class function CanHandle(const ACharSet: String): Boolean; override;
 end;

function ConvertCharset(AString: String; AMatrix: TCodeMatrix): String;

implementation

uses IdGlobal, IdHeaderCoderBase;

function ConvertCharset(AString: String; AMatrix: TCodeMatrix): String;
var
 i: Integer;
begin
 Result := "";
 for i:= 1 to Length(AString) do
   Result := Result + AMatrix[Ord(AString[i])];
end;

{ TIdHeaderCoderKOI8 }

class function TIdHeaderCoderKOI8.CanHandle(const ACharSet: String): Boolean;
begin
 Result := TextIsSame(ACharSet, "KOI8-R") or TextIsSame(ACharSet, "KOI8-U");
end;

class function TIdHeaderCoderKOI8.Decode(const ACharSet, AData: String): String;
begin
 if TextIsSame(ACharSet, "KOI8-R") then
   Result := ConvertCharset(AData, cmKoi8RToAnsi)
 else if TextIsSame(ACharSet, "KOI8-U") then
   Result := ConvertCharset(AData, cmKoi8UToAnsi);
end;

class function TIdHeaderCoderKOI8.Encode(const ACharSet, AData: String): String;
begin
 if TextIsSame(ACharSet, "KOI8-R") then
   Result := ConvertCharset(AData, cmAnsiToKoi8R)
 else if TextIsSame(ACharSet, "KOI8-U") then
   Result := ConvertCharset(AData, cmAnsiToKoi8U);
end;

initialization
 RegisterHeaderCoder(TIdHeaderCoderKOI8);
finalization
 UnregisterHeaderCoder(TIdHeaderCoderKOI8);

end.


 
Делфиец   (2010-10-27 10:31) [19]


> Сергей М. ©   (27.10.10 10:00) [18]


Проходится изобретать велосипед, когда не понимаешь как другие делают.
Еще ранее этот юнит "MsgHdrCoders" скачивал, но вот так и не разобрался  
проблемой стал этот модуль Uses IdHeaderCoderPlain
[DCC Error] MsgHdrCoders.pas(6): F1026 File not found: "IdHeaderCoderPlain.dcu"


 
Сергей М. ©   (2010-10-27 10:34) [20]

у тебя 9-ка что ли ?
этот юнит для 10-ки


 
Делфиец   (2010-10-27 10:52) [21]


> Сергей М. ©   (27.10.10 10:34) [20]


На свойствах компонентов версия определяется 10.1.5


 
Сергей М. ©   (2010-10-27 11:05) [22]

Тогда  IdHeaderCoderPlain.pas  обязан быть в папке с индейскими исходниками.
Значит ты не указал путь к этой папке в списке Library path



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.005 c
2-1287741449
kate158
2010-10-22 13:57
2011.01.16
парсер эксель файлов-хочу вытащить дату!


15-1285648147
KSergey
2010-09-28 08:29
2011.01.16
В чем смысл WebMoney на текущем историческом отрезке?


15-1285088261
Empleado
2010-09-21 20:57
2011.01.16
Ошибка при вызове ADsFreeEnumerator


2-1287532202
Константинов
2010-10-20 03:50
2011.01.16
приложение клиент сервер не обновляется БД


6-1233263581
Josh
2009-01-30 00:13
2011.01.16
Утечка памяти при мультипоточном сканировании сети NetShareEnum





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