Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte
Expert Programmation

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.

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 ?
Expert Programmation

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.

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 .
Expert Programmation

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).
Lassé par la pub ? Créez un compte
Tom's guide dans le monde