[Lazarus] RE : reading FORTRAN-style input in Lazarus

Ludo Brands ludo.brands at free.fr
Fri Aug 5 13:43:34 CEST 2011


> For example, here's a FORTRAN format I need to emulate:
> 
> FORMAT(I3,I7,2X,A25,1X,F6.2,1X,F7.2,3(1X,I4),1X,F4.1,1X,I1)
> 
> On a single line, I begin with two integer variables, skip 
> two spaces, 
> one string variable, one space followed by a real variable, skip a 
> space, etc.
> 
> I know of examples that involve treating each line as a 
> character array, 
> but I cannot find them now.  I also know how to specify write 
> formats, 
> but have seen no examples of applying that to reading lines.
> 

Another approach:

Function eatchars(var s:string; i:integer):string;

Begin
Result:=copy(s,1,i);
Delete(s,1,i);
End;

...

Readln(line);
i1:=StrToInt(eatchars(line,3));  //I3
i2:=StrToInt(eatchars(line,7));  //I7
eatchars(line,2);                //X2 
s1:=eatchars(line,25);           //A25
eatchars(line,1);                //X1		
r1:=StrToFloat(eatchars(line,7); //F6.2 
eatchars(line,1);                //X1 
r2:=StrToFloat(eatchars(line,8); //F7.2 
eatchars(line,1);                //X1
i3:=StrToInt(eatchars(line,4);   //I4		
etc...

Ludo





More information about the Lazarus mailing list