奇怪的类型转化问题.在线等高手解决.(200分)

  • 主题发起人 主题发起人 startzero
  • 开始时间 开始时间
S

startzero

Unregistered / Unconfirmed
GUEST, unregistred user!
var<br>a:string;<br>s,x,y:string;<br>lef,ref:byte;<br>begin<br>edit1.Text:='188';<br>edit2.Text:='178';<br>x:=trim(edit1.Text);<br>y:=trim(edit2.Text);<br>lef:=strtoint(copy(x,1,2));<br>ref:=strtoint(copy(y,1,2));<br>a[1]:=chr(lef);<br>a[2]:=chr(ref);<br>edit3.Text:=a;<br>汉字"疾" &nbsp;对应ASCII字节188,178<br>直接给lef=188,ref=178不会报错.上面这样就会报错.为什么
 
急急急,有没高手知道原因啊,要不给个办法也行啊,就是将内存中取得的188,178转成汉字.
 
楼主的 a 在赋值前是不是忘了分配空间了?试试在 a[1]:=xx 之前加上 SetLength(a,2) 吧<br>&nbsp; 另外, strtoint(copy(x,1,2)) 中的Copy应该是多余的, 直接 strtoint(x) 即可。<br><br>最直接的写法: edit3.Text:=Char(StrToInt(edit1.Text))+Char(StrToInt(edit2.Text))
 
用了setlength后运行不报内存错,但问题没有解决.得不到汉字.奇怪,为什么直接188,178附值可以得到汉字.转个变量就不行了
 
不好意思,解决了.就是内存没分配.晕.原来以为string不用先分配内存.上面的代码有问题copy错了,所以没得到汉字
 
后退
顶部