4.StreamReader でデータを読み込み及び行列入れ替え表示(16_Cht_01) (旧、SampleNo.362) |
1.StreamReader でデータを読み込み及び行列入れ替え表示 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :System.Windows.Forms.DataVisualization.Charting 参照設定:追加なし その他 :使用データ(Chart.csv)は、次よりダウンロードして使って下さい。 chartdat.zip(各サンプル共通) :このサンプルを使用される前に、左のメニューの基本的な使い方とワンポイントテクニック集をご覧になって下さい。 このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.StreamReader でデータを読み込み及び行列入れ替え表示 |
'チャート関係の名前空間です。 Imports System.Windows.Forms.DataVisualization.Charting Public Class Form1 Private frgColRow As Boolean Private Sub Chart1_Click(sender As Object, e As EventArgs) Handles Chart1.Click Chart1.Series.Clear() Dim DS1 As New DataSet Dim TB As DataTable = DS1.Tables.Add 'データセットにテーブルを追加する Dim filePath As String = "..\..\..\data\Chart.csv" '表示するCSVファイルを指定 Dim Rc As Integer = -1 '行数 Dim Cc As Integer = 0 '列数 '配列の個数の取得は少し面倒なので、予め解っていればその値を使用 '配列の項数が解らない場合は、余裕を持って多くとっておく。 Dim ro(100, 100) As String frgColRow = Not frgColRow 'CSVファイルをSHIFT_JISのコードページのエンコーディングで読込み Using sr1 As New System.IO.StreamReader(filePath, System.Text.Encoding.GetEncoding("SHIFT_JIS")) 'ファイルの最後までループ Do Until sr1.Peek = -1 Rc = Rc + 1 Dim cmDat() As String = Split(sr1.ReadLine, ",") Cc = UBound(cmDat) For i As Integer = 0 To UBound(cmDat) ro(Rc, i) = cmDat(i) '一旦、データを配列変数に読み込み Next i Loop End Using If frgColRow Then For i As Integer = 0 To Cc TB.Columns.Add(ro(0, i), Type.GetType("System.String")) Next i TB.Rows.Add() For i As Integer = 1 To Rc TB.Rows.Add() For j As Integer = 0 To Cc TB.Rows(i)(j) = ro(i, j) Next j Next i Else For i As Integer = 0 To Rc TB.Columns.Add(ro(i, 0), Type.GetType("System.String")) Next i TB.Rows.Add() For i As Integer = 1 To Cc TB.Rows.Add() For j As Integer = 0 To Rc TB.Rows(i)(j) = ro(j, i) Next j Next i End If Chart1.DataSource = TB ' DS 'Chart に表示するデータソースを設定 With Chart1 For i As Integer = 1 To DS1.Tables(0).Columns.Count - 1 Dim columnName As String = DS1.Tables(0).Columns(i).ColumnName.ToString() '系列の設定(国語・数学等) .Series.Add(columnName) 'グラフの種類を縦棒グラフに設定 .Series(columnName).ChartType = DataVisualization.Charting.SeriesChartType.Column 'X 軸のラベルテキストの読込・設定(浅野等の氏名) .Series(columnName).XValueMember = DS1.Tables(0).Columns(0).ColumnName.ToString() 'グラフ用のデータの読込・設定(点数) .Series(columnName).YValueMembers = columnName .Series(columnName).Label = "#VALY" Next End With End Sub End Class 図1.上記実行結果 |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |