Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Anweisung funktioniert in Delphi 2005, aber nicht in Lazarus (https://www.delphipraxis.net/142196-anweisung-funktioniert-delphi-2005-aber-nicht-lazarus.html)

Delphi_gn7 23. Okt 2009 15:12


Anweisung funktioniert in Delphi 2005, aber nicht in Lazarus
 
Hallo,

ich habe mit Delphi 2005 folgenden Code in einem Programm:

Delphi-Quellcode:
        while not Eof(datei) do // Dateitext in s2 laden
              begin
               Readln(datei,s);
               CharToOem(PChar(s),PChar(s));
               s2:=s2+s;
              end;
Da Delphi 2005 bei mir nicht mehr funktioniert, benutze ich nun Lazarus, was mir in der Zeile
Delphi-Quellcode:
CharToOem(PChar(s),PChar(s));
den Error: Illegal type conversion: "ShortString" to "^Char" anzeigt. Was muss ich ändern, damit die Zeile in Lazarus funktioniert?

Mfg

DeddyH 23. Okt 2009 15:39

Re: Anweisung funktioniert in Delphi 2005, aber nicht in Laz
 
Wie ist s denn deklariert? Bei mir geht das nämlich (Lazarus 0.9.26.2).

Delphi_gn7 23. Okt 2009 16:59

Re: Anweisung funktioniert in Delphi 2005, aber nicht in Laz
 
s ist ein String - muss es in Lazarus vielleicht ne char Variable sein? dann müsste ich CharToOem wohl irgendwie mit einer schleife verbinden

edit: habe auch Lazarus 0.9.26.2 (Beta!)

uligerhardt 23. Okt 2009 17:29

Re: Anweisung funktioniert in Delphi 2005, aber nicht in Laz
 
Zitat:

Zitat von Delphi_gn7
s ist ein String - muss es in Lazarus vielleicht ne char Variable sein? dann müsste ich CharToOem wohl irgendwie mit einer schleife verbinden

Der Fehlermeldung nach zu urteilen, die du oben zitierst, scheint s ein ShortString zu sein, also kein "normaler" string. Den kannst du auch in Delphi nicht einfach so nach PChar casten. Schau mal nach, ob du irgendwelche Compileroptionen verstellt hast. In Delphi wäre das {$H+}, {$LONGSTRINGS ON} oder irgendwas mit "Huge-Strings" im Optionsdialog.

Delphi_gn7 23. Okt 2009 17:41

Re: Anweisung funktioniert in Delphi 2005, aber nicht in Laz
 
Zitat:

Zitat von uligerhardt
{$H+}, {$LONGSTRINGS ON}

Cool, jetzt geht#s :)

Vielen Dank :)

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz