Je cherche un code simple basé sur le package datatool pour filtrer des lignes d'un petit fichier .csv tel que :

Ouvrir dans l'éditeur Overleaf
word;phonetic;grammar;label;level;translation;sound
give up;/ɡɪv ʌp/;phrasal verb;[I or T];TODO;abondonner;TODO
blow up;/bləʊ ʌp/;phrasal verb;[I/T];TODO;(faire) sauter;TODO
put off;/pʊt ɒf/;phrasal verb;[+ -ing verb];B1;repousser, dégoûter;TODO
...

Actuellement, j'utilise une boucle qui parcourt chaque ligne filtrée par une condition :

Ouvrir dans l'éditeur Overleaf
\DTLforeach*[\equal{\word}{blow up} \or \equal{\word}{put off}]{entries}% database label
{\word=word, \phonetic=phonetic,
 \grammar=grammar, \label=label,\level=level,
 \translation=translation}% assignment
{% Stuff to do at each iteration:
\begin{dicEntry}{\word}
  \dicNature{\grammar}\space
  \dicPhonologySimple{\phonetic}\space
  {\small\level}\space
  \label\space
  \dicTranslation{} \translation
\end{dicEntry} \\
}

J'obtiens le résultat suivant :

Ouvrir dans l'éditeur Overleaf
blow up = phrasal verb • /bləʊ ʌp/ TODO [I/T] Trad. (faire) sauter
put off = phrasal verb • /pʊt ɒf/ B1 [+ -ing verb] Trad. repousser, dégoûter

Alors, ça fonctionne me feriez-vous remarquer !

Oui, mais je dois appliquer mon code à de nombreuses reprises et parfois pour de longues listes de mots.

Je n'arrive pas à trouver comment écrire une fonction simple avec datatool. Quelqu'un pourrait-il m'expliquer ? Ou m'indiquer un bon tutoriel ?

Posée 09 Mai '20, 02:50

polymorphisme's gravatar image

polymorphisme
511822
Taux d'acceptation : 40%

Modifiée 17 Mai '20, 17:54

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

1

Si j'ai bien compris, vous pouvez définir une commande

\newcommand{\filtrer}[1]{% \DTLforeach*[\DTLisinlist{\word}{#1}]{entries}{\word=word,...}{...}}, à utiliser \filtrer{blow up,give up}.

(10 Mai '20, 02:00) touhami touhami's gravatar image
1

Oui c'est ça. Et j'ai fini par trouver la réponse que j'indique dans le message suivant.

(17 Mai '20, 16:28) polymorphisme polymorphisme's gravatar image

J'ai fini par trouver un élément de réponse :

Ouvrir dans l'éditeur Overleaf
\DTLassign{entries}{3}{\word=word,\translation=translation}
Here's the information: word: \word. translation: \translation.

Ensuite, il suffit d'appliquer la fonction DTLassign à une liste de mots. :)

Lien permanent

Publiée 17 Mai '20, 16:31

polymorphisme's gravatar image

polymorphisme
511822
Taux d'acceptation : 40%

Modifiée 22 Mai '20, 13:00

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.