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 » Creer fichier (29 réponse(s))
./REPRISE DU POST PRECEDENT (post n°19)   Marquer comme non lu.
limmt Ecrit le: Dimanche 19 septembre 2004 à 06:48 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


//Function to create a file
short file_create (char *content, const char *ext, const char *filename,short nbstr)
{
  //Init temp var
  FILE * pfile;
  //Opens the file for writing, if it already exists it will be overwritten
  pfile  = fopen (filename,"wb");
  //Puts the "WIN" tag, to specify it's a windows file
  fputs  ("WIN",  pfile);
  //Puts the icon number for extension ext
  fputc  (geticon(ext), pfile);
  //Puts the content of the file
  while(nbstr>0)
  {
    fputs  (content, pfile);
    fputc  (0x00, pfile);
    content=content+strlen(content);
    nbstr--;
  }
  //Puts the ending 0x00 tag
  fputc  (0x00, pfile);
  //Puts the extension
  if(strlen(ext)==4)
  {
    fputc  (0x00, pfile);
    fputs  (ext, pfile);
  }
  else
    fputs  (ext, pfile);
  //Puts the ending 0x00 tag
  fputc  (0x00, pfile);
  //Puts the OTH_TAG tag for the TI Var-Link
  fputc  (OTH_TAG, pfile);
  //Closes and saves the file
  fclose (pfile);
  //Returns ok
  return TRUE;
}


cette fonction de win2k3 marche avec toutes les extensions
-Edité le Dimanche 19 septembre 2004 à 06:49 par limmt-
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°20   Marquer comme non lu.
Benjy Ecrit le: Dimanche 19 septembre 2004 à 08:26 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Lol limmt tu a vu la taille de ton code par rapport a la version avec vat.h d'autan que ca y'est ca marche!!
Le langage C y'a pas mieux!!!
    
./Post n°21   Marquer comme non lu.
limmt Ecrit le: Dimanche 19 septembre 2004 à 11:17 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


mon code permet de créer un fichier spécifique a win2k3 avec les tags et avec des data qui peuvent contenir des 0
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°22   Marquer comme non lu.
Benjy Ecrit le: Dimanche 19 septembre 2004 à 12:55 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Bon j'ai encore un probleme de conversion!! voila
creation du fichier

int ch = 0;
FILE *plfile;

plfile = fopen("main\\plfile", "wb");
for(ch = 0; ch < 8; ch++) fputc(0, plfile);
fputc(0, plfile);
fputs("PLF", plfile);
fputc(0, plfile);
fputc(OTH_TAG, plfile);
fclose(plfile);


donc avec vat.h ca me donne ca


HANDLE handle;
SYM_ENTRY *sym = SymFindPtr($(plfile),0);
unsigned char *ptrFILE;

handle=HeapAlloc(12);
if(!handle)return;
sym=DerefSym(SymAdd($(plfile)));
if(!sym)return;
sym->handle=handle;
ptrFILE=HeapDeref(handle);
*(short*)ptrFILE=10;
ptrFILE[6]=0;
strcpy(ptrFILE+7,"PLF");
ptrFILE[11]=OTH_TAG;


jusque la ca va!! mais c'est apres pour la lecture qui se fait comme ca:


long savepass = 0;
long savepass1 = 0;
FILE *plfile;

plfile = fopen("main\\plfile", "rb");
fread(&savepass, 4, 1, plfile);
fread(&savepass1, 4, 1, plfile);
fclose(plfile);

et ca je n'arrive pas a le faire avec vat.h comment faire merci
Le langage C y'a pas mieux!!!
    
./Post n°23   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 19 septembre 2004 à 13:06 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Bah, tu fais ptrFILE=HeapDeref(sym->handle); et tu n'as plus qu'à lire les données à ce pointeur.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°24   Marquer comme non lu.
Benjy Ecrit le: Dimanche 19 septembre 2004 à 13:22 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Oui mais je ne comprend pas comment lire ca!!
fread(&savepass, 4, 1, plfile);
fread(&savepass1, 4, 1, plfile);

