PDA

Просмотр полной версии : Процедура смена кодировки


Ghost
30.10.2002, 18:04
Кто-нибудь может подкинуть процедуру смены кодировки из win-1251 в dos (ansi -> ascii)?

RaZEr
30.10.2002, 19:39
В Delphi есть функции, в Си тоже . Можно также все руками перекодировать . Изъясняйся подробнее .

DJLOVE
17.12.2002, 05:43
http://www.ascii-art.de/ascii/def/dj.txt
как его перекопироват без того чтоб линии криво начали с/ежать в бока

а то когда я вставляю в сервера ИНФО (информация которая показываетса при загрузки ФТП) в ФТП клиенте показивается КРИВО , да и в блокноте тоже

RaZEr
18.12.2002, 01:41
Криво или не криво зависит от настроек конкретного пользователя . Если стоит моноширый шрифт (Sans-serif,Courier и т.д.) то будет ровно, если нет - криво .

eXtreme
19.12.2002, 11:39
Если нужен оригинал, идите на хоумпагу автора текста.

{*************************************************************}
{ Russian Code Tables unit for Delphi 16/32 }
{ Version: 1.0 }
{ Author: Aleksey Kuznetsov }
{ E-Mail: aleksey@utilmind.com }
{ Home Page: http://www.utilmind.com }
{*************************************************************}

unit RussianCodeTables;

interface

function DOSToWin(St: String): String;
function WinToDOS(St: String): String;

implementation

const
DOS_2_Win: Array[$80..$FF] of Byte = (
$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF,
$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF,
$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF,
$B0,$B1,$B2,$A6,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$AC,
$C0,$C1,$C2,$C3,$C4,$86,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF,
$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$87,$D9,$DA,$DB,$DC,$DD,$DE,$DF,
$F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,
$A8,$B8,$AA,$BA,$AF,$BF,$A1,$A2,$B0,$F9,$B7,$FB,$B9,$A4,$FE,$A0);

Win_2_DOS: Array[$80..$FF] of Byte = (
$3f,$3f,$27,$3f,$22,$3a,$c5,$d8,$3f,$25,$3f,$3c,$3f,$3f,$3f,$3f,
$3f,$27,$27,$22,$22,$07,$2d,$2d,$3f,$54,$3f,$3e,$3f,$3f,$3f,$3f,
$ff,$f6,$f7,$3f,$fd,$3f,$b3,$15,$f0,$63,$f2,$3c,$bf,$2d,$52,$f4,
$f8,$2b,$49,$69,$3f,$e7,$14,$fa,$f1,$fc,$f3,$3e,$3f,$3f,$3f,$f5,
$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8a,$8b,$8c,$8d,$8e,$8f,
$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9a,$9b,$9c,$9d,$9e,$9f,
$a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$aa,$ab,$ac,$ad,$ae,$af,
$e0,$e1,$e2,$e3,$e4,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ee,$ef);

function DOSToWin(St: String): String;
var
i: Integer;
begin
i := Length(St);
if i <> 0 then
for i := 1 to i do
if byte(St[i]) > $7F then
St[i] := char(DOS_2_Win[byte(St[i])]);
Result := St;
end;

function WinToDOS(St: String): String;
var
i: Integer;
begin
i := Length(St);
if i <> 0 then
for i := 1 to i do
if byte(St[i]) > $7F then
St[i] := char(Win_2_DOS[byte(St[i])]);
Result := St;
end;

end.

RaZEr
19.12.2002, 21:32
Если ты не заметил, мы говорим о другом ...

eXtreme
20.12.2002, 09:28
Кто это ВЫ? Автор вопроса не уточнял что он конкретно имел ввиду, а на поставленный им вопрос я дал правильный ответ. Так что попрошу... В первую очередь мой ответ прозвучал для него.

RaZEr
20.12.2002, 22:32
Вот так и получается флейм, когда смотрят только на вопрос, а топик не читают ...