Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PChar zu String! (https://www.delphipraxis.net/7158-pchar-zu-string.html)

1PM 4. Aug 2003 11:51


PChar zu String!
 
Hallo!

Wie wandelt man einen PChar in einen STring um? ICh bin schon langsam am verzweifeln, habe schon vieles ausprobiert!

Danke im voraus!

Gruß
1PM

sakura 4. Aug 2003 12:05

Re: PChar zu String!
 
Im Notfall einfach die PChar Variable als String casten.
Delphi-Quellcode:
  strVar := String(pchVar);
ansonsten empfehle ich die Funktion StrPas
Delphi-Quellcode:
  strVar := StrPas(pchVar);
...:cat:...

1PM 4. Aug 2003 12:08

Re: PChar zu String!
 
HEy Sakura!

Danke für die Antwort, fkt. aber leider nicht!

Code:
function datetoday(payoffdayOP: integer): string;
begin
 case payoffdayOP of
   1   : Result:='Montag';
   2   : Result:='Dienstag';
   3   : Result:='Mittwoch';
   4   : Result:='Donnerstag';
   5   : Result:='Freitag';
   6   : Result:='Samstag';
   7   : Result:='Sonntag';
 end;

 if (payoffdayOP>7) or (payoffdayOP<1)
   then Result:='Ruhetag';
end;



var    
timeOP1, timeop2: string;

      timeOP1:=strpas(datetoday(payoffdayxy));
      timeOP2:=strpas(datetoday(payoffday));
      Button := Application.MessageBox(timeop1+'  '+timeop2 ,'Abfrage', 36);

Gruß 1PM

r_kerber 4. Aug 2003 12:16

Re: PChar zu String!
 
ich denke in Deinem Beispiel ist das StrPas einfach zuviel, da die Funktion datetoday ja auch schon String zurückliefert. Also sollte eigentlich keine weitere Typumwandlung erforderlich sein!
Und noch ein Tip für Deine case-Anweisung: Wenn Du zusätzlich noch einen else-Zweig einbaust, kannst Du Dir die if-Abfrage sparen.

Gast 4. Aug 2003 12:18

Re: PChar zu String!
 
Vielleich so?

Code:
var
timeOP1, timeop2: string;
begin
  timeOP1:=datetoday(payoffdayxy);
  timeOP2:=datetoday(payoffday);

Button := Application.MessageBox(strpas(timeop1)+'  '+strpas(timeop2) ,'Abfrage', 36);

end;

oder

Button := Application.MessageBox(PChar(timeop1)+'  '+Pchar(timeop2) ,'Abfrage', 36);

Luckie 4. Aug 2003 12:19

Re: PChar zu String!
 
Die Messagebox erwartet eine PChar und keinen String!

Delphi-Quellcode:
timeOP1 := datetoday(payoffdayxy);
timeOP2 := datetoday(payoffday)
Button := Application.MessageBox(PChar(timeop1+'  '+timeop2) ,'Abfrage', 36);
Und nimm statt der 36 mal die Konstante, sonst weißt du in zwei Wochen nicht mehr, was die macht / anzeigt.

Motzi 4. Aug 2003 12:21

Re: PChar zu String!
 
Zitat:

Zitat von sakura
Im Notfall einfach die PChar Variable als String casten.
Delphi-Quellcode:
  strVar := String(pchVar);
ansonsten empfehle ich die Funktion StrPas
Delphi-Quellcode:
  strVar := StrPas(pchVar);
...:cat:...

Ich weiß ja nicht wie das bei deiner Delphi-Version ist, aber bei meiner schaut StrPas ungefähr so aus:
Delphi-Quellcode:
function StrPas(p: Pchar): String;
begin
  Result := String(p);
end;
:roll: ;) (hab den Code aus dem Kopf geschrieben, da ich momentan kein Delphi zur Hand hab, aber soweit ich mich erinnern kann macht die Funktion StrPas auch nichts andres als einen einfachn Cast auf String!)

1PM 4. Aug 2003 12:32

Re: PChar zu String!
 
:freak: :freak: :freak: MessageBox(PChar, PChar, 36); :freak: :freak: :freak:

Das war zu viel Alk gestern :?

DAnke für eure Hilfe

sakura 4. Aug 2003 12:35

Re: PChar zu String!
 
Zitat:

Zitat von Motzi
Ich weiß ja nicht wie das bei deiner Delphi-Version ist...

Drastischer, aber dessen war ich mir jetzt auch nicht bewusst.
Delphi-Quellcode:
function StrPas(const Str: PChar): string;
begin
  Result := Str;
end;
...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 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