文字列の引き算?

解決


初心者A  2004-03-30 09:27:36  No: 82768  IP: [192.*.*.*]

異なる文字列の比較を行い、一致した文字列を除外する方法はあるでしょうか?


dim str1  as string
dim str2  as string


str1 = "123456789"
str2 = "789"


上記のような設定で、str1内にstr2の文字数があるかを調べて、存在した場合は、
str1を”123456”に設定したいです。

編集 削除
ぽこ  2004-03-30 10:03:51  No: 82769  IP: [192.*.*.*]

いつもここでは教えてもらってばかりなので
初めて回答してみる・・・
Instr関数でいけるのではと。。。(^_^;)
例えばこんな感じで

Private Sub Command1_Click()

Dim str1  As String
Dim str2  As String
Dim str3  As String
Dim ICHI  As Integer

  str1 = Text1
  str2 = Text2

  ICHI = InStr(1, str1, str2, vbTextCompare)

  If ICHI <> 0 Then
     Text3 = Left$(str1, ICHI - 1)
  End If


End Sub

編集 削除
ファリンファリン  2004-03-30 10:32:26  No: 82770  IP: [192.*.*.*]

ただ削除したいのであれば、Replace()が有効です。
例に従って記述しますと以下のようになります。
>dim str1  as string
>dim str2  as string
dim strAns as string     '回答用変数
>str1 = "123456789"
>str2 = "789"
strAns = Replace(str1, str2, "")

strAnsの内容は"123456"になります。
この関数は置換関数です。例では対象となる文字列を""に置換しました。
考え方・使い方一つで関数はさまざまな効果を発揮します。
今後は色々試行錯誤してみてくださいな。

編集 削除
ぴろあき  2004-03-30 10:34:39  No: 82771  IP: [192.*.*.*]

#VB6
str3 = Replace(str1, str2, "")

編集 削除
ぴろあき  2004-03-30 10:37:40  No: 82772  IP: [192.*.*.*]

かぶった(汗)
ここって投稿の修正/削除ってできませんよね?
失礼しました。。。

編集 削除
初心者A  2004-03-30 11:16:25  No: 82773  IP: [192.*.*.*]

ぽこ様、ぴろあき様、ファリンファリン様

即レスありがとうございます。

文字を引くという新しい関数があるかもと難しく考えてしまいました。
除外する文字がわかっているならば、REPLACEで空白に置換すればいいという
発想がすごいです!!
INSTR関数でもやり方次第でいろんな方法があるんだと思いました。

まだまだ初心者なので、いつもここに来て教えていただいてもらってばかりですが、
ぽこ様のように私でもわかるスレがあれば、意見してみたり、
ぴろあき様、ファリンファリン様のようにいろんな発想と知識を教えれるように
成長していければいいなと思いました。

今度はもう少し発想を逆転させて考えてみたいと思います。
それでも、多々ここに来てしまうと思いますが、また見かけましたらご教授お願い致します。

ありがとうございました。

編集 削除