DOBON.NET DOBON.NETプログラミング掲示板過去ログ

リッチテキスト

環境/言語:[WindowsXP VB.NET]
分類:[.NET]

リッチテキストに入力したデータを一行毎チェックしてファイルに出力する
処理を作成したいと考えています。

リッチテキストのデータをそのままファイルに出力する事は出来るようですが
一行一行読んだりすることは出来るのでしょうか?

どなたかご存知であれば教えてください。お願いします。
(正規のものでは日本語はエスケープされますが)所詮、属性指示のオンオフをやたら記述した
テキストなので、
RtfプロパティやSelectedRtfで何とかなります。が、問題はあります。
単純にRtfから\par等で分割すると、前の行から継続している属性が外れてしまうので、
行毎に選択して選択状態にしてSelectedRtfで受け取るのをループする、とかする
必要があります。(SelectedRtfは属性指示を補ってくれる)
「行毎に選択して選択状態にして」は、
Textプロパティで改行位置を調べてSelect(int,int)メソッドで行えば何とか・・・。

ようは、
行という概念でデータ管理されていないものを行で切り取るので、
\parをまたいでセットだった属性指示が行頭毎にばらばらになり、繰り返すと汚くなりますし、
データ量も当然膨れます。
(行が欲しいんじゃ仕方ないですが。)
一行一行チェックした後、同一ファイルに保存するのであれば、属性指定をする場合データ量が
増える覚悟(倍程度ではすみません)をしつつ、重複する先頭のヘッダ部分を飛ばして書き出す必要があります。


(単純化して書きますが)
「ボールドのA(改行)ボールドのB通常のC」
というデータを、「Rtf」で取得した場合、
「ボールド開始    A    \par    \pard    B    ボールド解除    C」
で、
行毎に選択して「SelectedRtf」で別々に取得する場合、
「ボールド開始    A」
と
「ボールド開始    B    ボールド解除    C」
となります。つまり、別々にSelectedRtfで取得したものを後で組み立てても、
Rtfプロパティとデータレベルで同一にはなりません。(まぁ見かけ上は一緒ですが。)

こんなとこでしょうか?(>詳しい方)
■No7858に返信(テクノカットさんの記事)
> リッチテキストに入力したデータを一行毎チェックしてファイルに出力する
> 処理を作成したいと考えています。
>
> リッチテキストのデータをそのままファイルに出力する事は出来るようですが
> 一行一行読んだりすることは出来るのでしょうか?
>
> どなたかご存知であれば教えてください。お願いします。

改行コード(vbCRLf)でリッチテキストの文字列を区切れば良いと思います。
  • 題名: Re[2]: リッチテキスト
  • 著者: 平ちゃん
  • 日時: 2004/12/06 12:51:36
  • ID: 7865
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No7858に返信(テクノカットさんの記事)
>>リッチテキストに入力したデータを一行毎チェックしてファイルに出力する
>>処理を作成したいと考えています。
>>
>>リッチテキストのデータをそのままファイルに出力する事は出来るようですが
>>一行一行読んだりすることは出来るのでしょうか?
>>
>>どなたかご存知であれば教えてください。お願いします。
>
> 改行コード(vbCRLf)でリッチテキストの文字列を区切れば良いと思います。

平ちゃんです。
Lines プロパティ はどうでしょうか?
  • 題名: Re[2]: リッチテキスト
  • 著者: こど。
  • 日時: 2004/12/06 19:17:00
  • ID: 7887
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
Linesはテキストボックスと同じ機能の継承なので、テキスト部分しか取れません。
属性は含まれません。

(逆に、チェック処理の際には属性は要らないというのであれば、Linesが丁度いいですね。)

DOBON.NET | プログラミング道 | プログラミング掲示板