Advertisement
Guest User

CSV

a guest
Feb 8th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.94 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.IO;
  11.  
  12. namespace Bankomat
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.  
  21.         private void openToolStripMenuItem_Click(object sender, EventArgs e)
  22.         {
  23.             string path = "";
  24.             if (openFileDialog1.ShowDialog() == DialogResult.OK)
  25.             {
  26.                 try {
  27.                     path = openFileDialog1.FileName;
  28.                     List<string> rows = File.ReadAllLines(path).ToList();
  29.                     DataTable dt = new DataTable();
  30.                     string[] header = rows[0].Split(',');
  31.                
  32.  
  33.                 foreach (var item in header)
  34.                 {
  35.                     dt.Columns.Add(item);
  36.                 }
  37.                 rows.RemoveAt(0); // удалим Хедер
  38.                
  39.                 string[] fields = null;
  40.                 List<string> lstFields;
  41.                 string field;
  42.  
  43.                 string tmp;
  44.                 foreach (string csvRownt in rows)
  45.                 {
  46.                     int InQuote = 0;
  47.                     string csvRow = csvRownt.Trim('\"');//.Replace("\"\"", "\"");
  48.                     lstFields = new List<string>();
  49.                     field = "";
  50.                     for (int i = 0; i < csvRow.Length; i++)
  51.                     {
  52.                         tmp = csvRow.ElementAt(i).ToString();
  53.                         if (tmp == "\"") { InQuote = InQuote + 1; }
  54.                         else
  55.                         {
  56.                             switch (InQuote % 2)
  57.                             {
  58.                                 case 1: // в кавычках
  59.                                     {
  60.  
  61.                                         field += tmp;
  62.  
  63.                                     }
  64.                                     break;
  65.                                 case 0: // не в кавычках
  66.                                     {
  67.                                         if (tmp == ",") { lstFields.Add(field); field = ""; }
  68.                                         else field += tmp;
  69.                                     }
  70.                                     break;
  71.                             }
  72.                         }
  73.  
  74.                     }
  75.                     if (!string.IsNullOrEmpty(field))
  76.                     {
  77.                         lstFields.Add(field);
  78.                         field = "";
  79.                     }
  80.  
  81.                     fields = lstFields.ToArray();
  82.                     dt.Rows.Add(fields);
  83.  
  84.                 }
  85.  
  86.                 dataGridView1.DataSource = dt;
  87.                 }
  88.                 catch (Exception ex) { MessageBox.Show(ex.Message); }
  89.             }
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement