works with this tiny change
from
ADD-FILLER (10 - length? FORMATTED-LINE) ;; 3333
to
ADD-FILLER 10 - (length? FORMATTED-LINE)
this is because 10 - length?
is being asked to happen before length? FORMATTED-LINE
and is not evaulating to an integer! so ADD-FILLER does not see it's
argument
hope that helps
On Tue, 4 Nov 2003, Steven White wrote:
>
> This must be something really dumb, but I am wondering if perhaps I am
> not understanding how something works.
>
> The purpose of the script below is to go through a block of blocks (a
> little "file" of "records" in my native tongue) and, for each record,
> rearrange the "fields" with some spaces in them, suitable for
> displaying. It builds up this displayable line in the item called
> FORMATTED-LINE.
>
> On line 1111 of the script, the first item (number four = "THIS") is
> added to FORMATTED-LINE, and on line 2222 the FORMATTED-LINE is
> displayed to show that it is correct. On line 3333, a procedure is
> called to fill the line out to 10 spaces.
>
> In the procedure to add the spaces, at line 4444, suddenly
> FORMATTED-LINE is different; it contains the field just added, PLUS the
> data the is not due to be added until line 5555. In other words, on
> line 2222 FORMATTED-LINE is "THIS" and on line 4444 it is "THISIS", but
> the IS is not supposed to be added until line 5555, AFTER the script has
> returned from adding the spaces after THIS.
>
> Am I losing my mind or what?
>
> Thank you.
>
> Steven White
> [EMAIL PROTECTED]
> script follows--may be cut, pasted, and run:
>
> REBOL [
> ]
>
> DATA-SELECTED: [
> [ "TEST" "A" "IS" "THIS" ]
> [ "WORK" "THIS" "WON'T" "WHY" ]
> ]
>
> DATA-FORMATTED: none
> FORMATTED-LINE: none
>
> TEST-PROCEDURE: does [
> DATA-FORMATTED: copy ""
> foreach DATA-RECORD DATA-SELECTED [
> FORMATTED-LINE: copy ""
> PRINT ["APPENDING " FOURTH DATA-RECORD]
> append FORMATTED-LINE fourth DATA-RECORD ;; 1111
> PRINT ["FORMATTED LINE NOW IS " FORMATTED-LINE] ;; 2222
> ADD-FILLER (10 - length? FORMATTED-LINE) ;; 3333
> ;;;;;;;; PRINT ["APPENDING " THIRD DATA-RECORD] ;; UNCOMMENTING
> GIVES ERROR
> append FORMATTED-LINE third DATA-RECORD ;; 5555
> PRINT ["FORMATTED LINE NOW IS " FORMATTED-LINE]
> ADD-FILLER (20 - length? FORMATTED-LINE)
> append FORMATTED-LINE second DATA-RECORD
> ADD-FILLER (30 - length? FORMATTED-LINE)
> append FORMATTED-LINE first DATA-RECORD
> append FORMATTED-LINE newline
> append DATA-FORMATTED FORMATTED-LINE
> ]
> ]
>
> ADD-FILLER: func [
> "Add a specified number of blanks to FORMATTED-LINE"
> SPACE-COUNT integer!
> ] [
> PRINT ["NOW WE WILL ADD " SPACE-COUNT " SPACES"]
> loop SPACE-COUNT [
> append FORMATTED-LINE " " ;; 4444
> PRINT ["FORMATTED LINE IS " LENGTH? FORMATTED-LINE "
> BYTES:" FORMATTED-LINE]
> ]
> ]
>
> TEST-PROCEDURE
> PRINT DATA-FORMATTED
>
>
>
> --
> To unsubscribe from this list, just send an email to
> [EMAIL PROTECTED] with unsubscribe as the subject.
>
--
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.