Учет кавычек в строке при считывании файла .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());
    }
  }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы