Hey Kids,
why so complicated?
Good old Niklaus Wirth has already everything done for you:
I have to cite one sentence on the last slide at his birthday colloquium:
"Reducing size and complexity is the triumph"
So READ is already quite clever, it doesn't care about whitespaces,
carriage returns and linefeeds :
PROGRAM readline;
VAR a : ARRAY[0..1000000] OF double;
infile : TEXT;
lauf, lauf2 : longint;
BEGIN
lauf := 0;
assign(infile, 'infile.txt');
reset(infile);
WHILE NOT(eof(infile)) DO
BEGIN
read(infile, a[lauf]);
inc(lauf);
END;
close(infile);
FOR lauf2 := 0 TO pred(lauf) DO
BEGIN
writeln('Index : ', lauf2, ' Value : ', a[lauf2]);
END;
END.
And here infile.txt:
123.4 55.2 33.1 4
12.1 1.1
1 2 3 4
333.888 444.555
Regards
Markus
Am 23.12.2016 um 14:06 schrieb Sven Barth:
Am 23.12.2016 12:54 schrieb "Graeme Geldenhuys"
<mailingli...@geldenhuys.co.uk <mailto:mailingli...@geldenhuys.co.uk>>:
On 2016-12-23 08:14, Bo Berglund wrote:
> Is there a quick way to split a string of whitespace separated values
> into the separate members?
That problem is perfectly suited for regular expressions. And a rather
simple one at than. The FPC's FCL packages include a regex unit too
which should suite your needs.
http://www.regex101.com/
http://www.regexplained.co.uk/
http://regex.info/
Even the trial book (first chapter only) of "Mastering Regular
Expressions" is invaluable for users new to regex. And will
explain all you need to know to solve your problem.
Regular expressions usually have a higher overhead however (as you might
have noticed, Bo timed his code later on).
For example at work I changed a regular expression based parser for the
lines of a log file to a simpler one and the speedup was noticeable (I
don't have exact numbers anymore however).
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal