meerthyl | Voila, je dois lire un fichier log (pour ça, pas de soucis, fgets, fscanf et tout, ça passe impec' ) puis enregistrer les résultats dans des fichiers séparés de la forme "date nom.txt".
Ex. :
Citation :
2003-10-26 Truc: han
2003-10-26 Machin: patapai
2003-10-26 Truc: blah
2003-10-26 Machin: blop
2003-10-26 Bidule: vtff
2003-10-26 Truc: dtc
2003-10-27 Truc: haha
2003-10-27 Bidule: hoho
2003-10-27 Machin: texte
2003-10-27 Machin: ici aussi
|
J'y arrive plutôt bien, mais le problème c'est que la seule solution que j'ai trouvé était d'ouvrir le fichier (en "a+" ) puis de le fermer, et ce à chaque lecture de ligne, pour obtenir mes fichiers "2003-10-26 Truc.txt", "2003-10-26 Machin.txt", "2003-10-26 Bidule.txt", etc.
Le code fautif :
Code :
- while(fgets(buf, sizeof(buf), IN))
- {
- if(sscanf(buf, "...", ...) == 7) //le sscanf qui va bien
- {
- sprintf(path, "%4s-%2s-%2s CC %s.txt", an, mois, jour, nom); //on passe la date dans un format pas trop moche
-
- //c'est ici que ça craint
- OUT = fopen(path, "a+" );
- fprintf(OUT, "%s %s: %s\n", heure, nom, texte);
-
- fclose(OUT);
- }
- }
|
Il peut y avoir un nombre de noms quasi illimité, si jamais ça peut servir.
J'ai pensé à stocker mes noms de fichier dans un tableau pour faire plein de fclose() à la fin du traitement mais je devrais vérifier avant chaque fopen si le fichier est déjà ouvert. (remarque, ça ne peut pas être pire que ce que j'ai maintenant...)
C'est la seule alternative qui me vient à l'esprit, mais je ne l'ai pas encore essayée.
Donc si quelqu'un a une meilleure idée, ce serait vraiment sympa de m'aiguiller un peu, car j'ai un peu de mal. |