Après plusieurs journées de debuggage d'un programme, j'ai vu que l'erreur venait du fait qu'on ne pouvait pas écrire 13 dans un fichier.
Alors EST-IL POSSIBLE D'ECRIRE 13 DANS UN FICHIER ? Y A-T-IL D'AUTRES NOMBRES QU'ON NE PEUT PAS ECRIRE ?
merci
What kind of technology is this?
T'as plus de détail ? Genre un extrait du source, le type de fichier (donnée brute ou tu veux faire une variable qui contient la valeur 13), ... ?
[edit: cross. Suis le conseil de Pollux d'abord, ça a de grandes chances d'être ça ton pb]
c pas très clair... en quoi 13 est-il différent des autres nombres ? qu'est-ce qui change si tu mets 14 au lieu de 13 ?
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Si je mets 14 au lieu de 13, tout marche bien car 13 est le code pour un retour a la ligne sans doute. Sans 13, tout il n'y a aucun probleme. 13 pose probleme.
J'utilise fputc car cette fonction redimensionne automatiquement le fichier d'arrivée.
Le fichier a le bon type.
La sauvegarde dans le fichier se deroule sans probleme mais apres, son analyse par le programme echoue car fput n'ecrit pas ce qu'on lui demande. (j'ai l'impression qu'il n'ecrit rien du tout si on lui demande de mettre 13)
Le probleme vient uniquement du 13 qu'on ne peut pas ecrire dans le fichier externe.
What kind of technology is this?
Le fichier a le bon type (STR), le bon nom, la bonne taille, n'est pas tronqué, ne fait rien planter a la sortie du programme.
Il prend un octet de moins quand j'essaye d'y ecrire 13 (car fput ne sait pas ecrire 13).
What kind of technology is this?
J'ai utilisé des memset. Le probleme est exactement le meme: 13 fait tout "planter". Donc fputs n'est pas responsable du bug.
fputc (0, fmap);
fputc (0, fmap); // Pour agrandir au cas ou
memset(fmap->fpos-2, ((j<<3)&31)+b, 1);
memset(fmap->fpos-1, j>>2, 1);
au lieu de:
fputc ((char)(((j<<3)&31)+b), fmap);
fputc ((char)(j>>2), fmap);
Ca revient au meme.
Je vais voir ailleurs alors...
What kind of technology is this?
C'est ma faute !
J'avais mis fopen("truc","r") pour la lecture .....
Qu'est-ce que c'est relou les bugs comme ça....
Merci pour votre aide.
What kind of technology is this?
heu ton but est de stoquer un char dans un fichier externe ?
pourquoi tu utilise fputc si tu est en BINAIRE ?
fputc, fprintf & co sont fait pour le mode TEXTE
si tu veux utiliser le mode binaire, il faut utiliser fwrite/fread
apres ne t'étone pas si tu as des pbms
Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
euh, non, pas du tout Godzil, ça marche pour les 2...
et sinon pour lire des fichiers binaires sur TI, fgetc/fread sont pas super efficaces, c bcp mieux d'aller chercher directement l'adresse du fichier et d'aller lire en mémoire ^^
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
certe, et non je dit pas que tu sait pas faire la diff, juste qu'utiliser des trucs "astandard" rique un jour de poser un pbm ^^
Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
On peut utiliser fgetc/fputc en binaire en effet.
andoh_wilfried Le 30/07/2004 à 15:01Edité par andoh_wilfried le 30/07/2004 à 15:07 Tant qu'on y est encore je voudrait savoir :
- est la seule façon de faire pour sauvegarder des variables de tout type(structure ,union tableau) d'un prog C ?
n'y a-t-il pas de librairie qui prenne en compte la gestion des données externes automatiquement ?
(j'aurais cru que oui !)
Parceque moi j'ai ce prolème actuellement ; tout un tas de structure décrivant le jeu de scrabble que je voudrait bien sauver en externe et récupérer sans trop coder.
Déjà que le codage de la plate forme de jeu qui finira certainement dans 2 heures me donne du file à retordre.
D'ailleur c'est pareil pour le Dico; il faut que je fasse des fichiers externes alors ça va pas avancer pas de beaucoup ;
sauf si y a moyen de faire plus rapide que des conversion de toutes les données en string!
andoh_wilfried Le 30/07/2004 à 15:15Edité par andoh_wilfried le 30/07/2004 à 16:29 disons que si je pouvais avoir quelque indication sur les fonctions à utiliser , ça m'aiderai un peu!
C'est pas que j'ai pas envie de me taper la DOC en Anglais (ce qui me pose quelques problèmes même si le dictionnaire aide pour les mots un peu trop spécifiques)
Ben, SymFindPtr, SymAdd, DerefSym avant tout.