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.

Reply via email to