[REBOL] Re: Simple newbie questions
From: carl:cybercraft at: 30-May-2001 22:24
Hi Jamie,
I see Anton's given you a more elaborate example than mine, but here
you go anyway...
This doesn't change real filenames, but just the ones in your
'allfiles block. Use the REBOL word 'rename for that.
More comments below the script...
REBOL [Title: "Rename Files"]
mypath: %.
get-files: does [allfiles: read mypath sort allfiles]
get-files
view layout [
backdrop effect [gradient 60.0.150 60.10.60]
a-list: text-list data allfiles [
findme/text: a-list/picked
show findme
]
across
label 53 "Path" a-path: field [
mypath: to-file a-path/text
get-files
a-list/lines: allfiles
show a-list
]
below
across
label "Find" 53 Findme: field
below
across
label "Replace" Replaceme: field
below
Button "Rename" [
replace allfiles findme/text to-file replaceme/text
sort allfiles
a-list/lines: allfiles
show a-list
]
]
Note I'd changed your naming of the path in the layout from 'mypath to
a-path, as the one in the layout would conflict with your other
'mypath. Leaving it as it is would cause 'mypath to be pointing to
the field and not your original path.
To get at the data in layout objects such as fields and so on, you
access them and change them like I have in the button above. ie...
findme/text
returns the text in the objext after the 'findme word, while...
a-list/lines: allfiles
changes the "lines" (a block) in a-list to your 'allfiles block.
And...
show a-list
updates the list onscreen.
layout objects have a lot of variables such as 'text and 'lines, and a
quick way to see the entire list (after a script has run and the
variables have been set) is to just enter the likes of...
probe first a-list
at the Console. (DO NOT JUST ENTER probe a-list THOUGH AS REBOL WILL
DISSAPEAR ON A VERY LONG QUEST! THE first IS IMPORTANT TO PREVENT
THIS!:)
The above returns....
[self type offset size span pane text color image effect data edge
font para feel saved-area rate show? options parent-face old-offset
old-size line-list changes face-flags action state style alt-action
facets related words colors texts file var keycode reset styles init
multi blinker pane-size dirty? help user-data flags sz iter sub-area
sld sn lc lines picked cnt act slf text-pane]
As I said, lots, with many of them not being used, but they're a help
in guessing (and eventually reminding you) how you get at the data in
layout objects. a-list's color for instance can be found by
entering...
>> a-list/color
== 240.240.240
Hope that's of some help. And yes, we'd all like the full View
docs...
On 30-May-01, Jamie wrote:
> Hey Gurus,
> I'm trying to piece together hints from the documentation on Core
> with the "more to come" online docs for View. (I wish there was a
> complete manual for View and Core together that made it all clear.)
> Anyway, as an exercise to help learn this stuff while creating
> something useful, I've started the following View script for
> renaming files.
> I have empty blocks for actions and am not sure what syntax will to
> accomplish what I want.
> I have fields but am not sure how to grab their values and do the
> actual renaming of file names.
> I can describe this in pseudo code but haven't internalized the
> REBOL way yet. There are comments in the script below where I have
> questions.
> Any suggestions will be most appreciated.
> Thanks,
> -Jamie
> REBOL [Title: "Rename Files"]
> mypath: %.
> allfiles: read mypath sort allfiles
> view layout [
> backdrop effect [gradient 60.0.150 60.10.60]
> text-list data allfiles [] ;desired action is click to fill in the
> selected file into the find field below.
> across
> label 53 "Path" mypath: field ;desired capability is to change the
> path value in the mypath variable and cause the text-list to update
> with the contents of the new path.
> below
> across
> label "Find" 53 Findme: field
> below
> across
> label "Replace" Replaceme: field
> below
> Button "Rename" [] ;desired action is click to cause all instances
> of the string in the Find field to be replaced with the string in
> the Replace field, for for every file name in the mypath variable's
> path.
> ]
--
Carl Read
[carl--cybercraft--co--nz]