> > On 8/5/2011 12:41 AM, Alexander Klenin wrote: >> On Fri, Aug 5, 2011 at 15:06, David M. Lawrence<[email protected]> >> wrote: >>> I've held on to FORTRAN because of its ability to explicitly >>> define input (and output) formats -- this is a must for >>> extracting data from a number of publicly available datasets. >>> >>> I'm now trying to convert one of my most useful programs to >>> PASCAL, but I am hung up on how to read multiple variables from a >>> single line. >>> >>> 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. >>> >> If values are separated by spaces, you can just use Readln. If you >> really need to check exact format (i.e. error out if there are, for >> example, three spaces instead of two), you can re-format the values >> read and compare result with the original string. >> > On 05/08/2011 05:49, David M. Lawrence wrote: > The values aren't always separated by spaces. These are huge files > with sometimes tens of thousands of lines of data. The only way I > can effectively search and extract relevant data form them is to find > a way to specify that characters 1 through 3 are a country code, > characters 13 through 37 are site names, etc. > > Dave
So this is some kind of address database ? Any real-world example you could provide with different field separators ? (data may be dummy, of course) L. -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
