Se connecter / S'enregistrer
Votre question

[C] Gestion d'un fichier de réservation.

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
20 Décembre 2010 11:13:41

Salut all,

Étant débutant en C, j'ai un projet à mettre en place et je rencontre un petit problème concernant un programme. En fait, ce n'est pas un problème purement technique mais plus un problème de "savoir faire". Explications :

Je dois écrire un programme pour gérer des réservations qui se décomposent à peu près comme ceci :

- Date.
- Heure.
- Nom client.
- Titre du film ou spectacle.

Donc, à chaque ajout, suppression ou modification de réservation, le programme va écrire dans un fichier et le modifie selon les désirs de l'utilisateur. Concernant l'ajout, pas de souci. En revanche, pour la suppression, je me demande comment cela va bien pouvoir se passer. En effet, j'aimerais bien qu'en choisissant l'heure et la date, on puisse supprimer la réservation entière correspondante. Ma question est donc de savoir comment m'y prendre ? Je ne vois pas trop s'il on peut utiliser des variables ou bien s'il faut passer chaque réservation dans une structure afin de pouvoir la supprimer plus facilement.

Pour la modification, la problématique de départ est la même, donc je suis également bloqué là-dessus.

Si vous voyez un truc aberrant ou si vous ne comprenez pas quelque chose dans ce que je viens d'écrire, n'hésitez pas à me le signaler.

Merci d'avance.

Autres pages sur : gestion fichier reservation

a c 232 L Programmation
20 Décembre 2010 13:52:05

Salut,

Deux méthodes je pense:
- soit tu as ton fichier que tu charges en mémoire, et donc il te suffira juste de parcourir ton tableau à la recherche de l'élément que tu veux supprimer. Ensuite, il te faudra mettre à jour le fichier en réécrivant les données du tableau au fichier.
- soit tu ne stockes pas ton fichier en mémoire, et donc il faut que tu lises chaque ligne de ton fichier pour voir si elle correspond à l'élément que tu veux supprimer


A moins d'être sur un système avec mémoire limitée (ce qui n'existe plus trop de nos jours) ou que tu aies vraiment énormément de données (ce qui pourrait prendre beaucoup de temps lors du démarrage/fermeture de l'appli), le mieux est certainement de faire la méthode 1. Toutes tes données sont directement en mémoire, ces données sont chargées lors du démarrage de l'application, et sauvegardées lors de la fermeture.
Je ne sais pas trop s'il y a des mécanismes de Serialization, Deserialization en C, mais j'essaierai de me documenter là-dessus si j'étais toi.
m
0
l
20 Décembre 2010 14:42:28

Merci Omar. La première solution est en effet celle à laquelle j'avais pensé. Par contre il faut que j'étudie de plus près les notions de stockage en mémoire parce que là sur le moment je vois pas trop la différence entre les deux. En fait, si je capte bien, soit tu déclares un tableau où tu manipules tout dedans et t'inscris tout ça qu'une seule fois à la fin du programme soit tu écris ou lis chaque fois sur le fichier ?
m
0
l
Contenus similaires
a c 232 L Programmation
20 Décembre 2010 15:19:10

C'est ça oui.
Après, tu peux écrire sur le fichier quand tu veux (avec une option sauvegarder par exemple), donc, c'est pas forcément "à la fin du programme", mais t'as le principe quoi.

Je ne fais pas de C, donc je ne sais pas si y'a des outils prévus pour, mais en C#, je sérialise mon objet en XML que je sauvegarde dans un fichier, et je recharge le fichier XML et le désérialise, ce qui me permet de récupérer mon objet.
La programmation en C n'étant pas orientée objet, je ne sais pas trop comment ça se passe.
m
0
l
20 Décembre 2010 19:44:56

Je vais regarder ce que je peux faire !

Thanks !
m
0
l
a b L Programmation
20 Décembre 2010 19:55:29

La serialisation doit se faire à la main : il te faut faire une fonction qui transforme la structure de données en buffer (tout mettre dans une suite d'octets), et la faire la fonction inverse.
m
0
l
20 Décembre 2010 20:54:25

J'ai pas compris sorry. En fait, j'ai des connaissances vague sur la sérialisation et je vois pas en quoi ça peut m'être utile pour mon programme. Mais je vais creuser ça. À moins que tu es la gentillesse de m'expliquer ça en quelques lignes :D .
m
0
l
a c 232 L Programmation
20 Décembre 2010 23:23:53

La sérialisation, c'est le principe de transformer des données en mémoire en un format (généralement XML) que tu peux stocker dans un fichier, une base de données ou autres, ou que tu peux envoyer par réseau...
La particularité, c'est que ça doit pouvoir être inversé, à partir du fichier XML tu dois pouvoir recréer ton objet tel qu'il était auparavant (désérialisation).
m
0
l
20 Décembre 2010 23:42:25

Noté [:_tom_:7].
m
0
l
23 Décembre 2010 23:51:00

Bon finalement je m'en sors pas trop mal ! J'ai réussi à découper le fichier ligne par ligne et à récupérer les infos que je voulais selon les lignes donc ça semble pas mal parti !

Merci à vous [:_tom_:7].
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS