
سلام دوستان
امروز با یک اموزش در خواستی دیگه در کنار شما هستیم
مقدمه :
فایل های ini فایل ای کوچک و بسیار کم حجمی هستند که اکثر سیستم عامل ها از ان پشتیبانی میکنند و یکی از ایده آل ترین روش ها برای ذخیره ی اطلاعات مانند
- ذخیره تنظیمات
- ذخیره مراحل بازی
- ذخیره امتیازات کاربران
- فایل های زبان برای ساخت برنامه چند زبانه
- ذخیره اطلاعات کاربر
- و غیره
می باشد
اما چیزی که برای خیلی ها سوال است اینه که چجوری از این فایل استفاده کنیم و اطلاعات خودمون رو ذخیره کنیم
که در اینجا به صورت کامل به شما یاد میدیم
شروع آموزش :
قبل از شروع اموزش باید با چند تا از مهمترین توابع ini آشنا بشید
اگه متوجه نشدید هم اشکال نداره چون در جلو تر مثال هایی میاریم که بیشتر باهاش اشنا بشید
ini_open
این تابع یک فایل ini رو برای خواندن / نوشتن باز میکنه همچنین اگه در مسیری که بهش داده میشه فایل مورد نظر وجود نداشته باشه . گیم میکر یک فایل به همان نام در آن مسیر میسازه اما فقط در صورتی که بخواید متنی رو در آن بنویسید.
اگه بخواید یک متن رو از داخل فایل بخونید و فایل وجود نداشته باشه احتمالا با خطا مواجه میشوید توجه کنید که شما فقط میتونید روی یک فایل ini به طور همزمان کار کنید و برای باز کردن یک فایل ini دیگر باید از کد ini_close(); استفاده کنید بهتره پس از پایین ذخیره یا خواندن اطلاعات این کد رو استفاده کنید
ini_close
از این کد برای بستن یک فایل ini استفاده میشود اگه شما یک فایل ini رو باز کنید و پس از تغییرات فایل را نبندید هیچ چیزی بر روی حافظه ذخیره نمیشود و اطالاعات فقط در Ram باقی میمانند همچنین اگه شما قبل از بستن فایل ini یک فایل جدید باز کنید با خطا رو به رو میشوید همچنین این کد یک متن نهایی نیز بر میگردونه که برای استفاده و ذخیره ان در سرور های انلاین استفاده میشه و در بازی های افلاین کاربردی ندارد [/toggle]
ini_write_real , ini_read_real
از این دو کد به ترتیب برای خواندن یک عدد و نوشتن یک عدد در فایل ini استفاده میشه و بیشتر برای ذخیره امتیازات خوبه
ini_write_string , ini_read_string
از این دو کد به ترتیب برای خواندن یک متن و نوشتن یک متن در فایل ini استفاده میشه و بیشتر برای ذخیره اطلاعات کاربران خوبه
خوب اینا مهمترین کد های کار با ini بودن البته بقیه کد ها رو نیز برای یادگیری بهتر به شما در اخر اموزش میگیم
ادامه اموزش رو در قالب یک مثال به شما یاد میدیم
یک object جدید بسازید و به event : create کد زیر رو اضافه کنید
score = 1000;
ini_open( 'savedata.ini' );
ini_write_real( 'save1', 'Score', score );
score2 = ini_read_real( 'save1', 'Score', 0 );
ini_close();
در مثال بالا ما ابتدا یک متغییر از نوع عددی ساختیم و در اون امتیاز کاربر رو ذخیره کردیم ( الکی مثلا امتیاز کاربر ۱۰۰۰ بوده. شما میتونید یک امتیاز واقعی ذخیره کنید )
بعد از کد ini_open استفاده کردیم و یک فایل رو برای ذخیره ی اطلاعات باز کردیم savedata.ini هم اسم فایله که میتونه هر اسمی باشه همچنین میتونید ادرس محل ساخت فایل رو هم بهش بدید مثلا میتونید از کد
working_directory
استفاده کنید . کد بالا مقدار متفاوتی رو بر میگردونه مثلا در ویندوز مسیر زیر رو بر میگردونه
“%LOCALAPPDATA%/gamedir/”
gamedir اسم بازی شماست
نمونه کد :
ini_open(working_directory + "temp_ini.ini");
زیاد خودتون رو در گیر کد بالا نکنید
خوب ادامه اموزش
در خط بعد ما از ini_write_real که در بالاتر گفتیم برای ذخیره اعداد استفاده میشه استفاده کردیم
این کد سه تا Argument رو میگیره
اولیش section یا به فارسی ” بخش ” نام دارد و برای گروه بندی اطلاعات استفاده میشه و یه چیزی مثل دسته بندیه
مثلا شما فایل ini رو به سه بخش تقسیم میکنید به نام های تنظیمات و اطلاعات کاربر و امتیازات
و اطلاعات مربوط به هر کدوم رو در اون بخش ذخیره میکنید
در مثال بالا ما اسم بخش رو save1 نام گذاری کردیم
دومین Argument کلید یا key نام دارد و برای پیدا کردن اطلاعات کاربرد داره
مثلا شما برای ذخیره نام کاربر کلید “user_name” رو قرار میدهید و مقدار اونو برابر با نام کاربر قرار میدید
بعدا اگه خواستید اسم کاربر رو دریافت کنید متونید با یک بزنید تا مقدار کلید user_name رو براتون بر گردونه
در اینجا کلید برابر با Score میباشد
و Argument بعدی مقداری که میخوایم ذخیره کنیمه در اینحا گفتیم متغییر score رو ذخیره کنه که برابر با ۱۰۰۰ قرار داده بودیم . میتونید خودتون به صورت دستی ۱۰۰۰ رو وارد کنید
در کد بعدی امدیم و مقداری که ذخیره کردیم رو دوباره از رو فایل ini خواندیم البته میتونید این کار رو در یک کد جدا انجام بدید
ما در اینجا به خاطر اموزشی بودن کد همزمان هم یه متغییر رو ذخیره کردیم و همزمان اونو خواندیم و در متغییر score2 ذخیره کردیم
سپس فایل ini رو بستیم تا اطلاعاتی که نوشتیم ذخیره بشه
برای تست کردن میتونید بزنید متغییر score2 در draw نشان داده بشه
اگه متغییر مقدار ۱۰۰۰ رو نشان داد یعنی این که فایل کار میکنه
چون فقط در صورتی که امتیاز ذخیره بشه میتونه اونو بخونه و نشان بده در غیر این صورت ارور میده
برای ذخیره متن هم میتونید مشابه همین عمل کنید فقط باید از کد
ini_read_string و ini_write_string
استفاده کنید
توضیح تصویری از خروجی :
در عکس بالا که از یک فایل ini عکس گرفته شده
متن داخل کروشه [ ] همون بخش ها هستند و sound و music و … همون کلید ها یا key ها هستند و مقدار جلوشون هم که گفتن نداره
همچنین بهتره کد های زیر رو هم یاد بگیرید
کد :
ini_key_delete(section, key);
برا وقت هایی که میخواید یک کلید رو حذف کنید مثلا در مثل بالا ما میتونیم با کد زیر مقدار Score رو حذف کنیم
ini_open('savedata.ini');
ini_key_delete('save1','Score');
ini_close();
کد :
ini_key_exists(section, key);
برای این استفاده میشه که ببینیم کلید مورد نظر قبلا ساخته شده یا نه
مثلا چک کنیم ببینیم قبلا Score کاربر ذخیره شده یاد نه
کد :
ini_section_delete(section);
برای این استفاده میشه که یک بخش رو به طور کامل حذف کنیم
مثلا تمام تنظیمات کاربر رو به صورت یک جا حذف کنیم
یا تمام امتیازات ذخیره شده
در مثال زیر ما تمام بخش save1 رو حذف میکنیم
ini_open( 'savedata.ini' );
ini_section_delete( 'save1' );
ini_close();
تقریبا اموزش تمام شد فقط باید چند تا نکته رو به شما بگم
اول این که برای این که بتونید در فایل ini هر متنی با هر زبانی رو بنویسید باید اول یک فایل به صورت دستی به فرمت utf-8 بسازید و بعد فایل های بعدی رو بر روی ان بنویسید تا از زبان های مختلف پشتیبانی شود
البته این مورد برای ما کاربرد نداره چون گیم میکر از زبان فارسی پشتیبانی نمیکنه پس کاربردی هم نداره که در ini فارسی بنویسیم
نکته بعدی هم اینه که اگه محل ذخیره فایل رو چیزی قرار ندید
در سیستم عامل های متفاوت در جا های متفاوت ذخیره میشه مثلا در اندروید در مسیر android/data ذخیره میشه
در اخر اگه مشکل کوچیکی با آموزش داشتید در بخش نظرات و اگه مشکل بزرگی داشتید :d در انجمن اعلام کنید تا بهش رسیدگی بشه
خسته نباشم
مطالب وب سایت Dev-Iran :
کپی و رایت مطلب به تیم Dev-Iran.ir باز میگردد که در حال حاضر صاحب امتیاز این وب سایت گروه اوکسو می باشد.