Do While で特定の文字を条件にするには?

解決


ロス  2006-01-10 19:28:57  No: 129459

「〜の間繰り返す」というのは

  Do While ○○ = 条件

だと思うのですが、ある文字列に特定の文字がある間処理をするというのはどう書けばいいのでしょうか?

  Do While ○○ = "あ"

だと、「○○の中身が"あ"なら繰り返す」となってしまうのはわかるのですが、今したい処理は、例「文字列Aに"あ"があるたびにその後ろにスペースを入れる」といった処理なので「このあいだはありがとう」だと「このあ  いだはあ  りがとう」といった風になりたいです。
  Do While ○○ = 
=のあとにどのように書いて「文字列に"あ"があるたび」を表現すればいいのでしょうか?


なな  2006-01-10 19:34:57  No: 129460

>今したい処理は、例「文字列Aに"あ"があるたびにその後ろにスペースを入れる」といった処理

頭が固すぎです。

Replace(文字列,"あ","あ ")


ロス  2006-01-10 19:44:44  No: 129461

ははは。確かに硬いですね。初心者掲示板でそう言われるなら普通の質問掲示板に書き込まなくてよかった。

ありがとうございます。


コレハウィルス  2006-01-10 19:55:15  No: 129462

Do  While  に  Replace  つけて動くっけか?


マグ  2006-01-11 01:40:04  No: 129463

>コレハウィルスさん

Do〜Whileの後につけるのではなく、Replaceでそのまま文字を置換させてみてくださいっということですよ。


いな  2006-01-11 02:50:20  No: 129464

あえて、Do while を使ってやるならば・・・。

Dim blnRet As Boolean
Dim strBefore As String
Dim strAfter As String
Dim i As Integer

blnRet = True
strBefore = "このあいだはありがとう"
strAfter = ""
i = 0

Do While blnRet

    i = i + 1
    strAfter = strAfter & Mid$(strBefore, i, 1)
    If Mid$(strBefore, i, 1) = "あ" Then
        strAfter = strAfter & Space(1)
    End If
    If Len(strBefore) = i Then
        blnRet = False
    End If
Loop

MsgBox strAfter

かな?
正月ボケで、間違っていたらごめん


いな  2006-01-11 02:52:15  No: 129465

あぁ〜、ヤッパリ本調子じゃねぇ〜(;;)

--

Do While NOT(Len(strBefore) = i)

    i = i + 1
    strAfter = strAfter & Mid$(strBefore, i, 1)
    If Mid$(strBefore, i, 1) = "あ" Then
        strAfter = strAfter & Space(1)
    End If
Loop


我龍院忠太  2006-01-11 06:53:35  No: 129466

"あ"の後に必ず1つだけスペースを入れる場合は、
strData = Replace(strData, "あ", "あ" & Space(1))
Do
     IntT = Len(strData)
     strData = Replace(strData, "あ" & Space(2), "あ" & Space(1))
Loop While (Len(strData) <> IntT)
こんなことかな。


ロス  2006-01-11 20:15:26  No: 129467

いろいろ参考になる意見ありがとうございます。
ここの掲示板は対応などが良いですね!!


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

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






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