Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.28;
Скачать: CL | DM;

Вниз

Как представить тему письма в нормальном виде?   Найти похожие ветки 

 
JanMihail   (2008-06-15 10:56) [0]

Узнаю при помощи POP3 тему письма, а мне выходит такая строка
?koi8-r?B?98vPztTBy9TFLtLV?= <admin@vkontakte.ru>

Как мне представить эту строку в нормальном виде?


 
Anatoly Podgoretsky ©   (2008-06-15 11:37) [1]

> JanMihail  (15.06.2008 10:56:00)  [0]

Как правило библиотека имеет функции раскодирования, смотри описание твоей библиотеки, если описания нет, то изучай ее исходники.


 
JanMihail   (2008-06-15 15:21) [2]

Решил проблему. Если у кого-то возникала такая проблема, то поможет такая функция:

//Использование функции
//AMsg типа TIdMessage предварительно инициализированная
 KoiToWin(AMsg.From.Address);
 KoiToWin(AMsg.Subject);



function KoiToWin(Str: string): string;
var
 i, j, index, x1, x2 : Integer;
 sTemp               : String;
begin
 Result := "";

 sTemp := Str;

 x1 := Pos("=?koi8-r?B?", sTemp);

 if x1 = 0 then
   x1 := Pos("=?KOI8-R?B?", sTemp);

 x2 := Pos("?=", sTemp);

 if (x2 - x1 > 0) and (x1 <> 0) and (x2 <> 0) then
 begin
   Str := copy(sTemp, x1 + 11, x2 - (x1 + 11));
   Str := TIdDecoderMIME.DecodeString(Str);

   for i := 1 to Length(Str) do
   begin
     index := -1;
     for j := Low(Win) to High(Win) do
       if Koi[j] = Str[i] then
       begin
         index := j;
         Break;
       end;

     if index = -1 then
       Result := Result + Str[i]
     else
       Result := Result + Win[index];
   end;

   delete(sTemp, x1, x2 - x1 + 2);
   insert(Result, sTemp, x1);
 end;

 Result := sTemp;
end;


 
JanMihail   (2008-06-15 15:22) [3]

Чуть не забыл. Два глобальных массива

var
 Koi: array[0..66] of Char = (
   "T", "Ё", "ё", "А", "Б", "В", "Г", "Д", "Е", "Ж",
   "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р",
   "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ",
   "Ы", "Ь", "Э", "Ю", "Я", "а", "б", "в", "г", "д",
   "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о",
   "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш",
   "щ", "ъ", "ы", "ь", "э", "ю", "я");

 Win: array[0..66] of Char = (
   "ё", "Ё", "T", "ю", "а", "б", "ц", "д", "е", "ф",
   "г", "х", "и", "й", "к", "л", "м", "н", "о", "п",
   "я", "р", "с", "т", "у", "ж", "в", "ь", "ы", "з",
   "ш", "э", "щ", "ч", "ъ", "Ю", "А", "Б", "Ц", "Д",
   "Е", "Ф", "Г", "Х", "И", "Й", "К", "Л", "М", "Н",
   "О", "П", "Я", "Р", "С", "Т", "У", "Ж", "В", "Ь",
   "Ы", "З", "Ш", "Э", "Щ", "Ч", "Ъ");


 
Hero ©   (2008-06-16 04:21) [4]

[2]

спасибо! Как раз кстати



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

Текущий архив: 2010.02.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
2-1261668633
alex123
2009-12-24 18:30
2010.02.28
Connect через svchost.exe


1-1211311780
@!!ex
2008-05-20 23:29
2010.02.28
Перехват копирования в Clip Board


15-1260821412
Elnino
2009-12-14 23:10
2010.02.28
Хранение файлов в БД


3-1235739432
Ega23
2009-02-27 15:57
2010.02.28
Ускорить работу с БД


13-1124537487
jenbond
2005-08-20 15:31
2010.02.28
Передача параметра из UserControl