怎么把String类型的数据转换成pchar型的
strpcopy()不管用,有什么别的方法? 问题点数:20、回复次数:13Top
1 楼angle097113(深思不解)回复于 2004-09-02 23:31:52 得分 1
直接pchar()强制转化可以么Top
2 楼linzhengqun(风。我回来了)回复于 2004-09-02 23:37:24 得分 1
PChar(Str)强制转换,
顺便说一句,以后问问题不要在非技术区,到其它区去问Top
3 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-09-02 23:44:16 得分 1
PCHAR(AString)就OK了Top
4 楼e5022(helpid)回复于 2004-09-03 01:49:34 得分 1
pchar类型是一个指针类型,可以这样定义一个char数组,固定长度,然后把string类型通过内存流操作复制到此区域,然后就是把那个pchar类型的变量赋值于char型数组名了。
OK,听懂了么?我是糊涂了。Top
5 楼dafeifei(大飞飞)回复于 2004-09-03 07:45:04 得分 1
pchar();肯定行,我百试不爽Top
6 楼dext(德克斯特)回复于 2004-09-03 07:55:18 得分 2
PChar(WideString)不行!记住!Top
7 楼ingener(祝福)回复于 2004-09-03 08:32:59 得分 1
pchar();这个问题很难吗?为什么迟迟不结帖呢?Top
8 楼yinweixian(blackyin)回复于 2004-09-03 08:55:14 得分 2
直接pchar()强制转化Top
9 楼capoatguitar(菠萝蜜汁红塔山)回复于 2004-09-03 09:02:55 得分 2
“pchar()”强制转化,同时也把帖子强制转化到技术区去“技术区(你的帖子)”。Top
10 楼sunspeedzy(子秦)回复于 2004-09-04 22:35:55 得分 0
procedure TForm2.Button1Click(Sender: TObject);
var re: integer;
strtop: array [0..10] of char;
begin
strtop:=pchar(edit1.text); //错误,incompatible types:array和pchar
re:=winexec('......'+strtop,sw_shownormal);//错误,类型不符:string和pchar
end;
怎么改动才能正确?Top
11 楼bigbigfans(小骁)回复于 2004-09-04 22:56:44 得分 2
strtop要定义为指针Top
12 楼Shiyl(云淡风清 卷舒自在)回复于 2004-09-04 23:34:56 得分 3
procedure TForm2.Button1Click(Sender: TObject);
var re: integer;
strtop: String;
begin
strtop:=edit1.text;
re:=winexec('......'+Pchar(strtop),sw_shownormal);
end;
直接这样就ok
ps:把char型转成string型,用StrPas(const Str: PChar): string;这个函数。
----------------------------------------------------------------
花自飘零水自流,一种相思,两处闲愁。
此情无计可消除,才下眉头,又上心头。
----------------------------------------------------------------Top
13 楼yueyixing(圣石传说)回复于 2004-09-05 11:38:24 得分 3
如果使用了将AnsiString字符串强制转换为PChar类型的函数和过程,在使用结束后,要手工把他的长度恢复为原来以null结束的长度。
STRUTILS单元中的RealizeLength()函数可以实现这一点,例如:
procedure RealizeLength(var s:string);
begin
SetLength(s,strlen(pchar(s)));
end;
调用ReallizeLength();
var
s:string;
begin
setlength(s,256); //重要,首先给字符串分配空间
//调用函数,s现在包含目录字符串
getWindowDirectory(Pchar(s),256);
Realizelength(s);
end;Top




