Onwebcreations.Net  
Onwebcreations.Net
 
Programmation
Services Gratuits
Codes Sources
Divertissements
   

  Programmation C Haut de page



Lecture des données formatées :
Après avoir stocké avec succès nos contacts, tentons de les lire.
La lecture des données est possible par l'instruction suivante :
fread(<VAR>, <taille>, <nombre>, <pointeur fichier>);

  • <VAR> : Données à lire. Dans le cas présent, il s'agit d'un tableau dont les éléments sont structurés selon la structure CONTACT
  • <taille> : Taille d'un élément en octets. Dans le cas présent, il s'agit de la taille d'un élément du tableau. La fonction sizeof(); permet de nous calculer l'occupation mémoire à notre place.
  • <nombre> : Nombre d'éléments à lire dans le fichier. Dans le cas présent, on veut lire la totalité des éléments du tableau dans le fichier. Mais vous pouvez aussi bien ne lire qu'un nombre limité d'éléments. par exemple, le premier uniquement, mettez la valeur numérique 1
  • <pointeur fichier> : Il s'agit du fichier dans lequel la fonction fread(); doit lire ses données, désigné par le pointeur fichier. voir le chapitre précédent pour plus de précisions à propos du pointeur fichier.

Il s'agit de la seule nouveauté dans ce programme, toutes les autres instructions C sont décrites dans les chapitres précédents.
Voici le programme7.exe :

 

#include <stdio.h>
#include <system.h> // pour getche();

main()
{

//+------------------------------+
//| Déclaration de la structure  |
//| CONTACT                      |
//+------------------------------+
struct CONTACT
{
char nom[20];
char prenom[20];
char adresse[20];
char telephone[15];
char fax[15];
} TabContacts[50];

//+------------------------------+
//| Déclarations de variables    |
//+------------------------------+
FILE *fp;
int c,i,p,r;

c = 49;
i = 0;
p = 0;
r = 0;

//+------------------------------+
//| Recuperation des données     |
//+------------------------------+

fp = fopen("DATA.DAT","r");
fread(TabContacts, sizeof(struct CONTACT), 50, fp);
fclose(fp);

while(i<=4 && c==49)
{
r = p + i;
//+------------------------------+
//| Affichage des données        |
//+------------------------------+
if(i==0)
{
printf("\n+-------------------------------------------------------------------+");
printf("\n| Affichage de la liste de vos contacts PAGE : %i/10 |",((p/5)+1));
printf("\n+-------------------------------------------------------------------+");
}


printf("\n\n ***** CONTACT : %i *****",(r+1));

printf("\nNOM : \t\t");
printf("%s",TabContacts[r].nom);

printf("\nPRENOM : \t");
printf("%s",TabContacts[r].prenom);

printf("\nADRESSE : \t");
printf("%s",TabContacts[r].adresse);

printf("\nTELEPHONE : \t");
printf("%s",TabContacts[r].telephone);

printf("\nFAX : \t\t");
printf("%s",TabContacts[r].fax);

//+------------------------------+
//| Pagination                   |
//+------------------------------+

if(i==4 && p<=40)
{
printf("\n\nAppuyez sur 1 pour passer a la page suivante");
printf("\nAppuyez sur n'importe quelle autre touche pour quitter");
printf("\nVotre choix : \t");

p = p + 5;
i=0;
c = getche();
}
else
{
i++;
}

if(i==5 && p==45)
{
printf("\n\nVous etes arrive en fin de liste.");
break;
}

}


printf("\n > Appuyez sur une touche pour fermer l'application");
getche();
}


Voici un exemple de déroulement de ce programme (suite des inscriptions effectuées précédemment) :

Nous voyons effectivement les deux inscriptions effectuées précédemment. En raison de la limitation à 50 contacts, nous ne pouvons proposer plus de 10 pages, ayant chacune d'elle 5 contacts. Il suffit d'appuyer sur la touche 1 pour passer à la page suivante. Notez que l'on se repère grâce à la numérotation des pages (1/10; 2/10, etc.). Il existe en réalité 2 contacts sur les 50 : au lieu d'afficher des formulaires vides en données, il serait préférable de n'afficher que les contacts existants !

ATTENTION :
Lors de l'ajout d'un contact via le formulaire prévu à cet effet (programme6.exe), vous ne pouvez pas entrer d'espaces dans les champs, ce caractère étant considéré comme <ENTREE>.
Tous les problèmes rencontrés jusqu'a présent vont être résolus dans la seconde version de ce programme.



 
    Haut de page
© Onwebcreations.Net : Programmation & Services Internet
Accessible aussi par : Services-Gratuits-Webmasters.com
Contacter le suppport technique
Internaute(s) actuellement sur le site.