Probleme de fichier

cabisteboy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
cchristian Messages postés 928 Statut Membre -
Bonjour,

pour tout les informaticien qui manipulé bien les fichiers en language c,mois je veux faire un projet .je vais faire mon programme à l'aide d'un tableau de structure qui est initialisé qui contient { nom
prenom
code
entier
}
quant j'execute le programme je donne un mot de passe ,le programme verifié si le mot de passe correspond a l'une de code d'un client , s'il exist on fait des operation(des affectation ou calcule mathematique ) avec l'entier qui correspont a ce code,c'est facile pour faire ca , mais le probleme c'est que aprés faire des operation l'entier qui est initialise va changer et je veux faire mettre a jour cette entier donc je obliger de stoké ces enties dans un fichier,
en supose que le fichier est crée,
mon questin comment accéder a l'entier qui correspond l'indice i (i est lindice du tableau de structure que je fait initialisé) pour faire des opération , on suppose que le premier element de fichier est correspond a T[0].entier et la 2 éme element correspond à T[1] et ect....
aide mois svp et donne mois un exemple de programme pour ce gence de probléme ,
et merci.
Configuration: Windows XP
Opera 9.23

2 réponses

  1. cchristian Messages postés 928 Statut Membre 131
     
    Bonjour,

    Tu peux donner un exemple concret, car j'ai un peu de mal à comprendre.
    0
    1. cabisteboy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour,
      voila mon probléme a une autre explication,
      comment faire accedé a un fichier qui contient des entiers,
      le fichier est supposé creé , le probléme c'est que je veux faire un programme en language c et je mettre a jour des entiers, càd les entiers sera changé quand je fait une opération mathematique , et a chaque execution une seule entiers sera changé , c'est ca la mettre a jour des entiers.
      exemple:
      dans mon fichier j'ai les entiers suivant: 5 65 42 12 10 75 65 80 40 55 (qui est creé)
      et dans le programme j'accede a un entier par leur numéro càd l'indice (l'indice de 5 est 0 , l'idice de 65 est 1 ...)
      par exemple mois j'ai choisi l'indice 2 qui correspond a 42 et aprés je fait x= (42 - 10) (affectation) et aprés j'affecte x a la place de 42 et voila apres je ferme le fichier, l'idice 2 devient 32.
      ceux qui est manipulé bien les fichiers n'hesite bien de me donne un programme en language c pour ce genre de probléme parce que mois j'ai n'acunne ideé sur les fichiers.
      et merci.
      0
  2. cchristian Messages postés 928 Statut Membre 131
     
    Bonjour,

    Essaie cela et on en discute,

    int main() 
    {
    
    //  Initialisation des variables et tableaux.
    	  int i = 0; 
    	  int j = 0; 
    const int MAX_TAB = 128;
          char nomfi   [64] = "ch.txtr";      // nom du fichier 
          char i_char  [32] = ""; 
    
           int TAB_int  [MAX_TAB] = {5, 65, 42, 12, 10, 75, 65, 80, 40, 55,}; 
    
           FILE*fiche; 
    
    // CHARGEMENT INITIAL DU FICHIER
    
         fiche = fopen (nomfi, "w"); 
    
        for (i = 0; i < 25; i++) 
           { 
            _itoa_s( TAB_int [i], i_char, 4, 10 );
             fwrite ( i_char, sizeof (char), 18, fiche );
             printf ( "\n%18s", i_char ); 
           } 
        fclose ( fiche ); 
    
    //--------------------------------------------------------------------	
    	
    // LECTURE DU FICHIER ET CHARGEMENT DES VALEURS DANS LE TABLEAU. 
    	fiche = fopen ( nomfi, "r+" ); 
    
        for (j = 0;   j < MAX_TAB;      j++)
           { 
            fread  (i_char, sizeof(char), 18, fiche); 
            if (EOF)                                break;
            i = atoi (i_char);
           TAB_int [j]  = i;
            printf ( "\n%18s\n", i_char ); 
         }
    
    
    // MODIFICATION D'UNE OU PLUSIEURS VALEURS PRESENTES DANS LE TABLEAU 
            j = 2;
            TAB_int [j]  = TAB_int [j]  - 10;
    // .....................................
    // .....................................
    
    
    // ECRITURE DU FICHIER AVEC LES VALEURS PRESENTES DANS LE TABLEAU. 
        fclose ( fiche ); 
    
        fiche = fopen ( nomfi, "w" ); 
    
        for (i = 0; i < MAX_TAB; i++) 
           { 
             _itoa_s( TAB_int [i], i_char, 18, 10 );
             fwrite ( i_char, sizeof (char), 18, fiche );
            printf ( "\n%18s", i_char ); 
           } 
    
        fclose ( fiche ); 
        system ( "PAUSE" ); 
        return ( 0 ); 
    } 
    0