Autor Beitrag
Akut-Programming
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Do 21.08.03 11:40 
:eyecrazy: Hey Leute! :?!?:

Ich hab ne wahrscheinlich sehr dumme Frage, aber ich muss sie stellen, da die Delphi Hilfe nur Müll anzeigt und in der Forumsuche zuviel raus kam und doch nichts dabei war. :autsch:

Wie wandle ich PChar in einen String um? Habs ja schon mit PCharToStr versucht, das funzt aber nich.

Falls es hilft, ich arbeite mit Delphi 5 Prof.
:oops:

_________________
Gruß,
Akut - Programming
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Do 21.08.03 11:44 
So: PChar(DeinePCharVariable)

D.h. praktisch gesehen:
ausblenden Delphi-Quelltext
1:
DeineStringVariable := PChar(DeinePCharVariable);					

Viele Grüße,

Matthias

P.S.: Auszug aus der Delphi-Hilfe:
Delphi-Hilfe hat folgendes geschrieben:
Konvertierungen langer Strings in PChar werden nicht automatisch durchgeführt. Aufgrund bestimmter Unterschiede zwischen Strings und PChars können bei Konvertierungen Probleme auftreten:

Lange Strings werden mit Referenzzählern verwaltet, PChars nicht.
Bei der Zuweisung an einen String werden die Daten kopiert, während ein PChar ein Zeiger auf eine Speicheradresse ist.
Lange Strings sind nullterminiert und enthalten zusätzlich eine Längenangabe, PChars sind einfach nullterminiert.

Dieser Abschnitt beschreibt Situationen, in denen diese Unterschiede zu schwer korrigierbaren Fehlern führen können.


Moderiert von user profile iconTino: Delphi- & Quote-Tags hinzugefügt.

_________________
Ha! Es compiliert! Wir können ausliefern!
derDoc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 623

Win Vista Prof
D2007 Prof
BeitragVerfasst: Do 21.08.03 14:46 
Alternativ gibt es auch die Möglichkeit mit
ausblenden Delphi-Quelltext
1:
Stringvariable := String(PCharvariable);					

eine Konvertierung durchzuführen.

_________________
MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
Akut-Programming Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 69

WinXP, Win2000
Delphi 7 Enterprise, Delphi 5 Prof.
BeitragVerfasst: Do 21.08.03 14:52 
Yo Danke! Habs hinbekomm.

_________________
Gruß,
Akut - Programming
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Do 21.08.03 14:54 
PChars sind zu Strings zuweisungskompatibel - dh du kannst deinen PChar ganz einfach deinem String zuweisen (auch ohne Typecasting):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
  p: PChar;
  s: String;

s := p;

Umgekehrt geht es icht so einfach... es gibt 3 Möglichkeiten einen String in einen PChar zu konvertieren:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  p: PChar;
  s: String;

p := PChar(s);
p := @s[1];
p := Pointer(s);

Je nachdem wie man castet werden intern noch zusätzliche Aktionen durchgeführt, aber das führt jetzt zu weit (und war ja auch nicht die eigentliche Frage).

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!