[英]how read *.csv file in string array
嘗試用一些結構化數據來讀取csv文件(這個文件用於我的程序提醒 - 用下一個方式構建的文件中的數據:日期,名稱,時間,時間,描述)。 目前我想從文件中讀取所有數據並將其放在一些字符串數組中,其中每個元素 - 文件中的1行。 做了什么
編寫一些代碼,創建用於讀取和打開文件的流。 但目前我只能閱讀一行。 或一行中的所有文件。 怎么知道,文件中有多少行? 或如何讀取數組中文件中的所有行,其中eaach元素 - 文件中的一行。
碼
FileStream fs = new FileStream(FilePath, FileMode.Open,
FileAccess.Read, FileShare.None);
StreamReader sr = new StreamReader(fs);
string lines = sr.ReadLine();
//temp veiw result
viewTextBox.Text = lines; //read only one first line in file
sr.Close();
或嘗試閱讀所有行
string []line = File.ReadAllLines(FilePath); //read all lines in File
//temp check
for (int i=0; i<line.Length;i++){
viewTextBox.Text += line[i]; // in this case all data stored in one lines
}
我需要這個數組包含數據,因為下一步操作 - 搜索此數組中的一些數據並以表格形式顯示。
我寧願使用一個知名且經過測試的庫,而不是重新發明輪子:
“用於讀取和寫入CSV文件的CSV文件解析器C#類。支持多行字段,自定義分隔符和引號字符,處理空行的選項。 - 旨在表現出Excel處理CSV文件的方式。 - 支持多行字段。 - 能夠自定義空行的處理方式。 - 能夠自定義分隔符和引號字符。“
如果您只是想看看如何做到這一點的簡單解決方案:
IEnumerable<string[]> lineFields = File.ReadAllLines(FilePath).Select(line => line.Split(','));
那么你可以按索引訪問列:
string cellValue = lineFields[lineIndex][columnIndex];
這不會處理使用引號來允許數據中的逗號的csv文件,因為您需要編寫用於拆分引用字符串的例程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.