请教各位网友,问个在Delphi中设置字符串长度的问题:(0分)

  • 主题发起人 主题发起人 netbug
  • 开始时间 开始时间
N

netbug

Unregistered / Unconfirmed
GUEST, unregistred user!
请看:
procedure TForm1.Button1Click(Sender: TObject);
var
a:ansistring;
begin
edit1.text:=inttostr(sizeof(a));
setlength(a,10);
a:='1234567';
edit2.text:=inttostr(sizeof(a));
end;
我在两个edit中显示字符串a的长度都是4,我感到奇怪:
一:难道setlength(a,10)语句不起作用?a:='1234567'不是
可以赋给字符串a有7个字符吗?
二:setlength该如何用?
 
SizeOf 返回是指针的宽度,长度用Length.
 
late!
Sizeof --> 4(指针)
这与汇编类似
 
呵呵,sizeof 得到的是一个数据类型的大小
 
宽度?长度?
 
SizeOf 返回的是改变两类型的大小,SizeOf(integer)=4,SizeOf(double)=16,ansistring 其实是指针,所有的指针大小都是4。
假如你用Lenght(a)的话就会得到你想要的7了。
 
不好意思,Length(a)返回10。
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
edit2.text:=inttostr(length(edit1.text));
end;
 
yes,sizeof()返回的指针的长度,返回字串长度应用Length();
 
直接定义: var a: string
在DELPHI4中支持长字符串.
试一试.
 
呵呵,你知道 sizeof(astring) 返回的 4 是什么意思吗?
是 4 位,就是说 delphi 的字符串的最大长度是 FF FF FF FF (即 2G bytes)
 
接受答案了.
 
后退
顶部