PDA

View Full Version : مبتدی: ذخیره کلاس در فایل



shecarchi
چهارشنبه 12 خرداد 1389, 21:01 عصر
سلام دوستان . چطوری میتونم یک کلاس رو تو یه فایل ذخیره کنم مثلا یک کلاس دارم به اسم x که 4 تا فیلد داره حالا من یک شی از اون ساختم و مقدار دادم حالا میخوام همه رو با هم تویه فایل ذخیره کنم.
یه جوری بگین که این داده ها به انتهای فایل اضافه بشه وداده های قبلی پاک نشه . ممنون

shecarchi
چهارشنبه 12 خرداد 1389, 21:44 عصر
یکم بیشتر توضیح بده من تازه کارم

s.khoshfekran
چهارشنبه 12 خرداد 1389, 22:04 عصر
using System.Runtime.Serialization.Formatters.Binary;


Person p = new Person();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs,p)

shecarchi
چهارشنبه 12 خرداد 1389, 22:21 عصر
fs همون مسیره ذخیره سازیه؟

s.khoshfekran
چهارشنبه 12 خرداد 1389, 22:30 عصر
یه نمونه از fileStream هستش

shecarchi
چهارشنبه 12 خرداد 1389, 22:39 عصر
چه طوری مسیر ذخیره سازی رو بهش بدم

shecarchi
پنج شنبه 13 خرداد 1389, 00:16 صبح
اون fs که گذاشتی ارور میده

sia_2007
پنج شنبه 13 خرداد 1389, 00:35 صبح
5-6 نوع روش سریالایز کردن رو برات گذاشتم
اونی رو که میبینی بیشتر به دردت میخوره رو انتخاب کن و شروع کن

hojjatshariffam
پنج شنبه 13 خرداد 1389, 00:46 صبح
چه طوری مسیر ذخیره سازی رو بهش بدم
یک فایل استریم درست کن اسمشو بزار fs دیگه ارور نمیده



Using System.IO;
....
String FileName ="c:\.......\file.fff";
FileStream fs = new FileStream(FileName, FileMode.Open);
Person p = new Person();
BinaryFormatter bf = newBinaryFormatter();
bf.Serialize(fs,p)
....

hojjatshariffam
پنج شنبه 13 خرداد 1389, 00:47 صبح
5-6 نوع روش سریالایز کردن رو برات گذاشتم
اونی رو که میبینی بیشتر به دردت میخوره رو انتخاب کن و شروع کن
کجا گذاشتین؟

shecarchi
جمعه 14 خرداد 1389, 00:17 صبح
اقا هیچکدوم از اینا به کارم نیومد من میخوام فایل به صورت خواندنی نوشتنی باز بشه و موقع اضافه کردن کلاس جدید فایل قبلیم از بین نره وبه اخرش اضافه بشه مثل زبان c که نوعشو میدادیم "a+t"

sia_2007
جمعه 14 خرداد 1389, 07:12 صبح
این آموزش انواع Serialization بود نه کار با System.IO
یه کم تو MSDN بچرخ؛ اینی که میخوای بهش میگن Append کردن

shecarchi
جمعه 14 خرداد 1389, 17:04 عصر
من این مثال رو پیدا کردم منظورتون همینه اگه همینه یکم توضیح بدین چجوری با همین روش کلاسمو بریزم تو فایل با همون خاصیت خوندنی - نوشتنی


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.IO;

namespace write_file
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{


// Write to file

// Specify file, instructions, and privelegdes
FileStream file = new FileStream("test.txt", FileMode.Append, FileAccess.Write);

// Create a new stream to write to the file
StreamWriter sw = new StreamWriter(file);

// Write a string to the file
sw.Write("Hello file system world!");

// Close StreamWriter
sw.Close();

// Close file
file.Close();


// Read from file

// Specify file, instructions, and privelegdes
file = new FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.Read);

// Create a new stream to read from a file
StreamReader sr = new StreamReader(file);

// Read contents of file into a string
string s = sr.ReadToEnd();

// Close StreamReader
sr.Close();

// Close file
file.Close();


}
}
}

shecarchi
شنبه 15 خرداد 1389, 00:47 صبح
مشکل نوشتن تو فایل به صورت خوندنی نوشتنی با مثال بالا حل شد حالا مشکل توی جستجو هستش داده های من توی فایل به صورت زیر ذخیره میشه

id;price;color;name id;price;color;name

اون فضای خالی سه تا space هست. حالا چجوری براساس id یا name توی فایل جستجو کنم طوری که اگه پیداشد بتونم همه ی اطلاعاتشو توی textbox هام چاپ کنم

shecarchi
شنبه 15 خرداد 1389, 20:38 عصر
کسی نیست به ما کمک کنه این پروژمون 6 نمره داره اگه نتونم کاملش کنم بدبخت میشم. تقصیر از این استاده از اول ترم تا اخرترم با کنسول ++c کار کردیم حالا اومده گفته پروژه اخر ترمتون باید با #c باشه

hojjatshariffam
یک شنبه 16 خرداد 1389, 19:02 عصر
این فایل رو یه نگا بکنید ببینید به دردتون می خوره ؟
یه کلاس رو تو یه فایب ایکس ام ال ذخیره می کنه و بعد باز می کنه

shecarchi
دوشنبه 17 خرداد 1389, 03:25 صبح
مشکلم حل شد با فایل متنی ذخیره کردم. دمتون گرم:بوس: