Hi Alan, Joel,

Alan your demo script proves to me at least what I said before.

> I have found that if I write/binary and then convert-lines it is ok.

Actually no it is not. If you read/binary, add some text after the new
"space", save it with write/binary, convert-lines, then read it in again,
you'll see that your new text dropped to the next line.

To demonstrate what is happening add these two functions to your demo
script:

tag-crlf: func[ data [string! binary!]][
    replace/all replace/all data CR "<CR>" NEWLINE "<LF>"
]
detag-crlf: func[ data [string! binary!]][
    replace/all replace/all data "<CR>" CR "<LF>" NEWLINE
]

Then add these two buttons:

 button "tag text" [tag-crlf my-area/text show my-area]
 button "detag text" [detag-crlf my-area/text show my-area]

Play with these buttons and see how you are dealing with Carriage Return
characters (CR) and Line Feed (LF), with the various write, read and edit
combinations.

The point to understand is that Linefeed / LF / NEWLINE  is the delimiter
between lines in REBOL. Text files in Windows, MS-DOS, are delimited by two
characters CR+LF.

The following statements apply to the windows platform (I haven't used
Win2000, nor XP nor CE.).

1) When Notepad sees CRLF in some text it breaks the text at that point and
puts the following text on the next line.

2) When a REBOL AREA sees a LF it does the same.

3) AREA ignores CR.

Try this code in your console - note that 0D is the hex representation for
CR and 0A for LF:

possibilities: [#{0a} #{0d} #{0a0d} #{0d0a}]
repeat p possibilities [
    print "**********************************"
    print ["Possibility: " mold p]

    print ["write/binary %test.dat"]
    write/binary %test.dat p

    print ["write %test.txt"]
    write %test.txt p

    print [
        "Read/binary %test.dat: "
        mold r: read/binary %test.dat
        either equal? p r [""]["<-- Changed"]
    ]
    print ["Read/binary %test.txt: "
        mold r: read/binary %test.txt
        either equal? p r [""]["<-- Changed"]
    ]
    print [
        "Read %test.dat: " mold
        r: to-binary read %test.dat
        either equal? p r [""]["<-- Changed"]
    ]
    print [
        "Read %test.txt: "
        mold r: to-binary read %test.txt
        either equal? p r [""]["<-- Changed"]
    ]
]

Regards,
Brett.

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to