第一次声明AnsiString时,它是没有长度的,因此在字符串中就没有为字符分配空间。为了对字符串分配空间,用一行字母或另一个字符串对它进行赋值,或者用SetLength()过程,就像下面所列出来的:
Var
S:String; //字符初始化时,没有长度。
begin
S:=‘Doh!’ //为字符串的字母分配足够的空间
{或者}
S:= OtherString ;// 增加OtherString的引用计数,
//{假定OtherString指向一个合法的字符串}
{或者}
SetLength(S,4);//分配4个字符的空间
end;
能像数组一样对字符串进行索引,但注意索引不能超出字符串的长度,例如:下面代码会引起一个错误;
var
S:Stirng;
begin
S[1] :='a'; //不能工作,因为S没有被分配空间
end;
然而,代码改成如下,就能正常工作了;
var
S: String;
begin
SetLength(S,1);
S[1] :='a'; //现在S有足够空间来容纳字符
end;