tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル文字列操作
記事No12690
投稿日: 2008/07/03(Thu) 16:57
投稿者テツ
Visual Basic6.0
よろしくお願いします。

「文字(2moji)文字列(12moji)」から
()で囲まれた文字列(2moji)(12moji)
を(0002moji)(0012moji)にしたい
場合はどうすれば良いでしょうか?
(数値の部分を4桁にしたい)
便利な関数や方法がありましたら
教えてください。

よろしくお願いします。

[ツリー表示へ]
タイトルRe: 文字列操作
記事No12691
投稿日: 2008/07/03(Thu) 17:25
投稿者てつ
こんにちわ

これでいいのか、わからないですが!
 Text1.Text = "0000"
 Text1.SelStart = 0
 Text1.SelLength = Len(Text1.Text)

とかじゃ駄目でしょうか・・。
勉強中なのでこれくらいしか思いつきませんが。

[ツリー表示へ]
タイトルRe: 文字列操作
記事No12692
投稿日: 2008/07/03(Thu) 17:31
投稿者花ちゃん
下記ではどうかな?

Debug.Print Right$("0000" & "2moji", 8)

[ツリー表示へ]
タイトルRe: 文字列操作
記事No12693
投稿日: 2008/07/03(Thu) 17:56
投稿者テツ
ご丁寧なアドバイスありがとうございました。

[ツリー表示へ]
タイトルRe: 文字列操作
記事No12694
投稿日: 2008/07/03(Thu) 22:33
投稿者Starfish

> 「文字(2moji)文字列(12moji)」から
> ()で囲まれた文字列(2moji)(12moji)
> を(0002moji)(0012moji)にしたい
> 場合はどうすれば良いでしょうか?
> (数値の部分を4桁にしたい)

 そのまま、プログラムするとこんな感じですか

Private Sub Command1_Click()
Dim strInput        As String       ' 入力文字列
Dim strOutput       As String       ' 結果
Dim lngStart        As Long         ' "(" の位置
Dim lngEnd          As Long         ' ")" の位置
Dim lngNumCount     As Long         ' カッコの次の数字の桁数
Dim strNumber       As String       ' 数字チェック中の文字

    strInput = "文字(2moji)文字列(12moji)"
    
    lngStart = InStr(1, strInput, "(")
    While lngStart > 0
        lngEnd = InStr(lngStart + 1, strInput, ")")
        If lngEnd > 0 Then
            ' カッコの次の数字の桁数をカウント
            lngNumCount = 0
            strNumber = Mid$(strInput, lngStart + lngNumCount + 1, 1)
            While strNumber >= "0" And strNumber <= "9"
                lngNumCount = lngNumCount + 1
                strNumber = Mid$(strInput, lngStart + lngNumCount + 1, 1)
            Wend
            ' 結果に追加
            If lngNumCount < 4 Then
                strOutput = strOutput & "(" & String(4 - lngNumCount, "0") & Mid$(strInput, lngStart + 1, lngEnd - lngStart)
            Else
                strOutput = strOutput & Mid$(strInput, lngStart, lngEnd - lngStart + 1)
            End If
            lngStart = InStr(lngEnd + 1, strInput, "(")
        Else
            ' 右カッコなし
            lngStart = 0
        End If
    Wend
    
    Label1.Caption = strOutput
    
End Sub

[ツリー表示へ]
タイトルRe^2: 文字列操作
記事No12725
投稿日: 2008/07/07(Mon) 15:10
投稿者テツ
Starfishさん 

ありがどうございます、大変助かります。

恥ずかしいけれどVBを始めたばかりなので、
もう少し教えてください。

> > >「文字(2moji)文字列(12moji)」から

> > >を「文字(0002moji)文字列(0012moji)」にしたい

よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: 文字列操作
記事No12804
投稿日: 2008/07/18(Fri) 17:30
投稿者チャンコロ
テツさん 

tarfishさんが提示してくれたプログラムで

>「文字(2moji)文字列(12moji)」から
>「文字(0002moji)文字列(0012moji)」にしたい

という要件は充分満たされていますよ。
あとは、そのプログラムをあなた自身で読み解くだけです。
VBを始めたばかりとは言っても、このプログラム内容なら
MSDNやVBの参考書類等調べれば理解できるはずです。

これから真剣にVBを習得していこうというつもりならば
ぜひご自分の手でこの問題を解決して下さい。
あなた自身のスキルアップのためです。
頑張って下さい。

[ツリー表示へ]