Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sowas wie "PChar" nur sollte es "nil" geben wenn & (https://www.delphipraxis.net/47803-sowas-wie-pchar-nur-sollte-es-nil-geben-wenn.html)

Pseudemys Nelsoni 16. Jun 2005 13:44


Sowas wie "PChar" nur sollte es "nil" ge
 
Moin,

Titel klingt ein wenig doof, aber da die Zeichen begrenzt sind musste ich das halt so machen *g*

Also es geht darum, das ich mich frage, ob es eine ähnliche Funktion wie "PChar"(Ich weiss das es keine Funktion ist...) bereits gibt, die "Nil" zurückgibt wenn man einen leeren String übergibt?

Es ist so, das ich einer Funktion (aus einer DLL) Zeichenketten immer als PChar übergeben muss und leere Zeichenketten müssen als nil übergeben werden.

Nur ist das Ergebnis von PChar(S) ja nicht nil, selbst wenn S leer ist. Das verursacht in meinem Programm einen Fehler.

Nun habe ich folgendes versucht:

Delphi-Quellcode:
function NilPChar(const S: string): PChar;
begin
  if S = '' then Result := nil
  else Result := PChar(S);
end;
Das funktioniert auch.

Meine Frage zu dem ganzen: Gibt es so eine Funktion vielleicht schon oder war das richtig sie extra zu schreiben?

Vjay 16. Jun 2005 13:49

Re: Sowas wie "PChar" nur sollte es "nil"
 
War richtig sie zu schreiben, den Grund hast du ja auch gleich mit angeführt.

Pseudemys Nelsoni 16. Jun 2005 13:52

Re: Sowas wie "PChar" nur sollte es "nil"
 
Danke für deine Antwort. :???:

Luckie 16. Jun 2005 14:40

Re: Sowas wie "PChar" nur sollte es "nil"
 
Probier mal:
Delphi-Quellcode:
Pointer(s);
Oder
Delphi-Quellcode:
@s[1];
Zu mindest ersteres sollte nil zurückgeben, wenn ich es richtig in Erinnerung habe.

Vjay 16. Jun 2005 14:49

Re: Sowas wie "PChar" nur sollte es "nil"
 
@ Lucki

Pointer(s), was nutzt ihm das wenn der String Daten enthält kommt er darüber nicht ran, da der Pointer auf das erste Zeichen zeigen müsste und nicht auf die Längenangabe.

@s[1], funktioniert. Und ich bin wirklich erstaunt muss ich zugeben, aber man lernt ja nie aus :)

Luckie 16. Jun 2005 14:54

Re: Sowas wie "PChar" nur sollte es "nil"
 
Kann auch
Delphi-Quellcode:
Pointer(s[1]);
heißen, ich habe es schon länger nicht mehr benutzt.

Pseudemys Nelsoni 16. Jun 2005 15:37

Re: Sowas wie "PChar" nur sollte es "nil"
 
Besten Dank, das geht :thumb:

Gibt es denn keinen Fehler wenn ich auf @s[1] zugreife und da gar kein speicher reserviert ist?

Luckie 16. Jun 2005 16:09

Re: Sowas wie "PChar" nur sollte es "nil"
 
s ist doch ein String. Da übernimmt doch Delphi alles für dich.

Pseudemys Nelsoni 16. Jun 2005 16:18

Re: Sowas wie "PChar" nur sollte es "nil"
 
Moin Luckie,

das ist richtig, S ist ein string, aber wenn er leer ist, kann ich doch normal nicht auf @s[1] zugreifen oder?

leddl 16. Jun 2005 16:20

Re: Sowas wie "PChar" nur sollte es "nil"
 
Deswegen setzt du ja den Pointer auf das erste Zeichen. Ist der String leer, gibt es kein Zeichen, also bekommst du nil zurückgeliefert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.
Seite 1 von 2  1 2      

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