关于delphi中赋值存在的问题?

zh_ff 2000-07-07 11:17:00
请问各位高手在delphi中是否有转意字符存在?如果我声明了一个字符数组,如何将一个十进制或十六进制的数字直接写入,也就是说在其对应的内存中是其自己而不是其对应的ASCII码。
我知道在C语言中可以做到,但在PASCAL中是否也能如此?如在C中我可以这样做:
char mydata[100];
....
mydata[0]='\x01';
mydata[1]='\x0';
mydata[2]='\x04';
mydata[3]='\x0';
mydata[4]='5';
mydata[5]='1';
mydata[6]='1';
mydata[7]='\x0';
如果在delphi中这些语句如何实现?谢谢!
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjt 2000-07-13
  • 打赏
  • 举报
回复
amkylix :
string[i]确实是从1开始,但pascal中字符串的首位[0]是存放字符串长的
它不同于c以\0结束的方法,所以delphi中本身就有pchar 和 string 之分
IAmKylix 2000-07-13
  • 打赏
  • 举报
回复
wjt说的很好,但有Bug:
string[i]应从1开始。
shylsz 2000-07-12
  • 打赏
  • 举报
回复
同意wjt的说法!
delphizhao 2000-07-12
  • 打赏
  • 举报
回复
wjt所说极是,#是一个转意字符,如果用十六进制,还可这样#$3F
meijg 2000-07-07
  • 打赏
  • 举报
回复
mydata[i]:=inttostr(3);
wjt 2000-07-07
  • 打赏
  • 举报
回复
你可以这样定义:
var
mydata :string[100];
begin
mydata[0]:=#2;mydata[1]:=#65; mydata[2]:=#66;
end;
其中mydata[0]表示字符串长度,这和C末尾加0有很大区别!

5,386

社区成员

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

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