• 締切済み

[VC++] CSVファイルから読み込み、DataGridViewに表示したい

初めまして。プログラミング初心者でありまして、知識はC言語を少しかじった程度です。 今回プログラムを行う上で、C++や.NETを独学しています。 大分色々な書籍を読んだり、ネットも廻ったのですが、まだまだ理解に乏しい部分が多いです。 なかなか調べても解らない部分が多いため、皆さんの知識をお貸しいただきたいと投稿させていただきました。 よろしくお願いします。 VC++2005のC++/CLIでプログラムを作成しています。 CSVファイルから内容を読み込み、DataGridVeiwに表示させたいと考えています。 条件は以下のような感じです。 ・ファイル内容は数字のみ 例)1,2,3,1,0,6,0,4   7,1,5,1,8,0,1,0   1,0,1,6,0,5,1,9 ・読み込むごとに行列の長さが違う ・行や列のヘッダーは無し 出来上がりイメージとしては 第2回 DataGridViewコントロールでマインスイーパ http://www.atmarkit.co.jp/fdotnet/vblab/gridlab_02/gridlab_02_01.html 読み込むCSVファイルのサイズによってセル数が変わるようにしたいです。 ファイルを読み込んでDataGridViewに表示させるという、初歩的な部分から詰まってしまっています。 一部分のことでもいいので、どうかご教授願います。

みんなの回答

  • ecogilis
  • ベストアンサー率60% (12/20)
回答No.1

こんにちわ。 範囲が広すぎて皆さん答えるのがとても困難だと思いますので、もっと具体的にポイントを絞って聞いた方がいいと思います。 考えただけでも、C++/CLIの言語的な部分、.NETのDataGridViewの使用方法、ファイルの読取の仕方などなど、いろんな要素があります。

chikamana
質問者

お礼

改めて質問投稿させていただきました。 ありがとうございました。

chikamana
質問者

補足

こんにちは。回答ありがとうございました。 確かに、これでは具体的に解らない部分が読み取れないですね。 指摘ありがとうございます。 一番困っている部分は、.NETのDataGridViewの使用方法です。 VBやC#では色々と見つかるのですが、C++/CLIでの使用方法がいまいちわかりません。 CSVファイルを1次元配列で読み込むことはできるので、 それをDataGridViewに表示させる記述はどのように書けばいいでしょうか。

関連するQ&A

  • C# datagridview csv 読込

    datagridviewにcsvファイルを読み込んでいるのですが,csvファイル内の行列数分のみ列数・行数をdatagridviewに生成したいのですが,どうも必要以上の列数・行数を生成してしまいます. 下記にそのプログラムを記載いたします. どなたか,必要分のみするにはどうすればよろしいかご教授願えないでしょうか? private void button1_Click(object sender, EventArgs e) { string strName = "xxx.csv"; // 仮のファイル名 string strPath = "c:/csv/"; // 仮のディレクトリ名 OpenFileDialog sfd = new OpenFileDialog(); sfd.InitialDirectory = strPath; sfd.FileName = strName; sfd.Filter = "CSVファイル(*.csv)|*.csv|xlsファイル(*.xls)|*.xls|xlsxファイル(*.xlsx)|*.xlsx|テキスト(*.txt)|*.txt"; sfd.Title = "開くファイルを選択してください"; sfd.RestoreDirectory = true; sfd.CheckFileExists = false; if (sfd.ShowDialog() == DialogResult.OK) { // CSVファイルオープン System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName); // CSVファイルの各セルをDataGridViewに表示 int r = 0; String lin = ""; do { lin = sw.ReadLine(); if (lin != null) { dataGridView1.Columns.Add("clmName1", "日付"); this.dataGridView1.Columns.Add("Time","データ"); this.dataGridView1.Rows.Add(); String[] csv = lin.Split(','); for (int c = 0; c <= csv.GetLength(0) - 1; c++) { if (c < this.dataGridView1.Columns.Count) { this.dataGridView1.Rows[r].Cells[c].Value = csv[c]; } } r += 1; } } while (lin != null); // CSVファイルクローズ sw.Close(); }

  • [非SQL]Datagridviewでのファイル読み書き

    いつもお世話になっております。 SQLを用いずにDatagridviewでデータを読み込み,書き込みする方法を教えていただきたく,質問させていただきました。 現在,txtファイル,あるいはcsvファイルを読み込み,Datagridviewを用いてデータ表示し,レコードの内容を変更し,書き込みを行えるようなプログラムを考えております。 イメージとしては,次のような感じです。 |ヘッダ1|ヘッダ2|コンボボックス| |AAAAA|aaaaa|項目1~3| |BBBBB|bbbbb|項目1~3| 環境:vb2005 ExpressEdition まだプログラミングを始めたばかりという事もあり,右も左もわかりませんが,ご教授お願い致します。

  • C# datagridview

    いくつかこまごまとしたものをまとめてご質問させて頂きますが, 1)csvファイルを読込,ある処理を行おうとすると 「列の FillWeight 値の合計が 65535 を超えることはできません。」 というエラーが出て処理が出来ません.このエラーの解消法を教えて頂けないでしょうか? 2)画像のように読み込んだヘッダー部分が文字化けしてしまいます. こちらの解消法をご教授頂けないでしょうか? 3)csvのすべてのデータをdatagridviewに表示させたいのですが,2列分しか表示されません. 下記に2)とも関連したプログラムを記載いたします.どなたかご教授願えないでしょうか? string strName = "xxx.csv"; // 仮のファイル名 string strPath = "c:/csv/"; // 仮のディレクトリ名 OpenFileDialog sfd = new OpenFileDialog(); sfd.InitialDirectory = strPath; sfd.FileName = strName; sfd.Filter = "CSVファイル(*.csv)|*.csv|xlsファイル(*.xls)|*.xls|xlsxファイル(*.xlsx)|*.xlsx|テキスト(*.txt)|*.txt"; sfd.Title = "開くファイルを選択してください"; sfd.RestoreDirectory = true; sfd.CheckFileExists = false; if (sfd.ShowDialog() == DialogResult.OK) { // CSVファイルオープン System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName); // CSVファイルの各セルをDataGridViewに表示 int r = 0; String lin = ""; do { lin = sw.ReadLine(); if (lin != null) { if (r == 0) { dataGridView1.Columns.Add("clmName1", "日付"); this.dataGridView1.Columns.Add("Time", "データ"); } this.dataGridView1.Rows.Add(); String[] csv = lin.Split(','); for (int c = 0; c <= csv.GetLength(0) - 1; c++) { if (c < this.dataGridView1.Columns.Count) { this.dataGridView1.Rows[r].Cells[c].Value = csv[c]; } } r += 1; } } while (lin != null); // CSVファイルクローズ sw.Close(); tabControl1.SelectedIndex = 1; }

  • C# csvをexcelシートのように表記したい

    VS2017でC#を勉強しています。 複数のcsvファイルをexcelのシートのように表示できますか? ネットで検索すると、excelファイルのシートを表示するサンプルはありますが、 複数csvファイルをシート別に表示させるサンプルがわかりませんでした。 そのような表(ツール)はありますか? 複数ある場合、csvファイルを表示させたいのでdatagridviewのようにカラムが分かれているものを教えてください。 サンプルプログラムを書いていただけますと助かります。 よろしくお願いいたします。

  • C++/CLIでのDataGridViewの使い方

    以前に質問させていただいたのですが、要点を得ていなかったため再度質問させていただいきます。 VC++2005のC++/CLIでプログラムを作成しています。 CSVファイルから内容を読み込み、DataGridVeiwに表示させたいと考えています。 CSVファイルを配列に読み込んで、表示するところまでは出来ています。 以下CSVファイルを読み込んで、コンソール出力するプログラムの一部 int i; StreamReader^ sr=gcnew StreamReader("hoge.csv"); String^ text=sr->ReadToEnd(); array<String^>^ line=text->Split(gcnew array<String^> {"\r\n", "\r", "\n"},StringSplitOptions::RemoveEmptyEntries); array<array<String^>^>^ table= gcnew array<array<String^>^>(line->Length); for (i=0; i<line->Length; i++) { table[i]=line[i]->Split(','); } for each (array<String^>^ output in table){ for(i=0; i<output->Length; i++){ Console::Write(output[i]); //行出力 } } 初歩的なことだとは思うのですが・・・ コンソール出力部分をDataGridViewで出力表示させるには どのように書けばいいでしょうか。 よろしくお願いします。

  • DataGridViewのデーターをExcelに

    VB.Net初心者です。 フォームにDataGridViewを貼り付け、それにデーターを表示しています。 そのデーターを 全てCsvFileに保管する方法は判ったのですが・・・ Me.稟議処理作成者_STDataGridView.ClipboardCopyMode = _ DataGridViewClipboardCopyMode.EnableWithAutoHeaderText 'ヘッダーをコピーする CsvFileSave("\\Ws55\日東電工\データー引渡し用ファイル\Test2.csv") このDataGridViewの全てのデーターを指定したFile名でExcelFileに書込み、その後、そのExcelFileを立ち上げたいのですが、どうしたらいいのでしょうか。 ご存知の方教えてください。

  • DataGridViewの行ごとにヘッダを取り付けたい

    DataGridViewの行ごとにヘッダを取り付けたい DataGridViewコントロールを使用しています。 出来れば(見栄えを良くするために)、図の矢印で指し示す部分に文字列を表示させたいです。 列にはカラムヘッダが存在しますが、行でも似たようなことをしたいのです。 やり方がわかる方、教えていただけませんか? よろしくお願いします。

  • C言語 CSVファイルの読み込み

    C言語でCSVファイルから数字を読み込み、それを計算するというプログラムを作りたいのですが、CSVファイルについて全く知識が無く、加えてCSVファイルを利用したプログラムを作るのが初めての為、勝手がわかりません。 まずCSVファイルというのは、 1.2,2.3,3.4 4.5,5.6,6.7 7.8,8.9,9.0 といった数字(文字列)をカンマで区切ったテキストファイルですよね? それをどのようなプログラムで読み込むのでしょうか? 例えば、上記の数字を読み込み、 a. 1.2+4.5+7.8=x b. 8.9-5.6-2.3=y c. 3.4*6.7*9.0=z と計算する場合のプログラムを教えていただきたいです。 よろしくお願いします。

  • CSVファイルの読み込みと表示(VB.NET)

    前回の質問では大変お世話になりました。 引き続き、VB.NETの勉強をしております。 特定のCSVファイルを読み込んで、その内容をラベルに表示させるプログラムを作成しています。 そのCSVファイルには、以下の情報が書かれています。 1:都道府県(北海道、岩手県、神奈川県、兵庫県など) 2:各都道府県の人口 3:各都道府県の面積 3つの情報は、すべてカンマで区切られています。 各都道府県ですので、47行にわたって情報が書かれています。 まず、ボタン1を押したときに、CSVファイルを読み込み 日本の総人口と総面積をラベルに表示させます。 次に、日本を10のエリアに分け(関東地方、近畿地方など) それぞれにボタンを配置します。 対応する地域のボタンを押すと、新しいウィンドウが開き 地域名・その地域の総人口・総面積が表示されます。 CSVファイルを読み込むという点で調べてみたのですが 複数の行にまたがっている情報をひとつにまとめて表示させる というのがよくわかりません。 CSVファイルの読み込み自体は、StreamReaderというものを利用する ということは調べたのですが、まとめて表示させるということがわかりません。 この問題がおわかりになるかたがいましたら、教えていただけますか。 よろしくお願いします。

  • VB6.0 で CSVファイルをEXCELで起動

    VB初心者です。 質問内容なのですが、 VBで「ドライブ/ディレクトリ/ファイルリストボックス」を用いて、ファイルボックスから表示されたファイルをクリックしてCSVファイルをEXCELで起動したいプログラムを作成したいのですが、 CSVファイルをクリックしたときにEXCELで起動する部分のプログラムがわかりません。 言葉足らずの部分が多々あるかと思いますが、手が空いたときにでも、御教授を宜しくお願い致します。