Thanks Allen!
tim
At 08:17 AM 4/18/00 +1000, you wrote:
>Hi Tim,
>
>The function your are looking for is net-utils/export
>This will return all values in the object that have a value.
>
>result: net-utils/export system/options/cgi
>
>if you want a list of 'none as well use this modified version
>(I just commented out the value? test of the original net-utils/export)
>
>result: export2 system/options/cgi
>
>export2: func [
> {Export an object to something that looks like a header}
> object [object!] "Object to export"
> /local words values result word
>][
> words: next first object
> values: next second object
> result: make string! (20 * length? words)
> foreach word words [
> ; if found? first values [
> insert tail result reduce [word ": " first values newline]
> ; ]
> values: next values
> ]
> result
>]
>
>
>And here are some other ways to play with object words and values
>
>> cgi-labels: ["Server Software" "Server Name"]
>
>cgi-label: next first system/options/cgi
>
>== [server-software server-name gateway-interface server-protocol
>server-port request-method
> path-info path-translated script-name ...
>
>values: next second system/options/cgi
>== [none none none none none none none none none none none none none none
>none none none []]
>
>
>Cheers
>
>Allen K
>
>
>----- Original Message -----
>From: <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Tuesday, April 18, 2000 4:49 AM
>Subject: [REBOL] [REBOL] Traversing object values
>
>
>> Given an object:
>>
>> let's use system/options/cgi
>>
>> I would like to traverse the object
>> and print out the values only, each preceded by
>> a custom label.
>>
>> I know that to use print mold system/options/cgi
>> will dump the object. But I want to
>> just extract the values and concatenate them
>> with a customized label.
>>
>> So that instead of
>> make object! [
>> server-software: none
>> server-name: none
>> gateway-interface: none
>> server-protocol: none
>> server-port: none
>> request-method: none
>> path-info: none
>> path-translated: none
>> script-name: none
>> query-string: none
>> remote-host: none
>> remote-addr: none
>> auth-type: none
>> remote-user: none
>> remote-ident: none
>> Content-Type: none
>> content-length: none
>> other-headers: []
>> ]
>> I will have:
>>
>> Server Software: none
>> Server Name: none
>> ; etc......
>>
>> I believe that I will also need to code a block like
>> cgi-labels: ["Server Software" "Server Name"]
>
>cgi-label: next first system/options/cgi
>
>== [server-software server-name gateway-interface server-protocol
>server-port request-method
> path-info path-translated script-name ...
>
>values: next second system/options/cgi
>== [none none none none none none none none none none none none none none
>none none none []]
>
>
>>
>> and iterate simultaneously through the object and
>> the block.
>>
>> Will give a nice professional looking "dump" of
>> the cgi environment, and will also edify me on
>> the process of interating blocks and objects.
>>
>> Thanks in advance
>> Tim
>>
>>
>
>