私はファイル内にこのデータを持っており、私はそれを1行ずつ読み込もうとしています。 1列目はユーザー#、2番目は日付、3番目は時刻です。残りは無視されます。VB6 3次元配列。どのように値をグループ化するように検索して値を追加するのですか?
1 2016-11-09 08:03:51 1 0 1 0
2 2016-11-09 08:03:51 1 0 1 0
1 2016-11-09 11:22:00 1 1 1 0
2 2016-11-09 11:22:00 1 1 1 0
1 2016-11-09 13:29:06 1 1 1 0
2 2016-11-09 13:33:08 1 0 1 0
1 2016-11-09 05:17:49 1 0 1 0
2 2016-11-09 05:17:49 1 0 1 0
1 2016-11-10 08:03:51 1 0 1 0
2 2016-11-10 08:03:51 1 0 1 0
1 2016-11-10 11:22:00 1 1 1 0
2 2016-11-10 11:22:00 1 1 1 0
1 2016-11-10 13:29:06 1 1 1 0
2 2016-11-10 13:33:08 1 0 1 0
1 2016-11-10 05:17:49 1 0 1 0
2 2016-11-10 05:17:49 1 0 1 0
Iはすでに各ラインを分割し、文字列配列の各列を格納し、行によってファイル全体の行を読み取る機能を有しています。
Dim strEmpFileName As String
Dim strBackSlash As String
Dim intEmpFileNbr As Integer
Dim strLine As String
Dim strSplit1() As String
Dim strSplit2() As String
Dim attRecord(0 To 99, 0 To 30, 0 To 3) As String
strBackSlash = IIf(Right$(App.Path, 1) = "\", "", "\")
strEmpFileName = App.Path & strBackSlash & "1_attlog.dat"
intEmpFileNbr = FreeFile
Open strEmpFileName For Input As #intEmpFileNbr
Do Until EOF(intEmpFileNbr)
Input #intEmpFileNbr, strLine
strSplit1() = Split(strLine, vbTab)
strSplit2() = Split(strSplit1(1)) '<-- separate date and time (space delimited)
Print strSplit1(0); Tab(5); strSplit2(0); Tab(18); strSplit2(1)
'Shows: 1 2016-11-09 08:03:51
Loop
Close #intEmpFileNbr
私の問題は、以下のような3次元配列に値を保存したかったということです。 VB6が限界ですので、私はこのために別の言語を使用することはできません。
3 dimensional array: (user# upto 99, days of the month (31), 4 timestamp per day)
1 -> 2016-11-01 -> {08:03:51, 11:22:00, 13:29:06, 05:17:49}
2016-11-02 -> {07:55:25, 11:30:07, 13:45:11, 05:05:12}
upto
2016-11-30 -> {08:15:23, 11:25:45, 13:23:02, 05:00:57}
2 -> 2016-11-01 -> {08:03:51, 11:22:00, 13:29:06, 05:17:49}
2016-11-02 -> {07:55:25, 11:30:07, 13:45:11, 05:05:12}
upto
2016-11-30 -> {08:15:23, 11:25:45, 13:23:02, 05:00:57}
これは、そのユーザーの日付が既に存在するかどうかを知るためにアレイ全体を検索し、その日付の追加のタイムスタンプを追加する必要があると思います。
目標は、日と、ユーザーごとの一日あたりの時間数の数を計算することができることです。
ユーザーIDは、99月の日数に0などの固定数であれば(11月15日は、12月15日と同じであるので、私は、あなたが月に無視すると仮定)30に固定された数0である、あなたはしないでください配列全体をループする必要があります。あなたは2016年11月15日に顧客#20がYourArray(20,15、X)であると仮定できます。この方法では、時間要素Xをループして比較するだけでよい。 – George