Re[8]: ネットワークコンピュータの中のあるファイルの選択


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 2001/03/04 17:52:26

In Reply to: Re[7]: ネットワークコンピュータの中のあるファイルの選択 Posted by saito on 2001/03/04 16:21:13


    > ありがとうございます。
    > サンプルを見てみましたが多分私のやりたいこと
    > そのもののようです。(APIは少々どころか、かなり難しいですね。
    > よく理解できていませんが、がんばって理解するようにします。
    > Uzさんのレベルの高さに尊敬します。)
    APIはCを知らないと難しいね。
    今回のはVBなのにポインタの概念を使ってるからね。

    > ところで、サンプルを実行しようとするとfrmMainのcmdRun_Click
    > の中のSplitの部分で「SUBまたはFUNCTIONが定義されていません」
    > というメッセージでコンパイルエラーが発生します。
    > ヘルプでSplitを検索するとDBグリッドの分割ペインに
    > 関係する説明が表示されますが、ちょっと違うような気がします。
    >
    > 私のヘルプの検索の仕方が悪いんでしょうか?
    > このエラーを回避するにはどのようにしたらよろしいでしょうか?
    > 重ね重ねご迷惑おかけしてますが、よろしくお願いいたします。
    >
    > ちなみにこちらの環境はVB5です。
    どうやら、VB6で追加された関数みたいですね。(だったかな?)
    Split関数は文字をある文字で区切り、配列にするものです。
    簡単にこのサンプルを動かすだけならListBoxを消して
    TextBoxを置いてMultiLine=Trueにし、
    Text1.Text=GetNetworkResource()
    とすれば結果は見れるよ。

    もしくわ、以下のようにするか。


    Private Sub cmdRun_Click()
    Dim sStr() As String
    Dim I As Long

    Call lstDir.Clear
    ' ' for VB6
    ' sStr = Split(GetNetworkResource, vbCrLf)
    ' For I = 0 To UBound(sStr)
    ' Call lstDir.AddItem(sStr(I))
    ' Next

    ' for VB5
    sStr = MySplit(GetNetworkResource, vbCrLf)
    For I = 0 To UBound(sStr) - 1
    Call lstDir.AddItem(sStr(I))
    Next
    End Sub

    Private Function MySplit(sExperssion As String, sDelimter As String) As String()
    Dim I As Long
    Dim sStr() As String
    Dim nPos As Long

    I = 0
    ReDim Preserve sStr(0)
    sStr(0) = sExperssion
    If sStr(0) = "" Then
    Exit Function
    End If
    Do
    nPos = InStr(1, sStr(I), sDelimter)
    If nPos >= 1 Then
    ReDim Preserve sStr(I + 1)
    sStr(I + 1) = Mid$(sStr(I), nPos + 2)
    sStr(I) = Left$(sStr(I), nPos - 1)
    Else
    Exit Do
    End If
    I = I + 1
    Loop

    MySplit = sStr
    End Function


記事スレッド一覧