Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1041 connectés 

  FORUM HardWare.fr
  Programmation
  C

  recherche dans un fichier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recherche dans un fichier

n°1608722
zaytouna
on a rien sans rien .
Posté le 05-09-2007 à 23:05:27  profilanswer
 

Bonsoir  
Je dispose d'un fichier contenant un ensemble de structures d'enregistrement.
Je souhaite extraire a partir de ce fichier les données de l'enregistrement correspondant a ma recherche pour les mettre dans une autre variable de type struct dont j'en aurais besoin par la suite pour remplir un tableau  
 
j'ai essayer de creer une fonction qui en parcourant mon fichier verifiera pour chaque enregistrement si le contenu du champ de la variable "source"
(source.lot) correspond au contenu d'une variable de type char "code_lot" contenant le lot que je recherche.
Si cette condition est verifiée la variable de type struct "destination" prend la valeur des champs de "source" sinon  "destination" est initialisée
 
Ma fontion prend en parametre (2 pointeur de type struct,et une variable te type char)  
le premier pointeur pr parcourir mon fichier " sequentiellement " le deuxieme pour modifier la variable "destination".  
  voici mon code  :pt1cable:  
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define lgfile 20
#define nbbin 6
 
/**definition de mon nouveau type de variable ***/
 struct enre
                {  
                            char lot[100];
                            float rendement ;
                            float echant;
                            int bin[nbbin];
                   } ;

/**definition de ma fonction ***/

 
void MARECHERCHE( struct enre*source,struct enre*destination,char code_lot)
  {  
        int i; /*** pour parcourir mon tableau bin[]**/
 
      if ( strcmp (code_lot , source->lot) == 0)
             {
                destination->lot = source->lot;
                 destination->rendement = source->rendement;
                   destination->echant = source->echant;
                      for(i=0;i<nbbin;i++)
                            destination->bin[i]= source->bin[i];
          }
      else
             {
              destination->lot = 'r';
                destination->rendement = 0;
                  destination->echant = 0;
                     for(i=0;i<nbbin;i++)
                         destination->bin[i]=0;
                }
 
 
 }
 
    main()
/* creation de 2 variables de type "struct enre une pour mon fichier de lecture et une autre qui contiendras*/
/*les donnéesde l'enregistrement trouvé */
 
struct enre source ;  
struct enre destination{'r',0,0,{0,0,0,0,0,0}}  ;
char code_lot[100]; /** variable contenant mon critere de recherche **/
void MARECHERCHE(struct enre*,struct enre*,char);/** dcltion d ma fonc **/
.
.
.
.
/* lecture du fichier */
   printf( "veuillez tapez votre code de lot  : " );
      gets(code_lot);
   while (fread(&source,sizeof(source),1,input),!feof(input),destination={'r',0,0,{0,0,0,0,0,0}} )                                                            /**tant que je lis & pas encore arrivé a la fin**/
             {  void MARECHERCHE(&source,&destination,code_lot);
                getchar();
              }
   if (destination={'r',0,0,{0,0,0,0,0,0}} )
     {
       printf("ce lot n'existe pas dans ce fichier" );
       break;
      }
      .
      .
 
