いつもお世話になっております。
以前リッチテキストボックスを用いてアンダーラインが引けることを
教えていただきました。
では、アンダーラインが引かれている箇所を抽出することは、可能
でしょうか?
1文字ずつ選択位置を移動しながら、SelUnderlineがTrueかを見て
いく方法しかないでしょうか?
以下のサイトを参考にされてはいかがでしょうか?
http://fumiyuki-web.hp.infoseek.co.jp/tech/tech007/index.html
補足:
サイト内でTextRTFのアンダーラインの設定が載ってないので...
"\ul "の後に続く文字から"\ulnone "で終わる手前の文字までが、
アンダーラインの設定のようです。
テキストとして、
"\ul "や"\ulnone "が入力されると"\\ul "や"\\ulnone "のようになるようですので、
入力されたものか設定情報なのかをチェックする必要があります。
#一文字ずつチェックするより複雑になり、はたして速度アップになるかどうか分かりませんが、
#こういう方法もあるということでレスしてみました。
それは私も考えたんですが、
最終的に抽出する場合にけっこう手間ですよね。
(batchmanさんも「こういう方法もあるということで」とあるように)
でも私もそれしか思いつきませんでした
ところで、
"\ul "と"\ulnone "で検索すると、次に違う修飾がくると失敗する場合があります
下線と太字の場合
"\ul\b "となる場合がありますので、
検索は単純に"\ul"(かつ"\\ul"でない)まででいいと思いますよ。
"APIを使ってリッチテキスト内の、下線部分を抽出する"というサンプルを、
かなり前に見たことがあります。
出所はたしか、同じくかなり前に公開終了したソフトのサンプルのひとつで、
今は探しようがないんですけど…。
とりあえず、そんなに難しいことをしなくても、方法はあるみたいです。
> "\ul?"と"\ulnone?"で検索すると、次に違う修飾がくると失敗する場合があります
ところでこの場合、正規表現を使えばいいのでは?
正規表現を使うためのDLLって公開されてますし、
こういう複雑な構文の解析には、とても役に立ってくれると思いますよ。
下線部分の抽出まではみつかりませんでしたが、
リッチテキストの操作でよくみかけたのは
SendMessageで直接メッセージを送って操作しているものでした。
インターネットアーカイブ内に、そのソフトを見つけました。
http://web.archive.org/web/*/http://hp.vector.co.jp/authors/VA002384/index.htm
多くの画像やアーカイブのリンクが切れていますけど、
Oct 19, 2000 あたりのアーカイブで、ソフトのアーカイブが見つけられます(ダウンロード可能)。
『API入門』というソフトです。
(できなかった場合は、前後の日付のアーカイブを見てみてください)
みなさん、ご回答ありがとうございます。
たかみちえさん、最後のURLはあっていますか?
ちょっとページ内容が違うような気がしまして。
*/以降もURLですよ
行頭のhttp://から、最後のhtmまで、アドレスバーにコピーしてください。
(ページ内容が違うような気がしますけど、そういうもののようです)
たかみちえさん、ありがとうございます。
URLを途中できっておりました。
ページ内容は全く関係ないみたいですが、APIを取得
することができました。
ツイート | ![]() |