سلام به همگی
میخوالستم بدونم راهی هست که تو سی شارپ بتونم قسمتی از یک فایل رو بیارم تو رم؟
مثلا بگم از بایت یک تا بایت 1024 بیاد تو رم؟
سلام به همگی
میخوالستم بدونم راهی هست که تو سی شارپ بتونم قسمتی از یک فایل رو بیارم تو رم؟
مثلا بگم از بایت یک تا بایت 1024 بیاد تو رم؟
از اول فایل 100 بایت میخونه میریزه تو آرایه
FileStream fs = File.Open("filename", FileMode.Open);
byte[] b = new byte[100];
fs.Read(b, 0, 100);
با تشکر
من یه نمونه رو اینجوری نوشتم که متاسفانه ارور میده
string FilePath = (@"C:\Users\Tiny8.1\Desktop\raw.cr2");
//data = Encoding.UTF8.GetBytes(data);
FileStream fs = File.Open(FilePath, FileMode.Open);
byte[] b = new byte[1];
fs.Read(b, 16982738, 16982739);
MessageBox.Show(Convert.ToString(b[0]));
تو قسمت fs.read خطا میگیره مثلا اگه بین 1 تا 3 انتخابش کنم و آرایه هم دو تایی باشه خطا میده
توی خطشما گفتی از موقعیت بایت 16982738 به تعداد 16982739 بایت بخون؟!!!!
fs.Read(b, 16982738, 16982739);
اگرمیخوای فقط یک بایت بخونی این میشه
fs.Read(b, 16982738, 1);
مرسی از کمکت. من تقبلا PHP کار کردم خیلی با سی شارپ آشنا نیستم.
اما یه چیزی که هست. الان وقتی پارامتر دوم صفر باشه درست کار میکنه اما وقتی پارامتر دوم عوض بشه مثلا 2 بشه و بگم از بایت 2 به بعد 1024 تارو بخون خطا میده.
دستور زیر رو اجرا میکنم باز خطا میده.
byte[] b = new byte[1024];
fs.Read(b, 2, 1024);
خطاطو بزار به همراه دستوراتی که مربوط به بازکردن و بستن فایلت هست
private void Form1_Load(object sender, EventArgs e)
{
string FilePath = (@"C:\Users\Tiny8.1\Desktop\raw.cr2");
//data = Encoding.UTF8.GetBytes(data);
FileStream fs = File.Open(FilePath, FileMode.Open);
byte[] b = new byte[1024];
fs.Read(b, 2, 1024);
MessageBox.Show(Convert.ToString(b[1]));
//File.WriteAllBytes(@"C:\Users\Tiny8.1\Desktop\1.tx t", data);
}
{"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection."}
اشتباه از کد منه اول با دستور Seek نشانگرو ببر جلوخطا واسه اینه که از طول آرایه بیشتر میخواد بخونه.
fs.Seek(2, SeekOrigin.Begin);
byte[] b = new byte[1024];
fs.Read(b, 0, 1024);
ببخشید من اشتباه شرح دادم
کد بالا دوتا بایت نشانگرو میبره جلو بعد از خونه اول آرایه شروع میکنه خوندون از فایل
واقعا مرسی از جواباتون
درست شد.