PDA

View Full Version : تبدیل بایت ها توسط Stream



Xcalivorse
جمعه 04 مرداد 1387, 12:14 عصر
چه طوری میشه byte ها رو توسط Stream به فایل تبدیل کرد ؟

علیرضا مداح
جمعه 04 مرداد 1387, 13:00 عصر
سلام دوست عزیز ،
به طور مثال ، یک فایل با نام t.txt را خوانده و توسط آرایه بایت به دست آمده ، مجددا" همان فایل را ایجاد مینماییم :


byte[] b = System.IO.File.ReadAllBytes("c:\\t.txt");
FileStream fs = File.Create("c:\\t2.txt");
fs.Write(b, 0, b.Length);
fs.Close();

Xcalivorse
جمعه 04 مرداد 1387, 18:17 عصر
نه منظور من این بود که فایل را درحافظه ایجاد کرد نه در دیسک. مثلا فکر کنید یک فایل کم حجم داریم که کد شده. حالا می خواهیم در حافظه اون رو Decode کنیم و در یک استریم قرار بدیم. ولی نمیخواهیم روی دیسک اونو ایجادش کنیم. مثلا فکر کنید یک فایل کم حجم فیلم داریم و میخواهیم پس از Decode شدن اون رو به کنترل مدیا پلیر برای پخش بفرستیم.
باتشکر.

Zaparo
جمعه 04 مرداد 1387, 18:50 عصر
از MemoryStream استفاده کن

Xcalivorse
جمعه 04 مرداد 1387, 19:39 عصر
ممنون ولی می دونم باید از MemoryStream استفاده کرد. مشکل من در تبدیل ماهیت بایتهای موجود به فایل، و ارسال آن برای پخش (مثلا در متال بالا که فایل فیلم منظور است) است.

Zaparo
جمعه 04 مرداد 1387, 21:20 عصر
در Stream ها شما با یه []byte سروکار دارید هر بلایی هم بخواید میتونید سرشون بیارید

Xcalivorse
جمعه 04 مرداد 1387, 21:41 عصر
منظور من این بود که فایل را درحافظه ایجاد کرد نه در دیسک. مثلا فکر کنید یک فایل کم حجم داریم که کد شده. حالا می خواهیم در حافظه اون رو Decode کنیم و در یک استریم قرار بدیم. ولی نمیخواهیم روی دیسک اونو ایجادش کنیم. مثلا فکر کنید یک فایل کم حجم فیلم داریم و میخواهیم پس از Decode شدن اون رو به کنترل مدیا پلیر برای پخش بفرستیم.
باتشکر.

ای بابا من که منظورمو واضح گفتم.
ببینید منو به کاری مجبور کردید که هیچ کسی نمیکنه. از خودم نقل قول کردم !

Zaparo
شنبه 05 مرداد 1387, 00:36 صبح
خوب دوست عزیز متوجه شدم شما چی میگی شما یک []byte در رم میسازید خوب حالا یه متد مینویسی که دیکود کنه خوب دوباره میاد توی رم یه []byte میسازه که decode شده اولی هست حالا این []byte رو با MemoryStream لود میکنی

حالا خیلی ساده چیزی که شما میخوای میشه این یه فایل داری خوب که کد شده شما byte به byte ش رو میخونی میریزی تو یه ارایه بعد این ارایه باید دیکد بشه بعد به یک MemoryStream داده بشه بعد هم MemoryStream رو هم میدی به هر چی که میخوای

حالا مشکل چیه؟

Xcalivorse
شنبه 05 مرداد 1387, 08:59 صبح
من فایل رو قبلا دیکد کردم و ریختم توی یک MemoryStream . حالا می خواهم ازش به عنوان یک فایل در برنامه استفاده کنم.

Zaparo
شنبه 05 مرداد 1387, 10:35 صبح
خوب اون MemoryStream رو میدی به اون چیزی که میخواد لود کنه مثلا" PictureBox یه ویژگی داره Image که میتونه از روی یه Stream لود بشه حالا شما باید بدی به Mediaplayer اونو برات لود کنه

Xcalivorse
شنبه 05 مرداد 1387, 11:19 صبح
مدیا پلیر URl می خواد و ورودیش باید موجودیت فایل داشته باشه. حالا مشکل من در همین تبدیل موجودیت بایتی و موجودیت فایلی است.