AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String nach pAnsiChar casten

Ein Thema von TheMiller · begonnen am 31. Mai 2008 · letzter Beitrag vom 1. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:41
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!
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#2

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:45
Wie wäre es direkt mit PAnsiChar(String) ?
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:46
PAnsiChar(SaveDialog1.Filename);
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:47
Evtl. mag ja der Compiler nicht wenn du direkt das Property verwendest.
Delphi-Quellcode:
var
  str: AnsiString;
begin
  str := SaveDialog1.Filename;
  myPAnsiChar := PAnsiChar(str);
end;
Gleich mit AnsiString statt String gearbeitet damit der Code auch in Delphi 2008 funktioniert (Stichwort Unicode)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:49
Zitat:
Gleich mit AnsiString statt String gearbeitet damit der Code auch in Delphi 2008 funktioniert (Stichwort Unicode) Smile
Bist du da sicher?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#6

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:53
Egal welche der beiden Lösungsvorschläge ich benutze, die Meldung ändert sich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:54
Zitat von mkinzler:
Zitat:
Gleich mit AnsiString statt String gearbeitet damit der Code auch in Delphi 2008 funktioniert (Stichwort Unicode) Smile
Bist du da sicher?
Sicher nicht, aber micht würde es wundern wenn es geht nachdem String = Unicodestring definiert ist. Außer es ist per Compilermagic beide Casts erlaubt.

Delphi-Quellcode:
var
  str: Unicodestring;
begin
  AnsiPointer := PAnsiChar(str);
  WidePointer := PWideChar(str);
end;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 15:56
Zitat von DJ-SPM:
Egal welche der beiden Lösungsvorschläge ich benutze, die Meldung ändert sich nicht.
Dann zeig mal ein bisschen Code, es solte nämlich normalerweise funktionieren.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 16:01
Ich habe ein Array, welches immer 2 Inhalte hat. Es ist folgendermaßen definiert:

commands: array[0..1] of pChar 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.

Delphi-Quellcode:
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
Compiler sagt bei beiden Versionen, dass die Typen String und pAnsiChar inkompatibel sind.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: String nach pAnsiChar casten

  Alt 31. Mai 2008, 16:08
Dein Vorgehen verstehe ich irgendwie nicht 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);
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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