Código Delphi
[-]
procedure CerosDelante(var Cadena: String; longitud: integer);
begin
Cadena:=Copy(Pad('0',longitud),0,longitud-Length(Cadena))+Cadena;
end;
procedure CerosDetras(var Cadena: String; longitud: integer);
begin
Cadena:=Cadena+Copy(Pad('0',longitud),0,longitud-Length(Cadena));
end;
function Pad(S: String; WantLength:integer): String;
begin
if Length(S) > WantLength then begin
Result := copy(S,1,WantLength);
end else begin
Result := S + space(WantLength-length(S));
end;
end;
function Space(spacelength:integer): String;
var i:integer;
begin
Result := '';
for i := 1 to spacelength do begin
Result := Result + ' ';
end;
end;
CerosDelante -> concatena tantos ceros delante de la cadena como la diferencia entre la longitud especificada en la función y la real de la cadena.
CerosDetras -> Lo mismo pero por detrás.

Para colaborar con la causa!
Espero que te sirva.
Saludos!!
