PDA

View Full Version : ویرایش فایل باینری



25farshid
شنبه 18 دی 1389, 20:22 عصر
سلامچطوری میشه یه فایل باینری رو ویرایش کرد.اگه با مثال توضیح بدین ممنون میشم.با تشکر.

mehdi.mousavi
یک شنبه 19 دی 1389, 12:19 عصر
سلامچطوری میشه یه فایل باینری رو ویرایش کرد.اگه با مثال توضیح بدین ممنون میشم.با تشکر.

سلام.
وقتی یه فایل ایجاد می کنید (برای خوندن یا نوشتن، خواه Text باشه خواه Binary)، اینطور فرض کنید که Pointer ای به محل فعلی فایل اشاره میکنه که با خوندن / نوشتن اطلاعات اون Pointer به اندازه اطلاعات خونده (یا نوشته) شده جلو میره. بطور مثال وقتی من Mehdi رو در فایل می نویسم، به تعداد 5 بایت اون اشاره گر جلو میره. پس اگر بعدش بنویسم Mousavi، در فایلم MehdiMousavi خواهم داشت و اشاره گر به اندازه Mousavi جلوتر میره. حالا فرض کنید میخوام روی Mehdi بنویسم Gates. پس باید چی کار کنم؟ باید یه طوری با اون Pointer فایل بگم که به تعداد کاراکترهای Mousavi برگرد عقب، یا نه، چون میدونم Mehdi اول فایل بوده، بگم یه ضرب Pointer فایل رو ببر به خونه صفر و دوباره بگم بنویس Gates. با اینکار توی فایلم GatesMousavi خواهم داشت... (این توضیح رو دادم که بفهمید جریان از چه قراره).

حالا برای جابجایی Pointer فایل میتونید از Seek استفاده کنید. بسته به اینکه از چه روشی برای ایجاد فایل استفاده کنید، ممکنه نیاز باشه از fseek، seek و ... استفاده کنید. برای مشاهده مثال، لطفا به این آدرس (http://www.cplusplus.com/reference/iostream/istream/seekg/) رجوع کنید.

موفق باشید.

پاورقی: من فرض کردم که هر Character یک بایت فضا بگیره، طبیعتا این فرض در مورد فایلهای Unicode صحیح نیست...