Kelso Le 17/08/2001 à 23:34 Je programme en C depuis qq jours et j'essaye d'adapter mon prog Partoche (editeur de partitions cf software) en C.
Je me suis pe attaqué à un gros morceau pour débuter mais sinon je saurais pas quoi faire.
Donc mon problème va pe vous paraitre simple:
Mon prog en Basic sauvegardait chaque partition dans une matrice.
Pour mon prog en C j'ai besoin:
-de pouvoir utiliser un tableau de valeur de type int, extensible, de 3*x, sans qu'il soit stocké dans le programme.
-de pouvoir enregistrer ce tableau sous la forme d'une variable personnalisée, avec un nom donné par l'utilisateur
-de pouvoir la retrouver, et le retransformer ensuite sous forme de tableau.
Je remercie toute aide, lien utile, qui pourrait m'aider dans cette tache, et aussi Thibaut, qui m'as proposé son aide.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
arf... mon tuto :-)
Quoique, je suis même plus trop sûr de parler de ça dedans...
Entre les chapitre que g écrit, ceux que je veux écrire, ceu que je vais écrire, et ce que je sais sans le mettre dans le tuto, j'ai un peu tendance à m'embrouiller....
malloc attend comme paramètre la taille en octets de la zone que tu veux allouer, et renvoie l'adresse de cette zone. Si cette adresse est égale à 0, c'est qu'il n'y a plus assez de RAM dans la calto de l'utilisateur. Donc :
PointeurSurUneStructureDeTypeInt= malloc(2*TailleDuTableauEnElements);
[edit]Edité par Thibaut le 10-08-2001 à 20:08:36[/edit]

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Kelso Le 17/08/2001 à 23:34 Merci pour ces précisions. Donc dans n'importe quel tuto C pour PC je peux trouver ce que je cherche?
Je pensais que le C pour TI était trop spécifique.
sinon ce que je veux faire c'est un tableau de
de 3 lignes par x colonnes ou x varie en fonction de mes besoins.
"PointeurSurUneStructureDeTypeInt= malloc(2*TailleDuTableauEnElements);"
ça veut dire que 2 et "Tailledutableau" sont les dimensions?
Je vais essayer de trouver des infos sur les pointeurs
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
La taille a passer à malloc est en octets. Le type Int fait 2 octets. Donc la taille en RAM du tableau est sa taille en éléments multipliée par 2.
Cherche fopen dans un tuto pour PC, et avec les renseignements que tu as en plus avec squale92 & Verstand, tu devrais y arriver.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Kelso Le 17/08/2001 à 23:34 J'ai trouvé un tuto sur le c et je l'ai lu en entier. Je suis déjà un peu moins paumé.
Mais la fonction malloc crée un espace en 1 dimension, et moi j'ai besoin de 2 dimensions,dont la taille augmente. Bon là j'suis crevé j'verrais ça demain.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Kelso Le 17/08/2001 à 23:34 J'ai trouvé une technique pour faire des matrices "dynamiques" (faut qd même la recopier membre à membre dans une + grande).
C dans la faq de tigcc.
Je me demande maintenant comment copier la matrice
dans le fichier de sauvegarde d'un coup et faire le contraire ensuite.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Kelso Le 17/08/2001 à 23:34 Je crois que j'y suis arrivé. En fait je vais écraser l'ancien fichier à chaque sauvegarde.
Mais je n'arrive pas à faire une liste des variables avec mon extensions, et j'ai un peu du mal à comprendre les manips dans la vat.
est-ce qu'il faut obligatoirement utiliser le stack?
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Non je ne crois pas.
Tu veux utiliser le stack pour quoi ?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Kelso Le 17/08/2001 à 23:34 En fait dans la faq de tigcc ya une fonction qui permet de connaitre le type d'une variable qui utilise le stack. Mais c bon, TImad m'as donné la solution pour trouver l'extension. Maintenant j'essaye de stocker une liste variable de chaines conenant le nom d'une variable. Apparement une technique consiste à faire une liste de pointeur vers SYM_ENTRY et de n'utiliser ensuite que le nom, mais est-ce que ce n'est pas possible d'utiliser calloc ou malloc pour gagner de la place?
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Kelso Le 17/08/2001 à 23:34 ça marche pas!
voilà la syntaxe que j'utilise:
SYM_ENTRY *liste[20];
...
x=0;
...(si variable custom "mus"):
liste[x++]=SymPtr;
...
instruction (liste[x]->name,...);
où liste[x]->name est un string.
QQ à t'il une idée pkoi ça marche pas?
Le reste de la routine est bonne, j'ai tt verifié.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Tu as plusieurs fichiers dont les noms sont resencés dans une matrice dynamique, c'est ça ?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Kelso Le 17/08/2001 à 23:34 non, j'utilise une matrice fixe pour le moment.
J'ai essayé une autre méthode plus gourmande mais plus simple qui a marché:
char *liste[9][15];
...
string = &liste[0][x];
ou x= position du nom.
J'essaie maintenant d'écrire dans une matrice dynamique de type (en fait c pour résumer)
short mat[size][3].
J'arrive déjà à gerer la matrice et à l'agrandir.
J'aimerais recopier le contenu d'un fichier dans cette matrice.
J'ai essayé ça:
size= (taille_du_fichier-8)/6;
//8 octets de définitions, 6 octets par bmoc
fich = fopen(&liste[0][x],"rb")
fread (&mat[0][0],sizeof(int)*3,size,fich);
fclose(fich);
mais l'instruction fread provoque une illegal instruction, je comprend pas pourquoi.
j'avais utilisé exactement le même système avec fwrite et ça marchait.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Kelso Le 17/08/2001 à 23:34 pfff...
en fait la méthode que je cite + haut ne marche pas du tout, j'avais pas les test aux bons endroits. Donc je cherche tjs une méthode de stockage des noms de variables tios.
ça devrait pourtant pas être très dur.
La suite marche en fait très bien.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Kelso Le 17/08/2001 à 23:34 c pas con ton idée!
j'avais pas du tt pensé à utiliser ça. Je vais essayer.
si vous avez d'autres idées n'hesitez pas, vu le nbre de trucs que j'ai essayé,
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Kelso Le 17/08/2001 à 23:34 j'en ai marre!
ton truc avait l'air valable mais soit j'arrive pas à m'en servir soit c pas efficace pour ce que je veux faire, en tout cas j'arrive pas à obtenir le nom des fichiers à partir de ça. c chiant, c pourtant pas un gros problème mais j'arrive pas à le résoudre
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Kelso Le 17/08/2001 à 23:34 Bon je crois que je vais encore avoir recours à un
calloc(nbre de pages,3840)
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue