Мой CSV-файл содержит 8 столбцов и 300 тыс. Строк. Вот пример моего CSV-файла "0195153448"; "Классическая мифология"; "Марк П. Морфорд"; "2002"; "Оксфорд юниверсити пресс"; "http://images.amazon.com/images/P/0195153448.01.THUMBZZZ.jpg";" http://images.amazon.com/images/P/0195153448.01.MZZZZZZZ.jpg";" http://images.amazon.com/images/P/0195153448.01.LZZZZZZZ.jpg" "0002005018"; "Клара Каллан"; "Ричард Брюс Райт"; "2001"; "HarperFlamingo Canada"; "http://images.amazon.com/images/P/0002005018.01.THUMBZZZ.jpg";" http://images.amazon.com/images/P/0002005018.01.MZZZZZZZ.jpg";" http://images.amazon.com/images/P/0002005018.01.LZZZZZZZ.jpg"
Теперь у меня есть этот код для чтения
string path = @"C:\Users\SEMRUK\Desktop\exceller\kitaplik.csv"; public DataTable GetDataTabletFromCSVFile(string PathFile) { DataTable csvData = new DataTable(); TextFieldParser csvReader = new TextFieldParser(PathFile); csvReader.SetDelimiters(new string[] {";"}); csvReader.HasFieldsEnclosedInQuotes = true; string[] colFields = csvReader.ReadFields(); foreach (string column in colFields) { DataColumn datecolumn = new DataColumn(column); datecolumn.AllowDBNull = true; csvData.Columns.Add(datecolumn); } string[] fieldData = csvReader.ReadFields(); while (!csvReader.EndOfData) { for (int i = 0; i < fieldData.Length; i++) { if (fieldData[i] == "") { fieldData[i] = null; } MessageBox.Show(fieldData[i]); } csvData.Rows.Add(fieldData); } return csvData; }
Таким образом, я могу прочитать первые 8 строк. Но я не могу ничего читать после этого. Он просто читает сначала 8. Как я могу сказать коду, что он должен читать и после табуляции. Я попытался добавить \ t к установить ограничители, но не сработало. Есть предложения?
static void Main(string[] args) { string path = "your_file_path"; string text = System.IO.File.ReadAllText(path); string[] parsedText= text.Split(';'); foreach (var item in parsedText) { //do some } }