![]() |
String nach pAnsiChar casten
Hallo!
Ich habe einen String (SaveDialog1.Filename) und muss ihn nun in einen pAnsiChar umwandeln. Casten mit "pChar" klappt nicht. Habe schon ein bissl gegoogelt, aber finde keine Lösung. Compiler sagt immer: Inkompatible Typen: 'String' und 'PAnsiChar'... Danke im Voraus! |
Re: String nach pAnsiChar casten
Wie wäre es direkt mit PAnsiChar(String) ?
|
Re: String nach pAnsiChar casten
Delphi-Quellcode:
PAnsiChar(SaveDialog1.Filename);
|
Re: String nach pAnsiChar casten
Evtl. mag ja der Compiler nicht wenn du direkt das Property verwendest.
Delphi-Quellcode:
Gleich mit AnsiString statt String gearbeitet damit der Code auch in Delphi 2008 funktioniert (Stichwort Unicode) :-)
var
str: AnsiString; begin str := SaveDialog1.Filename; myPAnsiChar := PAnsiChar(str); end; |
Re: String nach pAnsiChar casten
Zitat:
|
Re: String nach pAnsiChar casten
Egal welche der beiden Lösungsvorschläge ich benutze, die Meldung ändert sich nicht.
|
Re: String nach pAnsiChar casten
Zitat:
Delphi-Quellcode:
var
str: Unicodestring; begin AnsiPointer := PAnsiChar(str); WidePointer := PWideChar(str); end; |
Re: String nach pAnsiChar casten
Zitat:
|
Re: String nach pAnsiChar casten
Ich habe ein Array, welches immer 2 Inhalte hat. Es ist folgendermaßen definiert:
Delphi-Quellcode:
Jetzt möchte ich Eintrag 0 mit einem dem Dateinamen von dem Savedialog füllen. Doch immer kommt diese Meldung. Sorry, aber mehr Code gibt es nicht. Das ist echt alles.
commands: array[0..1] of pChar
Delphi-Quellcode:
Compiler sagt bei beiden Versionen, dass die Typen String und pAnsiChar inkompatibel sind.
var
filename: String; fname: pAnsiChar; begin if (SaveDialog1.Execute) then begin filename:=SaveDialog1.Filename; fname:=pAnsiChar(filename); end; commands[0]:='[switches etc.] -f '+filename'; // v1 bzw. commands[0]:='[switches etc.] -f '+filename'; // v2 |
Re: String nach pAnsiChar casten
Dein Vorgehen verstehe ich irgendwie nicht :gruebel: Zuerst den FileName in einen String, dann den String zu PAnsiChar casten und dann in ein Array of PAnsiChar einen String UND einen PAnsiChar packen.. Das geht ganz einfach so:
Delphi-Quellcode:
if SaveDialog1.Execute then
commands[0] := PAnsiChar('[switches etc.] -f ' + SaveDialog1.FileName); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz