Creer des tableaux dans un fichier .txt en langage tcl

cs_flost Messages postés 6 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 28 juillet 2008 - 17 juin 2008 à 16:27
cs_flost Messages postés 6 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 28 juillet 2008 - 24 juin 2008 à 19:04
Bonjour,

j'ai crée un programme en TCL qui me calcul des parametres à partir de données disponibles dans un fichier .citi
Mon but est maintenant:
1) de créer un fichier .txt
2) dans ce fichier je veux créer des tableaux de 2 colonnes: 
      colonne1: contient des données a lire dans le fichier .citi
      colonne 2: contient le résultat qui est obtenu par le programme tcl que j'ai déjà crée (mon programme ne  retourne qu'1 seule valeur, par exemple Y12=0.2254588 0.998455 car Y12 est un complexe)

Ma question est : comment créer un fichier .txt et comment créer dans ce fichier des tableaux de 2 colonnes.
Le tout écrit en TCl bien sur !

Merci d'avance pour votre réponse et pour votre temps.
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> </v:shapetype>

6 réponses

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
22 juin 2008 à 12:32
Euh... j'ai pas tout compris, mais si tu veux faire un "tableau" dans un txt, tu peux séparer tes items de \t par exemple. Ensuite en lisant un ligne du fichier, tu split sur le "\t" et tu récupères tous tes tokens.
Je suis hors-sujet ? ^^

Cordialement, uaip.
0
cs_flost Messages postés 6 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 28 juillet 2008
24 juin 2008 à 16:39
J'ai réussi à ranger des éléments dans un fichier *.txt mais j'ai encore un problème !
Mon fichier *.txt est composé de colonnes portant chacune un titre.
explication:

#je nomme mes colonnes
puts  $nom_de_mon_fichier_txt  "freq \t\t R(f)"
#je remplit mes colonnes: c'est une boucle for{} de n itérations correspondant aux n lignes de données et qui affiche
puts  $nom_de_mon_fichier_txt  "$colonne1 \t\t $colonne2"

le probleme est que mes colonnes ne sont pas bien alignées car les éléments contenus dans $colonne1 ne sont pas toujours composés du même nombre de caractères.

Comment puis-je faire pour que mes colonnes soient bien "alignées" entre elles?
Dans mon programme j'affiche plusieurs colonnes et elle finissent par ^tre toutes décalées et donc elles ne sont plus sous leur titre.

Merci
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
24 juin 2008 à 17:07
Ok je vois. Je pensais que tu voulais juste ce fichier pour "stoker" ces données, mais apparament tu veux qu'il soit agréable à l'oeil.
Ben là... je pense à un truc là, mais c'est un peu "barbare".
Par exemple, avant d'écrire dans le fichier, tu fais une boucle qui calcule chaque longueur des mots qui seront mis dans $colonne1. Et tu fais en sorte de stoker dans une variable la + grande longueur (dans $len par exemple). Ensuite, comme c'est un fichier texte, chaque caractère prendre la même "place", donc en écrivant dans le fichier tu recalcule la longueur de $colonne1 puis tu calcule
$len - longueur_de_$colonne1, et tu rajoute ce nombre en espaces et enfin tu écris $colone2.
Je sais pas si c'est très sompréhensible...
Sinon, pour harmoniser de manière très simple, je ne voyais que \t mais si tes $colonne1 ont des longueures très variables (variant par exemple de 1lettre à 25lettres) je comprends que ca ne marche pas.

Cordialement, uaip.
0
cs_flost Messages postés 6 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 28 juillet 2008
24 juin 2008 à 17:25
merci de ta réponse, j'ai bien compris ce que tu veux dire c'était aussi la seule solution que je voyais. Dans mes colonnes ce sont des résultats de mesure donc des caractères du type: 1.E+7 ou 1.2E+10 etc...

voilà ce que j'obtiens:

colonne1            colonne2
9.E+9                  4.121246544645e-15
1.E+10                4.125454544854e-15
1.1E+10                      4.135154645655e-15

c'est étrange car le passage de 9.E+9 (5caracteres) à 1.E+10 (6caract) n'entraine pas de décalage.
alors que le passage de 1.E+10 (6caract) à 1.1E+10 (7caract) entraine un décalage de 8 caractères dans mon fichier *.txt

Quelqu'un comprend t'il ce qui se passe ? !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
24 juin 2008 à 18:24
Tu as fait seulement avec \t là ?

ps: (j'ai relu mon post précédent, et je m'excuse pour mes horribles fautes ^^)

Cordialement, uaip.
0
cs_flost Messages postés 6 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 28 juillet 2008
24 juin 2008 à 19:04
oui je n'ai utilisé que des \t et le nbre de \t est toujours le même entre les colonnes.
dans l'exemple que j'ai tapé précédemment je n'ai pas fait un décalage de 8 caractères mais j'ai compté c'est bien 8 caractères de décalage lorsque le cas énoncé au-dessus se présente.
bizarre ...!
0
Rejoignez-nous