• ベストアンサー

DataGridにテキストファイルの内容の表示方法

VB2010 DataGridにテキストファイルの内容を表示 テキストファイルから任意の列(2列目)のデータを読み込み、Form1に配置したDataGridに読み込むにはどうしたらよいでしょうか? 下記のようなテキストファイルのデータがありまして、0.1などこの列のデータをDataGridに読み込みたいと考えています。 もし宜しければ、構文を教えて頂けないでしょうか。 VB2010の勉強を初めて1週間しか経っておらず、まだまだ勉強足らずです。 宜しくお願いします。 <テキストファイルのデータの内容> 1 0.1 *** 2 0.3 *** 3 0.5 *** ・ ・ ・

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

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

フォームにDataGridViewを1つ貼り付ける(名前はDataGridView1のままとする) 判りやすいようにボタンを1つ貼り付ける。このボタンのクリックイベントで プログラムの実行契機とする。 -- WEB照会で、出てくる例を使ってやれるだろう。 WEBの記事を探すことが必須の情報源だ。 http://kchon.blog111.fc2.com/blog-entry-56.html 1週間でVB.NETの問題が出来れば立派なもんだ。 ーーー 私の例では、aaa4.csvというCSVファイルが下記フォルダにあり、 4列の項目になっているので、DataGridView1にも 列を4列に増やしておく。(DataGridView1のところで、右クリックー列の追加を 3回行う。) ボタン(私の場合の名前はButton5)のクリックイベントに Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click ' CSVファイルオープン Dim sr As IO.StreamReader = _ New IO.StreamReader("C:\Documents and Settings\XXXX\My Documents\aaa4.csv", _ System.Text.Encoding.GetEncoding("SHIFT-JIS")) ' CSVファイルの各セルをDataGridViewに表示 DataGridView1.Rows.Clear() Dim r As Integer = 0 Dim lin As String = "" Do lin = sr.ReadLine() If lin Is Nothing = False Then DataGridView1.Rows.Add() Dim csv As String() = lin.Split(",") For c As Integer = 0 To csv.GetLength(0) - 1 If c < DataGridView1.Columns.Count Then DataGridView1.Rows(r).Cells(c).Value = csv(c) End If Next r += 1 End If Loop While (lin Is Nothing = False) ' CSVファイルクローズ sr.Close() End Sub これで「デバッグの開始」をして、Form1のButton5をクリックすると、 DataGridView1に4列で、CSVファイルのデータ行数だけ、CSVのデータが表示された。 ーー 質問の場合だが、 (1)テキストファイルらしいが、上記でファイル名を質問者のテキストファイル名に修正する lin.Split(",")のところは、lin.Split(" ")と区切り文字を考えて変えてください。 (2)テキストファイルの第2列目だけをDataGridView1にセットするなら、DataGridView1で4列に増やす必要はない。 そして For c As Integer = 0 To csv.GetLength(0) - 1 のところで、該当列でない列では、処理をスキップするコードを入れれば良いでしょう。 If c=2 then '処理 Enf If

