[Résolu] Exporter des données

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Exporter des données

Messagepar evariste_G » Dimanche 24 Avril 2011, 19:43

Bonjour.
Je me pose actuellement une question : comment peut-on exporter des données engendrées par un code LaTeX ?
Concrètement, je fais une boucle dans laquelle j'appelle une commande qui, entre autre, me génère un code.
J'aimerais que tous mes codes soient enregistrés dans un fichier externe. Je pense que l'environnement verbatimout pourrait faire cela, mais je ne vois pas comment m'y prendre réellement.

Code: Tout sélectionner
\newcommand{\code}{%
Ici est généré un code que j'aimerais insérer dans un fichier externe comme suit :
1/ Si le fichier externe n'existe pas, je le créé et j'enregistre le code
2/ Si le fichier existe, j'insère A LA SUITE (1 code par ligne) le code engendré
}
(...)
\multido{\i=1+1}{10}{%
Plusieurs choses se font dont l'appel à : \code
}
Dernière édition par evariste_G le Lundi 25 Avril 2011, 12:39, édité 1 fois.
evariste_G
Téra-utilisateur
 
Messages: 1340
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Post-bac

Publicité

Re: Exporter des données

Messagepar francois » Dimanche 24 Avril 2011, 20:10

Bonjour Evariste,

Voici un début de solution :

