On 8/5/2011 7:43 AM, Ludo Brands wrote:
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

For the record, this solution worked and is the one I've implemented in my code.

Later,

Dave

--
------------------------------------------------------
 David M. Lawrence        | Home:  (804) 559-9786
 7471 Brook Way Court     | Fax:   (804) 559-9787
 Mechanicsville, VA 23111 | Email: [email protected]
 USA                      | http:  http://fuzzo.com
------------------------------------------------------

"All drains lead to the ocean."  -- Gill, Finding Nemo

"We have met the enemy and he is us."  -- Pogo

"No trespassing
 4/17 of a haiku"  --  Richard Brautigan


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to