Какой самый надежный способ разбить фрагмент текста на абзацы в RealBasic, который будет работать в Windows, Mac и Linux? - PullRequest
3 голосов
/ 29 августа 2011

Я пишу часть программного обеспечения с использованием RealBASIC 2011r3 и мне нужен надежный кроссплатформенный способ разбить строку на параграфы.Я использовал следующее, но похоже, что оно работает только в Linux:

dim pTemp() as string
pTemp = Split(txtOriginalArticle.Text, EndOfLine + EndOfLine)

Когда я пытаюсь это сделать на моем Mac, он возвращает все в виде одного абзаца.Каков наилучший способ обеспечить надежную работу всех трех целевых сборок, поддерживаемых RB?

Ответы [ 2 ]

4 голосов
/ 29 августа 2011

EndofLine изменяется в зависимости от платформы и в зависимости от платформы, создавшей строку. Вам нужно будет проверить тип EndOfLine в строке. Я считаю, что это sMyString.EndOfLineType. Как только вы знаете, что это такое, вы можете разделить его.

Существуют дополнительные свойства для EndOfLine. Это может быть EndOfLine.Macintosh / Windows / Unix.

Документы EndOfLine: http://docs.realsoftware.com/index.php/EndOfLine

1 голос
/ 30 августа 2011

Я почти всегда ищу и заменяю комбинации символов разрыва строки перед тем, как продолжить. Я обычно делаю несколько строк:

yourString = replaceAll(yourString,chr(10)+chr(13),"<someLineBreakHolderString>") yourString = replaceAll(yourString,chr(13)+chr(10),"<someLineBreakHolderString>") yourString = replaceAll(yourString,chr(10),"<someLineBreakHolderString>") yourString = replaceAll(yourString,chr(13),"<someLineBreakHolderString>")

Порядок здесь имеет значение (сделайте 10 + 13 перед отдельным 10), потому что вы не хотите в конечном итоге заменить разрыв строки, который содержит 10 и 13, двумя из ваших держателей разрыва строки.

Это немного громоздко, и я бы не рекомендовал использовать его для фактического изменения исходной строки, но он определенно помогает преобразовать все разрывы строк в один и тот же элемент перед попыткой дальнейшего анализа строки.

...