2017-09-17 1 views
0

Je voulais utiliser la garniture pour supprimer les lignes vides:Est-ce que le rebillage peut supprimer les lignes vides sans supprimer le CRLF?

line 1 

line 2 

pour obtenir

line1 
line2 

mais en utilisant

trim/lines 

ne supprime également CRLF. Alors, y a-t-il une autre façon d'utiliser les boiseries à cette fin?

+0

Votre mention de CRLF n'est pas claire car vous utilisez également l'expression "lignes vides". Rebol n'utilise pas la séquence CRLF pour marquer une nouvelle ligne, mais un caractère LF. Alors voulez-vous dire LF, ou voulez-vous dire une chaîne Rebol qui contient des séquences CRLF (ASCII 13 suivi de ASCII 10)? – DocKimbel

Répondre

3
replace/all {Line1^/^/Line2} {^/^/} {^/} 
4

Vous pouvez utiliser PARSE:

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

Il est peut-être plus rapide d'utiliser les jeux de caractères si:

text: complement charset crlf 
parse string-with-newlines [ 
    any [ 
      some text 
     | crlf any crlf 
     | newline remove any newline 
    ] 
] 
1

Aucun chemin juste avec l'équilibre, mais ici une solution avec removeach et aussi, suppression également des LF principaux

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