دربارهٔ من:
آخرین نظردهندگان:
- Anonymous دربارهٔ تماشای ریحان
- لیام دربارهٔ @hrmoh
- سمانه ، م دربارهٔ @hrmoh
- M دربارهٔ شرح یک تجربه: سیانوژن روی گوشی LG Optimus 4X
- مسعود دربارهٔ @hrmoh
مشترک شوید:
ایمیل خود را در جعبهٔ زیر وارد کنید و دکمهٔ اشتراک را بزنید.
جستجو:
گنجور در ایرانصدا
۸۹/۱۱/۱۹چهارشنبه بیستم بهمن، ساعت ۱ بعدازظهر در برنامهٔ زندهٔ رادیو-تیوی اینترنتی ایرانصدا حضور خواهم داشت، موضوع بحث مرتبط با گنجور است. اینجا در این باره بیشتر بخوانید.
رابط برنامهنویسی گنجور رومیزی – بخش دوم
۸۹/۱۱/۱۰در ادامهٔ بحث نوشتهٔ پیشین در این نوشته به عنوان یک نمونهٔ عملی از نحوهٔ استفاده از رابط برنامهنویسی گنجور رومیزی، من قسمتی از یک فایل docx در دسترس از طریق سایت تصوف ایران -مربوط به اشعار وحدت کرمانشاهی- را به کمک تکه کدی که شرح آن در ادامه میآید به قالب گنجور رومیزی تبدیل کردهام (اصل فایل اینجاست، من آن را دریافت کردهام، با کمک ورد ۲۰۰۷ با پسوند docx ذخیره کرده و آن را در فایل زیپ پروژهٔ مربوط به این مطلب -قابل دریافت از این نشانی– گنجاندهام، بهروزآوری: پروژهٔ بهروز شده را میتوانید از گیتهاب دریافت کنید، از اینجا).
برای انجام این کار باید علاوه بر ویژوال استودیو (با امکان برنامهنویسی برای سکوی .NET ویرایش ۳.۵ یا ۴) کتابخانهٔ برنامهنویسی OpenXML را نیز نصب داشته باشید. این کتابخانه را از این صفحه دریافت و نصب کنید (OpenXMLSDKv2.msi با حجم کمتر از ۴ مگابایت برای مقصود مورد نظر ما کافیست، البته پیشنیاز نصب این کتابخانه سکوی .NET ویرایش ۳.۵ با سرویس پک ۱ است).
پس از نصب کتابخانهٔ یاد شده و ایجاد پروژه، ارجاع متناظر با آن را به فهرست ارجاعهای پروژه اضافه میکنیم تا فضاهای نام مورد نیاز در دسترس قرار گیرند.
برای پیادهسازی تبدیل مورد نظر لازم است الگوی تایپ فایل ورودی را استخراج کنیم. با بررسی ظاهر فایل ورودی الگوی عمومی زیر را مشاهده میکنیم:
بنابراین در ترتیب معمول بازخوانی محتوای این فایل (چگونه فایل تایپ شده): هر مصرع در تمام سلولهای حاوی متن از مصرعهای دیگر با یک break جدا شده است. محتوای سلول اول جدول (۱)، مربوط به مصرعهای اول ابیات است، بعد از این سلول، سلولی خالی داریم (۲)، محتوای سلول بعدی (۳) مربوط به مصرعهای دوم ابیات است، بعد یک سلول خالی (۴) (استثنایی وجود دارد که توضیح میدهم)، بعد سلولی شامل دو مصرع متوالی که مربوط به بیت تخلص شاعر است (۵) و پس از آن تا شعر بعدی یک سلول خالی دیگر داریم (۶).
پس ما در هنگام تبدیل فایل ورودی در هر لحظه انتظار یکی از سه نوع سلول جدول مصرعهای سمت راست، چپ یا وسط را میکشیم:
رابط برنامهنویسی گنجور رومیزی – بخش اول
۸۹/۱۱/۰۵یکی از نکاتی که شاید به کار برنامهنویسانی بیاید که دوست دارند در گسترش دامنهٔ دادههای گنجور با استفاده از گنجور رومیزی مشارکت کنند این است که بدانند تنها راه تبدیل منابع اینترنتی یا فایلهای موجود به فرمت گنجور رومیزی کپی دستی اشعار از این منابع در ویرایشگر گنجور رومیزی نیست و میتوان با استفاده از C# یا هر یک از دیگر زبانهای .NET تقریباً به آسانی فایلهای مناسب برای نمایش در گنجور رومیزی را ساخت.
البته همانطور که احتمالاً این دسته از دوستان مطلعند فایلهای گنجور رومیزی در واقع پایگاه دادههای SQLite هستند و راه متداول برای ایجاد آنها به کمک زبانهای برنامهنویسی، استفاده از دستورات SQL است که نیازمند بازبینی ساختار پایگاه دادههای برنامه و به دست آوردن روابط بین جداول است. اما روشی که در این نوشته در مورد آن توضیح خواهم داد آسانتر است.
مقدمهٔ کار در ویژوال استودیو، اضافه کردن یک ارجاع به اسمبلی ganjoor.exe است (فایل اجرایی گنجور رومیزی که در مسیر نصب برنامه قرار دارد) تا فضای نام ganjoor در برنامه در دسترس قرار گیرد.*
[code lang=”c#”]
using ganjoor;
[/code]
پس از این کار به کلاس اصلی مدیریت دادهها در گنجور رومیزی که DbBrowser نام دارد دسترسی داریم. تکهکد زیر -که به نظرم به اندازهٔ کافی گویاست- نشان میدهد که چگونه میتوان با استفاده از این کلاس (و کلاسهای جانبی فضای نام ganjoor که اطلاعات دادهها را در خود دارند) یک فایل سادهٔ gdb یا s3db ساخت که گنجور رومیزی توانایی نمایش اطلاعات آن را دارد: