View Full Version : مبتدی: ذخیره کلاس در فایل
shecarchi
چهارشنبه 12 خرداد 1389, 22:01 عصر
سلام دوستان . چطوری میتونم یک کلاس رو تو یه فایل ذخیره کنم مثلا یک کلاس دارم به اسم x که 4 تا فیلد داره حالا من یک شی از اون ساختم و مقدار دادم حالا میخوام همه رو با هم تویه فایل ذخیره کنم.
یه جوری بگین که این داده ها به انتهای فایل اضافه بشه وداده های قبلی پاک نشه . ممنون
shecarchi
چهارشنبه 12 خرداد 1389, 22:44 عصر
یکم بیشتر توضیح بده من تازه کارم
s.khoshfekran
چهارشنبه 12 خرداد 1389, 23:04 عصر
using System.Runtime.Serialization.Formatters.Binary;
Person p = new Person();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs,p)
shecarchi
چهارشنبه 12 خرداد 1389, 23:21 عصر
fs همون مسیره ذخیره سازیه؟
s.khoshfekran
چهارشنبه 12 خرداد 1389, 23:30 عصر
یه نمونه از fileStream هستش
shecarchi
چهارشنبه 12 خرداد 1389, 23:39 عصر
چه طوری مسیر ذخیره سازی رو بهش بدم
shecarchi
پنج شنبه 13 خرداد 1389, 01:16 صبح
اون fs که گذاشتی ارور میده
sia_2007
پنج شنبه 13 خرداد 1389, 01:35 صبح
5-6 نوع روش سریالایز کردن رو برات گذاشتم
اونی رو که میبینی بیشتر به دردت میخوره رو انتخاب کن و شروع کن
hojjatshariffam
پنج شنبه 13 خرداد 1389, 01: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, 01:47 صبح
5-6 نوع روش سریالایز کردن رو برات گذاشتم
اونی رو که میبینی بیشتر به دردت میخوره رو انتخاب کن و شروع کن
کجا گذاشتین؟
shecarchi
جمعه 14 خرداد 1389, 01:17 صبح
اقا هیچکدوم از اینا به کارم نیومد من میخوام فایل به صورت خواندنی نوشتنی باز بشه و موقع اضافه کردن کلاس جدید فایل قبلیم از بین نره وبه اخرش اضافه بشه مثل زبان c که نوعشو میدادیم "a+t"
sia_2007
جمعه 14 خرداد 1389, 08:12 صبح
این آموزش انواع Serialization بود نه کار با System.IO
یه کم تو MSDN بچرخ؛ اینی که میخوای بهش میگن Append کردن
shecarchi
جمعه 14 خرداد 1389, 18: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, 01:47 صبح
مشکل نوشتن تو فایل به صورت خوندنی نوشتنی با مثال بالا حل شد حالا مشکل توی جستجو هستش داده های من توی فایل به صورت زیر ذخیره میشه
id;price;color;name id;price;color;name
اون فضای خالی سه تا space هست. حالا چجوری براساس id یا name توی فایل جستجو کنم طوری که اگه پیداشد بتونم همه ی اطلاعاتشو توی textbox هام چاپ کنم
shecarchi
شنبه 15 خرداد 1389, 21:38 عصر
کسی نیست به ما کمک کنه این پروژمون 6 نمره داره اگه نتونم کاملش کنم بدبخت میشم. تقصیر از این استاده از اول ترم تا اخرترم با کنسول ++c کار کردیم حالا اومده گفته پروژه اخر ترمتون باید با #c باشه
hojjatshariffam
یک شنبه 16 خرداد 1389, 20:02 عصر
این فایل رو یه نگا بکنید ببینید به دردتون می خوره ؟
یه کلاس رو تو یه فایب ایکس ام ال ذخیره می کنه و بعد باز می کنه
shecarchi
دوشنبه 17 خرداد 1389, 04:25 صبح
مشکلم حل شد با فایل متنی ذخیره کردم. دمتون گرم:بوس:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.