REBOL 3 Docs | Guide | Concepts | Functions | Datatypes | Errors |
TOC < Back Next > | Updated: 6-Feb-2009 Edit History |
When a file is read as text, all line terminators are converted to newline (line feed) characters. Line feeds (used as line terminators on Amiga, Linux, and UNIX systems), carriage returns (used as line terminators on Macintosh), and the CR/LF combination (PC and Internet) are all converted to the equivalent newline characters.
Using a standard line terminator within scripts allows them to operate in a machine-independent fashion. For example, to search for and count all newline characters within a text file:
text: read %file.txt count: 0 while [spot: find text newline][ count: count + 1 text: next spot ]
The line conversion is also useful for reading network files:
text: read ftp://ftp.rebol.com/test.txt
When a file is written, the newline character is converted to the line termination style standard for the operating system being used. For instance, the newline character is converted to a CRLF on the PC, LF on UNIX or Amiga, or CR for a Macintosh. Network files are written with CRLF.
The following function converts any text file with any terminator style to that used by the local operating system:
convert-lines: func [file] [write file read file]
The file is read and all line terminators are converted, then the file is written and newline characters are converted to the local operating system style.
Line conversion can be disabled by reading the file as binary. For instance, the following line:
write/binary %newfile.txt read/binary %oldfile.txt
preserves the line terminators of the text file.
TOC < Back Next > | REBOL.com - WIP Wiki | Feedback Admin |