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

/*

Konvertiert ein Reihen von Zahlen die durch unbestimmte Zeichen
getrennt sind in ein Binärformat.

*/

int main(int argc, char *argv[])
{
  FILE *rh,*wh;
  char *d,*e;
  unsigned short int c;
  unsigned char b;
  unsigned char zahl[64];
  unsigned int i;
  int r;
  
  if(argc!=3)
  {
    e=argv[0]; 
    for(;;)    // remove subdirs from filename
    {
        d=(char*)strchr(e,'\\');
        if(d==NULL) break;   
        e=d+1;
    }
    printf("%s inputfile outputfile\n",e);
    exit(0);
  }
  
  if( NULL == (rh = fopen(argv[1],"rb")))
  {
    puts("cant open inputfile");
    exit(0);
  }
  
  if( NULL == (wh = fopen(argv[2],"wb")))
  {
    puts("cant open outputfile");
    fclose(rh);
    exit(0);
  }
  
  i=0;
  do
  {
  
  r=fread(&b,1,1,rh);
  if(!r)              // keine neues zeichen dann gib letzte zahl aus 
  {
    b=0;
  }
  
  
     if(b>='0' && b<='9')
     {
         if(i==64)
         {
                   puts("value to big");
                   fclose(rh);
                   exit(0);        
         } 
         zahl[i++]=b;
     }
     else
     {
          zahl[i]=0;
          if(i!=0)
          {          
                    c = (unsigned short int)atoi(zahl);
                    c = c>>8 | c<<8; //endian swap 
                    
                    fwrite(&c,2,1,wh);
          }
          i=0;
     }
  }
  while(r!=0);
  
  fclose(rh);
  fclose(wh);
  //system("PAUSE");	
  return 0;
}
