954,529 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

How do I work with data files?

So here's the deal. I learned to program with python, and C# is my second step up the ladder. I'm currently learning the language by making a Sudoku game (just porting over the code from python..nothing fancy).

So I ran into a dead end just now...I know how to manipulate data files {*.dat) in python, to store objects/arrays/ etc. How is this done in C#? I need a quick way to open a file, and put/get two objects in/from it.


P.S. is shelving available in C# as well, because something like that is what I'm talking about. (It says somewhere in the python docs or something that shelving[what I'm used to using] is domething from C, or C++[memory is foggy])

scru
Posting Virtuoso
1,629 posts since Feb 2007
Reputation Points: 975
Solved Threads: 140
 

are you trying to write objects to a file?

iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
 

yes write and read

scru
Posting Virtuoso
1,629 posts since Feb 2007
Reputation Points: 975
Solved Threads: 140
 

Oh right. Erm I never do such things. I just read in a normal text file and that parse that data into my class or structure.

Since I don't do it I won't be offering any advice. Good luck though.

http://www.codeproject.com/csharp/objserial.asp

iamthwee
Posting Expert
5,950 posts since Aug 2005
Reputation Points: 1,543
Solved Threads: 439
 

Scru,

I think what you are after is Serialization (known as pickling in python).

Take a look at this website:
http://blog.kowalczyk.info/kb/serialization-in-c%23.html

-- Jerry

JerryShaw
Posting Pro in Training
465 posts since Nov 2006
Reputation Points: 69
Solved Threads: 75
 

God you are fond of python ain't ya, mentioned all the time lol. Treat C# like a completely different language, don't try to make comparisons as that just leads to trouble:

StreamReader reader = new StreamReader("MyFile.dat");
string strAllFile = reader.ReadToEnd().Replace("\r\n", "\n").Replace("\n\r", "\n");
string[] arrLines = strAllFile.Split(new char[] { '\n' });
textBox1.Text = arrLines[0];
textBox2.Text = arrLines[2];

That is reading line one from the .dat file and putting it into textbox1, and then reading line 3 and putting that in textbox2 using array.

StreamWriter writer = new StreamWriter("MyFile.dat");
writer.WriteLine("Hello");
writer.WriteLine("World");

That is writing hello and world to two lines in a .dat file.

RwCC
Junior Poster
177 posts since Jan 2006
Reputation Points: 70
Solved Threads: 4
 

Yes I love python, lol. It's quite easy.

You guys are right though: all I had to do was look at it differently to get comfortable, and I am now. I've actually come to love some of C#s features, like the strong typing (for some reason...maybe I just like declaring variables and stuff...xD), and the intellisense (even though I think that's an IDE feature).

Oh, and that Resource file thing rocks too.

I'll try that dat file thingie and let you know how it goes.

scru
Posting Virtuoso
1,629 posts since Feb 2007
Reputation Points: 975
Solved Threads: 140
 

thank you this works

scru
Posting Virtuoso
1,629 posts since Feb 2007
Reputation Points: 975
Solved Threads: 140
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You