[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