{$mode objfpc}{$H-}{$R+}{$T+}{$Q+}{$V+}{$D+}{$X-}{$warnings on}
    // Componemos una línea con campos de ancho fijo.
    // Usamos función propia para rellenar el ancho
program composicion_01;
const
    long_campo_01 = 3;
    long_campo_02 = 25;

function rellena_espacios(s:string; n: integer): string;
var
    i:integer;
begin
    result := s;
    for i := 1 to (n - length(s)) do
        result := result + ' ';
end;

var
    dorsal : real;
    nombre : string;
    pais : string;
    campo01, campo02, campo03: string;
    linea: string;
begin
    dorsal := 12;
    nombre := 'Juan Pérez';
    pais := 'ESP';

    str(dorsal:long_campo_01:0, campo01);  
    campo02 := rellena_espacios(nombre, long_campo_02);
    campo03 := pais;

    linea := campo01 + campo02 + campo03;
    writeln(linea);
end.
