Bonjour à tous,


Je ne trouve pas pour quoi mes 2 fonctions
void spacer(int);
void T_Title(char *);

n'écrive pas dans le fichier outfile.


Le reste du code fonctionne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Extrait:
					@A Title
	         the varnish remover was  heated using a
hot water bath			methylene chloride boils
at 39.6 degrees Celsius
so it's going to be the first fraction
 
-----------___------------___------------___------------___------------___------------___-
 
extrait:
@A Title<BR>
         the varnish remover was  heated using a<BR>
hot water bathmethylene chloride boils<BR>
at 39.6 degrees Celsius<BR>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
 
 
 
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void spacer(int);
void T_Title(char *);
int  T_Parse (char *);
 
FILE *outfile;
int check;
static int a;
 
void spacer(int in) {
 
	fprintf(outfile, "<img src=\"pixel.png\" width=\"%d\" height=\"1\" alt=\"-\">", in);
 
a= 0;
}
 
void T_Title(char *s) {
    fprintf (outfile,
             "<html>\n<head>\n<title>%s</title>\n<STYLE TYPE='text/css'>\n", s);
    fprintf (outfile,
             "body	{background:#edebec;color:black;}\n");
    fprintf (outfile,
             "P	{text-indent: 5 em;}\n</STYLE>\n</head>\n");
    fprintf (outfile,
             "<body>\n<center><h3><font color='#550000'>%s", s);
    fprintf (outfile,
             "</font></h3></center><br>\n");
    }
 
int T_Parse (char *filename) {
    FILE *f, *outfile;
    int c;
    char ch, ch1[50] ="", *ch2, *ch3;
    typedef enum {normal = 1, delay, add} parseState;
    typedef enum {NONE = 1, P, TAB, BR, IMG} lastTag;
    parseState state;
    lastTag Tag = NONE;
	 state = normal;
    if (!fopen (filename, "r")) {
        fprintf (stderr, "\nError: Input file %s not found.\n", filename);
        return (-1);
        }
    f = fopen (filename, "r");
    c = strlen(filename) - 4;
    ch2 = strncat(ch1,filename, c);
    ch3 = strcat(ch2, ".html");
    outfile = fopen(ch3, "w");
 
 
    if (outfile) {
        T_Title(filename);
 
        while (!feof(f)) {
            ch = fgetc(f);
 
            switch (state) {
                case normal:
                    switch(ch) {
                        case '\n':
                            state = delay;
                            break;
 
                        case '\t':
								a = a + 3;
								state = add;
								break;
 
/*                      case ' ':
								s = s + 1;
								state = add;
                            break;*/
 
                        default:
								fprintf(outfile, "%c", ch);
                        break;
                        }
						break;
                case delay:
                    switch(ch) {
								case '\n':
										fprintf(outfile, "\n<P>");
										state = normal;
										Tag = P;
										break;
 
								default:
									fprintf(outfile, "<BR>\n");
									 if(ch == '\t'){
										 a = a + 3;
										 state = add;
										}else{
										 fprintf(outfile, "%c", ch);
										 state = normal;
										 }
									break;
						}
			break;
			case add:
               switch(ch) {
                        case '\t':
                           a = a + 3;
									Tag = TAB;
                           break;
 
								default:
									if(Tag == P)
											fprintf(outfile, "<BR>\n");
									 if(a>0){
										Tag = IMG;
										state = normal;
										}
									spacer(a);
									a = 0;
									fprintf(outfile, "%c", ch);
									break;
						}
			break;
                }/* end of states */
            }/* end of not eof */
	    fprintf (outfile,"\n</body>\n</html>");
 
        }/* end of if outfile */
 
	fclose(outfile);
    return 0;
    }
 
int main(int argc, char *argv[]){
 
    if (argc > 0)
        T_Parse(argv[1]);
    else
        T_Parse(NULL);
 
 
    return 0;
    }
Merci de me lire.

JPDaviau