Code: Tout sélectionner
\documentclass[french,a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{geometry}
\usepackage{multido}
\usepackage{babel}


\newcommand{\Macro}[1]{Appel de la macro avec l'argument #1}

\begin{document}

Test...

% On crée le fichier Fichier.txt ouvert en écriture
\newwrite\Fichier
\immediate\openout\Fichier=Fichier.txt

% On peut ensuite écrire dessus
\immediate\write\Fichier{Blabla}
\immediate\write\Fichier{Blabla}
\immediate\write\Fichier{Blabla}
\immediate\write\Fichier{Blabla}
\multido{\i=0+1}{15}
{%
  \immediate\write\Fichier{\Macro{\i}}
  \immediate\write\Fichier{\Macro{toto}}
}%

\end{document}

Par contre il y a réécriture du fichier à chaque compilation, ce qui ne correspond pas exactement à ce que tu souhaites. Mais le coup du « si le fichier existe on écrit à la suite », je ne sais pas faire désolé.

J'ai vu dans un message précédent que tu souhaitais créer des codes barres. J'ai l'impression, avec ce nouveau fil, que tu as une petite réalisation derrière la tête. Si ça t'ennuie tu n'es absolument pas obligé de me répondre bien sûr, mais serait-il possible de savoir ce que tu essayes de faire exactement. Je te pose la question un peu par curiosité, certes, mais aussi parce que je me suis aperçu des fois qu'on en demandait un peu trop à LaTeX et qu'on pouvait parfois gagner beaucoup de temps et d'efficacité à répartir le travail, et notamment à déléguer une partie du travail à un langage de script mieux adapté.
François Lafont
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Re: Exporter des données

Messagepar evariste_G » Dimanche 24 Avril 2011, 21:10

Bonsoir.
Tout fonctionne à merveille ! Merci !

Pour satisfaire ta curiosité, je suis sur un projet bien particulier : je créé des "tickets" (10 par page) avec codes barre, qui donnent accès à leur possesseur à une salle où je pourrais donner des cours collectifs. Le code barre est assez long pour que la probabilité qu'il y en ait 2 identiques soit très faible. Plutôt que de vérifier un à un si les tickets sont valables, les codes barre permettent d'aller plus vite avec un lecteur de codes barre. Je ne sais pas encore comment je peux encore exploiter un tel lecteur car je n'en ai pas encore, mais tout porte à croire que c'est plus rentable que d'insérer "à la main" les codes pour les comparer à ceux de la base de données.
Tu l'auras donc compris, le but final serait de créer un fichier ".sql" qui automatise l'enregistrement des codes barre dans ma base SQL.
evariste_G
Téra-utilisateur
 
Messages: 1340
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Post-bac

Re: Exporter des données

Messagepar francois » Dimanche 24 Avril 2011, 21:55

evariste_G a écrit:Tout fonctionne à merveille ! Merci !

Pas de quoi.

Sinon, pour ton histoire de tickets, je ne pensais pas que LaTeX pouvait créer de vrais codes barres exploitables par des vrais lecteurs de code barres, je pensais que LaTeX permettait seulement de faire des machins qui ressemblent à des codes barres. (En même temps, je ne sais pas vraiment comment ça fonctionne un code barre.) Personnellement, pour faire un truc comme ça, je ferais plutôt un petit script qui crée les numéros aléatoires et les met dans une base de données et un autre script qui générait le code LaTeX faisant les tickets en puisant les données dans la base. (En l'occurrence je ferais cela en Python car c'est le langage de script que je connais le mieux pour faire un truc dans le genre, mais ça c'est totalement anecdotique, ça peut être un autre langage.)

Bon courage en tout cas... :wink:
François Lafont
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Re: Exporter des données

Messagepar un bon petit » Dimanche 24 Avril 2011, 22:21

francois a écrit:Sinon, pour ton histoire de tickets, je ne pensais pas que LaTeX pouvait créer de vrais codes barres exploitables par des vrais lecteurs de code barres, je pensais que LaTeX permettait seulement de faire des machins qui ressemblent à des codes barres.

Hein ? Mais bien évidemment que ce sont de vrais code barres, conforme aux spécifications pour chacun des types proposés, et lisible par tout lecteur de code barres.
D'ailleurs, as-tu été regarder le code (au moins la taille, 599kio) du code postscript qui permet de générer ces jolis code barres ? Tu verras que c'est vraiment du lourd et qu'il ne s'agit pas de "faire semblant" :roll:

Devant l'ampleur des calculs faits par postscrit, on commence à comprendre que l'équivalent tikz n'est pas pour demain...
francois a écrit:Personnellement, pour faire un truc comme ça, je ferais plutôt un petit script qui crée les numéros aléatoires et les met dans une base de données et un autre script qui générait le code LaTeX faisant les tickets en puisant les données dans la base. (En l'occurrence je ferais cela en Python car c'est le langage de script que je connais le mieux pour faire un truc dans le genre, mais ça c'est totalement anecdotique, ça peut être un autre langage.)

Moi, je ferais-ça en TeX+pstricks et sans tikz bien sûr, mais chacun ses gouts...
un bon petit
Giga-utilisateur
 
Messages: 638
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Exporter des données

Messagepar francois » Dimanche 24 Avril 2011, 23:01

Ah désolé un bon petit, comment ai-je pu douter un instant des capacités de PSTricks ? :wink:
Décidément ce bon vieux LaTeX a plus d'un tour dans son sac.

un bon petit a écrit:Moi, je ferais-ça en TeX+pstricks et sans tikz bien sûr, mais chacun ses gouts...

Oui bien sûr. Mais si j'ai bien compris Evariste devra tenir à jour une « sorte » de base de données contenant les numéros de codes-barre valides. Je pense qu'il faudra bien qu'il utilise autre chose que TeX/LaTeX pour faire cela.
François Lafont
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Re: Exporter des données

Messagepar evariste_G » Lundi 25 Avril 2011, 10:11

Il existe plus d'une façon de faire ce que je veux. Personnellement, Python m'est inconnu (j'ai bien tenté de m'y mettre mais après installation, j'ai vu que je n'arrivais à rien).
De plus, la production de tickets n'est pas à une échelle industrielle donc je peux créer mes 10 tickets en exportant les codes barre au format SQL pour ensuite exécuter le fichier SQL (afin qu'il enregistre les codes dans la BDD), c'est rapide.
Il faut dire aussi que je n'ai guère anticipé le fait d'enregistrer ces codes dans ma BDD donc au début, j'ai juste créé mes tickets (avec diverses informations textuelles), ensuite, j'ai voulu insérer des codes barre pour enfin décider de les enregistrer, d'où le fait de passer d'abord par LaTeX et non par un programme extérieur de génération de codes. Dans le contexte actuel, ça ne me dérange pas de faire ainsi : deux manipulations (compilation LaTeX + exécution SQL), c'est pas la mort non plus :wink:
evariste_G
Téra-utilisateur
 
Messages: 1340
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Post-bac

Re: Exporter des données

Messagepar francois » Lundi 25 Avril 2011, 12:55

evariste_G a écrit:Dans le contexte actuel, ça ne me dérange pas de faire ainsi : deux manipulations (compilation LaTeX + exécution SQL), c'est pas la mort non plus :wink:

Oui bien sûr et je suis sûr que tu nous feras ça les doigts dans le pif.

Pour en revenir à ta question initiale, le fait de pas pouvoir écrire un fichier à partir de la fin si celui-ci existe déjà ne te gêne pas ? Car ce point là n'est pas encore résolu.
François Lafont
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Re: Exporter des données

Messagepar evariste_G » Lundi 25 Avril 2011, 14:59

francois a écrit:Pour en revenir à ta question initiale, le fait de pas pouvoir écrire un fichier à partir de la fin si celui-ci existe déjà ne te gêne pas ? Car ce point là n'est pas encore résolu.


Mon problème est réellement résolu : en effet, quand je compile le fichier, c'est que les codes ne sont pas générés. Donc le fichier se créé. Et comme il y a exportation des codes vers une base SQL par la suite, le fichier peut, lors d'une seconde compilation, s'écraser pour un nouveau, ce n'est pas un problème.
evariste_G
Téra-utilisateur
 
Messages: 1340
Inscription: Vendredi 19 Décembre 2008, 19:13
Localisation: Bordeaux
Statut actuel: Post-bac


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot], Bing [Bot], Google [Bot] et 18 invités