txttohtm.c
#include <stdio.h>
/* Konverter fuer die Zeichen ÄÖÜäöüß <>&" */
/* Dieses Konsoleprogramm wandelt eine Textdatei mit deutschen Umlauten
in HTML-konformen Text um.
Es erwartet folgende Parameter:
Name der Eingabedatei
Name der Ausgabedatei
Desweiteren koennen beliebig viele HTML-Tag-Inhalte spezifiziert werden,
die dem Text vorangestellt und hernach wieder aufgeloest werden */
/* Beispielaufruf:
txttohtm txttohtm.c txttohtm.html html body pre */
int main(int _argc,char *_argv[])
{
FILE *istream,*ostream;
unsigned char c;
int i;
printf("Text to HTML Konverter\n");
printf("(c) 2001 Ulrich Kritzner\n\n");
printf("Wandelt folgende Sonderzeichen in HTML - Bezeichner um:\n");
printf("%c %c %c %c %c %c %c\n\n",196,214,220,228,246,252,223);
printf("Wandelt folgende reservierte Zeichen in HTML - Bezeichner um:\n");
printf("%c %c %c %c\n\n",60,62,34,38);
if (_argc<3) {
printf("Fehler: weniger als 2 Argumente uebergeben\n");
printf("(Namen von Input- und Outputfile erforderlich)\n");
exit(1);
}
istream=fopen(_argv[1],"r");
if (istream==NULL) {
printf("Fehler: ungueltige Eingabedatei:\n");
printf("%s\n",_argv[1]);
exit(1);
}
ostream=fopen(_argv[2],"r");
if (ostream!=NULL) {
printf("Fehler: Ausgabedatei besteht bereits:\n");
printf("%s\n",_argv[2]);
fclose(istream);
fclose(ostream);
exit(1);
}
ostream=fopen(_argv[2],"w");
if (ostream==NULL) {
printf("Fehler: ungueltige Ausgabedatei:\n");
printf("%s\n",_argv[2]);
fclose(istream);
exit(1);
}
printf("Umwandlung %s ---> %s ...",_argv[1],_argv[2]);
for (i=3;i<_argc;i++)
fprintf(ostream,"<%s>\n",_argv[i]);
while (!feof(istream)) {
c=fgetc(istream);
switch (c) {
case 10: printf("."); fputc(c,ostream); break;
case 13: break;
case 196: fprintf(ostream,"Ä"); break;
case 214: fprintf(ostream,"Ö"); break;
case 220: fprintf(ostream,"Ü"); break;
case 228: fprintf(ostream,"ä"); break;
case 246: fprintf(ostream,"ö"); break;
case 252: fprintf(ostream,"ü"); break;
case 223: fprintf(ostream,"ß"); break;
case 60: fprintf(ostream,"<"); break;
case 62: fprintf(ostream,">"); break;
case 34: fprintf(ostream,"""); break;
case 38: fprintf(ostream,"&"); break;
default: if (c<128) fputc(c,ostream);
}
}
fprintf(ostream,"\n",_argv[i]);
for (i=_argc-1;i>=3;i--)
fprintf(ostream,"</%s>\n",_argv[i]);
fclose(ostream);
fclose(istream);
printf("\nfertig\n");
}
Autor: Ulrich Kritzner