Hola Agustín.
Primero que nada muy buena la página del enlace
En cuanto a tu consulta y tomando en cuenta que el texto lo obtenes del copiado y pegado (de la página) no veo manera mas directa de hacerlo que con
WriteLn. Podrías almacenar el texto en variables o constantes con tipo, pero no creo que esos cambios mejoren o hagan mas entendible el código.
Solo para agregar alguna idea, tal vez podrías flexibilizar el mostrado, por ejemplo:
Código Delphi
[-]
uses SysUtils, Classes, System;
procedure ShowBanner(Alignment: TAlignment);
const
LEN = 55; var
spc: string;
begin
case Alignment of
taLeftJustify : spc:= '';
taCenter : spc:= StringOfChar(' ', (80-LEN) div 2);
taRightJustify: spc:= StringOfChar(' ', 80-LEN);
end;
WriteLn(spc+' ______ _ _ _____ _ _ _');
WriteLn(spc+' / _____) | | | (____ \ | | | | (_)');
WriteLn(spc+'| / | |_ _| | _ _ \ \ ____| |____ | | _ _ ');
WriteLn(spc+'| | | | | | | || \ | | | / _ ) | _ \| || \| |');
WriteLn(spc+'| \_____| | |_| | |_) ) | |__/ ( (/ /| | | | | | | | |');
WriteLn(spc+' \______)_|\____|____/ |_____/ \____)_| ||_/|_| |_|_|');
WriteLn(spc+' |_| ');
end;
O también:
Código Delphi
[-]
procedure ShowBannerXY(const X, Y: Integer);
const
LEN = 55; var
i: Integer;
spc: string;
begin
if X <= 80 - LEN then
begin
spc:= StringOfChar(' ', X);
for i:= 1 to Y do WriteLn;
WriteLn(spc+' ______ _ _ _____ _ _ _');
WriteLn(spc+' / _____) | | | (____ \ | | | | (_)');
WriteLn(spc+'| / | |_ _| | _ _ \ \ ____| |____ | | _ _ ');
WriteLn(spc+'| | | | | | | || \ | | | / _ ) | _ \| || \| |');
WriteLn(spc+'| \_____| | |_| | |_) ) | |__/ ( (/ /| | | | | | | | |');
WriteLn(spc+' \______)_|\____|____/ |_____/ \____)_| ||_/|_| |_|_|');
WriteLn(spc+' |_| ');
end
else
WriteLn(Format('Maximo valor horizontal %d', [80-LEN]));
end;
Saludos
