typestar

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

  1. %s toma una cadena, %d un entero y %.2f un número con dos decimales.
  2. %-12s alinea a la izquierda en un campo de doce; %5d y %9.2f alinean a la derecha.
  3. El encabezado y las dos filas de salidas comparten esos anchos, así que las columnas coinciden.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Tipos y cadenas; paso 5 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →