Sign in to follow this  
link161

C# Exporting text to CSV(or Excel)

Recommended Posts

Hey everybody,

I was hoping to get a little help on a data exporter here. I'm reading files from a delimited txt log and need to export it to a CSV file. The problem I'm having is how to get the data I need from the log. The txt files resemble this:

[Date] - [some system info] - [some system state]
[Date] - [Athenticate] - [some system state]
[Date] - [some system info] - [some system state]

I need to only grab the Athenticates in the file and export those to a CSV. Sadly I'm not to fluent in C#. What whould be the best way to go about this? I have no problem reading the file and I shouldnt have any problem exporting but how do I handle only collecting the ata I need from the file? A List maybe? or a 2-D array?

Share this post


Link to post
Share on other sites
You need to define a [url="http://msdn.microsoft.com/en-us/library/aa664660(v=vs.71).aspx"]grammar[/url] for both your log file input and your csv output. This might be over engineering the problem though. You could also define a regular expression and use [url="http://msdn.microsoft.com/en-us/library/twcw2f1c.aspx"]matching[/url] to pull out the desired data.

Share this post


Link to post
Share on other sites
I think I may of found a way, I checked out those links Adam, and I needed something like Matching. Though again, not very fluent in C# still, I kinda implemented it my own way. Heres what I have to know that it works, I have 2 lists, one that delimits part by part and if the part matches with the Authenticate info the 2nd list stores the line. I applied these to listboxes to test, but now I just need to delimit the line to stick in colums and rows in the CSV and it should work [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]


[code]public void ReadTextFile(string fileName)
{
List<string> toAdd = new List<string>();
List<string> sepList = new List<string>();
string line;

// Read the file and display it line by line.
using (StreamReader file = new StreamReader(fileName))
{
while ((line = file.ReadLine()) != null)
{

char[] delimiters = new char[] { '-',',' };
string[] parts = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);


for (int i = 0; i < parts.Length; i++)
{
Console.WriteLine(parts[i]);

if (parts[i].ToString() == " [Authenticate info]")
{
sepList.Add(parts[i]);
toAdd.Add(line);

}

}
}
listBox1.DataSource = sepList;
listBox2.DataSource = toAdd;
file.Close();
}[/code]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this