Format y anchos de campo en Delphi
El horario de un ferri impreso como una tabla de tres columnas cuyos números quedan alineados.
program StringFormat;
uses SysUtils;
const
Route = 'Tarbert';
var
Sailings: Integer;
Crossing: Double;
begin
Sailings := 6;
Crossing := 34.5;
// %s takes a string, %d an integer, %.2f two decimal places.
WriteLn(Format('%s: %d sailings, %.2f minutes',
[Route, Sailings, Crossing]));
// A number after % is a field width; a minus sign left-aligns it.
WriteLn(Format('%-12s%5s%9s', ['route', 'runs', 'minutes']));
WriteLn(Format('%-12s%5d%9.2f', [Route, Sailings, Crossing]));
WriteLn(Format('%-12s%5d%9.2f', ['Rhubodach', 18, 5.0]));
end.
Cómo funciona
%stoma una cadena,%dun entero y%.2fun número con dos decimales.%-12salinea a la izquierda en un campo de doce;%5dy%9.2falinean a la derecha.- El encabezado y las dos filas de salidas comparten esos anchos, así que las columnas coinciden.
Palabras clave y builtins usados aquí
DoubleFormatIntegerWriteLnbeginconstendprogramusesvar
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 538
- Tokens
- 110
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 88 segundos.
Paso 2 de 3 en Tipos y cadenas; paso 5 de 27 en Fundamentos del lenguaje.