想对一个多行的文本进行排版,要进行字符串的对齐操作,现想把如下格式的字符串:
The first line is your name
The second line is address
where are you born? BeiJing变成
The first line is your name
The second line is address
where are you born? BeiJing注意,yourname、is address、BeiJing这些要对齐的我想在它们的前边加入不定量的空格来实现对齐,但是如下
FinishedArray[k]:=NewArray[i]+SpaceNum*#9+NewArray[i+1];
是不合法的,不能用一个变量去乘一个空格,我试过,40*#9、40*' ',都不行
请问怎么才能在其中加入数量不定的空格而让它们对齐呢?
The first line is your name
The second line is address
where are you born? BeiJing变成
The first line is your name
The second line is address
where are you born? BeiJing注意,yourname、is address、BeiJing这些要对齐的我想在它们的前边加入不定量的空格来实现对齐,但是如下
FinishedArray[k]:=NewArray[i]+SpaceNum*#9+NewArray[i+1];
是不合法的,不能用一个变量去乘一个空格,我试过,40*#9、40*' ',都不行
请问怎么才能在其中加入数量不定的空格而让它们对齐呢?
var
I:Integer;
s:string;
begom
s:='';
for i:=0 to 10 do
begin
s:=s+' ';
end;
end;
函数就用楼上吧
var
I:Integer;
s:string;
begin
s:='';
for i:=0 to 10 do
begin
s:=s+' ';
end;
result:=s;
end;
...
...
Memo1.Lines.Add(Format('%-30s%s',['aaa','bbb']));
Memo1.Lines.Add(Format('%-30s%s',['aaaaaaa','bbbbbb']));
Memo1.Lines.Add(Format('%-30s%s',['aaaaaaaaaa','bbbbbbbbb']));
注意一些字体的空格和字母大小是不一样的,即使字符数一致,仍然不会对齐;这种情况下请选择宋体,中文=两个半角英文字符=两个半角空格。
memo1.lines.add(FinishedArray[i])
S := StringOfChar(' ', N); //产生空格
FinishedArray[k]:=Copy(NewArray[i] + cSpaceString, 1, 20) + NewArray[i+1];
FinishedArray[k]:=Copy(NewArray[i] + cSpaceString, 1, 20) + NewArray[i+1];
begin
a1:='The first line is your name';
a2:='The second line is address';
a3:='where are you born? BeiJing';
insert(a1,' ',8);
insert(a2,' ',10);
insert(a3,' ',13);
memo1.lines.add(a1);
memo1.lines.add(a2);
memo1.lines.add(a3);
end;
end.