Учет кавычек в строке при считывании файла .csv - C#
Формулировка задачи:
Всем привет.
Столкнулась с такой ситуацией. Считываю из файла большое количество информации в виде:
Вообще хотела использовать функцию Но, честно сказать, не поняла, как ее использовать в случае кавычек. Подскажите, как таки кавычки эти "проигнорировать" в строке лучше?
название организации|адрес|долгота|широта
Фишка в том, что по какой-то причине в файле может оказаться запись, где название организации будет записано в кавычках, то есть вид строки будет:"название организации"|адрес|долгота|широта
Надо правильно разбить всю эту string.. Как мне правильно обработать кавычки возможные? Всю эту инфу я считываю в табличку и в самом начале проверяю условие:try{
////создаём таблицу и выделяем колонки
if (!String.IsNullOrEmpty(Info_about_firm[i]))
{
Info_about_firmValues = Pharmacy[i].Split('|');
//создаём новую строку
dr = dt.NewRow();
dr["Name"] = Info_about_firmValues[0];
dr["Address"] = Info_about_firmValues[1];
dr["Longitude"] = Double.Parse(Info_about_firmValues[2].Replace(".", ","));
dr["Latitude"] = Double.Parse(Info_about_firmValues[3].Replace(".",","));
//добавляем строку в таблицу
dt.Rows.Add(dr);
}
}
//если ошибка, то печаль
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}Info_about_firmValues[0].TrimStart();
Решение задачи: «Учет кавычек в строке при считывании файла .csv»
textual
Листинг программы
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
namespace CsvParse {
internal sealed class frmMain : Form {
public frmMain() {
InitializeComponent();
}
private DataGridView dgvGrid;
private void InitializeComponent() {
this.dgvGrid = new DataGridView() {
Dock = DockStyle.Fill
};
this.ClientSize = new Size(500, 130);
this.Controls.Add(this.dgvGrid);
this.StartPosition = FormStartPosition.CenterScreen;
this.Text = "CsvParse";
this.Load += (sender, args) => {
var csv = (from line in File.ReadAllLines(@"E:\sandbox\test.csv", Encoding.Default).Skip(1)
let l = line.Split('|')
select new {
Name = l[0].Replace("\"", ""),
Address = l[1],
Longtitude = l[2],
Latitude = l[3]
}).ToList();
dgvGrid.DataSource = csv;
};
}
}
internal sealed class Program {
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.Run(new frmMain());
}
}
}