
/*
$Id: read_tgidata.c,v 1.4 2000/07/05 15:38:57 drum Exp $
Changed to needs of group 56 by Kai Römer, Thomas Jähnel, Dominik Birgel
*/

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include "read.h"

extern void calc(float *, float *, float *,float *);

void usage(char *prgname);


void usage(char *prgname)
{
    printf("usage: %s [file] \n",prgname);
}


int main(int argc, char** argv)
{
    int linesread = 0,i;
    float *data1, *data2, *results1, *results2;
    FILE* inf = NULL;
    char line[MAXLINELENGTH];
    float l1, l2;


    if(argc==2)
    {
	inf = fopen(argv[1],"r");
	if(!inf)
	{
	    perror("Can't open file"); exit(1);
	}
    }
    else if(argc==1)
    {
	inf = stdin;
    }
    else
    {
	usage(argv[0]);
	exit(-1);
    }


    data1 = (float *)malloc(MAXLINES * sizeof(float));
    data2 = (float *)malloc(MAXLINES * sizeof(float));
    results1 = (float *)malloc(MAXLINES * sizeof(float));
    results2 = (float *)malloc(MAXLINES * sizeof(float));
    if(!data1 || !data2 || !results1 || !results2)
    {
	perror("Can't alloc mem");
	exit(3);
    }
    while(!feof(inf))
    {
	int index;

	if(linesread>MAXLINES-1)
	{
	    fprintf(stderr,"Too many lines, aborted\n");
	    break;
	}

	if(fgets(line, MAXLINELENGTH, inf)==NULL) break;

	printf("Read: %s",line);

	if(sscanf(line,"%f  mm  %f  mm", &data1[linesread], &data2[linesread]) != 2)
	{
	    fprintf(stderr, "Error in line: %s\n",line);
	    fprintf(stderr, "Aborted.");
	    break;
	}

	linesread++;
    }

    for(i=0;i<linesread;i++)
    {
	printf("%f %f\n", data1[i], data2[i]);
    }

    calc(data1, data2, results1, results2);

    printf("\n\nDie Ergebnisse:\n");

    for(i=0;i<linesread;i++) {
      printf ("result1[%u] = %e ; result2[%u] = %e\n", i, results1[i], i, results2[i]);
    }

    if(argc!=1)    fclose(inf);

    return 0;
}

