Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Converting an array of char to a string...

Posted on 1998-03-21
7
464 Views
Last Modified: 2010-04-06
Hi...
  Very simple. How do I convert an array of char to a string variable? I have a variable x which is declared as array[1..200] of char and I have a string variable y. I simply want the contents of x to go into y. I tried the 'Strpas' function to convert a null-terminated string to Pascal type sting but it gave me an error 'Incompatible types : Array and PChar'. There must be an easy way to do this. Can you help?

Cheers!
   Shawn Halfpenny
   drumme59@sprint.ca
0
Comment
Question by:aztec
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 5

Expert Comment

by:ronit051397
ID: 1360687
procedure TForm1.Button1Click(Sender: TObject);
var A: array[1..200] of char;
begin
 FillChar(A, SizeOf(A), 'S');
 showmessage(StrPas(PChar(@A)));
end;
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1360688
Actually you can write:
showmessage(StrPas(@A));
0
 
LVL 4

Expert Comment

by:d003303
ID: 1360689
If you use D2 or D3, you could simply typecast with
y := String(x);

Slash/d003303
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 

Author Comment

by:aztec
ID: 1360690
Hello...
  I inadvertantly submitted this same question twice (..see my question history). It has already been answered. Please delet this one.

Regards,
   Shawn Halfpenny
0
 
LVL 4

Expert Comment

by:d003303
ID: 1360691
You have to reject the answer and delete the question yourself 'cause you are the owner of it. But the main thing is that it is solved.

Slash/d003303
0
 

Author Comment

by:aztec
ID: 1360692
OK, I rejected the answer, now how do I delete this question? There is no selection to delete it!

Shawn Halfpenny
0
 
LVL 6

Accepted Solution

by:
Stuart_Johnson earned 50 total points
ID: 1360693
This is easy.  Firstly, you cant convert an Array of Chars to a String which doesnt have a Zero Element.  Ie, you can convert an Array[0..199] of Char to a String (using StrPas), but you cant convert an Array[1..200] of Char to a String.

So, simply redeclare X as Array[0..199] of Char, use the StrPas function, Y := StrPas(X) and Bobs' your Uncle!

Unfortunately, there is no other way.  A PChar is a null terminated string - the first character depicts the length of the string.  Therefore, you need to start your character array with a zero element.

Hope this helps,

Stu
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question