to read csv file into text file
I have written the code to read the csv file(which include 4 rows)
and the application is running sucessfully, while writting to the file it writes 2nd and 4th row to the file
I am not getting why its happing.
Can anyone help me for the same.
following is the code
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Xml;
using System.Configuration;
using System.IO;
namespace Test1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Uploadbutton_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
filenametextBox.Text = openFileDialog1.FileName;
}
private void save_to_DBbutton_Click(object sender, EventArgs e)
{
if (openFileDialog1.FileName == "")
{
MessageBox.Show("File Not Selected");
}
StreamReader sr = new StreamReader(openFileDialog1.FileName,Encoding.GetEncoding(1250));
StreamWriter SW;
SW = File.CreateText("D:\\CSV\\csv.txt");
string strline = "";
string str1 = "";
string[] _values = null;
while ((strline = sr.ReadLine()) != null)
{
strline = sr.ReadLine();
_values = strline.Split(';');
foreach (string str in _values)
{
str1 = str + ",";
}
str1 = str1.Trim(',');
SW.WriteLine(str1);
} sr.Close();
SW.Close();
MessageBox.Show("Sucessfully Retrieved and file has been created");
this.Close();
}
}
}
Re: to read csv file into text file
Quote:
Originally Posted by
Arjun-Sarankulu
I am not getting why its happing.
Me neither. Perhaps you could tell us what is happening?
on a side note, if this is a practice project, writing your own csv reader is fine. However, if this is 'real' code, I have had good experiences using Lumen CSV. Parsing CSV file is not as simple as splitting on commas. It is legal to include the separator within commas (among other edge cases), and your code doesn't handle that case. Your code is too simple to be a proper CSV parser.
Re: to read csv file into text file
where i can find the Lumen CSV and it should read all the data from csv file
I am not getting what is wrong with my code.
I am developeing a utility for my company which will read the csv file
Can any one help me for the same.
Re: to read csv file into text file
Try removing the call to
Code:
strline = sr.ReadLine();
that you have inside your loop
Re: to read csv file into text file
Quote:
Originally Posted by
Arjun-Sarankulu
I am developeing a utility for my company which will read the csv file
Then your implementation is not good enough. You can find Lumen CSV by searching for it.
Re: to read csv file into text file
I would recommend a slightly different solution than dlarkin77 (though it fixes the same problem). The way I always write these loops is:
Code:
while ( !sr.EndOfStream )
{
strline = sr.ReadLine();
... //Downstream processing
}
I guess my preference is to always make the read call from within the loop. This seems more logical to me, but dlarkin77's method may work as well.
You might consider listening to BigEd781's advice too: CSV parsing can be a real pain if you're supporting the whole standard. On the other hand, if you're just reading in a matrix of numbers separated by commas, your fast solution may be 'good enough'.
Hope that helps.