Функция наполнения строки

Материал из DRKB

Функция наполнения строки[править | править код]

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


Source: http://delphiworld.narod.ru
ID: 00898


Решением является создание функции, функционально похожей на функцию Clipper:

PadL(string, width, character)

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-1 do
      cVal := cChar + cVal;
  end;
  PadL := cVal;
end;


Затем это может вызываться c любой строкой, которой вы хотите задать определенную длину. Пользуйтесь функцией также, как вы привыкли пользоваться прежней - PadL(A,length(B),'0'); Она имеет большую гибкость - возможно заполнение любым символом до необходимой длины (удобно для задания текстовых счетчиков с фиксированным количеством символов -- PadL(A,6,'0').


Source: http://delphiworld.narod.ru
ID: 00932



function LeftPad(S: string; Ch: Char; Len: Integer): string;
var
  RestLen: Integer;
begin
  Result  := S;
  RestLen := Len - Length(s);
  if RestLen < 1 then 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 < 1 then Exit;
  Result := StringOfChar(Ch, RestLen) + S;
end;

{Beispiel / Example}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := Rightpad(Edit2.Text, '-', 30);
end;


Source: Взято с сайта: http://www.swissdelphicenter.ch
ID: 00933