Page 1 of 1

[C] [TI83 PCE] [Lire une appVar d'un autre prgm]

Unread postPosted: 27 Apr 2018, 19:31
by axel stefanini
Bonsoir,

Pour un programme que je réalise j'aimerais pouvoir accèder au contenu d'une AppVar dont je possède le nom.
Normalement avec la fonction ti_Read on a besoin d'une ti_var_t pour aller chercher le fichier, et ensuite récupéré son contenu, cependant la fonctions demande ce qu'on veut récupéré, et plus spécifiquement elle demande le nom de la variable/const que l'ont souhaite obtenir venant du fichier ouvert.

Les varApp que je veux pouvoir lire ont été crée par le prgm Text Editor CE dispo ici : https://tiplanet.org/forum/archives_voir.php?id=424986
Ce prgm est en assembleur et donc très différent du C, et je ne comprends pas suffisament son code source pour comprendre comment il gère la sauvegarde de ses fichiers dans la mémoire.

Mon objectif serait de récupéré chaque ligne de texte contenu dans la varApp crée par Text Editor CE dans mon programme en C. Pour cela il faudrait obtenir la list des variables contenu dedans.

Merci beaucoup !

Re: [C] [TI83 PCE] [Lire une appVar d'un autre prgm]

Unread postPosted: 28 Apr 2018, 14:54
by Adriweb
C'est juste que ça commence par "File", suivi d'un nombre, pour autant que je puisse voir.

Je pense que la routine ti_DetectVar pourra t'être utile (cf. https://ce-programming.github.io/toolch ... 6bfa9269c7)

Re: [C] [TI83 PCE] [Lire une appVar d'un autre prgm]

Unread postPosted: 28 Apr 2018, 22:19
by axel stefanini
D'accord merci je vais me renseigner

Re: [C] [TI83 PCE] [Lire une appVar d'un autre prgm]

Unread postPosted: 29 Apr 2018, 20:07
by axel stefanini
Adriweb wrote:C'est juste que ça commence par "File", suivi d'un nombre, pour autant que je puisse voir.

Je pense que la routine ti_DetectVar pourra t'être utile (cf. https://ce-programming.github.io/toolch ... 6bfa9269c7)


Bonsoir,
alors en suivant mon objectif de pouvoir récupérer le contenu (text) présent dans une AppVar, j'ai bien utilisé la fonctions ti_DetectVar et j'ai réalisé le code suivant (donner dans les sources) :
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
/* Keep these headers */
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <tice.h>

/* Standard headers */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <graphx.h>
#include <fileioc.h>

/* Main Function */
void main(void) {

    char *var_name;
    uint8_t *search_pos = NULL;
    int i=0;
gfx_Begin( gfx_8bpp );

while((var_name = ti_DetectVar(&search_pos, "debut", TI_PRGM_TYPE)) != NULL) {
  gfx_PrintStringXY(var_name,10,10*i);
  i++;
}


    while (!os_GetCSC());
    gfx_End();
}


J'ai convertis un simple fichier txt avec plusieurs mots choisie dedans et particulièrement le mot "debut" via le convertisseur de l'application TEXT CE, et donc il est présent dans la mémoire de la calculatrice en AppVar (.8xv)

Cependant mon prgm ne donne qu'un écran blanc, sans rien, alors que "logiquement" il devrait afficher le nom du fichier contenant le mot "debut" donc mon AppVar.

Merci de ton aide !

Re: [C] [TI83 PCE] [Lire une appVar d'un autre prgm]

Unread postPosted: 29 Apr 2018, 20:14
by IAMISSAM
char* ti_DetectVar(void ** curr_search_posistion, const char* detection_string, uint8_t var_type);
var_type Type of variable to detect


et toi tu renseignes TI_PRGM_TYPE, or c'est surement TI_APPVAR_TYPE que tu dois indiquer

Re: [C] [TI83 PCE] [Lire une appVar d'un autre prgm]

Unread postPosted: 30 Apr 2018, 17:03
by axel stefanini
IAMISSAM wrote:
char* ti_DetectVar(void ** curr_search_posistion, const char* detection_string, uint8_t var_type);
var_type Type of variable to detect


et toi tu renseignes TI_PRGM_TYPE, or c'est surement TI_APPVAR_TYPE que tu dois indiquer


Bonsoir, alors oui j'avais déjà essayer de remplacer cette partie la avec toutes les possibilités présente dans le source https://ceprogramming.github.io/toolchain/fileioc_8h_source.html


Code: Select all
/* Varible and flag definitions */
#define TI_PRGM_TYPE            (0x05)
#define TI_PPRGM_TYPE           (0x06)
#define TI_TPRGM_TYPE           (0x16)
#define TI_APPVAR_TYPE          (0x15)
#define TI_REAL_TYPE            (0x00)
#define TI_CPLX_TYPE            (0x0C)
#define TI_MATRIX_TYPE          (0x02)
#define TI_STRING_TYPE          (0x04)
#define TI_EQU_TYPE             (0x03)
#define TI_REAL_LIST_TYPE       (0x01)
#define TI_CPLX_LIST_TYPE       (0x0D)



Malheuresement pour du text le résulats le résulat est le même et impossible d'obtenir autre chose qu'un écran blanc...