1

salut les n'enfants ...
Voila je me pose une petite question comment sauvegarde t'on des donnees dans un programme archivé ?
sans laisser derriere soi d'autres types de fichier string ou autre ...
Merci d'avance.
[edit]Edité par val1472 le 17-02-2002 à 18:09:14[/edit]

2

En désarchivant le prog, en écrivant, puis en réarchivant.
Mais c'est dégueulasse comme méthode. Ecrit plutôt dans un fichier externe.
avatar
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.

3

Caché si ça te gêne de voir pleins de variables dans le VAR-LINK tongue

4

Mon problème est un peu en rapport avec la question de <val1472> je voudrai savoir si mon programme (celui qui est executé) est archivé ou pas. J'utilise l'instruction suivante :

if ( DerefSym(SymFind($(projet)))->flags.bits.archived )
DrawStr(1,1,"ARCHIVE",A_NORMAL);

(mon prog s'appelle projet) mais ça ne fonctionne pas ! quelqu'un sait pourquoi ? confus

5

C'est pas parce qu'une copie du programme est faite lors de l'éxécution de celui-ci ?

6

si le prog est archivé, à l"execution il est recopié en ram avec un flag twin qq chose.. je sais plus bien.

7

il faut que ton programme soit dans le dossier actif de la calto pour que SymFind le trouve je pense roll
avatar
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.

8

Le programme se trouve bien dans le répertoire actif de la calto et je ne fais pas de copie de celui-ci pendant son execution...
Je ne sais pas d'ou vient le problème confus confus

9

Thibaut et ZdRUbAl> merci ok c'est sympa
Alalesmy> Ton truc ca m'interesse aussi, si tu trouves une solution ...

10

> Alalesmy :
Ce n'est pas toi qui fait une copie du programme.
Si le programme est archivé, une copie en RAM (une variable twin) sera faite pas l'AMS avant exécution, et sera exécutée.

11

Teste éventuellement de cette façon :
if (DerefSym(SymFind($(projet)))->flags.bits.archived == 1)
  DrawStr(1,1,"ARCHIVE",A_NORMAL);
avatar
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.

12

Désolé ZdRUbAI je suis tout nouveau j'avais pas pigé tongue
Ton exemple Thibaut ne fonctionne pas non plus... Bon je vais encore cherche un moment, ça m'occupe grin

13

et pourquoi tu teste pas les 2 ???

if (DerefSym(SymFind($(projet)))->flags.bits.archived || DerefSym(SymFind($(projet)))->flags.bits.twin)
DrawStr(1,1,"ARCHIVE",A_NORMAL);

14

C'est bon j'ai compris ce que tu as dis <ZdRUbAl> , mais j'ai mis le temps grin En tout cas ça marche, il faut utiliser le code suivant :

if (DerefSym(SymFind($(projet4)))->flags.bits.twin)
DrawStr(1,1,"ARCHIVE",A_NORMAL);

<OBZA_Fazer> apparemment ce n'est pas la peine de regarder flags.bits.archived... ( d'après mes essais ! )

J'ai encore appris quelque chose aujourd'hui wink Merci

15

Bien wink
Par contre, je ne suis par sûr que cela marche si le programme est compressé avec EXE-Pack (dans ce cas il faudrait vérifier le flag archived).