Se connecter / S'enregistrer
Votre question

lire un fichier texte

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
12 Avril 2007 10:49:02

bonjour a tous,
voila j'explique mon probleme:
je suis en stage de fin d'etude d'ingénieurie mécanique, et il s'est avéré que la premiere partie du stage que j'ai trouvé (pas facile d'en trouvé un) est un programme a rédiger qui servira a ressortir les éléments qui m'interesse.
donc apres un "long" apprentissage (seul pendant 2-3 semaines) j'ai réussi a me faire une idée et meme a comprendre quelques subtilités de ce language.
mais pour le début de mon programme, je bloque deja .... ca commence bien!!! :lol: 
donc voila:
je dois lire et exporter des données d'un fichier texte qui provient d'un logiciel de maillage de pieces mécanique, et donc ce fichier est toujours construit de la meme manière :
il donne des informations sur:
les NODES (les noeuds)
Les SOLID
les PLINK (points de soudures)
et j'en passe...
en fait ma question est, dans un premier temps, j'ai besoin que mon programme lise toutes les données sur les Plink sachant que ces données se trouvent au milieu du fichier et que le fichier fait dans les 900 000 lignes... je ne peux pas gerer cette histoire en me servant des fonctions du déplacement du curseur.
j'ai ensuite pense a faire une boucle en lisant j'usqu'a une certaine chaine de caractère (ce qui m'aurait bien arrangé si ca avait marche!!!! )
mais il y a eu une erreur bien sur a la compilation.
je vous met un apercu succin du type de fichier que j'ai...
NODE / 7923 483.945007 677.802979 519.059998
NODE / 7924 457.881012 678.440002 500.268005
NODE / 7925 457.437012 678.132996 509.041992
NODE / 7926 464.18399 678.127014 509.362
.....
SOLID / 12164 851
209169 209107 343456 343438 209170 209104 343454 343440
SOLID / 12165 851
209104 343454 343440 209170 209103 343452 343442 209095
SOLID / 12166 851
209103 343452 343442 209095 209293 343449 343444 209093
....
PLINK / 464499 200312727901 1 2
GRP 'PLINK_/_@_18'
END
PLINK / 464500 200312727902 1 2
GRP 'PLINK_/_@_18'
END
....
et voici le pseudo code que j'ai commence a bidouiller:
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. int main(int argc, char *argv[])
  5. {
  6. FILE* fichier = NULL;
  7. int fich = 0;
  8. long i = 0;
  9.  
  10.  
  11. fichier = fopen("W33.pc", "r+");
  12. if (fichier != NULL)
  13. {
  14. do
  15. { // ici j'aimerai commencer a la premiere chaine de caractere PLINK
  16. fich = fgetc(fichier);
  17. // ici utilisation d'une fonction pas encore definie qui copiera le texte lu dans un autre fichierp ar ex
  18. }
  19. while (fich != "MASS"); // ici je veux marreter a la chaine de caractere "MASS"
  20. }
  21.  
  22. {
  23.  
  24. else
  25. {
  26. printf("Impossible d'ouvrir le fichier W33.pc");
  27. }
  28. fclose(fichier);
  29. return 0;
  30. }

merci beaucoup encore de votre aide

Autres pages sur : lire fichier texte

12 Avril 2007 12:02:02

tu devrais indiquer l'erreur, c'est plus facile pour aider ;) 

tu déclares fich comme entier, ensuite tu le compare à une chaine de caractère...
soit dit en passant, sous C, pour comparer 2 chaines de caractere, il faut utiliser strcmp ()

pour ton programme, ce que tu peux faire c'est une boucle qui:
- lit chaque ligne (tu as une taille limite pour la ligne?)
- teste les 5 premiers caracteres (strncmp ())
- si c'est PLINK, appeler une fonction qui fera le traitement jusqu'au END

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS