Merci à tous.
Moi, le 0- était juste utile pour me faire une indication. Dans mon programme déjà mis en prod, j'ai d'ailleur utilisé le préfixe no- au lieu de 0-.
De plus, je donne au code une...
Type: Messages; Utilisateur: djibril
Merci à tous.
Moi, le 0- était juste utile pour me faire une indication. Dans mon programme déjà mis en prod, j'ai d'ailleur utilisé le préfixe no- au lieu de 0-.
De plus, je donne au code une...
Pour revenir au bogue du code de philou, pour le moment, pour le contourner, j'ai fait un modification dans ma liste de soumission.
Elle ne pourra plus proposer un parent étoilé avec un descendance...
En fait, ce n'est pas bon :aie: !
%new_sections = (
'i*' => '0-i',
'i-a*' => '0-i-a',
'i-b' => '0-i-a',
'ii' => 'i',
...
:merci:
Bonsoir,
Tout est OK. J'ai fait mon programme et tout fonctionne à merveille.
Seul hic :
Cela double le préfixe : 'i-a*' => '0-0-i-a',.
Bon, pas grave, une regex pour supprimer les...
Merci à vous deux.
Effectivement philou, ta solution rendant l'indépendance au type de numérotation est vraiment bien.
cmcmc, ton algo est aussi pas mal. C'est vrai que les étoiles ont disparu...
Dans tes premières versions de code avant que l'on ne parle de liste plate, j'avais fais deux légères modifications qui me permettaient d'avoir un hash de type ancien-numero => nouveau_numero.
...
#!/usr/bin/perl
use strict;
use warnings;
use feature qw(:5.14);
use Data::Dumper;
my $new_sommaire_final={};
#my @sections = qw(i* i-a i-b ii ii-a* ii-b ii-b-A ii-b-B ii-b-C iii* iii-a...
Euh, je n'ai pas compris ta question. Et en testant ton code, le résultat est étrange :
@sections = (
'i*',
'i-a',
'i-b',
'ii',
...
:hola:
:aie:
Ou trouver un moyen de convertir ma liste à plat en liste ou hash d'entrée pour ton programme.
cmcmc, merci pour le code, mais le résultat est erroné dès le niveau 3.
Code
my %fmt = (
'1' => {
ntoa => sub { $_[0] + 1 },
aton => sub { $_[0] - 1 }
},
Euh, en entrée, pour moi le plus simple serait de te donner une liste de ce type :
my @sections = qw(i* i-a i-b ii ii-a* ii-b ii-b-A ii-b-B ii-b-C iii* iii-a iii-b iv iv-a iv-b );
Et en sortie,...
philou, le tableau, ça m'arrange en fait :ptdr: car construire le hash de départ, en fait, c'est plus compliqué :aie: !
Sans avoir testé ton code, je rajoute une précision.
Chaque niveau commence systématiquement par 1 ou a ou A ou i ou I. Bien évidemment, l'uniformité est toujours respectée.
Ainsi, nous pourrons...
En aparté :
use Math::Roman qw(roman);
my @romains = qw / I II VII III VIII IV V VI IX XI M/;
print join " ", sort { roman($a) <=> roman($b) } @romains;
On peut ruser en utilisant le module Math::Roman.
La numérotation est uniforme. Elle est issue d'un vrai sommaire issu d'un outil bureautique.
cmcmc, ce n'est pas bon du tout.
code :
say Dumper \@sections;
my %ref_sommaire_cmcmc = reverse renumerote(@sections);
say Data::Dumper->Dump([\%ref_sommaire_cmcmc],...
cmc, ton code fonctionne parfaitement et m'arrange car je peux partir d'un tableau.
Dans tous les cas, il faut que je teste vos deux codes à partir d'un sommaire plus complexe qui contiendra des...
@philou : en modifiant légèrement ton code, j'arrive à une correspondance voulu :
#!/usr/bin/perl
use warnings;
use strict;
#!/usr/bin/perl
use strict;
use warnings;
Ah ok, je vois !
Faut reprendre la structure de philou, ou bien partir d'autre chose si tu veux. C'était surtout pour expliquer la hiérarchie du sommaire.
Pour mon programme je remplirais ce...
@philou, j'ai testé ton programme et il y a un petit souci.
Le nouvelle hash est parfait. LE seul bémol, est que je suis incapable de faire la liaison entre les anciennes et nouvelles numérotations....
:koi: En quoi mon sommaire est malade ?
Les chapitres de niveau 1 sont des chiffres ou nombres.
Les chapitres de niveau 2 des lettres en minuscule (d'où 1-a, 1-b...)
Les chapitres de niveau 3 des...
En fait, je ne souhaite pas supprimer le chapitre 1 et 4, mais les cacher. Donc à mon sens, cacher veut dire les exclure de ma numérotation et ceux en rajoutant un préfix (car chaque numérotation...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.