string or pchar

chons 2001-08-09 05:49:30
小弟在编程过程.遇到一个问题要识别一个数是不是16进制的数.
var
strRGB:string[6]
begin
for i:=0 to 5 do
begin
strRGB[i]:=copy(edit1.text,i+1,1);//怎么把字符串给分离开?
//这样可以吗?
case strRGB[i] of //*
A:hex2dec:=10;
B:
...
F:hex2dec:=15;
else hex2dec:=strRGB[i];
end;
但按F9后.报错说*处STRING和PCHAR不对应.请问该怎么办?
...全文
164 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
say 2001-08-10
  • 打赏
  • 举报
回复
up
say 2001-08-09
  • 打赏
  • 举报
回复
哦,看错了,是处出错吗?
用string ->PChar : PChar(string)、 PChar ->String :Strpas(pchar)试试吧
我也不清楚了#-)
say 2001-08-09
  • 打赏
  • 举报
回复
同意楼上!
edit1.text是string吧,用pchar(string)转换一下试试。
我也很迷糊,赫赫~~~~~~~~
yousp 2001-08-09
  • 打赏
  • 举报
回复
copy函数好象只处理pchar类型的
a_fee 2001-08-09
  • 打赏
  • 举报
回复
string的第一个字符是string[1]
在实际的堆栈里前面还有内存大小,引用记数,字符个数。
水之手 2001-08-09
  • 打赏
  • 举报
回复
String;String[n]/ShortString;PChar三者格式是不同的,
强烈建议看《Delphi 5 开发人员指南》,看了之后你就一清二楚了。
seewell 2001-08-09
  • 打赏
  • 举报
回复
我也迷糊了,关注,提前
bill_lasker 2001-08-09
  • 打赏
  • 举报
回复
对于pChar和String我现在还是搞不清,看了联机帮助,还是不行
XXLong 2001-08-09
  • 打赏
  • 举报
回复
up
XXLong 2001-08-09
  • 打赏
  • 举报
回复
up
XXLong 2001-08-09
  • 打赏
  • 举报
回复
我要挣分!Sorry!
valhalla 2001-08-09
  • 打赏
  • 举报
回复
stringhe和Pchar的格式不一样
Pchar纯粹指向一个字符串
string第一位是字符串的长度,所以string[6]有7位
ch81 2001-08-09
  • 打赏
  • 举报
回复
你试试下面的。
procedure TForm1.Button1Click(Sender: TObject);
var
strRGB:string[6];
var hex2dec:integer;
var i:integer;
begin
for i:=1 to 6 do
begin
strRGB[i]:=edit1.Text[i];
case strRGB[i] of //*
'A':hex2dec:=10;
'B':hex2dec:=11;
'C':hex2dec:=12;
'D':hex2dec:=13;
'E':hex2dec:=14;
'F':hex2dec:=15;
else hex2dec:=StrToInt(strRGB[i]);

end;
ShowMessage(IntToStr(hex2Dec));
end;
end;
chechy 2001-08-09
  • 打赏
  • 举报
回复
string是从第1位开始,而PChar是从第0位开始。
首先你的字符串就越界了。
可以这样:
for i := 1 to 6 do
StrRgb[i] := Edit1.Text[i];
...

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