u_c_pascal_to_html - John COLIBRI. |
- résumé : transformation d'un texte .PAS en fichier .HTML
- mots clé: transformation - Pascal - Html Web - gestion de fichier ASCII - utilitaire
- logiciel utilisé: Windows 98, Delphi 5.0
- matériel utilisé: Pentium 500Mhz, 128 M de mémoire
- champ d'application: Delphi 1 à 6 sur Windows, Kylix
- niveau: moyen en Pascal et Delphi
- uses: u_c_text_file, u_loaded, u_types_constants,
u_c_display, (u_c_basic_file, u_c_line, u_display_hex,
u_c_file_name, u_c_log, u_c_basic_object, u_strings,
u_dir)
- plan:
1 - Introduction
Pour présenter des articles sur Pascal et Delphi dans ce site, il me fallait avant tout un utilitaire qui transforme les .PAS en code .HTML. Pour Pascalissime, il y a longtemps que le brave ED avait réglé le problème:
- des balises 'début de programme' et 'fin de programme' marquaient le début et la fin des codes .PAS importés
- ED se chargeait alors de numéroter les lignes et de cracher le Postscript artistiquement décoré:
- mise en gras des mots clés
C'est ce type de transformation qu'il fallait donc demander à ED de faire mais en générant du HTML. 1.2 - L'objectif
Dans le cadre de cet article, nous nous contenterons de présenter la transformation de fichiers .PAS isolés, en supposant que le code .HTML généré est importé (par copier / coller) dans les articles .HTML. L'utilitaire présenté
- part d'un fichier ASCII classique (généré par NotePad ou par Delphi
- crée un fichier .HTML que vous pouvez visualiser avec un Browser quelconque en cliquant dessus
2 - Utilisation
L'application p_test_c_pascal_to_html donne un exemple. Il suffit; - d'importer u_c_pascal_to_html
- de créer la classe c_pascal_to_html et d'appeler la méthode pascal_to_html:
with c_pascal_to_html.create_pascal_to_html('pascal', p_dir+ p_file_name) do
begin transform_to_html;
Free; end; // with c_text_file
| 2.2 - Répertoires et Directives de compilation L'unité u_c_pascal_to_html est prévue pour être placée dans: C: programs colibri_utilities
web pascal_to_html Vous pouvez naturellement changer cette organisation par Projet | Options | Directories Les directives de compilation sont:
- R+ (vérification des intervalles)
- S+ (vérification de la pile)
- pas d'optimisation
3 - Programmation La lecture du fichier se fait en lisant un fichier ASCII par c_text (cf
l'article c_text_file). Le texte est analysé lexicalement pour débiter le programme en symboles. Le principe de cette analyse est toujours le même:
- une boucle pour sauter les caractères indésirables
- une boucle qui récupère dans une String les caractères utiles
Pour l'analyse du texte, les particularités classiques concernent:
Plusieurs points liés à la spec HTML ont nécessité quelques précautions: En ce qui concerne les couleurs, je souhaitais avoir: - les mots clés en capitales rouges et grasses
- les identificateurs en noir italique
- les chaînes littérales Pascal en bleu
- les commentaires Pascal de tout poil (soit // soit { soit (* ) en violet
Toutes ces couleurs sont en CONST et vous pouvez les changer si vous le
souhaitez. Une amélioration triviale consisterait à permettre la modification par une procédure de la classe. 4 - Améliorations Il serait possible
- d'incorporer ce programme dans l'utilitaire qui permet le changement de répertoires avec un tDirectoryListBox, et le balayage récursif en utilisant c_dirs
- de permettre l'inclusion de fichiers .PAS dans un fichier .TXT (par une
notation similaire à $INCLUDE, par exemple), ce qui permet la transformation du .TXT en .HTML en une seule passe (c'est en vérité ce que fait le brave ED)
5 - Télécharger Vous pouvez télécharger:
Comme d'habitude: - nous vous remercions de nous signaler toute erreur, inexactitude ou
problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
- tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
- plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
- et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos
blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.
L'auteur
John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le
conseil (composants, architecture, test) et la
formation. Son site contient des articles
avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et
UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client. |