rapidement, g stocke successivement des strucrt de type DLG ds un fichier externe,
ds un autre prgm g recuperé l'adresse de la 1ere struct ds la var tayst, logiquement pour acceder a la struct suivante il me suffirait de faire :
tayst+=sizeof(DLG); //les struct sont sensées avoir la mm taille
(structure:
struct
{
char *nom;
char *txt;
long *next;
}DLG;
)
mais voila ca marche PAS !
je poste la petite source demain, mais en attendant si vous avez des idees, suggestions, etc, merci d'avance
warau kado niha fuku kitaru.
#trifouet#!!!
Il me semble que si tu déclares ton pointeur tayst comme ça : DLG *tayst; tu as juste besoin de faire tayst++; pour accéder à l'élément suivant.
Tu te complique la vie pour rien, si ton fichier ne contient que la meme structure,
utilise fread, C bcp plus simple pour récupérer les structures
si les structures sont lues une fois pour toute au debut & kil y en
a pas 5000, C tout à fait valable. Ou alors, il faut programmer
un fread à la main
Vark Le 02/02/2003 à 22:24 non là c lut très souvent vu le contexte de la fct ...
*** Ne sous-estimez pas la puissance de la Marmotte ***
©
Marmotte Team : LaMarmotte, sBibi, Vark & sabrina
Zeph Le 02/02/2003 à 23:54 de toute façon un "fread" beaucoup plus adapté à la situation c'est rapide à coder, et la différence de vitesse est telle que c'est quasiment indispensable.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Le problème est que tu ne peux pas stocker des pointeurs seuls dans la variable (et fread n'y changera strictement rien). Les adresses vers lesquelles ils pointent ne seront plus valables quand le programme qui crée la variable aura terminé son exécution.
Zeph Le 03/02/2003 à 08:45 Mais j'imagine qu'il stoque des tableaux et non simplement des pointeurs ?

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
kevin> vrai ? galeeere !!! je pensais qu'en faisant une sorte de liste chainee oú je stocke 3 adresses (l'adresse de 2 chaines contenues ds le mm fichier => adresse relatives....heu..enfin...merde meme ca a l'air bien foireux et l'adresse du dialogue suivant si il y en a un) je pourrais aisement recupérer le tout, d'ailleurs je le faisais avec un prgm de test et des printf, ca marchait impec, par contre ds un prgm utilisant genlib, ca foirait et apres avoir lance ce prgm le premier prgm de test ne marchait plus
tu dois avoir raison kevin, donc je dois absolument faire autrement ?
sinon fread c a oublier direct, g pas les moyens de me permettre d'allouer de la mem a chaque dlg ne sachant pas a l'avance leur taille et de toutes facons mon projet c une grosse course a l'economie de RAM
je vais poster les sources
warau kado niha fuku kitaru.
#trifouet#!!!
Si les données sont dans le même fichier, il suffit de stocker des offsets depuis le début du fichier plutôt que des pointeurs. Ça permet de calculer le pointeur assez facilement.
liste[2]
2 est l'offset. L'indice en fait.
Tu peux aussi écrire *(liste+2).