// CreaFileHtml1.c
/* 
Questo programma vi fa capire come un file html (essendo semplicemente 
un file di testo con estensione .html invece che .txt) 
possa essere prodotto automaticamente da un programma

Ad esempio il file che costruiamo e' il seguente

<html> 
<head> 

<title>Creato da un mio programma C!</title>
</head> 
<body bgcolor="#FFFFFF">
<h1> Tabellina del 9</h1>
<p>
<table border=1 width=10%>

<tr>
<td>-- 9 --</td>
</tr>
<tr>
<td>-- 18 --</td>
</tr>
<tr>

<td>-- 27 --</td>
</tr>
<tr>
<td>-- 36 --</td>
</tr>
</table>
<br />Queste sono le prime 4 righe della tabellina del nove!

</p>
</body> 
</html> 
*/

#include <stdio.h>
#include <stdlib.h>

#define NOME_FILE_HTML "Tabellina9.html"
#define MIO_TITOLO "Creato da un mio programma C!"

// ATTENZIONE: Per spezzare il define su piu' di una riga dobbiamo
// utilizzare il carattere \
// Perche' spezzare su piu' righe la costante stringa?
// Solo perche' e' molto piu' facile da leggere!
#define HTML_TOP "<html>\n<head>\n<title>" \
    MIO_TITOLO \
    "</title>\n</head>\n"
#define BODY_START "<body bgcolor=\"#FFFFFF\">\n"
#define HTML_BOTTOM "</body>\n</html>"


int main()
{
   int i;
   FILE *Fp1;

   Fp1 = fopen(NOME_FILE_HTML, "w");
   if (Fp1 == NULL) // controlla se il file viene aperto 

   {
      printf("Non posso aprire il file %s\n", "generato.html");
      exit(-1);
   }

   
  
   // scriviamo l'header e l'inizio del body
   fprintf(Fp1, "%s\n", HTML_TOP);
   fprintf(Fp1, "%s\n", BODY_START);

   
   
   // scriviamo il corpo del body
   fprintf(Fp1, "%s\n", "<h1> Tabellina del 9</h1>");

   
   fprintf(Fp1, "%s\n", "<p>");
   fprintf(Fp1, "%s\n", "<table border=1 width=10%>");

   for (i=1; i<= 4; i++)
   {

      fprintf(Fp1, "<tr>\n");
      fprintf(Fp1, "<td>-- %d --</td>\n", i*9 );

      fprintf(Fp1, "</tr>\n\n");
   }
   fprintf(Fp1, "%s\n\n", "</table>");

   fprintf(Fp1, "%s\n", "<br /> Queste sono le prime 4 righe della \
   tabellina del nove!");
   fprintf(Fp1, "%s\n", "<\p>");

  
   // scriviamo la parte conclusiva della pagina
   fprintf(Fp1, "%s\n", HTML_BOTTOM);
  
   // chiudo il file 
   fflush(Fp1);

   fclose(Fp1);
   return 0;
}