这可能不被允许,但我会问。
我正在尝试开发类似于YALV的产品,但是需要定制日志。
我有一个CSV文件,我想读取和显示在屏幕上的表可以滚动,过滤,彩色等与YALV类似。
我有读取和解码的CSV代码,并以一个整齐的格式输出到另一个文件。 我想适应这个让它到屏幕上。
我在C#和C的经验,但只有控制台相关。 有人可以引导我在正确的方向,至less得到一个窗口中读取的文件与YALV类似的格式吗? 什么是我可能的步骤? 我不确定从哪里开始….
谢谢
下面的代码在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; } } }