Avatar billede codegryf Nybegynder
06. marts 2002 - 09:53 Der er 7 kommentarer og
1 løsning

Konvertering af ÆØÅ

Hej

Kan det virkelig passe at der ikke er nogen der kan give mig et eksempel på hvordan jeg kan konvertere en dos-tekst til windows-tekst (tidl. spørgsmål).
Det eneste jeg ved er at man åbenbart kan bruge functionen (AnsiToOem), men da der ikke står ret meget om den i hjælpen og da jeg er nybegynder, inden for Delphi, kan jeg ikke få det til at virke, så please hvis en kan gi mig et lille eksemplen, bare noget ala

function konvert(tekst: string):string;
begin
  result := AnsiToOem(tekst,xxx et eller andet);
end; 

Avatar billede borrisholt Novice
06. marts 2002 - 10:12 #1
prøv den her og se om ikke den virker :

function konvert(const tekst: string):string;
begin
  result := tekst;
  CharToOem( Pointer(Tekst), Pointer(Result));
end;


Jens B
Avatar billede nca Juniormester
06. marts 2002 - 10:52 #2
Jeg har lavet en procedure der går den modsatte vej, så det skulle være en saml sag at "vende" funktionen:

function TerminalSkrift(Tekst: String):String;
var
  x: Integer;
begin
  for x:=1 to length(Tekst) do begin
    if Tekst[x]='æ' then Tekst[x]:=#145;
    if Tekst[x]='Æ' then Tekst[x]:=#146;
    if Tekst[x]='ø' then Tekst[x]:=#155;
    if Tekst[x]='Ø' then Tekst[x]:=#157;
    if Tekst[x]='å' then Tekst[x]:=#134;
    if Tekst[x]='Å' then Tekst[x]:=#143;
  end;
  Result:=Tekst;
end;
Avatar billede codegryf Nybegynder
06. marts 2002 - 11:21 #3
>borrisholt
Det virker ikke, teksten "r›d bl† ‘bler" (rød blå æbler) bliver konverteret til "r>d blÅ 'bler", og jeg har indstillet windows til at bruge dansk tastatur og sprog.
Avatar billede codegryf Nybegynder
06. marts 2002 - 11:28 #4
>nca
Dit virker udmærket, men det vidste jeg godt i forvejen at det ville gøre.
Jeg vil dog ikke accepterer svaret, da det simpelhen ikk kan passe at et sprog som Delphi, (som vel er et professionel sprog), ikke har en function til at konvertere tekst. Alle andre (professionel) sprog jeg kender har en function ala Decode('Tekst der skal konverteres','ISOxxxxxx'), hvor ISOxxxx er lig med det tegnsæt der skal konverteres til.
Avatar billede borrisholt Novice
06. marts 2002 - 12:14 #5
Prøv lige at sende mig dit kode .. Så skal jeg få det til at virke ....

Jens b (jens@borrisholt.com)
Avatar billede nca Juniormester
06. marts 2002 - 13:08 #6
Hvis du er ude på at politisere og ikke at få løst et problem, så gider jeg ikke spilde min tid :-(
Avatar billede borrisholt Novice
06. marts 2002 - 13:25 #7
nå prøv den her :

procedure TForm1.Button1Click(Sender: TObject);
var
  s : String;
begin
  s := Edit1.Text;
  OemToChar(PChar(s), PChar(s));
  Edit1.Text := s;
end;


Jens B
Avatar billede codegryf Nybegynder
06. marts 2002 - 14:03 #8
>borrisholt
Tak, nu har jeg fået noget til at virke, men der er bare noget der undre mig.

Denne her virker.
function konvert(tekst: string):string;
begin
  result := tekst;
  OemToChar(PChar(tekst), PChar(result));
end;

Men hvorfor virker det her ikke??
function konvert(tekst: string):string;
var
s: string;
begin
  s := tekst;
  OemToChar(PChar(tekst), PChar(s));
  result := s;
end;
Det ser jo trods alt lidt mere normal ud, det jeg mener er at det ser mærkelig ud at starte med at sige 'result := tekst', result hører efter min mening til i bunden af en function.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester