文字の反転

解決


Pitto  2005-03-14 17:32:17  No: 88820

一つのテキストの中で複数箇所の文字を反転できますか。文字列の長さがそれぞれ違ってもできますか。


ガッ  2005-03-14 18:55:13  No: 88821

出来ます。複数箇所を探して、長さを指定して文字を反転するような関数を作れば。


Pitto  2005-03-14 19:45:52  No: 88822

お世話になります。VBは始めたばかりで、学ぶことばかりです。関数も考えてみます。


ガッ  2005-03-14 20:08:04  No: 88823

( ゜д゜)ハッ!
…ヒント書くの忘れてたっぽぃ(or------z
とりあえず、VB6で使う関数。
InStr()
Mid$()
Mid ステートメント
後、StrReverse$()かな?

※ヘルプ見ながらの方が断然お得で早いぞ。
  @「テキスト」というとテキストボックスコントロールに勘違いしやすいので、
  「文字列」と言ったほうが吉。
  そして、文字列に関する関数は"String."で出てくると思われ。
  …VB6だけどね(ぇ


じゃんぬねっと  URL  2005-03-14 20:40:12  No: 88824

こんにちは、じゃんぬねっと です。

# ガッさん、その節はどーもです。m(_ _)m

ところで、
  「複数箇所」
というのが気になりなって仕方ありません...。


LESIA  2005-03-14 21:09:01  No: 88825

例えば、文字列"0123456789ABCDEFGHIJKLM"の中の、"345"と"HIJK"のように
長さの違う複数個所を反転させたいんじゃないでしょうか?

Private Sub Command1_Click()
    Debug.Print strReverseEX("0123456789ABCDEFGHIJKLM", "345", "HIJK")
End Sub

Private Function strReverseEX(strText As String, ParamArray strData()) As String
    Dim i As Integer
    
    For i = LBound(strData) To UBound(strData)
        If InStr(strText, strData(i)) > 0 Then
            strText = Replace(strText, strData(i), StrReverse(strData(i)))
        End If
    Next i
    
    strReverseEX = strText
End Function


Pitto  2005-03-14 21:32:56  No: 88826

ありがとうございます。例えば、テキストである文字列をマウスでなぞれば、対応する別の文字列の位置を何らかの形、同じように反転させるか、カーサーで分かるようにしたいのですが・・・・。


Say  2005-03-14 21:35:57  No: 88827

オーナードローすればできるかも。


LESIA  2005-03-14 22:14:33  No: 88828

RichTextBoxなら、色を変えるとか、太字にするとか、斜体にするとか
出来そうですね。


ぬるぽ  2005-03-15 04:29:19  No: 88829

VB6以前ってオーナードローできたっけ?


ガッ  2005-03-15 04:35:06  No: 88830

> じゃんぬねっとさん
(・∀・)ニヤ/(  ´Д`)<ぃぇぃぇ、こちらこそ(ぉ
※本題が終了しそうなので投稿できませんですた(orz

> ぬるぽさん
出来ます。
APIを駆使すれば、出来ますたらしいです。
やったことがありませんが(orz


Say  2005-03-15 06:46:29  No: 88831

駆使というほどではありません。
手順的にはサブクラス化してWM_DRAWITEMを拾って
自前の描画処理を呼ぶだけです。

この「自前の描画処理」がコントロールや描画内容によっては
結構面倒だったりしますが。

興味あるなら、
み〜くんパパの仕事部屋にサンプルあったような。


Pitto  2005-03-17 04:07:56  No: 88832

ありがとうございました。別件ですが、テキストボックスで開いたテキストを検索するとText1.SelStartとText1.SelLengthで文字を反転できましたが、リッチテキストボックスで開いたテキストで検索したら文字が反転できなくなりました。RichTextBox1.SelStartとRichTextBox1.SelLengthではダメなのでしょうか。
宜しくお願いします。


Pitto  2005-03-17 21:30:01  No: 88833

解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加