[REBOL] Help with parsing
From: wild:orca:btinternet at: 5-May-2001 22:55
I am a new to Rebol and have been experimenting with the parse function
I have tried to find the latest date from a line in a website where the date
follows a given piece of text but is followed by either a tag <br> or an
unknown piece of text. The line also contain dates to be ignored as they
follow a different piece of text.
The following function works if the date is always followed by a known piece
of text. I have tried various thing to get it to work as I want such as
using | to have different text to “copy to” , I have also tried pattern
matching using
MON1: charset "JFMASOND"
MON: charset [#"a" - #"z"]
YY: charset [#"0" - #"9"]
MON2: charset "aepuco"
date: "2-Apr-01"
parse date [ 1 YY 0 1 YY "-" 1 MON1 1 MON2 1 MON "-" 1 YY 0 1 YY ]
which works on its own, but I can not get it to work with to thru and copy
Sample line
<PRE>next AR year end 30-Sep-01<br><B>Previous</B>
<B>Forecast</B> <br>_____________________________
_____________________________<BR>int xd (8.00p) 1-Jun-99 int
results 26-May-01<br><br>fin xd (14.6p) 13-Dec-99
annual report 24-Nov-01<br><br>int results 26-May-00
prelim results 29-Nov-01<br><br>int xd (8.50p) 5-Jun-00
agm 26-Jan-02<br><br>year end 30-Sep-00<br>annual
report 24-Nov-00<br>prelim results 29-Nov-00fin xd (15.5p)
27-Dec-00<br>agm 26-Jan-01<br>_____________________________
_____________________________<br></pre>
BB: ""
Task
To find all the dates that follow “prelim results” (in this line two dates
do this) compare them and return the newest of the dates
Function already written
result_dates func [ "Function to find latest date found between the two
given values " data before after] [
dates: ""
parse data [any [ thru before copy date to after ( dates: join
dates [ ( trim date) " "] ) ] to end]
maxdate: to-date 01-01-1990
dates-s: parse dates " "
foreach result_date dates-s [
either error? try [ to-date result_date ] [] [ maxdate:
max (to-date result_date) maxdate ] ]
either maxdate = ( to-date 01-01-1990 ) [ maxdate: "no
date" ] [ maxdate ]
Thanks
Stephen