PDA

View Full Version : سوال: خواندن یک بایت از فایل



irpersian20
یک شنبه 24 آذر 1392, 00:33 صبح
سلام،
فرضا ما میخواهیم موقعیت بایت 22 در یک فایل را بخوانیم. ببینم بایت 22 چی داخلش؟
با چه دستوری میشه این کار کرد؟ از readbyte استفاده کردم نشد.فکر کنم من بلد نیستم ازش استفاده کنم و مثال ماکروسافت هم نفهمیدم
میشه مثال کوچک بزنید. خدا خیرتون بده

meysamsh91
یک شنبه 24 آذر 1392, 03:03 صبح
سلام
دوست عزیز ابتدا باید طول فایل مورد نظر رو بدست بیارید از طریق (FileInfo)
مرحله بعد باید محتویات فایل رو از بایت m تا بایت n بخونی و در یک آرایه از نوع بایت ذخیره کنید.
و مرحله بعد میتونید از طریق اندیس آرایه به بایت مورد نظر دسترسی پیدا کنید
من تو مثل زیر ابتدا طول یک فایل تصویر رو بدست میارم و بعد محتویات اون رو می خونم و در یک آرایه از نوع بایت از بایت 0 تا آخرین بایت ( طول فایل ) ذخیره می کنم بعد بایت 22 رو نمایش میدم.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication76
{
class Program
{
static void Main(string[] args)
{
// دسترسی به اطلاعات فایل جهت پیدا کردن طول
FileInfo file=new FileInfo(@"d:\1\100.jpg");
// بدست آوردن طول فایل و ذخیره در یک متغیر
int len = Convert.ToInt32(file.Length);

// دسترسی به محتویات فایل
FileStream fs = new FileStream(@"d:\1\100.jpg",FileMode.Open,FileAccess.Read);

// تعریف یک آرایه از نوع بایت به طول فایل
byte[] b=new byte[len];

// خواندن از بایت 0 تا طول فایل و ذخیره در آرایه
fs.Read(b, 0, len);

// چاپ بایت مورد نظر
Console.WriteLine(b[21]);

// بستن فایل
fs.Close();
Console.ReadKey();

موفق و پیروز باشید.

irpersian20
یک شنبه 24 آذر 1392, 08:40 صبح
ممنون از شما
آیا امکانش هست با متد Seek این کار کنیم و همه فایل رو از نو نخونیم؟