![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Quoted-printable реализация [D7, WinXP]
Chop Suey © (2004-07-11 11:31:00)Может кто-нибудь знает, где взять данный алгоритм кодирования е-майл? Или хотя --> на доки по этому делу. Благодарен...
Hazard (2004-07-14 01:03:00) [1]Ну а самому сделать? Здесь буквально пару строчек исправить!
Chop Suey (2004-07-12 19:14:00) [2]Сенкс ;) Было бы вообще хорошо если бы ты подогнал ф-цию Encode() :)
Hazard (2004-07-12 15:55:00) [3]Quoted_Pr_Code: array[0..153] of string =
('=CA','=C3','=D5','=CB','=C5','=CE','=C7','=DB','=DD','=DA','=C8','=DF','=C6','=D9','=D7','=C1','=D0','=D2','=CF','=CC' ,'=C4','=D6','=DC','=D1','=DE',
'=D3','=CD','=C9','=D4','=D8','=C2','=C0','=EA','=E3','=F5','=EB','=E5','=EE','=E7','=FB','=FD','=FA','=E8','=FF','=E6', '=F9','=F7','=E1','=F0','=F2',
'=EF','=EC','=E4','=F6','=FC','=F1','=FE','=F3','=ED','=E9','=F4','=F8','=E2','=E0',
'.','q','w','e','r','t','y','u','i','o','p','[',']','a','s','d','f','g','h','j','k','l',';','z','x','c','v','b','n','m', 'Q','W',
'E','R','T','Y','U','I','O','P','[',']','A','S','D','F','G','H','J','K','L',';','Z','X','C','V','B','N','M',',','.','/',
'1','2','3','4','5','6','7','8','9','0',
'!','@','#','$','%','^','&','*','(',')','_','+','|','~','-','=','\','=20');
Quoted_Pr_Sumbol: array[0..153] of string =
('й','ц','у','к','е','н','г','ш','щ','з','х','ъ','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','с','м','и','т','ь' ,'б','ю',
'Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','М','И','Т','Ь', 'Б','Ю',
'.','q','w','e','r','t','y','u','i','o','p','[',']','a','s','d','f','g','h','j','k','l',';','z','x','c','v','b','n','m', 'Q','W',
'E','R','T','Y','U','I','O','P','[',']','A','S','D','F','G','H','J','K','L',';','Z','X','C','V','B','N','M',',','.','/',
'1','2','3','4','5','6','7','8','9','0',
'!','@','#','$','%','^','&','*','(',')','_','+','|','~','-','=','\',' ');
function Decode(Str: String): String;
var
a,i, j, Index: Integer;
s:String;
Label m1;
begin
Result := '';
s:=Str;
i:=-2;
Repeat
inc(i,3);
m1:
s:=Copy(Str,i,3);
if Length(s)>0 then
if s[1]='=' then Begin
Index := -1;
for j := Low(Quoted_Pr_Code) to High(Quoted_Pr_Code) do
if Quoted_Pr_Code[j] = s then
begin
Index := j;
Break;
end;
if Index = -1 then Result := Result + s else Result := Result + Quoted_Pr_Sumbol[Index];
end {if s[1]}
else Begin Result := Result + s[1];inc(I); goto m1;end;;
Until i >= Length(Str);
end;
На тебе, что по твоему попроще:)
P.S. Кусок с работающего исходника, функцию под себя подправишь. (она подогнана под прогу). Свирепствуй!!! :)
Slym (2004-07-12 06:39:00) [4]TIdDecoderQuotedPrintable = class(TIdDecoder)
public
procedure DecodeToStream(AIn: string; ADest: TStream); override;
end;
TIdEncoderQuotedPrintable = class(TIdEncoder)
public
function Encode(ASrcStream: TStream; const ABytes: integer = MaxInt): string; override;
end;
Chop Suey (2004-07-11 19:47:00) [5]Там - не разобраться - используются много классов-предков, чтоб реализовать эту кодировку... Так же много юнитов и все такое.. Мне бы найти ПРОСТОЙ и алгоритм и без всяких наворотов....
Reindeer Moss Eater (2004-07-11 16:20:00) [6]IdCoderQuotedPrintable.pas