Création fichier html

Création fichier html - C - Programmation

Marsh Posté le 01-11-2005 à 15:16:50    

Bonjour à tous,
J'aimerai par rapport à un fichier texte contenant des noms de classe, créer un fichier .html pour chaque nom de classe...  
Et je ne sais pas vraiment comment m'y prendre. :(  
Voilà pour le moment ce que j'ai fait(je pense que ce n'est pas propre et pas optimal mais je suis pas très très forte en C):

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define LGL 80       /* Longueur max d'une ligne de texte    */
  4. void CreationFichierClasse(char Ligne[LGL]);
  5. /* ----------------------------------------------------------------------- */
  6. /* Auteur:                                                                 */
  7. /* Date:         28.09.2005                                                */
  8. /* Description:  Demande les noms des fichiers à traîter                   */
  9. /* ----------------------------------------------------------------------- */
  10. int main ()
  11. {
  12. char Ligne [LGL];
  13. char Classe;
  14. char NomFichierClasse [LGL];
  15. char NomFichierEleve [LGL];
  16. FILE *FichierClasse;
  17. FILE *FichierEleve;
  18. FILE *FichierClasseHTML;
  19. /* Ouverture du fichier des classes */
  20. printf("Nom du fichier des classes: " );
  21. fgets (Ligne, LGL, stdin);
  22. sscanf (Ligne, "%s", NomFichierClasse);
  23. FichierClasse = fopen (NomFichierClasse, "r" );
  24. /* Ouverture du fichier des eleves  
  25. printf("Nom du fichier texte: " );
  26. fgets (Ligne, LGL, stdin);
  27. sscanf (Ligne, "%s", NomFichierEleve);
  28. FichierEleve = fopen (NomFichierEleve, "r" );*/
  29. if ( FichierClasse == NULL)
  30.     {
  31.  printf ("ERREUR d'ouverture des fichiers \n" );
  32. }
  33.     else
  34.     {
  35.  fgets (Ligne, LGL, FichierClasse);
  36.  /*La ligne est vide si le 1er caractere est \n */
  37.  while (!feof(FichierClasse))
  38.         {
  39.          printf("%s", NomFichierClasse);
  40.          //CreationFichierClasse(Ligne);  
  41.          CreationFichierClasse(Ligne);
  42.         fgets (Ligne, LGL, FichierClasse);
  43.  }
  44.  fclose (FichierClasse);
  45.     }
  46.    
  47.   printf("\n\n" );
  48.   system("PAUSE" );
  49.   return 0;
  50. }
  51. /* ----------------------------------------------------------------------- */
  52. /* Auteur:                                                                 */
  53. /* Date:         28.09.2005                                                */
  54. /* Description:                                                            */
  55. /* ----------------------------------------------------------------------- */
  56. void CreationFichierClasse(char Ligne[LGL])
  57. {
  58. FILE *FichierClasseHTML;
  59. FichierClasseHTML = fopen (Ligne && ".html", "w" );
  60. fputs("<HTML>", FichierClasseHTML);
  61. fputs("<HEAD>", FichierClasseHTML);
  62. fputs("<TITLE>", FichierClasseHTML);
  63. fputs("Liste des eleves de la classe ", FichierClasseHTML);
  64. fprintf(FichierClasseHTML, "%s", Ligne);
  65. fputs("</TITLE>", FichierClasseHTML);
  66. fputs("</HEAD>", FichierClasseHTML);
  67. fputs("<BODY>", FichierClasseHTML);
  68. fprintf(FichierClasseHTML, "<H1>Liste des eleves de la classe %s</H1>", Ligne);
  69. fputs("<TABLE border=1 cellpading=1 cellspacing=1>", FichierClasseHTML);
  70. fputs("<TR>", FichierClasseHTML);
  71. fputs("<TD>", FichierClasseHTML);
  72. fputs("Prenom", FichierClasseHTML);
  73. fputs("</TD>", FichierClasseHTML);
  74. fputs("<TD>", FichierClasseHTML);
  75. fputs("Nom", FichierClasseHTML);
  76. fputs("</TD>", FichierClasseHTML);
  77. fputs("</TR>", FichierClasseHTML);
  78. fputs("</TABLE>", FichierClasseHTML);
  79. fputs("</BODY>", FichierClasseHTML);
  80. fputs("</HTML>", FichierClasseHTML);
  81. fclose(FichierClasseHTML);
  82. }


 
J'aimerai que dans ma fonction CreationFichierClasse un fichier html portant le nom de la classe, soit créé.
Je ne sais pas si j'ai été très clair mais bon...
 :cry:  J'ai vraiment besoin de votre aide!

Reply

Marsh Posté le 01-11-2005 à 15:16:50   

Reply

Marsh Posté le 01-11-2005 à 17:06:32    

:hello:  
J'ai mis un peu de temps à comprendre, parce que tout d'abord, j'ai cru qu'il s'agissait de classes C++ au lieu de classes d'un établissement scolaire, et après, je n'ai pas tout de suite vu quelle était la ligne qui clochait dans l'exemple qui ne me parraissait pas si mal que cela. Maintenant, je suppose que le problème se situe sur la ligne suivante :

Citation :

FichierClasseHTML = fopen (Ligne && ".html", "w" );

car "&&" est l'opérateur "et" que l'on utilise dans les conditions, et non pas un opérateur de concaténation. Donc, je remplacerais cette ligne par les lignes suivantes :

Code :
  1. char nom_fichier[250];
  2. sprintf(nom_fichier, "%s.html", Ligne);
  3. FichierClasseHTML = fopen(nom_fichier, "w" );

Mais il y a sans doute d'autres choses à faire, car la Ligne contient peut-être d'autres choses que le nom d'une classe, par exemple le nom des élèves. Il faut peut-être découper cette ligne pour en extraire uniquement le nom de la classe, ou bien ne considérer que la première ligne d'un bloc de lignes. Cela dépend du contenu fichier.


Message édité par olivthill le 01-11-2005 à 17:08:28
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed