• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSVファイルを折れ線グラフ化するプログラムを作っているのですが・・・)

CSVファイルを折れ線グラフ化するプログラムを作成

このQ&Aのポイント
  • 無料のVB2008を使用して、CSVファイルを折れ線グラフ化するプログラムを作成中です。
  • 今回はEXCELを使用せずにプログラムを作成したいため、VB2008を利用しています。
  • プログラムの流れは、指定したCSVファイルを開き、不要な行を削除して、グラフに表示することです。データベースを使用するかどうかは不明です。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

エクセルでやれば、グラフを描くところは、エクセル(VBA)がやってくれるので、圧倒的に楽。 CSVファイルをオープン CSVレコードを1レコード読む 不要なレコードは読み飛ばす 時間間隔ごとに、該当レコード分は処理、それ以外は読み飛ばす(またはその間隔の平均なりを採る) レコードをSplit関数で、カンマ(ディミタ)で分離 シートに各行にデータを書き出す。シートの1行下をポイント。 次以下のレコードで上記を繰り返し Et ENDでCSVファイルをクローズ シートのデータを対象にグラフを描かせる。 エクセルでグラフを描かせるのはシートに、無駄のないでーたが一旦書き出されることが必要条件です。 このVBAでのコードがどうなるか、はグラフを描かせるマクロの記録から類推し、マクロの記録を修正する。ただデータ数が多いと実際的に使えるグラフになるか未経験で判らない。巻物みたいになったら、どうだろうか。 ーーー VB.NETでは、グラフを描くようなツールが無ければ(市販とか。購入する金が無ければ http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1420945259などで言っているコンポーネント)、 上記のCSVファイルの各レコード処理を行い(Splitまで)Imageコントロールに Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click Dim ChartLeft As Integer = 80 '左位置 Dim ChartRight As Integer = PictureBox1.Width - 50 '右位置 Dim ChartHeight As Integer = 50 '上方位置 Dim ChartLower As Integer = PictureBox1.Height - 10 '下方位置 Dim Graphics As System.Drawing.Graphics = PictureBox1.CreateGraphics Dim ChartAxis As New Pen(Color.Black, 2) Graphics.DrawLine(ChartAxis, ChartLeft, ChartHeight, ChartLeft, ChartLower) Graphics.DrawLine(ChartAxis, ChartLeft, ChartLower, ChartRight, ChartLower) Graphics.DrawLine(ChartAxis, ChartLeft + 30, ChartHeight + 30, ChartLeft + 40, ChartHeight + 10) Graphics.DrawLine(ChartAxis, ChartLeft + 40, ChartHeight + 10, ChartLeft + 60, ChartHeight + 70) Graphics.DrawLine(ChartAxis, ChartLeft + 60, ChartHeight + 70, ChartLeft + 90, ChartHeight + 100) End Sub WEBにあったコードを一部改変しました。3点を結ぶ折線の例(軸付き)。 この下3行の部分をCSVファイルを読んでカンマで分離したデータでデータ数だけ繰り返す。 しかし実際にやるには、諸々の多数の解決すべき点が出てくるのは目に見えている。多数データで 纏め上げた経験が無いので、実際役立つか判らない。 グラフには目盛や反例やタイトルなど必要だし、自作は面倒なことだろう。 ーーー Split関数は、VB.NETで http://www.atmarkit.co.jp/fdotnet/dotnettips/317vbsplit/vbsplit.html テキストファイルをVB.NETで読む http://www.cocoaliz.com/vb.net/index/25/  など Googleででも、トッピックスごとに照会する。

chintarou
質問者

お礼

お礼遅くなりました。 今回の件は、データベース化するほどのものではないと、知人に判断され、 時間もないことで、データベース化はあきらめました。 少し勉強が必要なので、がんばります。

関連するQ&A