2015-05-08 3 views
-2

Это может быть запрещено, но я все равно спрошу.Чтение данных с CSV на выход экрана

Я пытаюсь разработать продукт, подобный YALV, но для пользовательских журналов.

У меня есть файл CSV, который я хочу прочитать и отобразить на экране в таблице, которую можно прокручивать, фильтровать, окрашивать и т. Д. Аналогично YALV.

У меня есть код для чтения и расшифровки CSV и вывода в аккуратном формате в другой файл. Я хочу адаптировать это, чтобы отобразить его.

У меня есть опыт работы на C# и C, но только с консолью. Может ли кто-нибудь направить меня в правильном направлении, чтобы хотя бы получить файл, который читается в окне в аналогичном формате с YALV? Какие были бы мои возможные шаги? Я не уверен, с чего начать ....

Благодарности

+0

Если вы ищете GUI, и вы хотите, чтобы закодировать его в C++ я бы посмотрите на использование [Qt] (http://www.qt.io/developers/) – NathanOliver

+1

_ @ Gavzooka_ Это совершенно неясно, о чем вы спрашиваете. Не могли бы вы привести несколько кратких примеров, того, чего вы хотите достичь, и того, что вы уже пробовали в своем вопросе, пожалуйста. –

+0

На данный момент я ничего не разработал. Я хочу получить продукт, похожий на YALV, для пользовательского журнала, который я буду читать. Я хочу отобразить его в формате таблицы в диалоге/окне. Мне просто нужны отправные точки в отношении того, что мне нужно использовать, чтобы сделать это с точки зрения объектов. – Gavzooka

ответ

1

код ниже отображает результаты в DataGridView

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.IO; 
using System.Data.OleDb; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     const string FILENAME = @"c:\temp\test.csv"; 
     private void button1_Click(object sender, EventArgs e) 
     { 
      CSVReader csvReader = new CSVReader(); 
      DataSet ds = csvReader.ReadCSVFile(FILENAME, true); 
      dataGridView1.DataSource = ds.Tables["Table1"]; 
     } 
    } 
    public class CSVReader 
    { 

     public DataSet ReadCSVFile(string fullPath, bool headerRow) 
     { 

      string path = fullPath.Substring(0, fullPath.LastIndexOf("\\") + 1); 
      string filename = fullPath.Substring(fullPath.LastIndexOf("\\") + 1); 
      DataSet ds = new DataSet(); 

      try 
      { 
       if (File.Exists(fullPath)) 
       { 
        string ConStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}" + ";Extended Properties=\"Text;HDR={1};FMT=Delimited\\\"", path, headerRow ? "Yes" : "No"); 
        string SQL = string.Format("SELECT * FROM {0}", filename); 
        OleDbDataAdapter adapter = new OleDbDataAdapter(SQL, ConStr); 
        adapter.Fill(ds, "TextFile"); 
        ds.Tables[0].TableName = "Table1"; 
       } 
       foreach (DataColumn col in ds.Tables["Table1"].Columns) 
       { 
        col.ColumnName = col.ColumnName.Replace(" ", "_"); 
       } 
      } 

      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
      return ds; 
     } 
    } 
} 

​ 
+0

Спасибо, это то, что я ищу, но не могу заставить его работать с WPF. DataGridView1.DataSource = ds.Tables ["Table1"]; не работает. Как я могу сделать эту работу с WPF и DataGrid? – Gavzooka

+0

См. Следующую веб-страницу: http://stackoverflow.com/questions/20770438/how-to-bind-datatable-to-datagrid – jdweng

Смежные вопросы