code en c qui lis un file

code en c qui lis un file - C - Programmation

Marsh Posté le 27-10-2010 à 21:11:54    

bonsoir,
 
Comment puisse je faire le traitement des données d'un fichier en langage C?
Mes données sont dans un fichier txt et qui représentent un Arbre de défaillances de la manier suivant avec des portes logiques (OU par g*1,ET par g+0) et leurs entrées qui seront soient :d'autres portes ou des événements simple ou leurs complément (e+1 ou e-1) c'est des appellations
 
Exemple :
 
g+0 e+1 e+2 e+3 g*1 g*2
g*1 g+4 g*5
g*2 g+6 g+7
g*3 g+8 g*9
g+4 e+16 e+18 g+10
g*5 e+4 e+5
e+6 e+10 e+12 e+14
g+7 e+7 e+8 e+9 e+11 e+13 e+15
g+8 e+17 e+19 g+13
g*9 e+4 e+5
g+10 e+4 e+5 e+6 e+10 e+12 e+14
g*11 e-4 e-5 e-6
 
 
mon but est de faire la lecture de ces données puis passer à leur traitement.et d'extraire nos besoins
 
merci d'avance

Reply

Marsh Posté le 27-10-2010 à 21:11:54   

Reply

Marsh Posté le 27-10-2010 à 22:22:43    

Quel est ton niveau de connaissance du C?


---------------
sheep++
Reply

Marsh Posté le 27-10-2010 à 22:29:23    

h3bus a écrit :

Quel est ton niveau de connaissance du C?


je suis debutant et pour votr information je voulez bien programmer avec. en faite je veux faire un code por lir mes données citée en haut
merci bien

Reply

Marsh Posté le 27-10-2010 à 22:36:25    

As-tu au moins suivi quelques cours? Fait quelques tuto?
 
Ce que tu demande est relativement compliqué et si tu commence avec ça, tu va te heurter à une montagne.
 
Pour t'orienter, la lecture de ton fichier peux se faire avec fopen(), fread()/fscanf() et fclose().


---------------
sheep++
Reply

Marsh Posté le 27-10-2010 à 22:41:27    

Sachant que la lecture des fichiers ayant une syntaxe "humaine" est relativement désagréable en C avec les fonctions de la lib standard

Reply

Marsh Posté le 27-10-2010 à 23:01:42    

boblenain200 a écrit :

Sachant que la lecture des fichiers ayant une syntaxe "humaine" est relativement désagréable en C avec les fonctions de la lib standard


merci pour vos conseils mais moi j'ai des connaissances limitées pars vraiment et je vous demande si vous pouvez m'aider au moi pour comencer ou bien m'orienter avec vous aidées. car j'en ai vraiment besoins.
merci bien

Reply

Marsh Posté le 27-10-2010 à 23:05:00    

Tu ne pourras rien faire sans apprendre en partie le C .
Et c'est comme tout, çà prend du temps.

Reply

Marsh Posté le 27-10-2010 à 23:12:55    

boblenain200 a écrit :

Tu ne pourras rien faire sans apprendre en partie le C .
Et c'est comme tout, çà prend du temps.


jous dis deja que j'ai pris le c mais je sui pas expert j'ai des lacune  il me faut quelq'un pour m'orienter

Reply

Marsh Posté le 27-10-2010 à 23:23:14    

Reply

Marsh Posté le 27-10-2010 à 23:24:50    

c'est par là =>


---------------
sheep++
Reply

Marsh Posté le 27-10-2010 à 23:24:50   

Reply

Marsh Posté le 28-10-2010 à 13:46:53    

utilise sscanf, pas scanf.

Reply

Marsh Posté le 28-10-2010 à 14:14:11    

C'est lié à son autre topic : http://forum.hardware.fr/hfr/Progr [...] 1233_1.htm
 
Projet de fin d'étude où il aimerait bien qu'on fasse le boulot à sa place. Et manifestement, son niveau en C doit être proche de celui qu'il a en grammaire/orthographe :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-10-2010 à 14:33:32    

j'ai rien compris

Reply

Marsh Posté le 30-10-2010 à 11:22:02    

M'ouais, t'es pas sorti de l'auberge, mon pauvre.
Implémente déjà un programme qui fonctionne dans un langage simple à apprendre, comme Python ou Lua, puis si c'est vraiment nécessaire, traduis-le par la suite en C. Si tu dois vraiment absolument rendre un truc en C, ne fais pas de prog objet en Python/Lua, histoire de limiter les difficultés lors de la traduction.


Message édité par el muchacho le 30-10-2010 à 11:29:02

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 31-10-2010 à 11:58:47    

Bonjour,  
mon programme en c n'arrive pas à afficher mon fichier , je veux le faire de telle sorte qu'il me demande d'abord d'entrer le nom de fichier puis le lire mais ça marche pas?????????
 
quand je fais la lecture sans la  partie en gras ça passe.
 
svp est ce que il y a quelqu'un pour m'aider??
merci d'avance mes amis de savoir
 
<souligne>PROGRAMME</souligne>
 
