簡體   English   中英

如何在字符串數組中讀取* .csv文件

[英]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文件的方式。 - 支持多行字段。 - 能夠自定義空行的處理方式。 - 能夠自定義分隔符和引號字符。“

http://csvfile.codeplex.com/

如果您只是想看看如何做到這一點的簡單解決方案:

IEnumerable<string[]> lineFields = File.ReadAllLines(FilePath).Select(line => line.Split(','));

那么你可以按索引訪問列:

string cellValue = lineFields[lineIndex][columnIndex];

這不會處理使用引號來允許數據中的逗號的csv文件,因為您需要編寫用於拆分引用字符串的例程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM