Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » sauvegarde qui fonctionne pas (4 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
bobti89 Ecrit le: Samedi 6 novembre 2004 à 18:55 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

#define lvl_size nb_level*260+10
void save(char* packlevel, int lvl)
{
  HSym hsym;
  SYM_ENTRY *SymPtr;
  int level_archive;
  char nb_level;
  HANDLE handle;
  char *fptr=fptr;
  if (packlevel[0] == 0) strcpy(packlevel,"gravtemp");
  
  hsym = SymFind (SYMSTR (packlevel));
  SymPtr = DerefSym (hsym);
  level_archive = SymPtr -> flags.bits.archived;
  
  EM_moveSymFromExtMem (NULL,hsym); // desarchive la variable packlevel
  
  SYM_ENTRY *openlevel_sym;  
  openlevel_sym=SymFindPtr(SYMSTR(packlevel),0);
  handle=openlevel_sym->handle;
  fptr=HeapDeref(handle);
  nb_level = *(fptr+3);
  char *pack=malloc(lvl_size-10);
  memcpy(pack, fptr+4, 260 * nb_level * sizeof(char));
  
  HANDLE handlefin;
  char *fptrfin;
  SYM_ENTRY *write_sym;
  
  handlefin=HeapAlloc(lvl_size);
  write_sym=DerefSym(SymAdd(SYMSTR(packlevel)));
  write_sym->handle=handlefin;
  fptrfin=HeapDeref(handlefin);
  *(short*)fptrfin=lvl_size-2;
  fptrfin[3]=nb_level;

  if (nb_level>1) memcpy(&fptrfin[4], pack, 260 * nb_level * sizeof(char));
  memcpy(&fptrfin[lvl*260-260+4], m, 260 * sizeof(char));
  
  fptrfin[lvl_size-6]=0;
  strcpy(fptrfin+lvl_size-5,"LVL");
  fptrfin[lvl_size-1]=OTH_TAG; 
  
  
  if (level_archive)
  {
    hsym = SymFind (SYMSTR (packlevel));
    EM_moveSymToExtMem (NULL,hsym); // archive la variable packlevel
  }
  free(pack);
}


Voila, cette fonction marche la premiere fois mais les fois d'apres elle m'écrase le 4 et 5eme octet de mon fichier...

Merci d'avance :)
ps:j'attends aussi toutes vos remarques sur ce code (pourri ??? :D )
bob ou bob, vous ne voyez pas la différence. Pourtant il y en a une fondamentale, l'un est écrit à l'endroit, l'autre à l'envers.

Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici
    
./Post n°1   Marquer comme non lu.
bobti89 Ecrit le: Dimanche 7 novembre 2004 à 17:19 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

En fait mon vrai problème est que je n'arrive pas à écrire dans un fichier qui existe déjà (là j'en recrée un et ça fait tout foirer...)

Merci de m'éclairer :) car ce problème me rallentit dans mon projet :(
bob ou bob, vous ne voyez pas la différence. Pourtant il y en a une fondamentale, l'un est écrit à l'endroit, l'autre à l'envers.

Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici
    
./Post n°2   Marquer comme non lu.
limmt Ecrit le: Dimanche 7 novembre 2004 à 17:24 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


ben tu ferais mieux de supprimer le fichier puis de le recréer
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°3   Marquer comme non lu.
bobti89 Ecrit le: Dimanche 7 novembre 2004 à 17:59 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

Arg, le seul fait de supprimer la variable fait que ca marche :)
merci bien :)
bob ou bob, vous ne voyez pas la différence. Pourtant il y en a une fondamentale, l'un est écrit à l'endroit, l'autre à l'envers.

Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici
    
./Post n°4   Marquer comme non lu.
limmt Ecrit le: Dimanche 7 novembre 2004 à 19:29 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


dr ;)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
  :: Index » Forum Ti68K » Programmation C » sauvegarde qui fonctionne pas (4 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 54.8ms avec 18 requetes