2016-01-26 2 views
3

Я хочу разбить строку на строки. В течение долгого времени я использовалРазделить строку на строки

Split(myString, vbCrLf) 

Но теперь у меня возникли проблемы, потому что для новой строки используются разные символы. Я хочу совместить все эти символы (\ n и \ r \ n, ...). Что мне делать?

+0

Вы можете заменить все строки заканчивается, как vbCr vbCrLf или CHR (10) Chr (13) и т.д .. с характером, а затем разделить на что, или раскол, а затем снова разделить ... –

ответ

3

Замените их всем другим символом. В этом примере я буду использовать Chr(19), который является необычным символом ASCII.

myString = Replace(myString, vbCr, Chr(19)) 
myString = Replace(myString, vbLf, Chr(19)) 
myString = Replace(myString, vbCrLf, Chr(19)) 

'// Remove any doubled up Chr(19) 
While InStr(myString, Chr(19) & Chr(19)) 
    myString = Replace(myString, Chr(19) & Chr(19), Chr(19)) 
Wend 

'// Remove any trailing Chr(19) if present 
y = Split(Left$(myString, Len(myString) - IIf(Right$(myString, 1) = Chr(19), 1, 0)), Chr(19)) 

For Each s In y 
    Debug.Print s & ": " & Len(s) 
Next 
+0

Можете ли вы сказать, мне что vbCr, vbLf и vbCrLf в \ n обозначении? –

+0

'vbCr' является ** c ** arriage ** r ** eturn (' \ r') и 'vbLf' является ** ** ** ine ** f ** eed (' \ n'). 'vbCrLf' - это ** c ** arriage ** r ** eturn, за которым следует ** ** ** ** ** (**). –

+0

Итак, что означает, что ваш код выполняет «line1 \ r \ nline2» -> «line1 \ r \ n \ nline2" -> «line1 \ r \ n \ r \ nline2" перед расщеплением? –

Смежные вопросы