PDA

View Full Version : ساختار فایل ها و ساختن يك Type جديد



Hamid_PaK
شنبه 11 تیر 1384, 23:51 عصر
چطوری میشه یک چیزی شبیه به Type یا مثل اون تعریف کرد که بتونیم باهاش یک سری اطلاعات رو داخلش ضبط کرد . . .
مثل اینکه یه فایل ZIP درست کرد . . .
یعنی یه Header داشته باشه بعد اطلاعات داخلش باشه ؟؟؟

Delphi_Developer
یک شنبه 12 تیر 1384, 00:13 صبح
یعنی میخوای از اطلاعات برنامت یه فایل بسازی ؟

brians2000
یک شنبه 12 تیر 1384, 01:10 صبح
بستگی داره بخوای چی تعریف کنی! :)) اگر می خواخی ذخیره اطلاعات داشته باشی فقط بانک اطلاعاتی (چیزی که فراوونه) اما اگر می خواهی مثلا یه فرمت خاص داشته باشی باید کار با فایلینگ رو بلد باشی... در حقیقت خوندن فایلها بستگی داره که ریفرنست چی باشه... مثلا اگر فرمتهای گرافیکی که اینهمه روتین برای خوندن نوشتن هست که! :)) هرچی بخوای مجانی هست! عزیز دل برادر اگر چیز دیگه می خواهی مثلا ": یه فایل ناشناس رو بخونی... باید ریورس انژینیرینگ رو بلد باشی یعنی لاجیک فایل رو بفهمی ... من بارها اینکارو کردم بخصوص سخت افزارهای چینی و تایوانی که برای کارهای شرکت هواپیمایی امارات اومده بود هیچی نداشت و ناچار شدم لاجیک فایل رو در بیارم (کار وقت گیر اما لذت بخش! ) .. اگر ریفرنس داری باید از رو اون فایل رو بایت به بایت بخونی و دیکود کنی... انکود یه فرمت جدید هم اصولی داره که باید اونرو آنالیز کنی و مرتب کنی همینجوری هیچکاری نمی شه کرد... ثانیا باید بطور کلی کار با فایلهای باینری رو یکم کار کرده باشی... !!! اکثرا به کار نمیاد...

چند تا مثال: مثلا فرمت بیتمپ در حافظه برعکس قرار می گیره! هدر اون اندازه فرمت و خصوصیات عمومی فایل مثلا اینکه از نوع او اس 2 یا ویندوز هستش رو داره! دپت بیتی و اندازه رو که خوندی فایل رو تو مموری لود می کنی (نیاز نیست حالا بنویسی چون اصلا استاندارد وجود داره مثال زدم) دیکود یه فایل منطق خاص خودشو داره ... در هر وضع من به شخصه در همه برنامه ها فرمت ها رو طوری طراحی می کنم که باز باشه مثلا سیستم دیتا بیسی به نام : پاور ایکس ام ال که یه جور توسعه یافته ایکس ام ال هستش (با هدفهای خاص البته ) رو طوری طراحی کردم که طراحی بازی داشته باشه و نوشتن و خوندن اون از هر محیطی امکان پذیر باشه! ... طراحی فرمت و خصوصیاتش نزدیک یک ماه طول کشید تا انژین ها کامل شدند...تمامی اینترفیس ها و رابطهای کاربر هم طراحی شد ... پس اگر چیز جدیدی هم می خواهی تولید کنی باید وقت بگذاری و دقیق طراحی کنی... در هر وضع : در حال حاضر خیلی از اطلاعات رو به صورت همین پاور ایک ام ال و یا ایکس ام ال ذخیره می کنیم تا دسترسی به اون ها ساده باشه.

در نهایت:باید یه هلو وورلد براش بنویسی.

Hamid_PaK
یک شنبه 12 تیر 1384, 11:56 صبح
Brians با تشکر فراوان که بسیار کامل توضیح دادید :D

من کمی متوجه شدم اما اگه امکان داره کمکم کنید !
من میخوام که یک سری اطلاعات (مثل تصاویر) به کمک کمپرسور ZLIB
انکود کرده و بطوری دنبال هم بچسبونم که بتونم بعدن هرکدوم رو فراخوانی کنم ؟؟؟

PalizeSoftware
دوشنبه 13 تیر 1384, 02:14 صبح
خیلی ساده همه رو بدنبال هم بچسبون ولی یک فایل ایندکس بساز که آدرس شروع هر بخش رو در اون نگهداری کنی که بعد بتونی استخراج کنی.
:sunglass:

Hamid_PaK
دوشنبه 13 تیر 1384, 12:22 عصر
میشه یه Sample برام بفرستید ؟
البته من مشابه این رو دیدم اما کمپرس نبود (TCollection)

::نوشتن::

brians2000
دوشنبه 13 تیر 1384, 22:43 عصر
دو روش برای ایندکس یک فایل وجود داره... یکی اکسترناله که باعث میشه اطلاعات توی چند تا فایل تقسیم بشه یکی لینک لیسته و به عبارت بهتر شما میای اندازه هر بخش رو تو هدر خودش می ریزی مثل :‌ اندازه و نام و تایپ بخش بعد می تونی به بخش بعدی بری... یه چیزی شبیه مایم ولی نکته مهم اینه که باید طوری بنویسی که در صورت خراب بودن فایل بتونی ایرادهارو تصحیح کنی نه برنامه ات بیفته توی لوپ! شروع بخش بعدی چیه؟‌ شروع بخش فعلی به علاوه اندازش... خیلی روش ساده و راحتیه!‌