関連するQ&A

  • テキストをDataGridに表示

    VB.NET勉強中の初心者です。 いろいろ検索して試行錯誤したのですが、 初心者の私にはいまいちわからなかったので、 ここで質問させていただきます。 A1 B1 C1 A2 B2 C2 のように1文字ずつ改行された内容のtxtファイルがあったとして、 それをDataGridに A列 B列 C列 ----------- A1|B1|C1 ----------- A2|B2|C2 のように「A列、B列、C列」という列項目もつけて、表形式で表示するにはどのようにすればよいでしょうか? また、DataGrid上で編集してtxtに上書き保存するにはどうすればよいでしょうか? あいまいな表現かもしれませんが、わかるかたいらっしゃいましたら教えてください。

  • DataGridの内容をExcelにエクスポートするには?(VB)

    VBでDataGridを使ってOracleDBのテーブルを表示する機能を開発中です。 Oracleのテーブルの内容をADOを使って VBのDataGridに表示することはできました。 そのDataGridに表示された内容をExcelのファイルにエクスポートするにはどうすれば良いのでしょうか? ご存知でしたらお教えください。 環境はWindows2000、VB6.0です。 宜しくお願いいたします。  

  • DataGridで左詰め、右詰めの表示。

    VB2005です。 表題のようにDataGridにおいて列ごとに左詰め、右詰めと決めて表示したいのですが、その設定法が解りません。教えてください。

  • VB2005 DataGrid1初期化について

    はじめまして。 VB2005 DataGrid1の初期化について質問があります。 下記処理を実行すると、 一度目のFormBを表示ではDataGridに正しく表示されます。 FormBにてボタンEndを押し、再度FormBを表示すると DataGridの表示が化けてしまいます。 (縦・横のスクロールバーが表示されなくなり、  列・行の幅も小さくなっている) DataGrid自体は何も設定していなく、 表示内容に対して自動でDataGridを調整してくれる ものだと思っておりました。 何か初期化(Me.DataGrid1.Refresh)などが問題なので しょうか? 長文になりましたが、何か少しでも解決策をお願いします。 Private Sub Form_Load 'FormBを表示  FormB.ShowDialog  '再度FormBを表示  FormB.ShowDialog Exit Sub Private Sub FormB_Load  Dim Aclone As New ADODB.Recordset  'Aclone設定  If Aclone .State = ADODB.ObjectStateEnum.adStateOpen Then   Aclone .Close()  End If  'DataGrid初期化  Me.DataGrid1.Refresh()  'XXXX(接続・テーブル情報)の内容をAcloneにセット)  Aclone = XXXX.clone  'AcloneをDataGridにセット  Me.DataGrid1.DataSource = Aclone Exit Sub Private Sub FormB_Btn_End  Me.Hide Exit Sub

  • VB2010でデータをプロットする方法

    VB2010でデータをプロットする方法 みなさん教えてください。 いまVB2010で添付図のようなグラフを作成できるソフトを作成しています。 そこで、みなさんにアドバイス頂きたいことがあり投稿しました。 Form4にdatagridを配置しました。 ここに任意のデータ(最大で40個)を入力すると、Form1のグラフに線を結ばずに○でプロットさせたいと思っています。 でも、この方法が分からず悩んでいます。 みなさん方法を教えて頂けないでしょうか。 できれば、ソースを教えて頂きたいです。 宜しくお願いします。

  • SilverLightのDataGridの表示

    VisualStudio2010のVB.NETでSilverLightを使ったプログラムの管理をしています。 画面上でDataGridにComboBoxを配置して、データを選択可能な状態にしています。 DataGrid内では、曜日毎に条件を設定していて、メインとサブの2種類の条件を設定できるようになっています。 メインのComboBoxを指定すると、サブのComboBoxの一覧がその条件に合った一覧に変わるようになっています。 このDataGridをスクロールさせたとき、先頭行のサブのComboBoxが勝手に切り替わってしまいます。 選択されているComboBoxのみが影響をうけます。 SilverLightのDataGridは表示されていないところは処理されていないということですが、 スクロールさせて隠れていたところを表示させる際に、カーソルが選択されている所も一緒に処理されてしまう状況です。 一度スクロールさせて、すべてのComboBoxが表示されると、カーソルが選択されているところが影響を受けることはなくなります。 初期表示の際に隠れている所も処理させれば、この現象が解消するのではないかと考えています。 知りたいことは、SIlverLightで初期表示の際に隠れている所の処理を実行させることは可能かということです。 わかりにくい説明で申し訳ありませんが、何かヒントでもいただければと思います。

    • 締切済み
    • XML
  • DataGridのReadOnlyについて

    こんにちは いつもお世話になっております。 VB.NET(2003)で、DataGridにデータを表示して、編集-更新する処理を行っています。 表示ボタンを押したら表示され、更新ボタンで更新される動作です。 表示方法はDataGridTextBoxColumnのReadOnly=TrueにしたものをDataTableにADDし、 これをDataGrid.DataSourceにセットして表示させています。 そして、クリアボタン押したときに dtb = New DataTable 'グリッドに表示 DataGrid.DataSource = dtb というようにDataTableを初期化してクリアしているのですが このときDataGrid上のTextBoxにカーソルがあると そのTextがクリアされず表示されたままになってしまいます。 ReadOnlyですが、一応カーソルは当たるようにしたいのです。 表示されたままになっているのは、クリアの方法がまずいのでしょうか? すみませんが、どなたか教えていただけませんでしょうか?

  • 【VB6】CSVファイルの内容の条件設定をして表示

    【VB6】CSVファイルの内容の条件設定をして表示 お世話になります。 VB6で、テキストボックスにCSVの内容を表示するプログラムを作成したのですが、 CSVの一部の行だけをif文で検索をかけるような内容を追加しようとしておりますが、良い方法はございますでしょうか。 例えば、Excelで開く所のA列が「日付」の項目であり、1/1から3/1までのCSVの内容を表示…といった具合です。 CSVをテキストボックスに表示させるプログラムは、下記サイトを参考にしています。 http://hanatyan.sakura.ne.jp/(VB6.0関係>ファイル操作関係>です) 参考になるサイトがございましたらお教え下さい。よろしくお願い致します。

  • DataGrid使い方検証中

    DBからのデータを一覧表として表示することを考えています。 表示は、DBからのデータを取得したものをそのまま表示することもありますが、好きなように加工して、好きな位置に表示することもあります。 今まではVB6で某社のACTIVEXを利用して行っていました。 .NETになってDataGridがいろんなことができるようになったという情報をもらったので、調べているのですが、いまいち欲しい情報が得られません。ということはできないのかなあ? やりたいこと 1、ただの表として、好きな位置に好きなデータを表示させる 2、セルに、DBと連動していない、ボタンや、チェックボックスを配置する その他色々あるのですが、とりあえず上記のやりたいことができれば、うれしいのですが。 できる場合は、方法も教えてください。

  • VB6.0 Datagridに関する質問

    いつもお世話になっております。 以下のことをVB6.0上で実現させたいとかんがえています。 1.VB6.0のフォームにDataGridを貼り付けて そこにEXCELファイルからDataを読み込んで表示させる。 2.表示されたDataの一部をGRID上で変更し、 決定ボタンを押すことで、EXCELファイルに上書きする。 FLEXGRIDを使用して試してみたところ、READONLYで 変更できないようでしたので、 DataGridで試しています。 上記2点を実現させることは可能ですか? また、GRIDにADOなどを使わずに FILEOPEN、INPUTで取得したDATAを表示させることはできますか? また実現させるにあたって参考になるサイト、情報を頂ければ助かります。 乱文でわかりずらい点があったらすみません。 なお、ファイル形式はEXCELにこだわらず、CSVでもいいです。 GRIDの使用についても表として使用するのみで、 ソートなどは必要ないので 他にいい方法があればお教えください。

専門家に質問してみよう