#include <stdlib.h>
#include <stdio.h>
 
FILE* f ;
 
 char nom[20];
 
int main()
 
{
<ital><gras>int ca;
printf("entrer le nom de file:\n" );
scanf("s",&nom);
 
f=fopen("&nom", "r" );
caractere= fgetc(f);</gras></ital>
 
 
 
 
 
if(f==NULL)
if ((f=fopen("lire.txt", "r" ))== NULL)
     {  
     printf("\t\t\n\n\nLe fichier  n'existe pas!\n \t\t \n" );  
     getchar();
     exit(0);
     }
{
caractere= fgetc(f); // On initialise le caractère ou on se trouve  
 
// Boucle de lecture des caractères un à un
while (caractere!=EOF) // On continue jusqu'à la fin de fichier
{
printf("%s", caractere); // On affiche le caractère stocké dans caractere ou on se trouve  
 
caractere= fgetc(f); // On lit le caractère suivant
}
 
fclose(f);
}int get_nb_lines(FILE*f);
getchar();
return 0;
}
 
 
 

Reply

Marsh Posté le 31-10-2010 à 12:21:57    

sdfsam1 a écrit :

Bonjour,  
mon programme en c n'arrive pas à afficher mon fichier , je veux le faire de telle sorte qu'il me demande d'abord d'entrer le nom de fichier puis le lire mais ça marche pas?????????
 
quand je fais la lecture sans la  partie en gras ça passe.
 
svp est ce que il y a quelqu'un pour m'aider??
merci d'avance mes amis de savoir
 
<souligne>PROGRAMME</souligne>

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. FILE* f ;
  4. char nom[20]; //ca peut ne pas etre suffisant!
  5. int main()
  6. {
  7. int caractere; //tu utilises carectere plus bas, faut etre cohérent sinon le compilateur il aime pas!
  8. printf("entrer le nom de file:\n" );
  9. scanf("s",&nom); //scanf ("%s", nom);
  10. f=fopen("&nom", "r" ); // f = fopen(nom, "r" );
  11. caractere= fgetc(f); //ligne a supprimer!; avant de lire le fichier on regarde s'il a bien été ouvert
  12. if(f==NULL)
  13. if ((f=fopen("lire.txt", "r" ))== NULL) // ligne a supprimer
  14.      {
  15.      printf("\t\t\n\n\nLe fichier  n'existe pas!\n \t\t \n" );
  16.      getchar();
  17.      exit(0);
  18.      }
  19. { // a supprimer
  20. caractere= fgetc(f); // On initialise le caractère ou on se trouve  
  21. // Boucle de lecture des caractères un à un
  22. while (caractere!=EOF) // On continue jusqu'à la fin de fichier -> ne marche pas; utilises:  while (!feof(f) )
  23. {
  24. printf("%s", caractere); // On affiche le caractère stocké dans caractere ou on se trouve  
  25. caractere= fgetc(f); // On lit le caractère suivant
  26. }
  27. fclose(f);
  28. } // ligne a supprimer
  29. int get_nb_lines(FILE*f); // a supprimer
  30. getchar();
  31. return 0;
  32. }


 


Reply

Marsh Posté le 31-10-2010 à 15:26:28    

merci bien mon ami;
une autre question :
cmt je peux traiter les données dans mon file or ou je peux mettre un fonction pour le traitement ligne par ligne de sachat que les lignes contiennent des espaces.
salutations

Reply

Marsh Posté le 02-11-2010 à 10:44:37    

merci bien ;
 
Mes données sont dans un fichier txt et sont présentées de la manier suivant avec des portes logiques (OU par g*1,ET par g+0) et leurs entrées qui seront soient :d'autres portes ou des événements normal ou leurs complément (en1 ou ec1) c'est des appellations
 
Exemple :
 
g+0 en1 e+2 en3 g*1 g*2
g*1 g+4 g*5
g*2 g*5 en7
g*3 en8 ec9
g+4 en16 en18 ec10
g*5 e+4 e+5

Reply

Marsh Posté le 02-11-2010 à 12:20:08    

Ben tu lis (une lettre, tu lis un signe puis tu lis un nombre) et tu répètes ce schema jusqu'a la fin de fichier.
Tu lève une erreur si la séquence est interrompue avant la fin.
 
(c'est quoi "en8 ec9", y avait pas ca dans ton premier post!)

Reply

Marsh Posté le 02-11-2010 à 12:54:22    

breizhbugs a écrit :

Ben tu lis (une lettre, tu lis un signe puis tu lis un nombre) et tu répètes ce schema jusqu'a la fin de fichier.
Tu lève une erreur si la séquence est interrompue avant la fin.
 
(c'est quoi "en8 ec9", y avait pas ca dans ton premier post!)


salut  
je vous explique :
en8==evenement normal numéro 8 et ec9 événement complementaire numéro 9 or on peut les appeller (e) et not(e).
g: est une porte logique (OR,AND ...)
e:entrées des portes logiques

Reply

Sujets relatifs:

Leave a Replay

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