home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
fish
/
math
/
matrix
/
src
/
pal
/
fileio.c
< prev
next >
Wrap
Text File
|
1990-10-10
|
4KB
|
151 lines
/********************************************************************/
/**** ****/
/**** ****/
/**** 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);
}