IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Процедура смена кодировки (https://www.imho.ws/showthread.php?t=14367)

Ghost 30.10.2002 19:04

Процедура смена кодировки
 
Кто-нибудь может подкинуть процедуру смены кодировки из win-1251 в dos (ansi -> ascii)?

RaZEr 30.10.2002 20:39

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

DJLOVE 17.12.2002 06:43

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

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

RaZEr 18.12.2002 02:41

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

eXtreme 19.12.2002 12: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 22:32

Если ты не заметил, мы говорим о другом ...

eXtreme 20.12.2002 10:28

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

RaZEr 20.12.2002 23:32

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


Часовой пояс GMT +4, время: 21:56.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.