Valid XHTML     Valid CSS2    

Listing du fichier s1p2.php

 

00001     <?php
00002     
# (gH) -_- s1p2.php ; TimeStamp (unix) : 10 Novembre 2012 vers 20:24
00003     
00004     
error_reporting(E_ALL | E_NOTICE | E_STRICT) ;
00005     include(
"std.php") ;
00006     include(
"../xmlstd.php") ;
00007     include(
"scripts_inc.php") ;
00008     
00009     
$numSerie
= 2 ;
00010     
debutPageExoScr1
($numSerie) ;
00011     
00012     
## -------------------------------------------------------------------------------------------
00013     
00014     
sdl
(3) ; echo cmt(' pour afficher toutes les solutions : wedrd01.php?solutions=1') ; sdl(3) ;
00015     
00016     
## -------------------------------------------------------------------------------------------
00017     
00018     
debutSection() ;
00019     
00020     
$tableauDesRubriques = array() ;
00021     
$idr
= 0 ;
00022     
$idr
++; $tableauDesRubriques[$idr] = "AWK : compter les lignes d'un seul fichier" ;
00023     
$idr
++; $tableauDesRubriques[$idr] = "AWK : compter les fichiers par extension" ;
00024     
$idr
++; $tableauDesRubriques[$idr] = "AWK : créer les fichiers dictionnaires d'un texte" ;
00025     
$idr
++; $tableauDesRubriques[$idr] = "REXX : commandes en session interactive" ;
00026     
$idr
++; $tableauDesRubriques[$idr] = "REXX : implémenter range un peu comme en python" ;
00027     
$idr
++; $tableauDesRubriques[$idr] = "REXX : exécuter le m&ecirc;me programme AWK sur un ensemble de fichiers" ;
00028     
$idr
++; $tableauDesRubriques[$idr] = "REXX : archivage incrémental de fichiers XML " ;
00029     
$idr
++; $tableauDesRubriques[$idr] = "REXX : que font ces programmes&nbsp;? " ;
00030     
$idr
++; $tableauDesRubriques[$idr] = "REXX : fichiers dictionnaires d'un texte" ;
00031     
$tdmCRLM
= new tdm($tableauDesRubriques) ;
00032     
$tdmCRLM
->titre() ;
00033     
$tdmCRLM
->menu("oui","oui","nou") ;
00034     
00035     
pvide() ;
00036     
00037     
p
("texte") ;
00038      echo
"Il est possible d'afficher toutes les solutions via "
.href("s1p$numSerie.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ;
00039     
finp() ;
00040     
00041     
finSection() ;
00042     
00043     
debutSection() ;
00044     
$numExo
= 0 ;
00045     
00046     
## -------------------------------------------------------------------------------------------
00047     
00048     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # AWK : compter les lignes des fichiers
00049     
00050     ## -------------------------------------------------------------------------------------------
00051     
00052     
blockquote() ;
00053     
00054     
p
("texte") ;
00055     echo
"La commande wc d'Unix, avec l'option -l permet de connaitre le nombre de lignes d'un ou plusieurs fichiers, comme " ;
00056     echo
" le montre la commande suivante&nbsp;:" ;
00057     
finp() ;
00058     
00059     
pre_fichier
("wc_demo.txt","cadre") ;
00060     
00061     
p
("texte") ;
00062     echo
"On voudrait la compléter pour indiquer le nombre de mots moyen par ligne, avec le nombre minimal et maximal de mots." ;
00063     echo
" Ainsi, on disposera d'un moyen pour tester si toutes les lignes ont le m&ecirc;me nombre de mots. Implémenter un programme AWK " ;
00064     echo
" qui calcule ces valeurs en plus du nombre de lignes. On devra l'exécuter par la commande " ;
00065     echo
b
(" gawk -f nblv1.awk fichier")." mais pour un seul fichier de données. Quel est le défaut de cet appel de programme&nbsp;? Comment avoir un \"help\" de ce programme&nbsp;? " ;
00066     echo
" On rappelle que pour AWK la variable FNR correspond au numéro de ligne courant dans le fichier, " ;
00067     echo
" NF au nombre de mots de la ligne courante et FILENAME au nom du fichier. " ;
00068     echo
" Que se passe-t-il si au lieu d'un seul fichier on utilise une notation ambigue&nbsp;? " ;
00069     echo
" Voici un exemple de ce qu'on voudrait obtenir (les espaces et le formatage font partie de l'affichage, voir exercice 6)&nbsp;:" ;
00070     
finp() ;
00071     
00072     
pre_fichier
("nbl_awk.txt","cadre") ;
00073     
00074     
p
("texte") ;
00075     echo
"On pourra se contenter dans un premier temps de ne calculer que le nombre moyen de mots, affiché avec deux décimales." ;
00076     
finp() ;
00077     
00078     
solution
($numExo) ;
00079     
00080     
p
("texte") ;
00081     echo
"Puisque ce programme AWK ne doit s'appliquer qu'à un seul fichier, le programme est très simple à écrire&nbsp;:" ;
00082     echo
" on initialise les variables quand on lit la ligne 1, on cumule les NF et on met à jour éventuellement les min et max de NC pour les autres lignes et enfin " ;
00083     echo
" on affiche après avoir lu la dernière ligne du fichier. On peut utiliser NFR en fin de programme comme nombre de lignes lues pour " ;
00084     echo
" calculer la moyenne des NC. Voici un exemple de programme minimal possible nommé "
.href("nblv0.awk")."&nbsp;:" ;
00085     
finp() ;
00086     
00087     
pre_fichier
("nblv0.awk","cadrejaune") ;
00088     
pre_fichier
("nblv0_res.txt","cadre") ;
00089     
00090     
p
("texte") ;
00091     echo
"Sur ce principe, et en remettant END \"à sa place\" on peut compléter avec le nombre minimal et maximal de mots par ligne" ;
00092     echo
" soit le fichier "
.href("nblv1.awk")."&nbsp;:" ;
00093     
finp() ;
00094     
00095     
pre_fichier
("nblv1.awk","cadrejaune") ;
00096     
00097     
p
("texte") ;
00098     echo
"Le défaut de ce programme est de ne pas gérer plusieurs fichiers à la fois. Si on l'applique à un ensemble de fichiers, il fournira un résultat " ;
00099     echo
" erroné et n'affichera que des informations -- correctes, mais incomplètes -- pour le dernier fichier. Pour l'appliquer en boucle sur chacun des fichiers passés en " ;
00100     echo
" paramètre, voir l'exercice numéro 6. " ;
00101     
finp() ;
00102     
00103     
00104     
p
("texte") ;
00105     echo
"Il n'est pas possible d'avoir de \"help\" sauf à \"bricoler\". Par exemple en admettant que le fichier HELP_nbl.awk_AIDE sert à reconnaitre " ;
00106     echo
" qu'on veut connaitre l'aide, on pourrait écrire quelque chose comme le " ;
00107     echo
" le fichier "
.href("nblv1aide.awk")."&nbsp;:" ;
00108     
finp() ;
00109     
00110     
pre_fichier
("nblv1aide.awk","cadrejaune") ;
00111     
00112     
p
("texte") ;
00113     echo
"Encore faudra-t-il savoir qu'il faut appeler le programme sur ce fichier via " ;
00114     echo
b
("gawk -f nblv1aide.awk HELP_nbl.awk_AIDE").". " ;
00115     
finp() ;
00116     
00117     
p
("texte") ;
00118     echo
"En fait, très souvent on n'appelle pas un programme AWK directement. On utilise un script du système " ;
00119     echo
" qui teste les paramètres et affiche l'aide si aucun paramètre n'est fourni et qui sinon exécute le programme avec le \"bon\" " ;
00120     echo
" chemin d'accès (voir l'exercice 6). " ;
00121     
finp() ;
00122     
00123     
finsolution() ;
00124     
00125     
finblockquote() ;
00126     
00127     
## -------------------------------------------------------------------------------------------
00128     
00129     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # AWK : compter les fichiers par extension
00130     
00131     ## -------------------------------------------------------------------------------------------
00132     
00133     
blockquote() ;
00134     
00135     
p
("texte") ;
00136     echo
"On aimerait connaitre le nombre de fichiers par extension, avec la taille qu'ils occupent. Ecrire un programme Awk " ;
00137     echo
" pour réaliser cela. " ;
00138     echo
" Voici un exemple de ce qu'on voudrait obtenir pour notre répertoire courant (affichage trié)&nbsp;:" ;
00139     
finp() ;
00140     
00141     
pre_fichier
("statdir_res.txt","cadre") ;
00142     
00143     
solution
($numExo) ;
00144     
00145     
p
("texte") ;
00146     echo
"Consulter le fichier "
.href("statdir.awk")." pour une version proche de la solution, et qui s'utilise par exemple par ".b("ls -al | gawk -f statdir.awk")."&nbsp;:" ;
00147     
finp() ;
00148     
00149     
pre_fichier
("statdir.awk","cadrejaune") ;
00150     
00151     
00152     
p
("texte") ;
00153     echo
"Il reste juste à trier l'affichage, ce que nous laissons à la perspicacité des lecteurs et lectrices." ;
00154     
00155     
finp() ;
00156     
00157     
finsolution() ;
00158     
00159     
finblockquote() ;
00160     
00161     
## -------------------------------------------------------------------------------------------
00162     
00163     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # AWK : créer les fichiers dictionnaires d'un texte
00164     
00165     ## -------------------------------------------------------------------------------------------
00166     
00167     
blockquote() ;
00168     
00169     
p
("texte") ;
00170     echo
"On aimerait construirer les dictionnaires alphabétiques et fréquentiels du fichier "
.href("texte.txt") ;
00171     echo
" dont le contenu est&nbsp;:" ;
00172     
finp() ;
00173     
00174     
pre_fichier
("texte.txt","cadre") ;
00175     
00176     
p
("texte") ;
00177     echo
" Voici ce qu'on voudrait obtenir comme dictionnaire alphabétique, soit le fichier "
.b("dico.tpm")."&nbsp;:" ;
00178     
finp() ;
00179     
00180     
pre_fichier
("dico_tpm.txt","cadre") ;
00181     
00182     
p
("texte") ;
00183     echo
" Et voici ce qu'on voudrait obtenir comme dictionnaire fréquentiel, soit le fichier "
.b("dico.tpo").". " ;
00184     echo
" Il faut donc trier ici par fréquence décroissante puis par ordre alphabétique croissant en cas " ;
00185     echo
" d'"
.em("exaequo")."&nbsp;:" ;
00186     
finp() ;
00187     
00188     
pre_fichier
("dico_tpo.txt","cadre") ;
00189     
00190     
solution
($numExo) ;
00191     
00192     
p
("texte") ;
00193     echo
"Consulter le fichier "
.href("dico.awk")." pour une version proche de la solution&nbsp;:" ;
00194     
finp() ;
00195     
00196     
pre_fichier
("dico.awk","cadrejaune") ;
00197     
00198     
finsolution() ;
00199     
00200     
finblockquote() ;
00201     
00202     
## -------------------------------------------------------------------------------------------
00203     
00204     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : commandes en session interactive
00205     
00206     ## -------------------------------------------------------------------------------------------
00207     
00208     
blockquote() ;
00209     
00210     
blockquote() ;
00211     
00212     
p
("texte") ;
00213     echo
"En mode interactif, avec "
.href("rt.rex")." donner la ou les instructions qui répondent aux questions suivantes&nbsp;:" ;
00214     
finp() ;
00215     
00216     
ul() ;
00217     
00218     
debutli
() ; p() ;
00219      echo
"quelle est la valeur de 16 puissance 4&nbsp;? et le reste entier de la division de 2012 par 128&nbsp;? " ;
00220     
finp
() ; finli() ;
00221     
00222     
debutli
() ; p() ;
00223      echo
" quel est le code hexadécimal de A&nbsp; ? et le code décimal de 'xFFF'&nbsp; ? et le code ascii de 'a'&nbsp;? et le caractère de numéro décimal 98&nbsp;?" ;
00224     
finp
() ; finli() ;
00225     
00226     
debutli
() ; p() ;
00227      echo
" si la variable "
.b("cmd")." contient ".b("\"prog --fmt tex --nbdec 4 --fichier demo.rex\"")." comment récupérer la valeur de l'option ".b("--fmt") ;
00228      echo
" c'est-à-dire "
.b("tex")."&nbsp;? " ;
00229     
finp
() ; finli() ;
00230     
00231     
debutli
() ; p() ;
00232      echo
" si "
.b("phr")." contient ".b("\"A2837 12 18 37 25\"")." comment transférer dans la variable numData toutes les valeurs après le premier mot (soit ici A2837)&nbsp;? " ;
00233     
finp
() ; finli() ;
00234     
00235     
debutli
() ; p() ;
00236      echo
" combien vaut factorielle 8&nbsp;?" ;
00237     
finp
() ; finli() ;
00238     
00239     
debutli
() ; p() ;
00240      echo
" comment afficher ou mettre dans une variable la date et l'heure&nbsp;?" ;
00241     
finp
() ; finli() ;
00242     
00243     
debutli
() ; p() ;
00244      echo
" comment calculer la moyenne des valeurs contenues dans la chaine de caractères \"12 5 20 8 15\"&nbsp;?" ;
00245     
finp
() ; finli() ;
00246     
00247     
debutli
() ; p() ;
00248      echo
" comment souligner avec des tirets la chaine de caractères "
.b("\"ceci est mon titre\"")."&nbsp;?" ;
00249     
finp
() ; finli() ;
00250     
00251     
finul() ;
00252     
00253     
finblockquote() ;
00254     
00255     
solution
($numExo) ;
00256     
00257     
p
("texte") ;
00258     echo
"Voici un exemple de solution en session interactive&nbsp;:" ;
00259     
finp() ;
00260     
00261     
pre_fichier
("rt_sol.txt","cadrebleu") ;
00262     
00263     
finsolution() ;
00264     
00265     
finblockquote() ;
00266     
00267     
## -------------------------------------------------------------------------------------------
00268     
00269     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : implémenter range comme en python
00270     
00271     ## -------------------------------------------------------------------------------------------
00272     
00273     
blockquote() ;
00274     
00275     
blockquote() ;
00276     
00277     
p
("texte") ;
00278     echo
"Implémenter une fonction "
.b("range()")." en REXX un peu comme Python, mais en commençant à l'indice 1. " ;
00279     echo
" On viendra compléter le fichier "
.href("range.rex")." suivant qui indique ce qu'on veut obtenir&nbsp;:" ;
00280     
finp() ;
00281     
00282     
pre_fichier
("range.rex","cadrebleu") ;
00283     
00284     
finblockquote() ;
00285     
00286     
solution
($numExo) ;
00287     
00288     
p
("texte") ;
00289     echo
"Dans la mesure où REXX dispose d'une boucle "
.b("do / = / to / by / end")." le problème est juste de bien " ;
00290     echo
" gérer les paramètres, ici séparés par des virgules, d'où le fichier solution " ;
00291     echo
href
("range_sol.rex")."&nbsp;:" ;
00292     
finp() ;
00293     
00294     
pre_fichier
("range_sol.rex","cadrebleu") ;
00295     
pre_fichier
("range_sol.txt","cadre") ;
00296     
00297     
p
("texte") ;
00298     echo
"Pour ceux et celles qui préfèrent une séparation des paramètres par des espaces, " ;
00299     echo
" consulter "
.href("range_sol1.rex").". " ;
00300     
finp() ;
00301     
00302     
finsolution() ;
00303     
00304     
finblockquote() ;
00305     
00306     
## -------------------------------------------------------------------------------------------
00307     
00308     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX et AWK : exécuter le m&ecirc;me programme AWK sur un ensemble de fichiers
00309     
00310     ## -------------------------------------------------------------------------------------------
00311     
00312     
blockquote() ;
00313     
00314     
blockquote() ;
00315     
00316     
p
("texte") ;
00317     echo
"Reprendre l'exercice 1. On utilisera REXX pour afficher un \"help\" si on ne fournit aucun paramètre ; " ;
00318     echo
" sinon, on exécutera la commande "
.b("gawk&nbsp;-f&nbsp;nblv2.awk")." sur chacun des fichiers passés en paramètre " ;
00319     echo
" (notation ambigue avec * et ? possible). " ;
00320     
finp() ;
00321     
00322     
finblockquote() ;
00323     
00324     
solution
($numExo) ;
00325     
00326     
p() ;
00327     echo
"Là encore, il s'agit juste de bien gérer les paramètres. On remarquera dans la solution la composition \"à la volée\" de la " ;
00328     echo
" commande à exécuter." ;
00329     
finp() ;
00330     
00331     
pre_fichier
("nbl.rex","cadrebleu") ;
00332     
pre_fichier
("nblv2.awk","cadrejaune") ;
00333     
pre_fichier
("nbl_rex.txt","cadre") ;
00334     
00335     
finsolution() ;
00336     
00337     
finblockquote() ;
00338     
00339     
## -------------------------------------------------------------------------------------------
00340     
00341     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : archivage incrémental de fichiers XML
00342     
00343     ## -------------------------------------------------------------------------------------------
00344     
00345     
blockquote() ;
00346     
00347     
blockquote() ;
00348     
00349     
p
("texte") ;
00350     echo
"On voudrait qu'à l'exécution du script "
.s_span("archcd.rex","gbleuf")." il y ait une production automatique de l'archive " ;
00351     echo
" pour tous les fichiers de type xml avec numérotation de l'archive. " ;
00352     echo
" Par exemple la première fois que le script est exécuté, on produira l'archive "
.b("lesxml001.tar")." ; " ;
00353     echo
" la seconde fois, ce sera "
.b("lesxml002.tar")." etc. " ;
00354     echo
" L'algorithme de base ressemble certainement à " ;
00355     
finp() ;
00356     
00357     
pre_fichier
("archivage_alg.txt","cadrebleu") ;
00358     
00359     
p
("texte") ;
00360     echo
"On pourra utiliser " ;
00361     echo
href
("REXXUT.rex","REXXUT") ;
00362     echo
" et " ;
00363     echo
href
("FILEUT.rex","FILEUT") ;
00364     echo
"." ;
00365     
finp() ;
00366     
00367     
finblockquote() ;
00368     
00369     
solution
($numExo) ;
00370     
00371     
p() ;
00372     echo
"Consulter le fichier "
.href("archcd.rex")."&nbsp;:" ;
00373     
finp() ;
00374     
00375     
pre_fichier
("archcd.rex","cadrejaune") ;
00376     
00377     
p() ;
00378     echo
"Exemple d'utilisation&nbsp;:" ;
00379     
finp() ;
00380     
00381     
pre_fichier
("archcd_rex.txt","cadre") ;
00382     
00383     
finsolution() ;
00384     
00385     
finblockquote() ;
00386     
00387     
00388     
## -------------------------------------------------------------------------------------------
00389     
00390     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : que font ces programmes ?
00391     
00392     ## -------------------------------------------------------------------------------------------
00393     
00394     
blockquote() ;
00395     
00396     
blockquote() ;
00397     
00398     
p
("texte") ;
00399     echo
"Que fait le programme REXX nommé "
.href("catv.rex")."&nbsp;? " ;
00400     echo
"Et les macros pour éditeur "
.href("av.sedit").", ".href("ts.sedit")." et ".href("exec.sedit")."&nbsp;?" ;
00401     
finp() ;
00402     
00403     
finblockquote() ;
00404     
00405     
solution
($numExo) ;
00406     
00407     
# mettre des versions avec numéros de lignes pour les explications
00408     
00409     
p
("texte") ;
00410     echo
"Après lecture du fichier-programme REXX nommé "
.href("catv.rex")." dont nous avons numéroté les lignes, " ;
00411     
finp() ;
00412     
00413     
pre_fichier
("catv_rex.txt","cadrejaune") ;
00414     
00415     
p
("texte") ;
00416     echo
" on peut comprendre que ce programme REXX lit deux fichiers dont les noms sont passés en paramètre " ;
00417     echo
" (lignes 23 et 24) " ;
00418     echo
" et qu'il met met bout à bout soit une concaténation verticale " ;
00419     echo
" (lignes 34 à 40 ) " ;
00420     echo
" les lignes des deux fichiers. " ;
00421     echo
" Par exemple, avec les deux fichiers " ;
00422     
$f1
= "gauche.txt" ;
00423     
$f2
= "droite.txt" ;
00424     
$f3
= "gd2.txt" ;
00425     echo
href
("$f1") ;
00426     echo
" et " ;
00427     echo
href
("$f2") ;
00428     echo
" la commande "
.b("catv $f1 $f2 3 35")." produit le fichier " ;
00429     echo
href
("$f3").". " ;
00430     echo
" Si on ne passe pas de paramètre de taille de ligne après les noms de fichier et si le fichier de gauche n'a pas des lignes de " ;
00431     echo
" m&ecirc;me longueur, le résultat est \"cahotique\" comme pour le fichier "
.href("gd1.txt").". " ;
00432     echo
" On remarquera l'initialisation des "
.b("stem")." (tableaux) ligne 19 qui permet de ne pas se préoccuper de lignes inexistantes... " ;
00433     
finp() ;
00434     
00435     
pre_fichier
("$f1","cadrejaune") ;
00436     
pre_fichier
("$f2","cadrejaune") ;
00437     
pre_fichier
("$f3","cadrebleu") ;
00438     
00439     
00440     
p
("texte") ;
00441     echo
"L'étudiant Hossam Eddine BENHOUD a réussi à trouver une commande Unix à peu près équivalente. " ;
00442     echo
"Il suffit d'écrire "
.b("pr&nbsp;-m&nbsp;-t&nbsp;fichier1&nbsp;fichier2").". Bravo Hossam Edine&nbsp;!" ;
00443     
finp() ;
00444     
00445     
p
("texte") ;
00446     echo
"La macro-programme REXX pour éditeur nommée "
.href("av.sedit") ;
00447     
finp() ;
00448     
00449     
pre_fichier
("av_sedit.txt","cadrejaune") ;
00450     
00451     
p
("texte") ;
00452     echo
"vient sauvegarder dans le répertoire ~/Tmp une copie du fichier en cours d'édition avec le m&ecirc;me nom et de m&ecirc;me " ;
00453     echo
" extension mais avec insertion d'un numéro entier sur 4 positions autoincrémenté. Ainsi pour le fichier "
.b("s1p2.php") ;
00454     echo
" l'exécution de la macro, en ligne de commande-éditeur ou avec une touche comme F2 vient sauvegarder le fichier actuel comme " ;
00455     echo
b
("s1p2.0001.php")." ; la seconde exécution produit ".b("s1p2.0002.php")." etc." ;
00456     echo
" La fonction "
.b("state")." à la ligne 19 et à la ligne 26 renvoie 0 si le fichier n'existe pas, un entier positif sinon." ;
00457     
finp() ;
00458     
00459     
p
("texte") ;
00460     echo
"La macro-programme REXX pour éditeur nommée "
.href("ts.sedit") ;
00461     
finp() ;
00462     
00463     
pre_fichier
("ts_sedit.txt","cadrejaune") ;
00464     
00465     
p
("texte") ;
00466     echo
"ajoute en haut de fichier une ligne qui donne la date et l'heure. Si la ligne existe déjà, elle est mise à jour. " ;
00467     echo
" La ligne est insérée comme un commentaire s'il s'agit d'un fichier-programme, avec le format de commenatire " ;
00468     echo
" lié au langage. Par exemple, appliquée au fichier "
.b("s1p2.php") ;
00469     echo
" il y a insertion de quelque chose comme" ;
00470     
finp() ;
00471     
00472     
pre_fichier
("ts_demo1.txt","cadre") ;
00473     
00474     
p
("texte") ;
00475     echo
"Pour un fichier REXX comme par exemple "
.b("s1p2.rex").", le commentaire sera&nbsp;:" ;
00476     
finp() ;
00477     
00478     
pre_fichier
("ts_demo2.txt","cadre") ;
00479     
00480     
p
("texte") ;
00481     echo
"La correction pour "
.b("exec.sedit")." n'est volontairement pas fournie." ;
00482     
finp() ;
00483     
00484     
finsolution() ;
00485     
00486     
finblockquote() ;
00487     
00488     
## -------------------------------------------------------------------------------------------
00489     
00490     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : créer les fichiers dictionnaires d'un texte
00491     
00492     ## -------------------------------------------------------------------------------------------
00493     
00494     
blockquote() ;
00495     
00496     
blockquote() ;
00497     
00498     
p
("texte") ;
00499     echo
"Essayer de réaliser l'exercice 3 proposé pour AWK (création des dictionnaires) en REXX. " ;
00500     
finp() ;
00501     
00502     
finblockquote() ;
00503     
00504     
solution
($numExo) ;
00505     
00506     
p
("texte") ;
00507     echo
"Consulter "
.href("dico.rex")." sachant qu'on utilise les bibliothèques de fonctions (gH) nommées " ;
00508     echo
" "
.href("FILEUT.rex")." et " ;
00509     echo
" "
.href("REXXUT.rex").". " ;
00510     
finp() ;
00511     
00512     
pre_fichier
("dico.rex","cadre") ;
00513     
00514     
pre_fichier
("FILEUT.rex","cadrebleu") ;
00515     
pre_fichier
("REXXUT.rex","cadrejaune") ;
00516     
00517     
00518     
finsolution() ;
00519     
00520     
finblockquote() ;
00521     
00522     
00523     
## -------------------------------------------------------------------------------------------
00524     
00525     
finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans webrd_inc.php
00526     
00527     
?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)