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

Reply via email to