“空格函数”是什麽?(50分)

  • 主题发起人 主题发起人 张强
  • 开始时间 开始时间

张强

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个字符串“3.45”,想把它变成N位,N是个Integer型变量,
那麽,就要在“3.45”前面加上(N-4)个空格,这个空格函数是什麽呢?
另:FOXPRO中的RIGHT(),LEFT(),SUBSTR(),ALLTRIM(),
PADC()在Delphi中是不是也有相应的函数?是什麽呢?
谢谢!
 
用Insert(Source: string;
var S: string;
Index: Integer);
如:for i:=1 to n-4do
Insert('n',s,1);
 
format('%'+inttostr(n-4)+'.2n', [3.45]);
或者
stringofchar(' ',n-4)+'3.45';
 
trim=alltrim
copy=substr
left和right可以用delete函数代替:
function left(s:string;i:integer):string
begin
result:=substr(s,1,i);
end;
function right(s:string;i:integer):string
begin
delete(s,1,len(s)-i);
result:=s;
end;
function padc(s:string;i:integer;t:string=' '):string
var
j:integer;
begin
for j:=1 to cell((i-len(s))/2)do
result:=result+t;
result:=result+s;
for j:=1 to floor((i-len(s))/2)do
result:=result+t;
end;
 
学到了不少东西. :-)
 
试试inttostrf吧?
相信能得到满意的答复.
 
>>inttostrf
有这个函数吗?(我用的D3)
其实Copy函数几乎全够了。
function Space(N: Integer): string;
begin
SetLength(Result, N);
FillChar(' ', N, Result[1]);
end;

function Left(Str: string;I:integer):string
begin
Result:=Copy(Str,1,i);
end;

function Right(Str:string;i:integer):string
begin
Result:=Copy(Str, Length(Str) - i + 1, i);
end;
 
PADC函数是什么?俺没学过FoxPro...
按照Delphi处理字符串的特点,应该尽可能避免修改字符串长度的运算。因为
修改字符串的长度意味着该字符串到重新申请内存,并将内容移到新的地方。
所以:Format('%s%s', [abcd'', 'efgh'])比'abcd'+'efgh'快。
for I := 0 to 4do
Insert('n',s,1)这种算法不好。应该换成:
SetLength(s, length(s) + 4);
Move(s[1], s[5], Length(s) - 4);
FillChar('n', 4, s[1]);
 
多人接受答案了。
 
后退
顶部