• ベストアンサー

文字列の置き換え

こんばんは。 VB6を使用しています。 mystring1 = "abcdefghij" mystring2 = "1234567890" という2つの文字列があります。 この文字列の一部(mystring1)をmystring2の一部で 置き換えたいのですが どのようにプログラムを組んだらいいのでしょうか? 例: c1 = Mid(mystring1, 5, 3)(="efg")を c2 = Mid(mystring2, 1, 3) (="123")で置き換えて mystring1 = "abcd123hij" と置き換えを行うことをしたい。 とても初歩的な質問ですがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

もっと簡単に、Mid()=Mid()で出来ます。 Private Sub Form_Click() s1 = "abcdefghij" s2 = "0123456789" Mid(s1, 5, 3) = Mid(s2, 1, 3) Form1.Print s1 End Sub 結果はabcd012hijです。 左辺で関数(MIDのこと)が使えるますが、関数では少ない例ですね。

yoshi86
質問者

お礼

左辺でもMID関数が使えるのですね。 勉強になりました。 ありがとうございました。

その他の回答 (1)

  • kmor
  • ベストアンサー率27% (225/825)
回答No.1

mystring1 = "abcdefghij" mystring2 = "1234567890" c1 = Mid(mystring1, 5, 3) '(="efg")を c2 = Mid(mystring2, 1, 3) '(="123")で置き換えて mystring1 = left(mystring1,4) & c1 & right(mystring1,3) でどうでしょうか。 5文字など固定でなく、ある文字を境に という場合でしたら instr() と言う関数があります。 例2 str1 = "abcdefg" n = instr(str1,"e") この場合、str1から e がある文字の位置を返します。 結果は n = 5 となります。

yoshi86
質問者

お礼

回答ありがとうございました。 頭が固くなっていて思い浮かびませんでした。 まだまだ勉強が足りないようです。。。

