3

私はRealBASIC2011r3を使用してソフトウェアを作成しており、文字列を段落に分割するための信頼性の高いクロスプラットフォームの方法が必要です。私は以下を使用していますが、Linuxでのみ機能するようです。

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

Macでこれを試してみると、すべてが1つの段落として返されます。RBがサポートする3つのビルドターゲットすべてでこれを確実に機能させるための最良の方法は何ですか?

4

2 に答える 2

4

EndofLineは、プラットフォームおよび文字列を作成したプラットフォームによって異なります。文字列内のEndOfLineのタイプを確認する必要があります。sMyString.EndOfLineTypeだと思います。それが何であるかを知ったら、それを分割することができます。

EndOfLineにはさらにプロパティがあります。EndOfLine.Macintosh / Windows/Unixにすることができます。

EndOfLineドキュメント: http ://docs.realsoftware.com/index.php/EndOfLine

于 2011-08-29T02:05:48.673 に答える
1

続行する前に、ほとんどの場合、改行文字の組み合わせを検索して置き換えます。私は通常、次の数行を実行します。

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 を含む改行を 2 つの改行ホルダーで置き換えてしまうことを避けるためです。

これは少し面倒なので、元の文字列を実際に変更するために使用することはお勧めしませんが、文字列をさらに解析する前に、すべての改行を同じ項目に変換すると確実に役立ちます。

于 2011-08-30T05:29:53.137 に答える