Sortie et journalisation

Sortie console

Write / WriteLn

Pour afficher des chaînes de caractères en Pascal, utilisez les procédures natives Write ou WriteLn ; WriteLn ajoute automatiquement un saut de ligne en fin de texte.

C’est une procédure native très polyvalente en Pascal : elle accepte un nombre illimité d’arguments de n’importe quel type de données, les convertit automatiquement en chaînes lors de l’affichage et gère une syntaxe de formatage dédiée pour contrôler la largeur d’affichage des nombres et la précision des flottants.

WriteLn('Hello world!');

// Afficher une expression entière
WriteLn('You can output an integer: ', 3 * 4);

// Entier aligné à droite sur 10 caractères au total
WriteLn('You can pad an integer: ', 666:10);

// Format flottant : largeur totale 1, 4 chiffres après la virgule
WriteLn('You can output a float: ', Pi:1:4);Langage du code : JavaScript (javascript)

Sauts de ligne manuels

Constante LineEnding

Pour insérer manuellement un saut de ligne dans une même chaîne, utilisez la constante LineEnding fournie par la bibliothèque standard Free Pascal ; le Castle Game Engine propose aussi une constante abrégée plus courte NL.

Les chaînes Pascal n’interprètent pas les séquences d’échappement antislash (\n n’a aucun effet). L’exemple ci-dessous est incorrect :

// Erreur : \n n’est pas reconnu comme saut de ligne
WriteLn('One line.\nSecond line.');Langage du code : JavaScript (javascript)

Deux syntaxes valides :

// Concaténer la constante de saut de ligne
WriteLn('One line.' + LineEnding + 'Second line.');

// Deux appels séparés à WriteLn (plus lisible et recommandé)
WriteLn('One line.');
WriteLn('Second line.');Langage du code : JavaScript (javascript)

Remarques importantes

WriteLn ne fonctionne que pour les applications console

Write/WriteLn ne fonctionnent que dans les applications console. Vous devez ajouter la directive de compilation en tête du fichier principal du programme :

{$apptype CONSOLE}Langage du code : PHP (php)

Ne pas utiliser le mode GUI :

{$apptype GUI} // Appeler WriteLn directement dans un programme GUI provoque une erreurLangage du code : PHP (php)
  • Unix/Linux/macOS : les programmes GUI peuvent ne pas planter lors de l’affichage dans certains cas, mais la sortie est sans intérêt ;
  • Windows : exécuter WriteLn directement dans une application graphique GUI déclenche une erreur d’exécution.

Normes de journalisation Castle Game Engine

Lors du développement avec le Castle Game Engine, interdisez l’utilisation directe de WriteLn pour les messages de débogage. Utilisez les fonctions de journalisation dédiées :

  • WriteLnLog : journaux de débogage classiques
  • WriteLnWarning : journaux d’avertissement

Le moteur redirige automatiquement les journaux vers les supports adaptés :

  1. Systèmes Unix : sortie console standard stdout ;
  2. Jeux GUI Windows : écriture dans un fichier journal local ;
  3. Plateforme Android : intégration aux journaux système Android, consultable via adb logcat.

Tableau de correspondance terminologique

Terme anglais originalDéfinition chinoise Pascal
Write / WriteLnSortie sans saut de ligne / Sortie avec saut de ligne
LineEndingConstante de saut de ligne système (multiplateforme)
NLConstante abrégée de saut de ligne Castle
paddingRemplissage des champs numériques, largeur d’alignement
precisionPrécision décimale des nombres à virgule flottante
{$apptype CONSOLE}Directive de compilation pour application console
{$apptype GUI}Directive de compilation pour application graphique
adb logcatOutil de consultation des logs Android
standard outputFlux de sortie standard (stdout)

Exemple complet de cette section

{$ifdef FPC} {$mode objfpc}{$H+}{$J-} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
{$R+}

begin

  WriteLn('Hello world!');

  // Afficher une expression entière
  WriteLn('You can output an integer: ', 3 * 4);

  // Entier aligné à droite sur 10 caractères au total
  WriteLn('You can pad an integer: ', 666:10);

  // Format flottant : largeur totale 1, 4 chiffres après la virgule
  WriteLn('You can output a float: ', Pi:1:4);

  // Erreur : \n n’est pas reconnu comme saut de ligne
  // WriteLn('One line.\nSecond line.');

  // Concaténer la constante de saut de ligne
  WriteLn('One line.' + LineEnding + 'Second line.');

  // Deux appels séparés à WriteLn (plus lisible et recommandé)
  WriteLn('One line.');
  WriteLn('Second line.');

end.Langage du code : PHP (php)

N’oubliez pas d’ajouter cette directive de compilation pour que cela fonctionne

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *