Win -> ISO i odrwrotnie

0

dajcie mi funkcje konwertujaca znaczki w ISO(numerek oznaczajacy ce:)) na Windows 1250 (chyba) i odrwrotnie, bo nie chce mis sie bawic/ne mam czasu itp;))

0

Hmm. Jeżeli znasz odpowiadające sobie kody znaków, to zrób tak:

type
TConvertArray = array[Char] of Char;

var
WinToIso: TConvertArray;
IsoToWin: TConvertArray;

procedure InitArrays;
var
c: Char;
begin
for c:=#0 to #255 do begin
WinToIso[c]:=c;
IsoToWin[c]:=c;
end;
WinToIso[#kod_klawisza_win]:=#kod_klaiwsza_iso;
IsoToWin[#kod_klawisza_iso]:=#kod_klaiwsza_win;
end;

function Win2Iso(s: string): string;
var
i: Integer;
begin
SetLength(Result, Length(s));
for i:=1 to Length(s) do Result[i]:=WinToIso[s[i]]
end;

Mniej więcej tak.

0

mi tez to bylo/jest potrzebne i szukalem w archiwum, to znalazlem post w ktorym bodajze wlasnie Ty Vogel dales podobna odpowiedz, ale nikt nie podal na razie tych kodow znakow. I cholera nigdzie nie moge tego znalezc :).

0

Na gnu.org poszukaj źródeł programu iconv - tam masz wszytkie możliwe kodowania i ze spokojem znajdziesz to, czego szukasz :)

0

Ściągnij źródła b4p. Tam jest konwersja (ale oczywiście jedynie polskich znaków :) )

0

unit CodePage;

interface

type ConvArray = Array[char] of char;

function ISOToWin1250(s : String) : String;
function Win1250ToISO(s : String) : String;

implementation

var
iso2win, win2iso : ConvArray;
i : Byte;

function ISOToWin1250(s : String) : String;
var i : Integer;
pc : PChar;
begin
pc := PChar(S);
for i := 1 to length(s) do
pc[i] := iso2win[pc[i]];
Result := s;
end;

function Win1250ToISO(s : String) : String;
var i : Integer;
pc : PChar;
begin
pc := PChar(S);
for i := 1 to length(s) do
pc[i] := win2iso[pc[i]];
Result := s;
end;

initialization
// Przygotowuję dane do tablic konwersji
for i := 0 to 255 do
begin
iso2win[Chr(i)] := chr(i);
win2iso[Chr(i)] := chr(i);
end;

iso2win['±'] := 'ą';
iso2win['ˇ'] := 'Ą';
iso2win['¶'] := 'ś';
iso2win['¦'] := 'Ś';
iso2win['Ľ'] := 'ź';
iso2win['¬'] := 'Ź';

win2iso['ą'] := '±';
win2iso['Ą'] := 'ˇ';
win2iso['ś'] := '¶';
win2iso['Ś'] := '¦';
win2iso['ź'] := 'Ľ';
win2iso['Ź'] := '¬';
end.

Tylko polskie, ale jak chcesz więcej to też mam

0

thx johny;))

1 użytkowników online, w tym zalogowanych: 0, gości: 1