A voir également:
- Probleme recuperation de données c
- Recuperation de données - Guide
- Reinstaller windows sans perte de données - Guide
- Convertisseur récupération de texte - Guide
- Effacer les données de navigation - Guide
- Tnt base de données vide ✓ - Forum TNT / Satellite / Réception
2 réponses
En effet il manque une tres grosse partie de mon programme que je n'ai pas mis pour ne pas surcharfer le post.
voici la version dans sa globalité
Merci pour la réponse rapide c'est assez impressionnant le travail que vous effectuer sur se forum
voici la version dans sa globalité
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <stdbool.h> #define MAX_NAME_CHAR 20 #define MAX_TEL_CHAR 9 #define REP_SIZE 3 typedef struct person { char name[MAX_NAME_CHAR]; char tel[MAX_TEL_CHAR]; }pers; void input_person(pers *sp); void input_rep(void); void print_rep(void); int find_in_rep(void); void save_rep(void); int load_rep(void); int get_file_size(FILE *file); void add_profil(void); // fonction ultime pers *myRep; size_t rep_size=1; int main(int argc, char *argv[]) { bool load = false; int choose, s1, s2, size; myRep = calloc(rep_size, sizeof(pers)); FILE *tryfindfile = fopen("save.data", "r"); if(tryfindfile==NULL) { printf("Echec de la recherche du fichier data\n"); input_rep(); } else load = true; if(load==true) load_rep(); print_rep(); do { do { printf("\nMenu:\n"); printf("1-afficher le contenu du répertoire\n"); printf("2-chercher le numéro d'une personne\n"); printf("3-sauvegarder le répértoire\n"); printf("4-ajouter un profil\n"); printf("5-quitter le programme\n"); printf("Votre choix : "); scanf("%d", &choose); } while(choose < 1 || choose > 5); switch(choose) { case 1: print_rep(); break; case 2: if(find_in_rep()==0) printf("ERREUR : NOM INTROUVABLE\n"); break; case 3: save_rep(); break; case 4: add_profil(); break; default: break; } } while(choose!=5); save_rep(); return 1; } void input_person(pers *sp) { printf("Name : "); scanf("%s", sp->name); printf("Tel : "); scanf("%s", sp->tel); return; } void input_rep(void) { int i; printf("Veuillez saisir votre premier contact :\n"); input_person(&myRep[0]); printf("Rep saisit avec succe!\n"); return; } void print_rep(void) { printf("Lancement de l'affichage du rep\n"); int i; for(i=0;i<rep_size;i++) { printf("-------------------------------------\n"); printf("Name : %s\n", myRep[i].name); printf("Tel : %s\n", myRep[i].tel); printf("-------------------------------------\n"); } printf("Fin de l'affichage du repertoire\n"); return; } int find_in_rep(void) { int i; char name_to_find[MAX_NAME_CHAR]; printf("Outil de recherche dans le rep :\n"); printf("Entrer un nom :"); scanf("%s", name_to_find); printf("\n"); for(i=0;i<rep_size;i++) { if(strcmp(name_to_find, myRep[i].name)==0) { printf("Trouvé!\n"); printf("Num : %s", myRep[i].tel); return 1; } } return 0; } void save_rep(void) { FILE *save = fopen("save.data", "w"); int i; for(i=0;i<rep_size;i++) { fputs(myRep[i].name, save); fputc(' ', save); fputs(myRep[i].tel, save); fputc(' ', save); fputc('\n', save); printf("Profil %d enregistrer dans le fichier data.\n", i+1); } fclose(save); return; } int load_rep(void) { int i; signed char n_name[MAX_NAME_CHAR], n_tel[MAX_TEL_CHAR]; FILE *save = fopen("save.data", "r"); if(save==NULL) return 1; int size = get_file_size(save); myRep = realloc(myRep, size*sizeof(pers)); printf("size : %d\n", size); for(i=1;i<size;i++) rep_size++; printf("Fichier data trouvée!\n"); printf("Lancement de la récupération des données\n"); for(i=0;i<rep_size;i++) { fscanf(save, "%s %d ", myRep[i].name, myRep[i].tel); printf("NAME : %s | TEL : %s\n", myRep[i].name, myRep[i].tel); } printf("Données récupérer avec succée\n"); fclose(save); return 0; } int get_file_size(FILE *file) { int size=0; signed char str[MAX_NAME_CHAR+MAX_TEL_CHAR]; while(fgets(str, MAX_NAME_CHAR+MAX_TEL_CHAR-1, file)!=NULL) size++; return size; } void add_profil(void) { signed char new_name[MAX_NAME_CHAR]; signed char new_tel[MAX_TEL_CHAR]; printf("Veuillez entrer le nom du nouveau profil : "); scanf("%s", new_name); printf("Veuillez entrer le tel du nouveau profil : "); scanf("%s", new_tel); myRep = realloc(myRep, (rep_size+1)*sizeof(pers)); ++rep_size; strcpy(myRep[rep_size-1].name, new_name); strcpy(myRep[rep_size-1].tel, new_tel); print_rep(); return; }
Merci pour la réponse rapide c'est assez impressionnant le travail que vous effectuer sur se forum
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
Ambassadeur
1 557
6 févr. 2022 à 14:21
6 févr. 2022 à 14:21
bonjour,
j'ai beau regarder partout, j'ai l'impression qu'il manque une partie de ton programme.
j'ai beau regarder partout, j'ai l'impression qu'il manque une partie de ton programme.