跳转到内容

Rebol 编程/deline

来自维基教科书,开放世界中的开放书籍
DELINE string /lines 

将字符串终止符转换为标准格式,例如 CRLF 到 LF。(修改)

DELINE 是一个函数值。

  • string -- (类型:any-string)
  • /lines -- 转换为行块(不修改)

源代码

[编辑 | 编辑源代码]
deline: func [
    {Converts string terminators to standard format, e.g. CRLF to LF. (Modifies)} 
    string [any-string!] 
    /lines "Convert to block of lines (does not modify)" /local 
    linechar a b 
    output
][
    linechar: make bitset! #{
FFDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
} 
    also case [
        not lines [
            parse/all/case either binary? string [as-string string] [string] [
                any [to cr a: cr opt lf b: (
                        b: change/part a lf b
                    ) :b] to end
            ] 
            string
        ] 
        empty? string [copy []] 
        'else [
            output: make block! divide length? string 50 
            if binary? string [string: as-string string] 
            parse/all/case string [any [
                    copy a some linechar (output: insert output a) [crlf | cr | lf | end] 
                    | 
                    [crlf | cr | lf] (output: insert output copy "")
                ]] 
            head output
        ]
    ] set [string output a b] none
]
华夏公益教科书