Importer tableau texte sous C

Importer tableau texte sous C - C - Programmation

Marsh Posté le 11-12-2004 à 21:55:43    

Bonjour,
J'aimerais pouvoir traiter un tableau de données sous C. Mon but serait de pouvoir traiter n'importe quelle colonne/ligne d'un tableau sous excel que j'ai transformé en texte. Existe-t-il une fonction spécifique ou avez vous une idée de ce que je dois faire?
Merci beaucoup

Reply

Marsh Posté le 11-12-2004 à 21:55:43   

Reply

Marsh Posté le 11-12-2004 à 22:09:02    

je suppose que tu aprles de ficheir tabulés ?
si oui
charge ton txt en memoire et utilsie strtok ou libc pr extraire les données separé par \t et\n

Reply

Marsh Posté le 12-12-2004 à 15:10:33    

Oui je pense que c'est tabulé, j'ai un truc de ce genre.


a1     0.22
a2     0.2564
a3     0.214
a3     0.25
a4     0.26
...
 
a12    0.47


J'ai mis des données completement arbitraire là. Le but de mon programme est de tiré de facon aléatoire 6 des mes 12 données et d'en faire la moyenne.  
Je suis un peu coincé, auriez-vous un site détaillant les fonctions au dessus? J'ai cherché dans le kerninghan mais j'ai pas trop compris.
Merci d'avance pour votre aide.

Reply

Marsh Posté le 12-12-2004 à 15:46:46    

Reply

Marsh Posté le 12-12-2004 à 20:49:23    

Joel F a écrit :


charge ton txt en memoire


 
J'arrive pas à bien stocker le contenu de mon fichier pour pouvoir utiliser après strtok. Cette fois ci j'ai cherché sous google et j'ai pas trouvé. Merci pour votre aide.

Reply

Marsh Posté le 12-12-2004 à 22:30:11    

CCIman a écrit :

J'arrive pas à bien stocker le contenu de mon fichier pour pouvoir utiliser après strtok. Cette fois ci j'ai cherché sous google et j'ai pas trouvé. Merci pour votre aide.


Code :
  1. #include <stdio.h>
  2. main()
  3. {
  4.     FILE *fp;
  5.     char ligne[256];
  6.     fp=fopen("fichier", "r" );
  7.     while (fgets(ligne, 256, fp) != NULL)
  8.     {
  9.         // Ici tu as une ligne contenue dans la variable "ligne"
  10.         // A toi d'exploiter ta ligne avec "strtok" ou ce que tu veux
  11.     }
  12.     fclose(fp);
  13. }

Reply

Marsh Posté le 12-12-2004 à 23:02:16    

merci beaucoup.
Juste pour savoir notre chaine ne peux pas faire plus de 256 caractères?

Reply

Marsh Posté le 13-12-2004 à 07:38:04    

CCIman a écrit :

merci beaucoup.
Juste pour savoir notre chaine ne peux pas faire plus de 256 caractères?


J'ai présumé que la ligne ne faisait pas plus de 255 octets (faut conserver la place du '\0' final).
On peut raisonnablement penser que la ligne est d'une taille limitée. Si tu estimes qu'elle ne dépassera pas 400 octets tu utilises alors le nombre "401" à la place de 256.
 
Si jamais tu veux lire une ligne à taille inconnue à l'avance, tu définis ta variable "ligne" comme un "char*" et, au lieu d'utiliser "fgets", tu utilises "getline" qui lit une ligne de taille inconnue et qui alloue la mémoire nécessaire pour stocker la ligne.
En fin de boucle, tu libères la ligne allouée avec "free"
Voir le post http://forum.hardware.fr/forum2.ph [...] subcat=440


Message édité par Sve@r le 13-12-2004 à 07:53:51
Reply

Marsh Posté le 13-12-2004 à 18:10:06    

merci beaucoup  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed