Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 4
petite erreur dans le code...

04 Sep '22, 21:45

cpierquet's gravatar image

cpierquet
33614

Bon après être tombé par hasard sur un fil de tex.stackexchange.com j'ai trouvé que `\eappto` de `etoolbox` permettait de gérer le problème de la fin ! Donc a priori mon problème est réglé, avec le code ci-dessous (sans doute pas du tout optimisé mais bon...) <pre><code>% !TeX TS-program = lualatex \documentclass[a4paper,11pt]{article} \usepackage[margin=1.5cm]{geometry} \usepackage{xinttools} \usepackage{xstring} \usepackage{listofitems} \usepackage{xfp} \usepackage{luarandom} \usepackage{etoolbox} \usepackage{datatool} \setlength{\parindent}{0pt} \usepackage{siunitx} \begin{document} \part{Test} \newcommand\CreationListe[4][/]{ \makeSimpleRandomNumberList{#2}{#3}{#4}% \def\ListeEntiersAleatoires{\getNumberFromList{1}} \xintFor* ##1 in {\xintSeq{1}{\inteval{#4-1}}}\do{% {\xintSeq{2}{\inteval{#4}}}\do{% \appto\ListeEntiersAleatoires{#1\getNumberFromList{##1}}} } \newcommand\CreationListeNonRepet[4][/]{ \makeRandomNumberList{#2}{#3}{#4}% \def\ListeEntiersAleatoires{\getNumberFromList{1}} \xintFor* ##1 in {\xintSeq{1}{\inteval{#4-1}}}\do{% {\xintSeq{2}{\inteval{#4}}}\do{% \appto\ListeEntiersAleatoires{#1\getNumberFromList{##1}}} } \dtlexpandnewvalue% \DTLgnewdb{teqstordrecroissant}% \DTLcleardb{teqstordrecroissant} %on lance la génération \CreationListe[/]{0}{50}{10} \CreationListeNonRepet[/]{0}{50}{10} %on stocke le résultat \edef\foo{\ListeEntiersAleatoires} Affichage de la liste générée : \foo \medskip %gestion par listofitems \setsepchar[.]{/} \readlist*\FOO\foo Affichage de la liste traitée par listofitems : \showitems{\FOO} \medskip \foreachitem\x\in\FOO{% \DTLnewrow{teqstordrecroissant}% \xdef\toto{\FOO[\xcnt]}% \DTLnewdbentry{teqstordrecroissant}{numeric}{\toto} } \dtlsort{numeric}{teqstordrecroissant}{\dtlicompare} \def\ListeEntiersAleatoiresCroissant{}% \DTLforeach{teqstordrecroissant}{\numeroDonnee=numeric}% {\eappto\ListeEntiersAleatoiresCroissant{\num{\numeroDonnee}/}} \StrGobbleRight{\ListeEntiersAleatoiresCroissant}{1}[\LEAC] Affichage de la liste générée et triée : \LEAC \medskip \setsepchar[.]{/} \readlist*\FOOC\LEAC Affichage de la liste triée et traitée par listofitems : \showitems{\FOOC} \medskip \end{document}</code></pre>
cliquez ici pour masquer/afficher la révision 3
mineure

04 Sep '22, 20:24

denis's gravatar image

denis
7.3k2510

Bon après être tombé par hasard sur un fil de tex.stackexchange.com j'ai trouvé que \eappto de ettolbox `\eappto` de `etoolbox` permettait de gérer le problème de la fin ! Donc a priori mon problème est réglé, avec le code ci-dessous (sans doute pas du tout optimisé mais bon...) <pre><code>% !TeX TS-program = lualatex \documentclass[a4paper,11pt]{article} \usepackage[margin=1.5cm]{geometry} \usepackage{xinttools} \usepackage{xstring} \usepackage{listofitems} \usepackage{xfp} \usepackage{luarandom} \usepackage{etoolbox} \usepackage{datatool} \setlength{\parindent}{0pt} \usepackage{siunitx} \begin{document} \part{Test} \newcommand\CreationListe[4][/]{ \makeSimpleRandomNumberList{#2}{#3}{#4}% \def\ListeEntiersAleatoires{\getNumberFromList{1}} \xintFor* ##1 in {\xintSeq{1}{\inteval{#4-1}}}\do{% \appto\ListeEntiersAleatoires{#1\getNumberFromList{##1}}} } \newcommand\CreationListeNonRepet[4][/]{ \makeRandomNumberList{#2}{#3}{#4}% \def\ListeEntiersAleatoires{\getNumberFromList{1}} \xintFor* ##1 in {\xintSeq{1}{\inteval{#4-1}}}\do{% \appto\ListeEntiersAleatoires{#1\getNumberFromList{##1}}} } \dtlexpandnewvalue% \DTLgnewdb{teqstordrecroissant}% \DTLcleardb{teqstordrecroissant} %on lance la génération \CreationListe[/]{0}{50}{10} %on stocke le résultat \edef\foo{\ListeEntiersAleatoires} Affichage de la liste générée : \foo \medskip %gestion par listofitems \setsepchar[.]{/} \readlist*\FOO\foo Affichage de la liste traitée par listofitems : \showitems{\FOO} \medskip \foreachitem\x\in\FOO{% \DTLnewrow{teqstordrecroissant}% \xdef\toto{\FOO[\xcnt]}% \DTLnewdbentry{teqstordrecroissant}{numeric}{\toto} } \dtlsort{numeric}{teqstordrecroissant}{\dtlicompare} \def\ListeEntiersAleatoiresCroissant{}% \DTLforeach{teqstordrecroissant}{\numeroDonnee=numeric}% {\eappto\ListeEntiersAleatoiresCroissant{\num{\numeroDonnee}/}} \StrGobbleRight{\ListeEntiersAleatoiresCroissant}{1}[\LEAC] Affichage de la liste générée et triée : \LEAC \medskip \setsepchar[.]{/} \readlist*\FOOC\LEAC Affichage de la liste triée et traitée par listofitems : \showitems{\FOOC} \medskip \end{document}</code></pre>
cliquez ici pour masquer/afficher la révision 2

04 Sep '22, 18:32

cpierquet's gravatar image

cpierquet
33614

cliquez ici pour masquer/afficher la révision 1

04 Sep '22, 18:31

cpierquet's gravatar image

cpierquet
33614

C'est votre première visite ici ? Consultez la FAQ !

×