PDA

View Full Version : ایجاد فایل بارکورد های با طول متغیر



iman_ison
چهارشنبه 20 تیر 1386, 03:41 صبح
من یه برنامه Paint نوشتم و تمام Object های روی از Class های مختلفی که ایجاد کردم تشکیل شدن مثل Circle, Rectangle,pencil,Line و حالا میخوام این شیئ ها را روی فایل ذخیره کنم و بخوانم تمام Class های Stream هم بلدم ولی نمی دونم چطوری یه ساختار فایلی تشکیل بدم که درست بنویسم و بخوانم چون طول Class های من ثابت نیست وحتی توی بعضی Class ها از ArrayList استفاده کردم که توی شیئ های مختلف از یک Class طول های متفاوتی داره لطفا به من بگید با چه ساختاری می تونم عکسم را به صورت Object ی ذخیره کنم.

mehdi.mousavi
چهارشنبه 20 تیر 1386, 18:58 عصر
من یه برنامه Paint نوشتم و تمام Object های روی از Class های مختلفی که ایجاد کردم تشکیل شدن مثل Circle, Rectangle,pencil,Line و حالا میخوام این شیئ ها را روی فایل ذخیره کنم و بخوانم تمام Class های Stream هم بلدم ولی نمی دونم چطوری یه ساختار فایلی تشکیل بدم که درست بنویسم و بخوانم چون طول Class های من ثابت نیست وحتی توی بعضی Class ها از ArrayList استفاده کردم که توی شیئ های مختلف از یک Class طول های متفاوتی داره لطفا به من بگید با چه ساختاری می تونم عکسم را به صورت Object ی ذخیره کنم.


سلام.
ابتدا باید کلیه کلاسهاتون رو که قراره ذخیره بشن رو با SerializableAttribute
Decorate کنید. بعد باید با استفاده از روش زیر دونه دونه اونها رو تو Stream ای که
میخواهید ذخیره کنید. این Stream میتونه یه فایل باشه. بعدا میتونید Stream رو
بخونید و اونو Deserialize کنید تا Object مورد نظرتون Load بشه. مهم هم نیست که
تو کلاس از چه چیزی استفاده کردین، چون BinaryFormatter همه چیز رو Support
میکنه:



MyLine ml = new MyLine();
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter fmt = new BinaryFormatter();
fmt.Serialize(ms, ml);

ms.Seek(0, SeekOrigin.Begin);
MyLine savedLine = (MyLine)fmt.Deserialize(ms);
}