VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/01/27(Mon) 12:04
投稿者秋風
Eメール
URL
タイトルRe^3: 動的配列を返すプロシージャについて

こんにちは。

>花チャンさん。
今回は、花ちゃんさんのコードを参考させていただきました。
ありがとうございます。m(_ _)m
作成しましたので、情けないプログラムながら結果を載せておきます。

フォーム部分
Option Explicit
Dim intcheck As Integer
Dim strtime As String
Dim varTimeList As Variant
Dim strList(1 To 8, 19) As String
Dim j As Long   'ループカウンタ

Private Sub Form_Load()

    Dim k As Long   '1次元配列カウンタ
    Dim l As Long   '2次元配列カウンタ
    
    k = 1  
    intfreefileno = FreeFile
    Open App.Path & "\稼働報告書.txt" For Input As #intfreefileno
    ↑あらかじめデータだけ入ってる(8行)テキストファイルを呼び出し。
  (このファイルは、値は変化しません。)

    For j = 1 To 8   '8行分を配列に格納
        Line Input #intfreefileno, strTimeList
        varTimeList = split(strTimeList)
        
        For i = 1 To 18
            strList(k, l) = varTimeList(l) ←ちょっと値の格納の仕方が分からない
                       為、初心者風になってしまいました。(;_:)
            l = l + 1
        Next i
        
        k = k + 1
        l = 0
    Next j
    
    Close #intfreefileno
End Sub

標準モジュール部分
Function split(Time As String) As Variant

    Dim intcheck As Integer
    Dim intlen As Integer
    Dim strtime() As String
    
    i = 0
    
    Do
        intlen = Len(Time)
        intcheck = InStr(Time, ",")
        ReDim Preserve strtime(i) As String
        
        If intcheck <> 0 Then
            strtime(i) = Mid(Time, 1, intcheck - 1)
            Time = Mid(Time, intcheck + 1, intlen - intcheck)
            i = i + 1
        End If
    Loop Until (intcheck = 0) ←最後のデータは、全て"END"が入っている
               為、格納はしていません。

    split = strtime
End Function

と自分で改造した部分は素人なプログラムになってしまいましたが、とりあえず
動いているので、これを使用していこうかと思っています。特に、

For i = 1 To 18
    strList(k, l) = varTimeList(l) 
  l = l + 1
Next i
        
が、いきなり2次元配列に格納できない為、いちいち入れなおす方法にしか
できずに、四苦八苦しています。また、良い方法が無いか考えていきます。

>nanashiさん。
Variant型に致しました。回答ありがとうございます。m(_ _)m

>takkさん。
回答いただき大変感謝しております。ちょっとStringで返すのは、
VB5ではできない為、今回は、上記に書いた通りに致しました。
大変申し訳ありません。m(_ _)m

>魔界の仮面弁士さん。
教えていただきましたHPを確認したところ、大変参考になりました。
ありがとうございました。m(_ _)m


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -