traitement sur fichier - C++ - Programmation
Marsh Posté le 28-10-2002 à 00:12:21
Il n'est pas possible de conserver un pointeur sur une structure dans un autre fichier.
La meilleure solution (et peut être la seule) est de conserver un identifiant commun dans les deux fichiers (tu peux utiliser le n° de chambre par exemple). Et au chargement des fichiers de récupérer le pointeur une fois la structure chargée en mémoire.
Marsh Posté le 28-10-2002 à 03:28:39
gatorette, ce que tu decris c'est le comportement d'une base de donnee, ou tu fais un join sur un identifiant commun
(select * from reservation, chambre where reservation.chambre=chambre.id )
l'avantage c'est que c'est facilement modelisable et robuste.
une autre solution, c'est de charger tes donnees/structures en une seule fois et de faire du readressage a la volee. L'avantage c'est que c'est tres rapide par contre ca n'est possible que pour des donnees statiques (tu peux conserver des donnees dynamiques a un autre endroit).
.. en fait ca pose plein de problemes de design mais si tu restreins tes champs de possibilite ca doit etre l'une des methodes les plus rapides..
LeGreg
Marsh Posté le 28-10-2002 à 14:38:04
ok. cest qd meme bizarre , file etant un pointeur sur fichier je pensait quon pouvait recuperer son adresse (cad ou on se trouve dans le fichier)
avec fgetpos, fsetpos et fseek ya ptet moyen de faire qqch dinteresasnt
Marsh Posté le 28-10-2002 à 18:38:16
quel rapport avec file, fgetpos et fseek?
ensuite la struct FILE n'est pas un pointeur..
LeGreg
Marsh Posté le 27-10-2002 à 23:34:23
voila dans un fichier (liste des chambres dun hotel) jai plusieurs enregistrements du type suivant :
struct s_chb{
int nochb; // no de la chambre
int cat; // categorie de la chambre
//?????? // pointeur sur une structure qui se trouve dans un autre fichier (cet autre fichier contient les reservations de toutes les chambres, le pointeur utilise ici doit pointer sur la 1ere reservation de la chambre concernee );
je declare ca comment (les ????) et surtout qd je vais ecrire dans le fichier de reservation comment je recupere ladresse pour lassocier au pointeur.