|
分類:[.NET 全般]
2018/07/31(Tue) 11:02:34 編集(投稿者) 2018/07/31(Tue) 11:02:30 編集(投稿者)
<pre><pre>初めまして 現在作成している事で、困り事がありご質問です
開発環境 VB.net2013
No,名称,Lv,始時間,終時間 1,test0,1,9:20,9:30 1,test0,2,13:45,13:55 2,test1,1,6:30,6:40 2,test1,2,19:30,19:40 3,test2,1,9:40,9:50 4,test3,1,6:35,6:45 5,test4,1,6:30,6:40
このようなテキストファイルを 配列に入れ込みます
Private Load_File As String() = File.ReadAllLines(Appdir & "\config.csv", enco) '設定ファイル
始時間が早い時間ごとに並び替えようするため まず
Datetime型を宣言し
Dim timetable As DateTime() timetable = New DateTime(Load_File.Length - 1) {}
始時間部分だけを新しい配列に入れ込み
For i As Integer = 1 To Load_File.Length - 1 timetable(j) = Load_File(j).Split(","c)(3) Next
ソートで時間を並べ替える
Array.Sort(timetable)
Dictionaryを宣言
Dim listsort As New Dictionary(Of timetabel, String)
Dictionary key,valueの設定 For i As Integer = 0 To Load_File.Length - 1 listsort(timetable(i)) = Loaffile(j) Next
これは表示用のLabelです disp = New Label(5) {} Dim line As String = "/"
For i As Integer = 0 To 5
Dim tmp As String = listsort(timetable(i)) T_name = {tmp.Split(","c)(1), tmp.Split(","c)(2), tmp.Split(","c)(3), tmp.Split(","c)(4)}
disp(i) = DirectCast(Me.Controls("disp" & i.ToString), Label) disp(i).Text = T_name(0) & line & T_name(1) & line & T_name(2) & line & T_name(3) Next
とし test1/1/6:30/6:40 test4/1/6:30/6:40 test3/1/6:35/6:45 test0/1/9:20/9:30 test2/1/9:40/9:50 test0/2/13:45/13:55 test1/2/19:30/19:40
時間が早い順に表示させるつもりが
実際は test1/1/6:30/6:40 test1/1/6:30/6:40 test3/1/6:35/6:45 test0/1/9:20/9:30 test2/1/9:40/9:50 test0/2/13:45/13:55 test1/2/19:30/19:40 と表示されます
test4/1/6:30/6:40 がデバックすると消えています
test1/1/6:30/6:40 test4/1/6:30/6:40 同じ時間があると消えるものなのでしょうか??
timetableの型の中は 正常になっていますが Dictionary key,valueの設定をすると
カウントも6のはずが5しかありません
私の処理の仕方がおかしいのかもしれませんので ご指摘、ご指導をよろしくお願い致します。
</pre></pre>
|