Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1007 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Créer des fichiers txt automatiquement ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Créer des fichiers txt automatiquement ???

n°744399
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 01:06:04  profilanswer
 

Bonjour.
Pour faire des feuilles de stats, je dois faire un fichier content beaucoup de combinaisons. Le problème est que le ficier que j'ai généré pèse 130 Mo et est donc illisible.
Il y a grossomodo 70 étapes importantes dans travail donc je voudrais que à chaque pas de la boucle il crée un nouveau fichier texte fichier_a.txt, a étant le compteur.
 
Bien sur ceci ne marche pas mais c'est pour vous donner une idée :
 

Code :
  1. for (a=1; a<=66 ; a++) {
  2. f=fopen("comb_a.txt","w" );
  3.   if(f==NULL) {
  4.     printf("An error has occurred.\n" );
  5.     return 1;
  6.   }
  7. }


 
Merci  :hello:


Message édité par usa_satriani le 29-05-2004 à 07:13:07

---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
mood
Publicité
Posté le 29-05-2004 à 01:06:04  profilanswer
 

n°744403
Toxin
Carpe ★★ Vitam
Posté le 29-05-2004 à 01:12:24  profilanswer
 

usa_satriani a écrit :

Bonjour.
Pour faire des feuilles de stats, je dois faire un fichier content beaucoup de combinaisons. Le problème est que le ficier que j'ai généré pèse 130 Mo et est donc illisible.
Il y a grossomodo 70 étapes importantes dans travail donc je voudrais que à chaque pas de la boucle il crait un nouveau fichier texte fichier_a.txt, a étant le compteur.
 
Bien sur ceci ne marche pas mais c'est pour vous donner une idée :
 

Code :
  1. for (a=1; a<=66 ; a++) {
  2. f=fopen("comb_a.txt","w" );
  3.   if(f==NULL) {
  4.     printf("An error has occurred.\n" );
  5.     return 1;
  6.   }
  7. }


 
Merci  :hello:


 

Code :
  1. char *itoa( int i ) ;


est ton amie
 
Ton concatènes ça avec le nom de ton fichier et roulez jeunesse.


Message édité par Toxin le 29-05-2004 à 01:12:41

---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
n°744434
thermoclin​e
Geek intelligent
Posté le 29-05-2004 à 02:26:21  profilanswer
 

C'est moi ou il n'y a pas de question?

n°744443
burgergold
5$? va chez l'diable!
Posté le 29-05-2004 à 03:46:45  profilanswer
 

thermocline a écrit :

C'est moi ou il n'y a pas de question?


 
j'allais le dire :D


---------------
http://www.boincstats.com/signature/user_664861.gif
n°744447
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 07:15:46  profilanswer
 

je voudrais que à chaque pas de la boucle il crée un nouveau fichier texte fichier_a.txt, a étant le compteur.
Après si on peut faire ça de base, tant mieux :D
 
Je pense avoir piger ce que veut dire Toxin, merci je vais essayer.
:hello:


Message édité par usa_satriani le 29-05-2004 à 07:16:06

---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
n°744456
weed
Posté le 29-05-2004 à 08:56:32  profilanswer
 

usa_satriani a écrit :

je voudrais que à chaque pas de la boucle il crée un nouveau fichier texte fichier_a.txt, a étant le compteur.
Après si on peut faire ça de base, tant mieux :D
 
Je pense avoir piger ce que veut dire Toxin, merci je vais essayer.
:hello:


moi pas trop  
j'ai pas trouvé d'aide sur itoa (man itoa), ca doit pas etre du C standard
sinon moi perso j'aurais tout simplement utilisé  
un char[6]
une fonction de concatenation avec la biblio string pour inserer a dans le tablea de caractere et apres j'aurais lancé la creation du fichier  
ou sinon j'aurai carrement creer ma fonction qui permet d'inserer une variable dans la chaine "comb_ .txt"

n°744470
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 09:37:03  profilanswer
 

