A.J. Venter wrote 6 lines
Ok,
I am getting more annoyed by the day with these PChars. Half the packages
use them, and I they don't seem to have any REAL still
have the 256 character limit (as I found out today when a program suddenly
broke) they cannot be easilly typecast to strings and back and who know how
many other idiotics in there.
(bear in mind I am talking from a TP/BP/Delphi standpoint - any differences are unlikely in this respect, but if there are then I expect someone will correct me)
This doesn't seem right - a PChar is just a pointer to a character, where the string follows on flat-form in memory, with a #0 at the end. Is this what's going wrong? Have you forgotton to add the null character at the end?
Show quoted text 7 lines
I use ansistrings for almost everything, but here I am creating a mysql
backed CGI when suddenly stuff starts mysteriously breaking, and I discover
(after nearly and hour of hunting through over 2000 lines of code) that
even though my ansistring CGI input works fine, any remotely big textarea
becomes to big to fit into a pchar, which is what I need to typecast (and
whoever heard of needing 4 different statements to typecase one string type
to another ?) my inputs to in order to do a mysql_query.
Are you sure it's not being typecast outside of your code and when passed as a pchar?
Ok, so besides the rant, can somebody please explain to me just what it is
that makes pchars popular, or even allows their continued existence ? Is
there something I missed ?
In the windows world, where C rules supreme, strings are simply placed into char arrays with a null character at the end. That's why they're so popular. I would have thought that the code behind ansistrings are pchars, but I may be wrong.
Or is just a case of C having pathetic string handling and pchar being a
pathetic string handler for pascal because it is designed ot be C
compatible ?
Yes, as most languages/APIs interoperate with C, they expect certain things as c strings, which pascals pchars are completely compatible with. Like I say, I am unaware of any length limit - there certainly isn't one in the Borland compilers.
/me bangs head against table repeatedly.
Ciao
A.J.
Martyn Ranyard
Free Software Advocate
email:
jabber:
msn: