Преобразование в EBCDIC

Сам алгоритм преобразования очень прост...

 

Const
a2e : array [0..255] of byte =
(000,001,002,003,055,045,046,047,022,005,037,011,012,013,014,159,
016,017,018,019,182,181,050,038,024,025,063,039,028,029,030,031,
064,090,127,123,091,108,080,125,077,093,092,078,107,096,075,097,
240,241,242,243,244,245,246,247,248,249,122,094,076,126,110,111,
124,193,194,195,196,197,198,199,200,201,209,210,211,212,213,214,
215,216,217,226,227,228,229,230,231,232,233,173,224,189,095,109,
121,129,130,131,132,133,134,135,136,137,145,146,147,148,149,150,
151,152,153,162,163,164,165,166,167,168,169,192,106,208,161,007,
104,220,081,066,067,068,071,072,082,083,084,087,086,088,099,103,
113,156,158,203,204,205,219,221,224,236,252,176,177,178,062,180,
069,085,206,222,073,105,154,155,171,015,186,184,183,170,138,139,
060,061,098,079,100,101,102,032,033,034,112,035,114,115,116,190,
118,119,120,128,036,021,140,141,142,065,006,023,040,041,157,042,
043,044,009,010,172,074,174,175,027,048,049,250,026,051,052,053,
054,089,008,056,188,057,160,191,202,058,254,059,004,207,218,020,
225,143,070,117,253,235,238,237,144,239,179,251,185,234,187,255);

Procedure StringA2E(var StringToConvert:String);
Var     Loop:Integer;
begin
For Loop := 1 to length(StringToConvert) do
StringToConvert[Loop] := a2e[ord(StringToConvert[Loop])];
end;

Это конвертирует любую строку... Можно доработать ее для того, чтобы она могла преобразовывать другие типы данных... Но если вам, к тому же, нужны дополнительные преобразования и обработка данных, то стоит задуматься о приобретении специализированного программного обеспечения...