我正在使用RealBASIC 2011r3编写一个软件,需要一个可靠的,跨平台的方式来将字符串分成段落。我一直在使用下面的代码,但它似乎只在Linux上工作:
dim pTemp() as string
pTemp = Split(txtOriginalArticle.Text, EndOfLine + EndOfLine)
当我在我的Mac上尝试时,它将所有内容作为一个段落返回。在RB支持的所有三个构建目标上可靠地工作的最佳方法是什么?
endline的变化取决于平台和创建字符串的平台。您需要检查字符串中endoline的类型。应该是smystring。endoflinetype。一旦你知道它是什么,你就可以分裂它。
endline还有其他属性。可以是endoline . macintosh/Windows/Unix。
endoline docs: http://docs.realsoftware.com/index.php/EndOfLine
我几乎总是在继续之前搜索并替换换行字符的组合。我通常会写几行:
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之前执行10+13),因为您不想最终用两个换行符替换包含10和13的换行符。
这有点麻烦,我不建议使用它来实际修改原始字符串,但在尝试进一步解析字符串之前,将所有换行符转换为同一项肯定会有所帮助。