Преобразование в 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; |
Это конвертирует любую строку... Можно доработать ее для того, чтобы она могла преобразовывать другие типы данных... Но если вам, к тому же, нужны дополнительные преобразования и обработка данных, то стоит задуматься о приобретении специализированного программного обеспечения...
- Matthew Augier [000866]