5Fermer7
andoh_wilfriedLe 19/05/2007 à 08:58
Salut.
Pour commencer tu n'as pas pas besoin de fopen, fclose, ....
1- pour rechercher la variable
    SYM_ENTRY *sym = SymFindPtr(SYMSTR(varname_included_folder),0);
2- pour recuperrer le HANDLE
    HANDLE handle = sym->handle;
3- pour pointer au debut
    char *begin = HeapDeref(handle);
4- pour lire la taille
    unsigned short size = *(unsigned short *)begin + BYTE_VARSIZE; // BYTE_VARSIZE = 2 ( nbr de byte oqp par la taille d'un fichier )
5- pointer a la fin du fichier
    char *end = begin+size-1;
    Un fichier TEXT fini par les caracteres { 0, 224 }


Ce que tu dois faire pour augmenter la Taille d'un fichier c'est :
1- Calculer la nouvelle taille du fichier
    unsigned short newsize = size + nbr_byte_a_ajouter_au_fichier;
2- Reallouer le Handle a la nouvelle taille
    handle = HeapRealloc( sym->handle , newsize );
3- Actulisation du handle et pointeur sur debut de la Variable
    sym->handle = handle;
    begin = HeapDeref( handle );
4- Ecriture de la nouvelle Taiille du Fichier
    *(unsigned short *)begin= (unsigned short)( newsize - BYTE_VARSIZE );// les 2 bytes oqp par la taille ne sont pas pris en compte par le TIOS
6- Pointer a la fin du fichier realloué
    end = begin + newsize - 1;
6- Ecriture des 2 bytes { 0, 224 } a la fin du fichier TEXT
    *(end - 1 )= 0;
    *end = 224;

[EDIT] : J'ai corrigé l'erreur suivante dans la 2ème partie du code :
newsize au lieu de size

voila c'est tout je crois smile