deja pour l'algorithme je me demande si ya pas plus simple,
sinon pour les erreurs  
il m'affiche ca  ,
"""" non portable pointer assignment in function MARECHERCHE.... """""
"""" lvalue required in fuction MARE...."
+ reconnait pas la variable code_lot.
 
merci de m'aider.
 

mood
Publicité
Posté le 05-09-2007 à 23:05:27  profilanswer
 

n°1608731
zecrazytux
Posté le 05-09-2007 à 23:35:07  profilanswer
 

rien callé... il ressemble a quoi ton fichier ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1608732
zaytouna
on a rien sans rien .
Posté le 05-09-2007 à 23:38:18  profilanswer
 

il ressemble a des enregistrement de ce type
 
lot =  
rendement =
echanti=
bin1=
bin2=
...
bin6=

n°1608733
zecrazytux
Posté le 05-09-2007 à 23:40:52  profilanswer
 

donen un exemple (en francais) de ce que tu as, et de ce que tu cherche
je comprends aps ce que tu cherche a faire dans ton programme
qu'est ce que tu appelle lot ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1608738
zaytouna
on a rien sans rien .
Posté le 06-09-2007 à 00:05:03  profilanswer
 

je vais essayer d'etre plus clair .
l'objectif est de realiser un programme qui permet d'identifier les enregistrement de mon fichier a partir des données saisie.  

n°1608748
tpierron
Posté le 06-09-2007 à 04:57:45  profilanswer
 

Euuuuuhhh, ne le prends pas mal, mais es-tu sur que c'est bien dans la catégorie C que tu voulais poster ton message ?
 
Ton code n'a ni queue ni tête, je ne sais pas si c'est en voulant montrer juste le strict minimum, mais tel quel c'est du total n'importe quoi. Je te conseille de tout remettre à plat, prend un tutoriel sur le C, ou mieux un langage de plus haut niveau.

n°1608827
zaytouna
on a rien sans rien .
Posté le 06-09-2007 à 12:01:19  profilanswer
 

aaaaaa, je suis debutant en c, ne m'en voulez.  
tpierron pour le code j'ai mis le minimum mais je crois que tu as raison je devrais prendre un tutoriel sur le c, je n'ose pas passer a un langage de plus haut niveau !  
je reorganise mes idées,je revois des cours et je reviens :)  
merci a vous deux

n°1608955
Emmanuel D​elahaye
C is a sharp tool
Posté le 06-09-2007 à 15:57:23  profilanswer
 

zaytouna a écrit :

aaaaaa, je suis debutant en c, <...> je devrais prendre un tutoriel sur le c, je n'ose pas passer a un langage de plus haut niveau !


"Haut niveau", ça ne veut pas dire plus difficile, au contraire...

 

Le C est difficile, entre autre parce qu'il est 'le plus bas des langages de haut niveau' (L3G).

 

Pour apprendre les principes de base de la programmation, un langage comme python ou ruby est suffisant.Par contre, il faut accepter la notion d'abstraction et ne pas chercher à savoir ce qui se passe 'en-dessous'.

 

Le C permet de comprendre un certain nombre de mécanismes de base, mais on est encore loin de la machine...

 

En gros, on pourrait classer les langages impératifs de 3ème génération (L3G) comme ceci :

 


VB (OO), Python (OO), Ruby (OO)
Perl
Delphi (OO)
Java (OO), C# (OO)
C, C++ (OO)

 

(à compléter)


Message édité par Emmanuel Delahaye le 07-09-2007 à 13:51:42

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1609283
MEI
|DarthPingoo(tm)|
Posté le 07-09-2007 à 13:41:48  profilanswer
 

C'est sur qu'en Java il irai super vite et aurai un code plus simple. Apres sans notions objet se lancer dans d'autres langages ca peut etre dur.
 
Mais c'est vrai que quand on a fait un peu de java, fait son programme ca prends p'tet une apres-midi a peine.
 
Si en plus ils prends le XML pour son fichier données vive la fête :D


---------------
| AMD Ryzen 9 5950X 16C/32T @ 3.4-4.9GHz - 64GB DDR4-3600 16-18-18 1T - AMD Radeon RX 5700 XT 8GB @ 2010MHz/14Gbps |

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  recherche dans un fichier

 

Sujets relatifs
recherche de script permettant de récupérer le contenu d'un fichierpb de recherche de fichier sous VBA
recherche de valeur dans un fichierRecherche dans un fichier et comparaison
recherche de fichierRecherche dans un fichier xml
Aller à la derniere ligne d'un fichier texte et recherche chainerecherche de fichier sur ftp
logiciels de recherche de fichierrecherche de fichier en java
Plus de sujets relatifs à : recherche dans un fichier


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR