Hello folks, Here's another newbish type question. I've never really gotten my head around block/series manipulation in Rebol. As a result of this my code is full of silly hacks that keep building temporary data structures to get the results I want.
I was hoping that someone may help my cog drop into place so I can write some decent Rebol at last. Here's a typical problem; Let's say we have a file which is full of cars and the colours they are available in; "Saloon" "Red" "Coupe" "Red" "Coupe" "Yellow" "Pickup Truck" "Red" "Pickup Truck" "Yellow" "Pickup Truck" "Orange" "Pickup Truck" "Blue" Now what if I want to scan through this file and build up a list of cars but then just state which colours they are available in after in the structure. I'll assuming an elegant format is this; FinalData: make block! [ "Saloon" ["Red"] "Coupe" ["Red" "Yellow"] "Pickup Truck" ["Red" "Yellow" "Orange" "Blue"] ] So, reading the file is easy enough. CarLines: read/lines %file foreach CarLine CarLines [ Car: pick (parse CarLine none) 1 Colour: pick (parse CarLine none) 2 ; ; ??? ; ] The question is, how do I create final data? I can do a find on the FinalData to see if a car is there already. But all this does is return the data after. I've always been puzzled about the lack of a word/function to return the position in a series/block of a find, if found. So anyhow, here's the best I can think of; either found? find FinalData Car [ ; Already have an entry for this car... ; Select at least allows retrieving of the block following our ; found element easily... ; existingcolours: select FinalData Car ; ; Great so add the new colour to the existing colours ; append existingcards Car ; ; But how do we poke it back? We don't have a position to do a poke? ; ???? ][ ; ; Plug in the new car, plug in the block which has the colour in it ; append FinalData Car append FinalData reduce[reduce[Colour]] ] I don't really understand the block navigation issues to solve this problem or to somehow poke more data in without having a position. As usual any stupid stuff I've missed and elegant solutions gratefully received. Regards, Mat Bettinson -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with "unsubscribe" in the subject, without the quotes.