Может ребол трим убрать пустые строки без удаления CRLF?

Я хотел использовать обрезку, чтобы удалить пустые строки:

line 1

line 2

получить

line1
line2

но используя

trim/lines

также удаляет CRLF. Так есть ли другой способ использовать обрезку для этой цели?


person user310291    schedule 17.09.2017    source источник
comment
Ваше упоминание CRLF неясно, поскольку вы также используете выражение пустых строк. Rebol использует не последовательность CRLF для обозначения новой строки, а символ LF. Так вы имеете в виду LF или строку Rebol, которая содержит последовательности CRLF (ASCII 13, за которым следует ASCII 10)?   -  person DocKimbel    schedule 18.09.2017


Ответы (2)


Вы можете использовать PARSE:

parse string-with-newlines [
    any [
          crlf remove some crlf
        | newline remove some newline
        | skip
    ]
]

Хотя может быть быстрее использовать кодировки:

text: complement charset crlf
parse string-with-newlines [
    any [
          some text
        | crlf any crlf
        | newline remove any newline
    ]
]
person rgchris    schedule 18.09.2017

Не только с триммером, но здесь решение с removeach, а также с удалением ведущих LF

trim-emptyline: func [
    str [string!] 
    /local lfb4 lfnow c
] [
    lfb4: true 
    remove-each c str [also all [lfnow: lf = c lfb4] lfb4: lfnow]
    str
]
person sqlab    schedule 18.09.2017