Code: |
function Spcs(num : byte) : string; var tmp : string; begin fillchar(tmp, num+1, ' '); {инициализация всей строки пробелами} tmp[0] := chr(num); {устанавливаем длину строки с пробелами} result := tmp; end;
//Теперь достаточно написать
Edit1.Text := SurName + spcs(10) + FirstName |
https://delphiworld.narod
DelphiWorld 6.0
Решением является создание функции, функционально похожей на функцию Clipper:
PadL(string, width, character)
Code: |
function TfrmFunc.PadL(cVal: string; nWide: integer; cChr: char): string; var i1, nStart: integer; begin if length(cVal) < nWide then begin nStart:=length(cVal); for i1:=nStart to nWide-1do cVal:=cChar+cVal; end; PadL:=cVal; end;
|
Затем это может вызываться c любой строкой, которой вы хотите задать определенную длину. Пользуйтесь функцией также, как вы привыкли пользоваться прежней - PadL(A,length(B),'0'); Она имеет большую гибкость - возможно заполнение любым символом до необходимой длины (удобно для задания текстовых счетчиков с фиксированным количеством символов -- PadL(A,6,'0').
https://delphiworld.narod
DelphiWorld 6.0
Code: |
function LeftPad(S: string; Ch: Char; Len: Integer): string; var RestLen: Integer; begin Result := S; RestLen := Len - Length(s); if RestLen < 1then Exit; Result := S + StringOfChar(Ch, RestLen); end;
function RightPad(S: string; Ch: Char; Len: Integer): string; var RestLen: Integer; begin Result := S; RestLen := Len - Length(s); if RestLen < 1then Exit; Result := StringOfChar(Ch, RestLen) + S; end;
{Beispiel / Example}
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := Rightpad(Edit2.Text, '-', 30); end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!