(!*******************************************************
* Mosel Example Problems *
* ====================== *
* *
* file readfile.mos *
* ````````````````` *
* Example for the use of the Mosel language *
* (Read a data file) *
* *
* (c) 2008 Fair Isaac Corporation *
* author: Y. Colombani, 2001 *
*******************************************************!)
model readfile
parameters
F="Data/datafile.dat"
end-parameters
declarations
t1,t2:integer
end-declarations
fopen(F,F_INPUT) ! Open the file F for reading
write("Reading file `",F,"'...")
fskipline("#\n") ! Skip lines starting with a '#' and empty lines
readln(t1,t2) ! Read the size of the table on a line
declarations
TF:array(1..t1,1..t2) of integer
TD:array(string,string) of real
S: set of string
s1,s2:string
end-declarations
fskipline("#\n") ! Skip lines starting with a '#' and empty lines
forall (i in 1..t1)
do
forall (j in 1..t2)
read(TF(i,j)) ! Read t2 values
readln ! on each line
end-do
fskipline("#\n") ! Skip lines starting with a '#' and empty lines
repeat
readln(s1,'|',s2,'|',TD(s1,s2)) ! Read the indices and the value on a line
until getparam("nbread")<5 ! Until a line is not properly constructed
fskipline("#\n") ! Skip lines starting with a '#' and empty lines
read(s1) ! Read a string
while (s1<>'.' and not iseof)
do ! While the string is not '.' and the end of file
! is not reached
S+={s1} ! Add the string to the set
read(s1) ! Read another string
end-do
fclose(F_INPUT)
writeln(" Done.\n")
writeln("TF=",TF)
writeln("TD=",TD)
writeln("S =",S)
end-model
|