 /********************************************************************/
 /****                                                            ****/
 /****                                                            ****/
 /****    Program          : FileIO.c                             ****/
 /****                                                            ****/
 /****    Version          : 01.00                                ****/
 /****                                                            ****/
 /****    Erstversion      : 01.07.1990                           ****/
 /****                                                            ****/
 /****    Letzte Änderung  : 08.08.1990                           ****/
 /****                                                            ****/
 /****    Compiliert mit   : siehe MAKEFILE                       ****/
 /****                                                            ****/
 /****    Gelinkt mit      : siehe MAKEFILE                       ****/
 /****                                                            ****/
 /********************************************************************/
 /****                                                            ****/
 /****                                                            ****/
 /****               Copyright by Rüdiger Dreier                  ****/
 /****                                                            ****/
 /****                                                            ****/
 /********************************************************************/
 
 /* Einbinden der Include-Files */
 #include <exec/types.h>
 #include <stdio.h>
 #include <string.h>
 #include <proto/exec.h>
 #include <proto/dos.h>
 #include <stdlib.h>
 
 #define Leer(a) Write(a," ",1)
 #define Ret(a)  Write(a,"\x0A",1)
 
 
 SHORT is_empty(char Zeichen)
  {
   if(Zeichen==' ' || Zeichen == ',' || Zeichen == 9 || Zeichen == 10)return(1);
   return(0);
  }
 
 
 VOID Werte_Laden(char *Name)
  {
   BPTR Eingabe;
   char String[50];
   LONG i,j;
   DOUBLE Wert;
   
   Eingabe=Open(Name,MODE_OLDFILE);
   if(!Eingabe)return;
   
   ZahlEinlesen(String,Eingabe);
   UmwStoF(&Wert,String);
   Zeilen=(LONG)Wert;
   
   ZahlEinlesen(String,Eingabe);
   UmwStoF(&Wert,String);
   Spalten=(LONG)Wert;
   
   Breite=620/Spalten;
   Hoehe =80/Zeilen;
   
   for(i=0;i<Zeilen;i++)
    {
     for(j=0;j<Spalten;j++)
      {
       ZahlEinlesen(String,Eingabe);
       UmwStoF(&Wert,String);
       MatrixE[i][j]=Wert;
      }
    }
   Close(Eingabe);
  }
 
 
 VOID  ZahlEinlesen(char *String, BPTR Eingabe)
  {
   SHORT flag=1;
   LONG Nummer;
   char Zeichen;
   
   for(Nummer=0;Nummer<=49;Nummer++)
    {
     String[Nummer]=0;
    }
   
   while(flag) 
    {
     Nummer=Read(Eingabe,&Zeichen,1);
     flag=is_empty(Zeichen);
     if(Nummer==0)
      {
       flag=0;
       Zeichen=0;
      }
    }
   
   if(!is_empty(Zeichen))String[strlen(String)]=Zeichen;
   while(!flag)
    {
     Nummer=Read(Eingabe,&Zeichen,1);
     flag=is_empty(Zeichen);
     if(Nummer==0)flag=1;
     if(!flag)
      {
       String[strlen(String)]=Zeichen;
      }
    }
  }
 
 
 VOID Werte_Speichern(char *Name)
  {
   BPTR Ausgabe;
   char String[50];
   LONG i,j;
   DOUBLE Wert;
   
   Ausgabe=Open(Name,MODE_NEWFILE);
   if(!Ausgabe)return;
   
   Wert=(DOUBLE)Zeilen;
   UmwFtoS(String,&Wert,5);
   Write(Ausgabe,String,strlen(String));
   Leer(Ausgabe);
   Wert=(DOUBLE)Spalten;
   UmwFtoS(String,&Wert,5);
   Write(Ausgabe,String,strlen(String));
   Ret(Ausgabe);
   for(i=0;i<Zeilen;i++)
    {
     for(j=0;j<Spalten;j++)
      {
       Wert=(DOUBLE)MatrixE[i][j];
       UmwFtoS(String,&Wert,5);
       Write(Ausgabe,String,strlen(String));
       Leer(Ausgabe);
      }
     Ret(Ausgabe);
    }
   Close(Ausgabe);
  }
 
 
 
 
 
 
 
