DelphiFAQ Home Search:

Casting a (long) String to a PChar

 

comments1 comments. Current rating: 4 stars (1 votes). Leave comments and/ or rate it.

There are three ways to cast a String to a pchar:


  1. typecast as pchar
  2. take the address of the first character:
  3. and typecast the string to a generic pointer.


For a comparison, read the comments in the following code snippet:

var
  s : String; // long
  p : PChar;
begin
  // Typecast as pchar 
  // Typecasting a string to a PChar returns the address of the first char
  // or if the string was empty it returns the address of a null. 
  // Result p is guaranteed to be non-nil!
  p := PChar(s);
  
  // Take address of the first character
  // this forces a call to UniqueString() to ensure that the pchar returned
  // points to a unique string only referenced by s and not by another string:
  p:=@s[1];


  // Typecast the string to an untyped pointer
  // The simplest and fastest solution; no hidden function call is generated.
  p := pointer(s);
end.

Content-type: text/html

Comments:

2007-02-09, 19:37:59
anonymous from United States  
rating
As simple as this was, it made me realize something important that I was overlooking.
Kudos for that. Thanks.

 

 

NEW: Optional: Register   Login
Email address (not necessary):

Rate as
Hide my email when showing my comment.
Please notify me once a day about new comments on this topic.
Please provide a valid email address if you select this option, or post under a registered account.
 

Show city and country
Show country only
Hide my location
You can mark text as 'quoted' by putting [quote] .. [/quote] around it.
Please type in the code:

Please do not post inappropriate pictures. Inappropriate pictures include pictures of minors and nudity.
The owner of this web site reserves the right to delete such material.

photo Add a picture: