|
| ANSI til ASCII Fra : Tom |
Dato : 21-12-05 16:28 |
|
Jeg får en fil fra et UNIX system i ANSI som jeg godt ville konvertere til
ASCII så danske tegn bliver læsbare i det DOS program som skal bruge filen.
Det skal lavers i TP7 og det er vel bare noget med at lave tabel opslag. Men
hvilken værdier skal konverteres til hvad ?
Der er sikkert andre som har lavet den slags konverterings programmer før,
men da jeg også skal kontrollere / modificere andre felter i filen, ville
jeg gerne lave det hele i samme program.
Er der nogen i gruppen her som kan give mig lidt info?
/Tom
| |
Nico de Jong (21-12-2005)
| Kommentar Fra : Nico de Jong |
Dato : 21-12-05 18:46 |
|
"Tom" <rsunderscorefilex@post9.tele.dk> skrev i en meddelelse
news:43a97478$0$38692$edfadb0f@dread12.news.tele.dk...
> Jeg får en fil fra et UNIX system i ANSI som jeg godt ville konvertere
til
> ASCII så danske tegn bliver læsbare i det DOS program som skal bruge
filen.
> Det skal lavers i TP7 og det er vel bare noget med at lave tabel opslag.
Men
> hvilken værdier skal konverteres til hvad ?
> Der er sikkert andre som har lavet den slags konverterings programmer
før,
> men da jeg også skal kontrollere / modificere andre felter i filen,
ville
> jeg gerne lave det hele i samme program.
> Er der nogen i gruppen her som kan give mig lidt info?
>
Hvis jeg husker korrekt, er det kun ÆØÅ der er problemet. De står efter Z
hhv z, så sekvensen er ...XYZ[\] og xy{|}
Der er mange måder at gøre det på; den rigtige måde er fsv afhængig af om
der skal laves mere af samme slags.
var
i, j : integer;
ch : char;
for i := 1 to length(inputfelt) do
begin
ch := inputfelt[i];
j := ord(ch);
case j of
begin
91 : ch := 'Æ';
92 : ch := 'Ø':
93 : ch := 'Å';
123 : ch := 'æ';
124 : ch := 'ø';
125 : ch := 'å';
else;
inputfelt[i] := ch;
end;
Hvis det skal være mere sofistikeret, kan du lave en string STRB
indeholdende alle ASCII tegn, men på Unix's plads, dvs
0123....ABC...XYZÆØÅabc...æøå (resten udfylder du selv)
Det du så kan, er at sige
outputfelt := inputfelt; (* for at få den rigtige længde *)
for i := 1 to length(inputfelt) do
outputfelt[i] := STRB[ord(inputfelt[i])];
Så har du en tegnkonverteringstabel der bare kan det hele.
Nico
| |
|
|