> ありがとうございます。 > サンプルを見てみましたが多分私のやりたいこと > そのもののようです。(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
|