J'essaye plein de truc, j'y arrive pas :cry:
non itoa c pas ANSI.
par contre j'ai trouvé un site sympa : ici


---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
n°744478
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 09:57:18  profilanswer
 

Je suis arrivé a faire un truc en pompant sur le site avec sprintf
 

Code :
  1. for ( a = 0; a<4 ; a++) {
  2. i = sprintf(str2, "%i", a);
  3. strcat(str, str2);
  4. }


 
 
Bien sur le problème c'est que il me concatène à la suite :D
Bon c'est pas le drame mais bon... (i est un int bidon en fait)
 
par contre qd je fais fopen(str,"r+" ) il me renvoie NULL


Message édité par usa_satriani le 29-05-2004 à 09:58:35

---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
n°744482
cris56
Posté le 29-05-2004 à 10:09:44  profilanswer
 

Code :
  1. #include <string.h>
  2. /* reverse: reverse string s in place */
  3. void reverse(char s[])
  4. {
  5. int c, i, j;
  6. for (i = 0, j = strlen(s)-1; i < j; i++, j--) {
  7. c = s[i];
  8. s[i] = s[j];
  9. s[j] = c;
  10. }
  11. }
  12. /* itoa: convert n to characters in s */
  13. void itoa(int n, char s[])
  14. {
  15. int i, sign;
  16. if ((sign = n) < 0) /* record sign */
  17. n = -n; /* make n positive */
  18. i = 0;
  19. do { /* generate digits in reverse order */
  20. s[i++] = n % 10 + '0'; /* get next digit */
  21. } while ((n /= 10) > 0); /* delete it */
  22. if (sign < 0)
  23. s[i++] = '-';
  24. s[i] = '\0';
  25. reverse(s);
  26. }

n°744484
Taz
bisounours-codeur
Posté le 29-05-2004 à 10:11:20  profilanswer
 

i = sprintf(str2, "%i", a);
     
    strcat(str, str2);
 
-> sprintf(str, "%s%d", a);
 
 
 
 
cai bien mieux, itoa n'étant pas standard

mood
Publicité
Posté le 29-05-2004 à 10:11:20  profilanswer
 

n°744489
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 10:22:58  profilanswer
 

Merci, je viens d'utiliser un truc ds ce genre (sprintf).
Le problème s'était que à chaque tour de boucle bien sur il me restait le nom entier d'avant avec les strcat déjà effectué. J'ai donc renversé l'ordre : strcat(str2,str) (str=="_comb.txt" )
Le problème ensuite étant de faire le fopen ou il n'aime pas str2 en premier argument :s
merci :jap:


Message édité par usa_satriani le 29-05-2004 à 10:24:07

---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
n°744491
Taz
bisounours-codeur
Posté le 29-05-2004 à 10:29:53  profilanswer
 

strcat(str2,str) (str=="_comb.txt" )  ... tu crois faire quoi là?

n°744493
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 10:33:17  profilanswer
 

non lol pour dire que str est une chaine fixe égale à _comb.txt que je déclare au tout début.
J'ai testé j'ai exactement les noms que je veux, reste à pouvoir faire f=fopen(str2); et àvoir le fichier correspondant dans mon dur.


---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
n°744513
weed
Posté le 29-05-2004 à 11:11:47  profilanswer
 

oui c'est ce qui me semblait itoa permet de convertir char en int  
usa_satriani, bien sur ca que ca va concater a a la fin apres.txt
il suffit de lancer 2 fois strstr

n°744521
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 11:24:00  profilanswer
 

non mais en fait je met la partie qui contient _comb.txt à la suite et no problemo.
Donc là j'arrive a générer des chaines de caractère convenable pour le nom de chaque fichier texte : 1_comb.txt, ... 70_comb.txt
 
Le problème c'est que j'arrive pas avec fopen à passer en 1° argument la variable qui contient le nom en cours : str2
 
