Incorporer l'en-tête


Dernière intervention le 25/11/2003

Second projet :
Incorporer l'en-tête élaboré au début du fichier HTML, ce qui nécessite l'ouverture d'un second fichier en lecture.

16. Listage du programme "creepageconcat2.fs"


Le programme fonctionne effectivement.
#! /usr/local/bin/gforth

256 Constant max-line
Create chaine max-line allot
variable n1 0 ( longueur de la chaine lue dans le fichier )
variable n2 0 ( longueur de la chaine ajoutée )
variable n3 0 ( longueur résultante )

( ouverture des fichiers cible et source )
s" entete.txt" r/o open-file throw Value fd-in
s" scripting5.html" w/o create-file throw Value fd-out


( écriture et fermeture )
: ecri-dans ( écrit dans le fichier cible ) fd-out write-file throw ;
: ferm-dans ( ferme le fichier cible ) fd-out close-file throw ;
: ferm-source ( ferme le fichier source ) fd-in close-file throw ;
: concat_br ( concaténation )
s" <br />" dup n2 !
chaine n1 @ + swap cmove
n2 @ n1 @ + n3 !
12 n3 @ chaine + c! ;
: vide-entete ( transfert en-tete vers vers cible )
begin
chaine max-line fd-in read-line throw
while
chaine swap ecri-dans
repeat ;

: vide-fichier ( effectue le transfert source vers cible )
begin
chaine max-line fd-in read-line throw
swap dup n1 ! swap
while
concat_br
chaine n3 @ ecri-dans
repeat ;

( écrit l'en-tête dans le fichier cible puis ferme le fichier d'en-tête )
vide-entete
ferm-source
( ouvre le texte de l'article et le recopie modifié fans le fichier cible )
s" page5.txt" r/o open-file throw Value fd-in
vide-fichier
s" </p></body></html>" ecri-dans

( fermeture des deux fichiers )
ferm-source
ferm-dans

bye

Remarques sur le code source :

- il est documenté
- les ouvertures de fichier se font "en clair", une tentative pour créer des mots d'ouverture n'ayant pas encore réussi.

Remarques sur la réalisation du projet


Il est réalisé mais le code HTML est compacté (sans saut à la ligne) et difficile à relire.





Haut de page