Идёт загрузка страницы...

htp://aptem.net.ru





Преобразование '1010' в '001010'

Решением является создание функции, функционально похожей на функцию 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').

Дополнение

Good_mag пишет:

Мне очень нравится Ваше издание, но вот встретил одно решение, которое не очень мне понравилось. Оно правильное, но довольно длинное.

Вот мой вариант этого решения, он короче предыдущего:


    function PadL(s_InStr: string; i_Wide: integer; c_Chr: char): string;
begin
while Length(s_InStr) < i_Wide  do  s_InStr := c_Chr + s_InStr;
Result := s_InStr;
end;
[000155]