1) modf Perl/genere_catalogue_tests.pl : ajout du nom de l auteur du test et de la liste des mots-cles; 2) modif de tous les README : ajout d un rubrique Auteur et ajout de la rubrique mots-cles si elle n existait pas deja; 3) Changement de nom des tests MOONEY_RIVLIN_3D (le repertoire du test n avait pas un nom assez explicite pour figurer dans le catalogue de tests)
This commit is contained in:
parent
dccf63fdc3
commit
7060e79cd8
30 changed files with 314 additions and 97 deletions
|
@ -1,3 +1,16 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
axisymetrique
|
||||
contact
|
||||
ISOELAS
|
||||
comparaison Abaqus
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
------------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------------
|
||||
Bertille Claude (bertille.claude@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
|
@ -40,5 +45,3 @@ Grandeurs de comparaison
|
|||
------------------------------------------------------------
|
||||
Def_principaleI Def_principaleII Sigma_principaleI Sigma_principaleII
|
||||
(point d'intégration 1 de l'élément 23, qui est situé environ au centre de la membrane)
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
------------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------------
|
||||
Bertille Claude (bertille.claude@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
------------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------------
|
||||
Bertille Claude (bertille.claude@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
------------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------------
|
||||
Bertille Claude (bertille.claude@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
Le but du calcul est de trouver la forme d'équilibre d'un tunnel gonflé
|
||||
dont le matériau suit une loi de comportement isotrope élastique (ISOELAST2D_C).
|
||||
dont le matériau suit une loi de comportement isotrope élastique (ISOELAS2D_C).
|
||||
|
||||
------------------------------------------------------------
|
||||
Description du calcul
|
||||
|
@ -10,7 +15,7 @@ Description du calcul
|
|||
Le calcul s'effectue avec la méthode de relaxation dynamique.
|
||||
Les paramètres de contrôle de cette méthode sont définis dans KDR.algo
|
||||
|
||||
La loi de comportement testée est la loi ISOELAST2D_C.
|
||||
La loi de comportement testée est la loi ISOELAS2D_C.
|
||||
Les paramètres utilisés pour la définir sont des paramètres cohérents avec des tests réalisés sur des membranes:
|
||||
E= 125 MPa
|
||||
nu = 0,4
|
||||
|
@ -27,12 +32,10 @@ Mots-cles
|
|||
tunnel
|
||||
isoelastique
|
||||
relaxation dynamique
|
||||
ISOELAST2D_C
|
||||
ISOELAS2D_C
|
||||
|
||||
------------------------------------------------------------
|
||||
Grandeurs de comparaison
|
||||
------------------------------------------------------------
|
||||
Def_principaleI Def_principaleII Sigma_principaleI Sigma_principaleII
|
||||
(point d'intégration 1 de l'élément 116, qui est situé environ au centre de la membrane)
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
cisaillement simple
|
||||
ISOHYPER3DFAVIER3
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
traction uniaxiale
|
||||
ISOHYPER3DFAVIER3
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
cisaillement simple
|
||||
MOONEY_RIVLIN_3D
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
|
@ -1,3 +1,15 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
traction uniaxiale
|
||||
MOONEY_RIVLIN_3D
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
|
@ -1,8 +1,13 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Bertille Claude (bertille.claude@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
Ce programme teste la loi de comportement isotrope hyperélastique
|
||||
ISOHYPER3DORGEAS1 sur un cube en traction simple.
|
||||
ISOHYPER3DORGEAS1 sur un cube en traction uniaxiale.
|
||||
|
||||
------------------------------------------------------------
|
||||
Description du calcul
|
||||
|
@ -16,12 +21,13 @@ K= 624; Q0s= 0.4; mu01= 44; mu02= 0.6; mu03= 44; alpha01= 1e-3; alpha02= 1e-3; Q
|
|||
La structure étudiée est un cube de dimensions 100*100*100 mm^3, discrétisé
|
||||
avec un seul élément de type volumique (interpolation linéaire, 8noeuds)
|
||||
|
||||
L'essai simulé est un essai de traction simple dans la direction 11.
|
||||
L'essai simulé est un essai de traction uniaxiale dans la direction 11.
|
||||
|
||||
------------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------------
|
||||
cube
|
||||
traction uniaxiale
|
||||
isohyper3dorgeas1
|
||||
|
||||
------------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
traction uniaxiale
|
||||
dynamique explicite
|
||||
ISOELAS
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
traction uniaxiale
|
||||
dynamique implicite
|
||||
ISOELAS
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
coussin circulaire
|
||||
membrane
|
||||
traction uniaxiale
|
||||
ISOELAS2D_C
|
||||
relaxation dynamique
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Julien Troufflard (troufflard@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
cube unitaire
|
||||
traction uniaxiale
|
||||
statique
|
||||
non_dynamique
|
||||
ISOELAS
|
||||
|
||||
------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Erwan Kergourlay (erwan.kergourlayd@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
utilitaires
|
||||
fusion_elements
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
|
@ -25,13 +36,3 @@ Comparaison des fichiers cube_soude_nevez.her et cube_soude_nevez.lis avec les f
|
|||
Informations sur les fichiers facultatifs
|
||||
------------------------------------------------------------
|
||||
Des fichiers temporaires sont créés pour la comparaison qui contiennent uniquement les données puis ils sont éffacés à la fin de l'éxécution du programme perl.
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des solutions analytiques
|
||||
------------------------------------------------------------
|
||||
du texte...
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des codes de calcul
|
||||
------------------------------------------------------------
|
||||
du texte...
|
|
@ -1,3 +1,14 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Erwan Kergourlay (erwan.kergourlay@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
utilitaires
|
||||
fusion_maillages
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
|
@ -24,13 +35,3 @@ Comparaison des fichiers cube_soude.her et cube_soude.lis avec les fichiers de r
|
|||
Informations sur les fichiers facultatifs
|
||||
------------------------------------------------------------
|
||||
Des fichiers temporaires sont créés pour la comparaison qui contiennent uniquement les données puis ils sont éffacés à la fin de l'éxécution du programme perl.
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des solutions analytiques
|
||||
------------------------------------------------------------
|
||||
du texte...
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des codes de calcul
|
||||
------------------------------------------------------------
|
||||
du texte...
|
|
@ -1,3 +1,14 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Erwan Kergourlay (erwan.kergourlay@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
utilitaires
|
||||
fusion_de_noeuds
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
|
@ -25,13 +36,3 @@ Comparaison des fichiers cube_soude_nevez.her et cube_soude_nevez.lis avec les f
|
|||
Informations sur les fichiers facultatifs
|
||||
------------------------------------------------------------
|
||||
Des fichiers temporaires sont créés pour la comparaison qui contiennent uniquement les données puis ils sont éffacés à la fin de l'éxécution du programme perl.
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des solutions analytiques
|
||||
------------------------------------------------------------
|
||||
du texte...
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des codes de calcul
|
||||
------------------------------------------------------------
|
||||
du texte...
|
|
@ -1,3 +1,14 @@
|
|||
------------------------------------------------------
|
||||
Auteur
|
||||
------------------------------------------------------
|
||||
Erwan Kergourlay (erwan.kergourlay@univ-ubs.fr)
|
||||
|
||||
------------------------------------------------------
|
||||
Mots-cles
|
||||
------------------------------------------------------
|
||||
utilitaires
|
||||
suppression_noeud_non_references
|
||||
|
||||
------------------------------------------------------------
|
||||
But du test
|
||||
------------------------------------------------------------
|
||||
|
@ -24,13 +35,3 @@ Comparaison du fichier cube_soude_nevez.her et cube_soude_nevez.lis avec les fic
|
|||
Informations sur les fichiers facultatifs
|
||||
------------------------------------------------------------
|
||||
Des fichiers temporaires sont créés pour la comparaison qui contiennent uniquement les données puis ils sont éffacés à la fin de l'éxécution du programme perl.
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des solutions analytiques
|
||||
------------------------------------------------------------
|
||||
du texte...
|
||||
|
||||
------------------------------------------------------------
|
||||
Comparaison avec des codes de calcul
|
||||
------------------------------------------------------------
|
||||
du texte...
|
|
@ -18,6 +18,25 @@ my $format_reel = '[+-]?[\.]?\d+[\.]?\d*(?:[eE][+-]?\d*)?';
|
|||
# disponibles (recopie des rubriques "But du test" et "Description du calcul" du
|
||||
# fichier README de chaque repertoire de test)
|
||||
#
|
||||
#
|
||||
# Notes a tout le monde :
|
||||
# une rubrique est un bloc contenu dans un fichier README sous la forme :
|
||||
# une ligne de tirets
|
||||
# nom de la rubrique
|
||||
# une ligne de tirets
|
||||
# ...
|
||||
# ...
|
||||
# une suite de lignes (vides ou non)
|
||||
# ...
|
||||
#
|
||||
# IMPORTANT : ce script repere la fin d une rubrique par la presence d une autre ligne de tirets (ou la fin du fichier)
|
||||
# ce qui veut dire que toute ligne de tirets (hormis les lignes qui encadrent le nom de la rubrique) met fin a la lecture
|
||||
# de la rubrique.
|
||||
# En vue des eventuels risques de fin de lecture prematuree, la variable $MOTIF_FIN_RUBRIQUE a ete definie au cas ou le
|
||||
# besoin se fait sentir de definir clairement une balise de fin de rubrique (la valeur actuelle de cette variable etant
|
||||
# pour l instant ecrite de maniere a reperer une ligne de tirets).
|
||||
#
|
||||
#
|
||||
# Notes aux utilisateurs :
|
||||
# les repertoires de tests sont recherches dans toute l arborescence depuis l endroit ou
|
||||
# ce script est lance (recherche de tous les repertoires commencant par Test_R ou Test_L)
|
||||
|
@ -71,8 +90,11 @@ my @LISTE_RUBRIQUES_README = ('But du test',
|
|||
'Description du calcul');
|
||||
#--nom de la rubrique contenant des mots-cles (rq : insensible a la casse)
|
||||
my $NOM_RUBRIQUE_MOTS_CLES = 'Mots-cles';
|
||||
#--nom de la rubrique contenant le ou les auteurs d un test (rq : insensible a la casse)
|
||||
my $NOM_RUBRIQUE_AUTEUR = 'Auteur';
|
||||
|
||||
|
||||
#--motif pour reperer la fin d une rubrique (la recherche de fin de rubrique sera de la forme : ... =~ /^\s*$MOTIF_FIN_RUBRIQUE\s*$/ )
|
||||
my $MOTIF_FIN_RUBRIQUE = '---+';#motif actuel : une suite d au moins 3 tirets
|
||||
|
||||
|
||||
|
||||
|
@ -126,9 +148,9 @@ foreach my $rep_test (@REP_TESTS_R,@REP_TESTS_L) {
|
|||
#arret du programme si il y a absence d au moins 1 fichier README
|
||||
if($is_absence_README) {
|
||||
warn "\n";
|
||||
afficher_ligne_pointilles('warn');
|
||||
afficher_ligne_tirets('warn');
|
||||
warn "Erreur (prog:$NOM_PROG) : arret a cause de l absence de fichier(s) README\n";
|
||||
afficher_ligne_pointilles('warn');
|
||||
afficher_ligne_tirets('warn');
|
||||
die "\n";
|
||||
}
|
||||
|
||||
|
@ -164,12 +186,12 @@ preambule_fic_tex_tmp($HANDLE_TEX);
|
|||
#corps du texte (d abord les tests rapides, ensuite les tests longs)
|
||||
#------------------------------------------------------------------------------------------
|
||||
#--- tests rapides ---
|
||||
print $HANDLE_TEX "\\clearpage\\newpage\n";
|
||||
print $HANDLE_TEX "\\clearpage\n";
|
||||
print $HANDLE_TEX "\\section{Tests rapides}\n";
|
||||
recopie_README("R", $HANDLE_TEX, \@REP_TESTS_R, @LISTE_RUBRIQUES_README);
|
||||
|
||||
#--- tests longs ---
|
||||
print $HANDLE_TEX "\\clearpage\\newpage\n";
|
||||
print $HANDLE_TEX "\\clearpage\n";
|
||||
print $HANDLE_TEX "\\section{Tests longs}\n";
|
||||
recopie_README("L", $HANDLE_TEX, \@REP_TESTS_L, @LISTE_RUBRIQUES_README);
|
||||
|
||||
|
@ -178,7 +200,7 @@ recopie_README("L", $HANDLE_TEX, \@REP_TESTS_L, @LISTE_RUBRIQUES_README);
|
|||
#fin de l ecriture du fichier .tex
|
||||
#------------------------------------------------------------------------------------------
|
||||
#ajout de l index (ajout egalement dans le sommaire sans numerotation)
|
||||
print $HANDLE_TEX "\\clearpage\\newpage\n";
|
||||
print $HANDLE_TEX "\\clearpage\n";
|
||||
print $HANDLE_TEX "\\printindex\n";#ecriture de l index
|
||||
|
||||
#ajout de \end{document}
|
||||
|
@ -251,9 +273,9 @@ chdir "..";
|
|||
|
||||
#affichage fin programme
|
||||
print "\n";
|
||||
afficher_ligne_pointilles('print');
|
||||
afficher_ligne_tirets('print');
|
||||
print "Le fichier $NOM_PDF_CATALOGUE a ete cree...\n";
|
||||
afficher_ligne_pointilles('print');
|
||||
afficher_ligne_tirets('print');
|
||||
print "\n";
|
||||
|
||||
|
||||
|
@ -321,36 +343,46 @@ sub genere_label_section {
|
|||
#- - - - - - - - -
|
||||
#actualisation du label pour le prochain appel
|
||||
#- - - - - - - - -
|
||||
#label actuel sous forme d un tableau d entier par conversion
|
||||
#label actuel sous forme d un tableau d entier par conversion selon la table $TAB_CONVERT_lettre2pos
|
||||
my @tab_label = map {$TAB_CONVERT_lettre2pos->{$_}} split(//, $LABEL_ACTUEL);
|
||||
my $nb_chars = $#tab_label + 1;
|
||||
|
||||
#test qui ne devrait jamais poser probleme (a moins que la batterie de verif ne contiennent 26 puissance 9 tests !!!!)
|
||||
#test sur le depassement du nombre max de tests, ce qui ne devrait jamais poser probleme (a moins que la batterie de verif ne contienne 26 puissance 9 tests !!!!)
|
||||
my $is_max_test = 1;
|
||||
for(my $i=0; $i<$nb_chars; $i++) {$is_max_test = 0 if($tab_label[$i] != 26);}
|
||||
if($is_max_test) {
|
||||
warn "\n";
|
||||
afficher_ligne_pointilles('warn');
|
||||
afficher_ligne_tirets('warn');
|
||||
warn "Erreur (prog:$NOM_PROG) : le nombre de tests de la batterie a atteint son maximum de 26 puissance $nb_chars !!!!!!\n\n";
|
||||
afficher_ligne_pointilles('warn');
|
||||
afficher_ligne_tirets('warn');
|
||||
warn "\n";
|
||||
sortie_programme();
|
||||
}
|
||||
|
||||
#incrementation du label
|
||||
# par exemple : si le label actuel est ZZZAAAAAA, le tableau @tab_label en chiffres contient [26][26][26][1][1][1][1][1][1]
|
||||
# on incremente la premiere case de 1 => [27][26][26][1][1][1][1][1][1]
|
||||
# algo : pour tout nombre superieur a 27, on le remet a 1 et on incremente de 1 la case suivante
|
||||
# donc, dans la boucle suivante, ca donne :
|
||||
# i=0 => $tab_label[0] = 1; $tab_label[1] = 27
|
||||
# i=1 => $tab_label[1] = 1; $tab_label[2] = 27
|
||||
# i=2 => $tab_label[2] = 1; $tab_label[3] = 2 => fin de la boucle (last)
|
||||
# tableau final => [1][1][1][2][1][1][1][1][1], ce qui correspond en lettres au nouveau label suivant : AAABAAAAA
|
||||
$tab_label[0]++;
|
||||
for(my $i=0; $i<$nb_chars; $i++) {
|
||||
#incrementation de l indice suivant si l indice courant depasse 26
|
||||
if($tab_label[$i] > 26) {
|
||||
#retour a la lettre A pour l indice courant
|
||||
$tab_label[$i] = 1;
|
||||
$tab_label[$i+1]++ if($i != ($nb_chars-1));
|
||||
#incrementation de l indice suivant
|
||||
$tab_label[$i+1]++ if($i != ($nb_chars-1));#sauf si c est le dernier indice
|
||||
}
|
||||
else {
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
#-conversion inverse
|
||||
#-conversion inverse selon la table $TAB_CONVERT_pos2lettre
|
||||
$LABEL_ACTUEL = '';
|
||||
foreach my $val (@tab_label) {$LABEL_ACTUEL .= $TAB_CONVERT_pos2lettre->{$val};}
|
||||
|
||||
|
@ -368,7 +400,7 @@ sub genere_label_section {
|
|||
# - lettre indiquant test rapide ou long (donc la lettre "R" ou "L")
|
||||
# - handle du fichier destination (donc deja ouvert par open() )
|
||||
# - reference vers la liste des repertoires de test (antislash devant pour une reference : par exemple \@REP_TESTS_R)
|
||||
# - liste des noms de rubriques a recopier (
|
||||
# - liste des noms de rubriques a recopier
|
||||
#
|
||||
# pas de sortie
|
||||
#
|
||||
|
@ -389,8 +421,9 @@ sub recopie_README {
|
|||
#chemin du fichier README
|
||||
my $fic_README = "../$rep_test/README";
|
||||
|
||||
#derniere partie du nom du repertoire
|
||||
#derniere partie du nom du repertoire (en supprimant le prefixe Test_R_ ou Test_L_)
|
||||
my $nom_test = basename $rep_test;
|
||||
$nom_test =~ s/^Test_[RL]_//;
|
||||
$nom_test =~ s/_/\$\\_\$/g;#tiret bas entre dollars
|
||||
|
||||
#saisie de l encodage du README (par defaut : rien) (rq : on utilise la commande linux/Unix "file" pour avoir des infos sur l encodage)
|
||||
|
@ -408,25 +441,65 @@ sub recopie_README {
|
|||
#- - - - - - - - - - - - - - - -
|
||||
print $HANDLE_TEX "\\subsection{Test\$\\_\$$lettre_rapide_ou_long n\$^\\circ\$$no_test : $nom_test}\n";
|
||||
|
||||
#- - - - - - - - - - - - - - - -
|
||||
#ecriture du ou des auteurs de ce test
|
||||
#- - - - - - - - - - - - - - - -
|
||||
my @auteurs = saisir_mots_rubrique_README($fic_README, $encodage_source, $NOM_RUBRIQUE_AUTEUR);
|
||||
if($#auteurs > -1) {
|
||||
print $HANDLE_TEX "\\noindent\n";
|
||||
print $HANDLE_TEX "\\begin{minipage}{\\linewidth}\n";
|
||||
print $HANDLE_TEX "\\noindent \\underline{Auteur} :\\\\\n";
|
||||
foreach my $auteur (@auteurs) {print $HANDLE_TEX "\\hspace*{0.5cm} $auteur\\\\\n";}
|
||||
print $HANDLE_TEX "\\end{minipage}\n";
|
||||
print $HANDLE_TEX "\\\\\n\n";
|
||||
}
|
||||
else {
|
||||
warn " Attention (prog:$NOM_PROG) : la rubrique \"Auteur\" n a pas ete trouvee (ou est vide) pour ce test...\n";
|
||||
print "(entree pour continuer)"; <STDIN>;
|
||||
|
||||
}
|
||||
|
||||
#- - - - - - - - - - - - - - - -
|
||||
#indexage et ecriture de la liste des mots-cles eventuels de ce test
|
||||
#- - - - - - - - - - - - - - - -
|
||||
my @mots_cles = saisir_mots_cles_README($fic_README, $encodage_source);
|
||||
my @mots_cles = saisir_mots_rubrique_README($fic_README, $encodage_source, $NOM_RUBRIQUE_MOTS_CLES);
|
||||
if($#mots_cles > -1) {
|
||||
#indexage
|
||||
#--generation d un label
|
||||
my $label_section = genere_label_section();
|
||||
print $HANDLE_TEX "\\label{$label_section}\n";
|
||||
#indexage de chaque mot-cle via commande \ind (voir preambule du document latex dans la subroutine preambule_fic_tex_tmp() )
|
||||
#--indexage de chaque mot-cle via commande \ind (voir preambule du document latex dans la subroutine preambule_fic_tex_tmp() )
|
||||
foreach my $mot_cle (@mots_cles) {
|
||||
print $HANDLE_TEX "\\ind{$mot_cle}{$label_section}\n";
|
||||
}
|
||||
#recopie des mots-cles
|
||||
print $HANDLE_TEX "\\noindent\n";
|
||||
print $HANDLE_TEX "\\begin{minipage}{\\linewidth}\n";
|
||||
print $HANDLE_TEX "\\noindent \\underline{Mots-cl\\\'es} :\\\\\n";
|
||||
@_ = ();
|
||||
push(@_, @mots_cles);
|
||||
$_ = shift(@_);
|
||||
s/\s+/~/g;#espaces insecables
|
||||
print $HANDLE_TEX "\\hspace*{0.5cm} $_";
|
||||
foreach my $mot_cle (@_) {
|
||||
$mot_cle =~ s/\s+/~/g;#espaces insecables
|
||||
print $HANDLE_TEX ", $mot_cle";
|
||||
}
|
||||
print $HANDLE_TEX "\\\\\n";
|
||||
print $HANDLE_TEX "\\end{minipage}\n";
|
||||
print $HANDLE_TEX "\\\\\n\n";
|
||||
}
|
||||
else {
|
||||
warn " Attention (prog:$NOM_PROG) : la rubrique \"Mots-cles\" n a pas ete trouvee (ou est vide) pour ce test...\n";
|
||||
print "(entree pour continuer)"; <STDIN>;
|
||||
}
|
||||
|
||||
|
||||
#- - - - - - - - - - - - - - - -
|
||||
#ecriture du nom complet du repertoire sous forme d une arborescence simple
|
||||
#- - - - - - - - - - - - - - - -
|
||||
print $HANDLE_TEX "\\noindent\n";
|
||||
print $HANDLE_TEX "\\begin{minipage}{\\linewidth}\n";
|
||||
print $HANDLE_TEX "\\noindent \\underline{R\\\'epertoire} :\\\\\n";
|
||||
my @rep_arbo = split(/\/+/, $rep_test);
|
||||
shift(@rep_arbo) if($rep_arbo[0] =~ /^\.+$/);#suppression d un eventuel ./ ou ../ devant le nom du repertoire
|
||||
|
@ -438,6 +511,8 @@ sub recopie_README {
|
|||
print $HANDLE_TEX "\\hspace*{${hspace_cm}cm}\$\\triangleright\$ $rep_arbo\\\\\n";
|
||||
$hspace_cm += $hspace_cm_incr;
|
||||
}
|
||||
print $HANDLE_TEX "\\end{minipage}\n";
|
||||
print $HANDLE_TEX "\\\\\n\n";
|
||||
|
||||
|
||||
#- - - - - - - - - - - - - - - -
|
||||
|
@ -504,12 +579,12 @@ sub recopie_rubrique_README {
|
|||
open(my $Hlocal, "<$encodage_source", "$fic_source");
|
||||
while(<$Hlocal>) {
|
||||
next if(not /^\s*$regexp\s*$/i);#recherche du bloc correspondant a la rubrique
|
||||
#normalement, la ligne suivante est une ligne de pointilles
|
||||
#normalement, la ligne suivante est une ligne de tirets
|
||||
$_ = <$Hlocal>; chomp;
|
||||
#-si ce n est pas une ligne de pointilles => echec
|
||||
#-si ce n est pas une ligne de tirets => echec
|
||||
if(not /^\s*-+\s*$/) {
|
||||
$is_probleme_rubrique = 1;
|
||||
$message = 'rubrique trouvee mais non conforme (absence de la ligne de pointilles apres le nom de la rubrique)';
|
||||
$message = 'rubrique trouvee mais non conforme (absence de la ligne de tirets apres le nom de la rubrique)';
|
||||
last;
|
||||
}
|
||||
|
||||
|
@ -523,7 +598,7 @@ sub recopie_rubrique_README {
|
|||
print $handle_fic_destination "\\subsubsection{$nom_rubrique}\n";
|
||||
|
||||
while(<$Hlocal>) {
|
||||
last if(/^\s*-+$/);#critere d arret : ligne de pointilles (a moins que la fin du fichier n ait ete atteinte avant)
|
||||
last if(/^\s*$MOTIF_FIN_RUBRIQUE\s*$/);#critere d arret : motif de fin de rubrique (a moins que la fin du fichier n ait ete atteinte avant)
|
||||
chomp;
|
||||
|
||||
#gestion des caracteres ou groupes de caracteres speciaux
|
||||
|
@ -542,68 +617,69 @@ sub recopie_rubrique_README {
|
|||
|
||||
|
||||
#--------------------------------------------------
|
||||
#subroutine permettant de saisir les mots-cles contenus dans la rubrique "Mots-cles" d un fichier README
|
||||
# important : cette subroutine s attend a trouver un seul mot-cle par ligne et pouvant contenir des espaces (exemple : "contraintes planes")
|
||||
# rq : le nom de la rubrique a trouver est contenu dans la variable $NOM_RUBRIQUE_MOTS_CLES
|
||||
#subroutine permettant de saisir les mots ou phrases contenus dans une rubrique d un fichier README
|
||||
# rq : cette subroutine renvoie simplement une liste des lignes non vides d une rubrique
|
||||
#--------------------------------------------------
|
||||
#
|
||||
# en entree :
|
||||
# - chemin vers le fichier README
|
||||
# - encodage du fichier README (de la forme ":encoding(nom_encodage)", par exemple : ":encoding(UTF-8)"
|
||||
# - nom de la rubrique (insensible a la casse)
|
||||
#
|
||||
# en sortie :
|
||||
# - liste de mots-cles
|
||||
# - liste de mots ou phrases (i.e les lignes non vides de la rubrique)
|
||||
#
|
||||
sub saisir_mots_cles_README {
|
||||
sub saisir_mots_rubrique_README {
|
||||
my $fic_source = shift;
|
||||
my $encodage_source = shift;
|
||||
my $nom_rubrique = shift;
|
||||
|
||||
#construction d une expression reguliere pour rechercher la rubrique
|
||||
$NOM_RUBRIQUE_MOTS_CLES =~ s/^\s+//;
|
||||
$NOM_RUBRIQUE_MOTS_CLES =~ s/\s+$//;
|
||||
my @mots_rubrique = split(/\s+/, $NOM_RUBRIQUE_MOTS_CLES);
|
||||
$nom_rubrique =~ s/^\s+//;
|
||||
$nom_rubrique =~ s/\s+$//;
|
||||
my @mots_rubrique = split(/\s+/, $nom_rubrique);
|
||||
my $regexp = shift(@mots_rubrique);
|
||||
foreach my $mot (@mots_rubrique) {
|
||||
$regexp .= '\s+'."$mot";
|
||||
}
|
||||
#a ce stade, le motif a trouver est de la forme : mot\s+mot\s+mot etc...
|
||||
|
||||
#liste des mots-cles de la rubrique Mots-cles de ce README
|
||||
my @liste_mots_cles;
|
||||
#liste des lignes non vides de la rubrique $nom_rubrique de ce README
|
||||
my @liste_lignes_non_vides;
|
||||
|
||||
open(my $Hlocal, "<$encodage_source", "$fic_source");
|
||||
while(<$Hlocal>) {
|
||||
next if(not /^\s*$regexp\s*$/i);#recherche du bloc correspondant a la rubrique
|
||||
#normalement, la ligne suivante est une ligne de pointilles
|
||||
#normalement, la ligne suivante est une ligne de tirets
|
||||
$_ = <$Hlocal>; chomp;
|
||||
#-si ce n est pas une ligne de pointilles => echec
|
||||
#-si ce n est pas une ligne de tirets => echec
|
||||
if(not /^\s*-+\s*$/) {
|
||||
last;
|
||||
}
|
||||
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
#saisie des mots-cles
|
||||
#saisie des lignes non vides
|
||||
#- - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
while(<$Hlocal>) {
|
||||
last if(/^\s*-+$/);#critere d arret : ligne de pointilles (a moins que la fin du fichier n ait ete atteinte avant)
|
||||
next if(/^\s*$/);
|
||||
last if(/^\s*$MOTIF_FIN_RUBRIQUE\s*$/);#critere d arret : motif de fin de rubrique (a moins que la fin du fichier n ait ete atteinte avant)
|
||||
next if(/^\s*$/);#on saute les lignes vides
|
||||
chomp;
|
||||
s/^\s+//; s/\s+$//;
|
||||
|
||||
#gestion des caracteres ou groupes de caracteres speciaux
|
||||
$_ = translate_to_latex($_);
|
||||
|
||||
#ajout du mots-cle a la liste
|
||||
push(@liste_mots_cles, $_);
|
||||
#ajout de la ligne a la liste
|
||||
push(@liste_lignes_non_vides, $_);
|
||||
}
|
||||
|
||||
last;
|
||||
}
|
||||
close($Hlocal);
|
||||
|
||||
return(@liste_mots_cles);
|
||||
}#sub saisir_mots_cles_README
|
||||
return(@liste_lignes_non_vides);
|
||||
}#sub saisir_mots_rubrique_README
|
||||
|
||||
|
||||
|
||||
|
@ -640,25 +716,25 @@ sub translate_to_latex {
|
|||
|
||||
|
||||
#--------------------------------------------------
|
||||
#subroutine permettant d ecrire une ligne de pointilles de la largeur du terminal
|
||||
#subroutine permettant d ecrire une ligne de tirets de la largeur du terminal
|
||||
#--------------------------------------------------
|
||||
#
|
||||
# en entree :
|
||||
# - print ou warn (suivant que l on souhaite afficher avec print (donc vers STDOUT) ou warn (donc vers STDERR)
|
||||
#
|
||||
sub afficher_ligne_pointilles {
|
||||
sub afficher_ligne_tirets {
|
||||
use Term::ReadKey;
|
||||
my $nb_char_largeur_terminal = ( GetTerminalSize() )[0];#largeur du terminal en nombre de caracteres (via package Term::ReadKey)
|
||||
|
||||
my $funct_disp = shift;
|
||||
|
||||
|
||||
my $ligne_pointilles = '';
|
||||
$ligne_pointilles .= '-' for(1 .. $nb_char_largeur_terminal);
|
||||
my $ligne_tirets = '';
|
||||
$ligne_tirets .= '-' for(1 .. $nb_char_largeur_terminal);
|
||||
|
||||
print "$ligne_pointilles\n" if($funct_disp eq 'print');
|
||||
warn "$ligne_pointilles\n" if($funct_disp eq 'warn');
|
||||
}#sub afficher_ligne_pointilles
|
||||
print "$ligne_tirets\n" if($funct_disp eq 'print');
|
||||
warn "$ligne_tirets\n" if($funct_disp eq 'warn');
|
||||
}#sub afficher_ligne_tirets
|
||||
|
||||
|
||||
#--------------------------------------------------
|
||||
|
|
Binary file not shown.
Loading…
Reference in a new issue