我正在使用Delphi 7,在处理字符串时发现了以下内容:
对于默认长度的字符串,即声明为 string 类型的字符串,其最大长度始终为 255。 ShortString 永远不允许增长到超过 255 个字符。
以上内容源自Delphi 字符串网站。
曾经我在 Delphi 代码中需要执行类似以下操作(针对一个非常大的查询):
var
sMyStringOF256characters : string;
ilength : integer;
begin
sMyStringOF256characters:='ThisStringisofLength256,ThisStringisofLength256,.....'
//length of sMyStringOF256characters is 256
end;
我遇到了这个错误
[错误]u_home.pas(38): 字符串文字最多可以有255个元素。
但是当我尝试这样做时
var
iCounter : integer;
myExtremlyLongString : string;
begin
myExtremlyLongString:='';
Label1.Caption:='';
for iCounter:=0 to 2500 do
begin
myExtremlyLongString:=myExtremlyLongString+inttostr(iCounter);
Label1.Caption:=myExtremlyLongString;
end;
Label2.Caption:=inttostr(length(myExtremlyLongString));
end;
结果是:
正如您所见,myExtremlyLongString 的长度为 8894 个字符。
为什么 Delphi 没有报错,指出 myExtremlyLongString 的长度超过了 255 个字符?
编辑:我使用了
SetLength(sMyStringOF256characters,300);
但它没有起作用。
array [0..N] of Char
。希望现在更清楚了。 - OnTheFly