car je voit pas a quel endroit du fichier c'est mit!
Et autre chose que je ne comprend pas!!
C'est que la methode sans vat.h peut utiliser 8octets!!
for(ch = 0; ch < 8; ch++) fputc(0, plfile);

Alors que celle de vat.h je ne peut utiliser que 5octets de 2 a 5 pourquoi? merci!
-Edité le Dimanche 19 septembre 2004 à 13:55 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°25   Marquer comme non lu.
Benjy Ecrit le: Dimanche 19 septembre 2004 à 15:00 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


S'il vous plait aidez moi pour ca!! Pourquoi vous me repondez pas???
-Edité le Dimanche 19 septembre 2004 à 16:30 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°26   Marquer comme non lu.
Benjy Ecrit le: Dimanche 19 septembre 2004 à 23:02 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Bon j'ai reussi il me reste un probleme de taille!! voila donc creation du fichier et lecture


SYM_ENTRY *sym = SymFindPtr($(plfile),0);
if(!sym)
{
handle=HeapAlloc(16);
if(!handle)return;
sym=DerefSym(SymAdd($(plfile)));
if(!sym)return;
sym->handle=handle;
ptrFILE=HeapDeref(handle);
*(short*)ptrFILE=14;
for(ch = 2; ch < 11; ch++) ptrFILE[ch]=0;
strcpy(ptrFILE+11,"PLF");
ptrFILE[15]=OTH_TAG;
EM_moveSymToExtMem(SYMSTR("plfile"), HS_NULL);
}

sym=SymFindPtr($(plfile),0);
ptrFILE=HeapDeref(sym->handle);
memcpy(&savepass,ptrFILE+2,4);
memcpy(&savepass1,ptrFILE+6,4);


Jusqu'ici pas de problemes mais apres je veut ecrire dedans donc je fait


EM_moveSymFromExtMem(SYMSTR("plfile"), HS_NULL);
memcpy(ptrFILE+2,&savepass,4);
memcpy(ptrFILE+6,&savepass1,4);
EM_moveSymToExtMem(SYMSTR("plfile"), HS_NULL);


Et la probleme ca marche tant que l'on ne vide pas la ram mais si on reset la ram et qu'on relance le prog le fichier est comme au depart avec les 0 et non avec ce qu'on a mit avec les memset pourquoi?? Ou est mal faite la chose merci!
Le langage C y'a pas mieux!!!
    
./Post n°27   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 21 septembre 2004 à 18:40 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Une chose qui me vient là:
Benjy :
Ok alors j'ai fait ce que tu m'a dit mais probleme
  handle=HeapAlloc(12);
  if(!handle)return;
  ptrsym=DerefSym(SymAdd($(georgsav)));
  if(!ptrsym)return;
  ptrsym->handle=handle;
  ptrFILE=HeapDeref(handle);
  *(short*)ptrFILE=10;  
  ptrFILE[5]=0;
  strcpy(ptrFILE+6,"Save"); 
  ptrFILE[11]=OTH_TAG;


L'extension n'est que ave il manque le S pourquoi?

Est-ce bien tout le code? Ou y-a-t'il aussi du code pour mettre un contenu dans ton fichier? Parce qu'il faut évidemment faire attention à ne pas écraser l'extension en mettant le contenu...
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°28   Marquer comme non lu.
Benjy Ecrit le: Mardi 21 septembre 2004 à 19:04 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Non c'est bon probleme resolut!! Merci encore
Le langage C y'a pas mieux!!!
    
./Post n°29   Marquer comme non lu.
Benjy Ecrit le: Mardi 21 septembre 2004 à 19:36 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Pareille ici je lock car probleme regler
Le langage C y'a pas mieux!!!
    
  :: Index » Forum Ti68K » Programmation C » Creer fichier (29 réponse(s))
Pages : 2/2     « 1 [2] » »|

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 44.35ms avec 18 requetes