kibeki_ini.pngبرنامه نویسی که می کنی، انتخاب فرمت فایل نکته بسیار مهمی ه. زمانی که هنوز ساختارهای داده ای نهایی نشده اند استفاده از فایل باینری چندان راحت نیست، چون با اضافه کردن هر فیلد جدید باید مراقب باشی که ساختار نامناسب رو از فایل نخونی. به این دلیل، و به دلایل دیگه، مدتهاست از فرمت ini بکرات استفاده می کنم.

فایلهای ini فایلهای متنی ساختارداری هستند که در اونها میشه Section و Key تعریف کرد. به این ترتیب میشه براحتی اطلاعات متنی-عددی رو در یک فایل با ساختار مناسب ذخیره کرد. در سالهایی که برنامه نویسی کردم، و همین حالا هم، اکثر فرمت فایلهایی که تعریف کردم عملا ini بودند.

نکته حاشیه ای اینه که Delphi ساختاری به نام Tinifile داره، اگر اشتباه نکنم، که فایلهای ini رو پشتیبانی می کنه. مشکل اما اینه که این ساختار فقط ۶۴K اطلاعات رو می تونه ذخیره کنه. به همین دلیل سالها پیش ساختاری تعریف کردم به نام Mini که تمام کارهای Tinifile رو انجام می ده بدون اینکه محدودیت حجمی داشته باشه. فایلهای مورد استفاده در “کی به کیه؟” هم همگی Mini هستند. شکل روبرو قسمت ابتدایی یک فایل نوعی  ini رو نشون می ده که توسط این ربات ساخته شده. تا اینجای فایل دو Section وجود داره و کلا پنج Key.

گفتم که شدیدا مشکل دارم با سرعت خوانده و نوشته شدن فایلها (ببینید: من و سگ و الهه دلفی و بانک اطلاعاتی). امشب، یا در واقع دیشب، در حالیکه در سرمای -۲۰ و دقیقا در ساعت ۱۲ نیمه شب پیاده از دانشگاه به خونه می اومدم بنظرم رسید که شاید مشکل همین Mini باشه. نکته اساسی اینه که هربار نوشتن در Mini مستلزم جستجو برای Section و Key مربوطه است. خوندن هم به همین ترتیب کار سنگینی ه.

kibeki_ot.pngایده ام این بود که بیام به جای فایل بسیار “خوشگل”ی که Mini درست می کنه از یک فایل بدون ساختار استفاده کنم. یعنی فایلی که عملا چیزی نیست جز خط به خط نوشته اطلاعات. اینطور بود که ساختاری نوشتم به نام Mot یا Ordered Text. مجموعه کامل اطلاعات “کی به کیه؟” رو اینجا ندارم اما آزمایش با اطلاعات کمتر نشون می ده که شاید نیازی به استفاده از یک بانک اطلاعاتی نباشه. این یعنی احتمالا یکبار دیگه از یادگرفتن بانک اطلاعاتی جستم. شکل روبرو یک فایل  ot رو نشون می ده. این فایل دقیقا نظیر فایل iniی است که در بالا نشان داده شده. بوضوح این فایل بسیار سریع تر خوانده و نوشته می شه.

اینجاست که معلوم می شه خوشگلی خرج داره و گاهی اوقات کمی بی ریختی هم همچین بد نیست. فردا باید تست کنم کد جدید رو. دعا بفرمایید بی زحمت.