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))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Benjy Ecrit le: Vendredi 17 septembre 2004 à 22:00 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Bon alors voila je creer mon fichier comme ceci:


FILE *file;
file= fopen("main\\file", "wb");
for(ch = 0; ch < 8; ch++) fputc(0, file);
fputc(0, file);
fputs("OTH", file);
fputc(0, file);
fputc(OTH_TAG, file);
fclose(file);


Et je voucrai savoir comment faire la meme choses et meme en generale mais avec VAT.H merci!
-Edité le Samedi 18 septembre 2004 à 07:55 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°1   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 septembre 2004 à 01:22 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  


Cf. sources de Backgammon...
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°2   Marquer comme non lu.
Benjy Ecrit le: Samedi 18 septembre 2004 à 08:29 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


J'ai regarde mais j'arrive pas trop a faire le lien entre les deux. Tu peux m'aider s'il te plait!

  
SYM_ENTRY *sym=SymFindPtr($(plfile),0);
  HANDLE handle;
  if (sym)
  {
    if (sym->flags.bits.archived)
    {
      if (!EM_moveSymFromExtMem($(plfile),HS_NULL)) ER_throw(ER_MEMORY);
    }
    handle=HeapRealloc(sym->handle,49);
    sym=SymFindPtr($(plfile),0);
  }
  else
  {
    HSym hsym=SymAdd($(plfile));
    if (!*(unsigned long *)&hsym) ER_throw(ER_MEMORY);
    handle=HeapAlloc(49);
    if (handle)
    sym=DerefSym(hsym);
    else
    SymDel($(plfile));
  }
  if (!handle) ER_throw(ER_MEMORY);
  sym->handle=handle;
  short *fptr=HeapDeref(handle);
  for(ch = 0; ch < 8; ch++) fptr[ch]=0;
  fptr[9]=0;
  fptr[10]=(char)"PLF";
  fptr[11]=0;
  fptr[12]=OTH_TAG;


Voila deja ce que j'ai fait. Ca me creer bien un fichier mais en EXPR alors ca va pas. Ou est ce que je me suis trompe merci.
-Edité le Samedi 18 septembre 2004 à 08:39 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°3   Marquer comme non lu.
bobti89 Ecrit le: Samedi 18 septembre 2004 à 10:40 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

Kevin> Je pense que si c'était super commenté, on aurait pas de problèmes, car moi aussi j'y arrive pas :( (Je comprends pas tout dans ta source...)
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.
Benjy Ecrit le: Samedi 18 septembre 2004 à 17:06 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Ben voila j'ai deja reussi a faire ca!

  handle=HeapAlloc(12);
  if(!handle)return;
  ptrsym=DerefSym(SymAdd($(georgsav)));
  if(!ptrsym)return;
  ptrsym->handle=handle;
  ptrFILE=HeapDeref(handle);
  *ptrFILE=12;
  strcpy(ptrFILE+4,"Sav");
  ptrFILE[10]=0;ptrFILE[11]=OTH_TAG;


seul probleme c'est que j'obtient un fichier enorme au lieu des mes 12 pourquoi?
Le langage C y'a pas mieux!!!
    
./Post n°5   Marquer comme non lu.
limmt Ecrit le: Samedi 18 septembre 2004 à 17:56 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


pourquoi veux tu utiliser vat.h si avec fopen ca marche?
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°6   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 septembre 2004 à 21: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  


limmt :
pourquoi veux tu utiliser vat.h si avec fopen ca marche?

Parce que vat.h est plus efficace.

Benjy :
Ben voila j'ai deja reussi a faire ca!

  handle=HeapAlloc(12);
  if(!handle)return;
  ptrsym=DerefSym(SymAdd($(georgsav)));
  if(!ptrsym)return;
  ptrsym->handle=handle;
  ptrFILE=HeapDeref(handle);
  *ptrFILE=12;
  strcpy(ptrFILE+4,"Sav");
  ptrFILE[10]=0;ptrFILE[11]=OTH_TAG;


seul probleme c'est que j'obtient un fichier enorme au lieu des mes 12 pourquoi?

Parce que ton ptrFILE est un char *.
Il faut mettre *(short*)ptrFILE=10;. (10 et pas 12. C'est la taille sans les octets de taille qu'il faut mettre là.)
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°7   Marquer comme non lu.
Benjy Ecrit le: Samedi 18 septembre 2004 à 22:25 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Ok alors ceci marche!!
  handle=HeapAlloc(12);
  if(!handle)return;
  ptrsym=DerefSym(SymAdd($(georgsav)));
  if(!ptrsym)return;
  ptrsym->handle=handle;
  ptrFILE=HeapDeref(handle);
  *(short*)ptrFILE=10;  
  strcpy(ptrFILE+7,"Sav"); 
  ptrFILE[10]=0;ptrFILE[11]=OTH_TAG;


mais quand je veut mettre Save au lieu de Sav ca marche plus pourquoi??

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



-Edité le Samedi 18 septembre 2004 à 22:29 par benjy-
Le langage C y'a pas mieux!!!
    
./Post n°8   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 septembre 2004 à 22:35 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  


Il faut mettre à 0 l'octet avant l'extension. Celui d'après, le strcpy s'en occupe déjà! Donc remplace ton [10] par [5].
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°9   Marquer comme non lu.
Benjy Ecrit le: Samedi 18 septembre 2004 à 23:00 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à 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?
Le langage C y'a pas mieux!!!
    
./Post n°10   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 septembre 2004 à 23:05 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  


Euh... Je ne sais pas trop là... :(
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°11   Marquer comme non lu.
Benjy Ecrit le: Samedi 18 septembre 2004 à 23:13 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Lol oula si tu sait pas je suis dans la m***e!!!
Le langage C y'a pas mieux!!!
    
./Post n°12   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 septembre 2004 à 23:17 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  


En tout cas, les extensions de 4 caractères marchent pour Backgammon (BGAM).
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°13   Marquer comme non lu.
Benjy Ecrit le: Samedi 18 septembre 2004 à 23:20 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 comprend pas comment tu fait toi!!
Le langage C y'a pas mieux!!!
    
./Post n°14   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 septembre 2004 à 23:21 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  


C'est surtout que, a priori, ce que je fais n'est pas différent de ce que tu fais là. C'est pour ça que je ne comprends pas. :(
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°15   Marquer comme non lu.
Benjy Ecrit le: Samedi 18 septembre 2004 à 23:26 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Ben tu a tester ce que je fait?
Le langage C y'a pas mieux!!!
    
./Post n°16   Marquer comme non lu.
bobti89 Ecrit le: Samedi 18 septembre 2004 à 23:30 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

Tu es sur de ton HeapAlloc(12), parce que ca t'en rajoute un de mettre Save et pas Sav ! (je suis pas sûr du tout de ce que je dis...)
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°17   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 septembre 2004 à 23:39 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  


Il alloue des octets en plus. Il a déjà décalé d'un cran en avant pour rajouter son caractère. Le problème est ailleurs.
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°18   Marquer comme non lu.
Benjy Ecrit le: Samedi 18 septembre 2004 à 23:49 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


Ben si vous trouvez faite moi signe merci!
Le langage C y'a pas mieux!!!
    
./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/
    
  :: Index » Forum Ti68K » Programmation C » Creer fichier (29 réponse(s))
Pages : 1/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 83.45ms avec 18 requetes