/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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







Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste