2013-04-29 4 views
0

Я хотел бы разделить строку, как это в Access 2000 (Visual Basic функции):Как разбить эту строку на две части?

"[Results] 

[Comments]"   

в две части:

  • эта часть является результатом
  • для комментариев часть

Как вы можете заметить, эти две части разделены пустой строкой (всегда, это наш разделитель).

[Результаты] и [Комментарии] являются блоками текста. Нам все равно, что в нем, кроме:

В части результатов нет пустых строк, поэтому первая пустая строка, которую мы видим, является разделительной.

Я хочу, чтобы моя функция извлекала только часть комментариев.

Вот что я пробовал:

Public Function ExtractComm(txt As String) As String 

Dim emptyLine As Integer 

txt = Trim(txt) 

'emptyLine = first empty line index ?? 
emptyLine = InStrRev(txt, (Chr(13) + Chr(10)) & (Chr(13) + Chr(10))) 

'Comments part = all that is after the empty line ?? 
ExtractComm = Mid(txt, emptyLine + 4) 

End Function 

Но это не очень хорошо работает. Если я:

ExtractComm(
    "Res1 
    Res2 

    Comment1 

    Comment2" 
) 

Я хочу получить:

"Comment1 

Comment2" 

, но я только получить Comment2. Любая идея извлечь часть комментария?

Большое спасибо!

ответ

2

Может быть, вам нужно использовать InStr вместо InStrRev

InStrRev

Возвращает позицию первого вхождения одной строки в другую, начиная с правой стороны строки.

InStr Возвращает целое число, определяющее начальную позицию первого вхождения одной строки в другую.

+0

Действительно, сейчас это работает, спасибо большое! – ponponke

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