txttohtm.c

Index vorige Seite
#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,"&Auml;"); break;
      case 214: fprintf(ostream,"&Ouml;"); break;
      case 220: fprintf(ostream,"&Uuml;"); break;
      case 228: fprintf(ostream,"&auml;"); break;
      case 246: fprintf(ostream,"&ouml;"); break;
      case 252: fprintf(ostream,"&uuml;"); break;
      case 223: fprintf(ostream,"&szlig;"); break;
      case 60: fprintf(ostream,"&lt;"); break;
      case 62: fprintf(ostream,"&gt;"); break;
      case 34: fprintf(ostream,"&quot;"); break;
      case 38: fprintf(ostream,"&amp;"); 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");
}

Index vorige Seite

Autor: Ulrich Kritzner