関連するQ&A

  • 文字列の切り出し

    文字列"abc.bcd.efg.hij"などから 最後のドットの前まで(例の場合"abc.bcd.efg"の部分) を切り出したいです。 どうすればよいかアイデアが出てきません。 ヒントだけでもいいので教えて下さい。 お願いします。

  • A列の文字列からB列の文字列を

    A列の文字列からB列の文字列を 引く(マイナス)することはできないでしょうか? 例) A列 - B列 - C列 ABCD - CD - AB ABCD - BCD - A ABCD - GH - ABCD という風にC列に関数で結果を表示したいのです。 方法はないでしょうか? よろしくお願いします。

  • C♯で文字列を切り出すには?

    C♯の文字列操作について教えてください。 "あいうえお"という文字列があったら、"あ"だけ 切り取って、"いうえお"という文字列がほしいのですが、 どのようにしたら良いのでしょうか? VB.NETでいう、midのようなものがあるかと思ったのですが、 見当たらず…。 サンプルを交えて教えていただけると助かります。 宜しくお願いします。

  • mid関数とmidステートメントの違いを教えてくだ

    Sub test1() MsgBox Mid("abc", 2) End Sub は、mid関数ですか?midステートメントですか? ヘルプを見ると、 --------------------------------------------------------- Mid ステートメントの使用例 次の例は、Mid ステートメントを使って、 文字列変数の中にある指定した文字数分の文字を他の文字列に置き換えます。 Dim MyString, FirstWord, LastWord, MidWords MyString = "Mid Function Demo" ' 文字列を定義します。 FirstWord = Mid(MyString, 1, 3) ' "Mid" を返します。 LastWord = Mid(MyString, 14, 4) ' "Demo" を返します。 MidWords = Mid(MyString, 5) ' "Function Demo" を返します。 --------------------------------------------------------- も --------------------------------------------------------- Mid 関数の使用例 次の例は、Mid 関数を使って、 文字列の中から指定した文字数分の文字を返します。 Dim MyString, FirstWord, LastWord, MidWords MyString = "Mid Function Demo" ' 文字列を定義します。 FirstWord = Mid(MyString, 1, 3) ' "Mid" を返します。 LastWord = Mid(MyString, 14, 4) ' "Demo" を返します。 MidWords = Mid(MyString, 5) ' "Function Demo" を返します。 --------------------------------------------------------- も同じです。 mid関数とmidステートメントの違いを教えてください。 ご回答よろしくお願いします。

  • s/***/###で文字列の置き換えができません。

    以下の方法で文字列の置き換えを行っているのですが、?及び)など半角の記号の置き換えができません。どなたか有識者様がいらっしゃったらご教授願います。 ・HTMLの太文字に置き換えたいのですができません。 ・下記プログラムはポイントだけ記述しております。 ・?及び)以外の半角記号はためしていませんが、今日  などの全角文字は置き換えできております。 ・プログラムは、str1 =~ s/str2/str3/;で停止しているようですが、デバック方法がわからないため詳しくはわからない状況です。 str1 = '今日は曇り?'; str2 = '?'; str3 = '<b>' . str1 '</b>'; str1 =~ s/str2/str3/;

    • ベストアンサー
    • Perl
  • テキストファイルを読み込むには・・・。

    テキストファイルの中身が以下のように abcd,efg,hij,klmn↓ opqr,stu,vwx,yzab↓ cdef,ghi,jkl,mnop↓ .         .          .         .         のように何行あるか分からない状態で1行ずつ,と\0で区切って4つの文字列を取り出したい(上のテキストファイルの1行目だと[abcd][efg][hij][klmn]のように)のですがどのようにすればいいのでしょう?できれば余分なメモリを確保するやり方を避けたいです。

  • (たとえばreplace関数で)すべての文字列に対して置き換えを行うに

    (たとえばreplace関数で)すべての文字列に対して置き換えを行うには? よろしくお願いします。 ACCESSとVBをやっているのですが、 A行には下記の文字列があるとします。 BBBCCCDDD EEEGGGGFFF ああいいいいうう えええええおおほほほ これらについて、 「初めの3文字を***に置き換える」 「前から4文字目から3つを***に置き換える」 「最後の3文字を***に置き換える」 と言ったことは関数で可能なのでしょうか?

  • 文字列中の任意の位置の文字取得

    VB6の勉強をしております。 OSはWindowsXPです。 すごく簡単な質問なんですが、C言語のように、文字列中の任意の位置を指定する方法はVB6には無いのでしょうか? 例) C言語:str[1] 添え字で指定出来る VB6:???  思いつく方法はMidを利用し、任意の位置の文字を取得する方法なんですが、それしか無いのでしょうか? 以上、よろしくお願いいたします。

  • 文字列の置換の仕方について

    下記のような文字列の置換は、どのようにすればいいでしょうか? <?php $strString="abcd<!--s_1-->うほほ<!--e_1-->efg";//本当は、もっと長い文字列が入っています $strReplace="/<!--s_1-->.*<!--e_1-->/"; $word="あいう"; //関数へ飛ばします $result=fun_replace($strReplace,$strString,$word); function fun_replace($strReplace,$strString,$word){ //さて、どう組むか? } ?> 結果として、"abcd<!--s_1-->うほほ<!--e_1-->efg" → "abcd<!--s_1-->あいう<!--e_1-->efg" になればいいわけです。 ただし、常に、<!--s_1-->が来るとは限らないので、 (<!--s_2-->などが来ることもあります) "<!--s_1-->"."あいう"."<!--e_1-->" というような、<!--s_1-->などを明示的に指定して、文字列を 連結することはできません。 つまり、 preg_replace($strReplace,"<!--s_1-->なんと<!--e_1-->",$strString) という書き方は、できないという条件があります。

    • ベストアンサー
    • PHP
  • java 文字列を順番に出力する方法

    入力は、短い数字文字列と、10文字の文字列の2つ。 数字に対応する位置にある10文字の文字列の文字を、順に出力する。文字の位置は、0から数える。 例1:16078 abcdefghij bgahi 例2: 23456 abcdefghij cdefg

専門家に質問してみよう