PDA

View Full Version : چگونه به فایلی که ساخته ایم حجم بدهیم



hootan
شنبه 20 بهمن 1386, 16:03 عصر
سلام
من میخواهم به محض این که با c یک فایل را باز کردم(به صورت باینری) به آن حجم بدهم یعنی مثلا تعیین کنم حجم آن 200 مگابایت است.
در ضمن میخواهم اطلاعاتی را به طور موقت به انتهای فایل اضافه کنم چه طوری می شود موقعی که خواستم آن را پاک کنم که از حجم فایل کم شود.
ممنون

kitten
دوشنبه 22 بهمن 1386, 11:18 صبح
سلام من زیاد سر در نمی یارم ولی فکر کنم تا اطلاعات وارد یه فایل نکنی هیچ وقت نمی شه که حجم ش را زیاد کنی به نسبت اطلاعاتتون حجم کم و زیاد می شود

sh_roohani
دوشنبه 22 بهمن 1386, 12:27 عصر
سلام،

فکر می کنم یه راهش این باشه که آرایه نسبتا بزرگی بگیرید و اونو به تعداد دلخواه در فایلتون بنویسید تا به حجم دلخواه برسه. مثلا یه آرایه 1024 بایتی رو 204800 بار در فایلون بنویسید، حجم دیتای نوشته شده می شه 200 مگابایت. ولی باید همیشه یه نشانگری برای خودتون داشته باشید که بدونید کدوم قسمتها از دیتای توی فایل معتبره و کدوم قسمتها نامعتبر.

hootan
جمعه 03 اسفند 1386, 12:09 عصر
ممنون از پاسخها
من دو تا چیز در این باره پیدا کردم ولی باز مشکل دارم به هر حال راه حلهایی که پیشنهاد کردید فکر نمی کنم درباره کاهش حجم فایل کارساز باشه
امل یافته های من
1) یک کتابخانه به نام rfile پیدا کردم یه جا دربارش خوندم ولی توی راهنماییهاش چیز به دردبخوری نبود کسی تا حالا با این کتابخونه کار کرده؟
2)در linux یه تابع غیر استاندارد به نام truncate برای این کار وجود داره کسی میدونه توی windows (mingw ) برای این تابع چیزی هست یا نه؟
ممنون

mohseni12345
جمعه 03 اسفند 1386, 13:25 عصر
شما باید دنبال ساختار fat/fat32 باشی
یادم نیست کجا خوندم ولی یه اطلاعاتی در مورد طریقه نوشتن فایل روی درایوها با فرمت fat/fat32 خوندم که اونجا نوشته بود چطوری میشه فایل ساخت یا دایرکتوری و اندازه فایل رو کجاش نوشته
یه چیزی تو مایه های هدر فایل هست
اگه پیدا کردم برات میزارم

ICEMAN
جمعه 03 اسفند 1386, 13:38 عصر
اول اینجا رو یه نگاه بنداز
http://www.codeguru.com/forum/printthread.php?t=324134
این موضوع تا جایی که من میدونم به FileSystem بر میگرده
این فایل Attach شده هم همین که میخوای روی NTFS

ICEMAN
جمعه 03 اسفند 1386, 13:53 عصر
Attach ش سادم رفت Sorry

sh_roohani
جمعه 03 اسفند 1386, 14:11 عصر
سلام،


به هر حال راه حلهایی که پیشنهاد کردید فکر نمی کنم درباره کاهش حجم فایل کارساز باشهمن نفهمیدم شما می خواین حجم فایل رو افزایش بدین یا کاهش.


این موضوع تا جایی که من میدونم به FileSystem بر میگردهآیا واقعا می خواین با اتکا به فایل سیستم اینکارو بکنین؟ اگه اینطوریه که برای هر فایل سیستم جداگانه باید پیاده سازیش کنید. در غیر اینصورت به نظرم ساده ترین راه پرکردن فایل با اطلاعات dummy باشه.

Nima_NF
جمعه 03 اسفند 1386, 15:36 عصر
یک تابع CRT برای ویندوز این کار را می کند (مایکروسافتی) که با آن حجم فایل را کم یا زیاد می توانید کنید:



_chsize( int fd, long size );

hootan
سه شنبه 07 اسفند 1386, 14:43 عصر
از همه دوستان ممنونم ولی با توجه به راحتی و این که mingw از chsize پشتیبانی میکنه فکر می کنم بهترین راه است.