f=fopen(str2,"r+" ); me renvoie NULL :(


---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
n°744522
cris56
Posté le 29-05-2004 à 11:26:21  profilanswer
 

je  croyais que tu devais le créer le fichier ?
il existe ?

n°744523
usa_satria​ni
S.P.Q.R.
Posté le 29-05-2004 à 11:28:15  profilanswer
 

Euh non mais je pensais que r+ créait le fichier :D
c sur que si il le cherche je comprend pourquoi j'ai NULL
 
Ah j'ai mis w et ça marche :)
 
merci :jap:


Message édité par usa_satriani le 29-05-2004 à 11:30:33

---------------
Ce monde n'est qu'une vaste entreprise à se foutre du monde. Céline
n°744595
Grosmoc
Posté le 29-05-2004 à 13:44:33  profilanswer
 

sinon, tu peux pas faire une redirection vers un fichier txt que tu crées?

n°744658
cris56
Posté le 29-05-2004 à 14:47:18  profilanswer
 

comment ca? tu ve dire invoquer une commande shell avec > ?

n°744659
weed
Posté le 29-05-2004 à 14:57:58  profilanswer
 

essaie ca par exemple sous dos  
echo "" > toto.txt
et apres fais dir (ou ls sous linux) pour voire le resultat

n°744670
cris56
Posté le 29-05-2004 à 15:07:52  profilanswer
 

pourquoi "" ?  
 
echo > toto.txt
 
mais je comprend pas, il ve faire ca depuis son programme, pas depuis un script shell ??
il créé un fichier avec fopen ou est le probleme (la ya un truc qui m'echappe)

n°744671
Taz
bisounours-codeur
Posté le 29-05-2004 à 15:08:13  profilanswer
 

>toto.txt suffit

n°744676
cris56
Posté le 29-05-2004 à 15:13:35  profilanswer
 

sauf sous windows

n°744687
weed
Posté le 29-05-2004 à 15:31:13  profilanswer
 

a je savais pas que l'on pouvais faire direct
echo > toto.txt
et meme carrement  
> toto.txt sous linux
 
et bien ou c'est que pour creer des fichiers s'est plus facile mais apres tu vas t'embeter ca en dos, je ne sais meme pas si c'est possible, pour concatener un compteur avec le nom du fichier

n°744692
cris56
Posté le 29-05-2004 à 15:36:41  profilanswer
 

sous windows avec un .bat je pense que oui, mais c'est plus la bonne cat

n°747750
MK Prog
Make a VS Program.
Posté le 01-06-2004 à 17:59:20  profilanswer
 

Taz a écrit :

i = sprintf(str2, "%i", a);
    strcat(str, str2);
-> sprintf(str, "%s%d", a);


 
Ta pas oublier un terme là :  

Taz a écrit :

sprintf(str, "%s%d", a);


C'est pas :  sprintf(str, "%s%d",str, a); que tu voulais dire.
ou encore sprintf( str, "comb_%d.txt", a);


Message édité par MK Prog le 01-06-2004 à 18:07:13

---------------
Make a VS Program.
n°747833
Taz
bisounours-codeur
Posté le 01-06-2004 à 19:23:19  profilanswer
 

si

n°748864
MK Prog
Make a VS Program.
Posté le 02-06-2004 à 14:28:16  profilanswer
 

voila


---------------
Make a VS Program.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Créer des fichiers txt automatiquement ???

 

Sujets relatifs
Comment créer son site en .org ? gratuitementPclZip : compression de plusieurs fichiers = problème !
Créer un diagramme venant des tables de MySQL[PHP] Charger automatiquement une page
extraction d une list excel de fichiersSuperposer deux fichiers postscript
[c] enregistrement des noms des fichiers dans un tableau inserer automatiquement des donnes contenues dans un fichier
lien pour ouvrir des fichiers .PDF[VB6] Créer une connexion multiclient/serveur
Plus de sujets relatifs à : [C] Créer des fichiers txt automatiquement ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR