به نام خدا

نرم‌افزار‌هايي از سيدمهدي موشَّح (۳۶ مورد)

خيلي سخت است، باور بفرماييد سخت است. براي يك برنامه‌نويس سخت است كه سورس نرم‌افزار خود را در اختيار ديگران قرار دهد. سورس، تمام خلاقيت و نوآوري يك برنامه‌نويس است، تمام ريزه‌كاري‌هايي كه در كار خويش ابداع كرده. وقتي دست ديگر برنامه‌نويسان بيافتد، دستش رو مي‌شود. تكنيك‌هايش لو مي‌رود.
بر اين حسّ خود غلبه كردم؛ بخل، گفتم هر چه سورس دارم بگذارم روي اينترنت، بلكه يك نفري يك جايي يك روزي بي‌نياز شود از اين‌كه دوباره فكر كند و دوباره كد بنويسد. همين هم ثواب دارد و اجرش مي‌ماند پاي آن‌كه بار اول اين راه را رفته و ابزاري فراهم نموده است. اميد به كار آناني بيايد كه خادم اسلام هستند و به كار مسلمين اهتمام مي‌ورزند.
۱. كنترل تبديل كلمه به ابجدبا زبان VB۶ نوشته‌ام. اولين زبان تحت ويندوزي كه ياد گرفتم، سال ۱۳۷۷. پروژه۲ را كه باز كنيد، يك كنترل است. وقتي از آن خروجي بگيريد،‌ يك فايل OCX در اختيار شما مي‌گذارد كه مي‌توانيد در هر نرم‌افزار ديگري از آن استفاده كنيد، البته ابتدا بايد رجيسترش كنيد در ويندوز. دستور regsvr۳۲ براي اين كار قابل استفاده است. پس از اين كار، پروژه۱ قابل اجرا خواهد بود، زيرا يك كاربرد از همين كنترل اكتيوايكس است. قصد داشتم پس از بخش تبديل «واژه» به «ابجد» يك بخش ديگر هم بنويسم براي تبديل «ابجد» به «واژه». براي همين قسمت زير كنترل را طراحي كردم. هدفم اين بود كه مجموعه‌اي از كلمات را در نرم‌افزار قرار دهم كه با دادن يك عدد، تركيبي از اين كلمات به كاربر ارائه نمايد. بيشتر هم به هدف كمك به كساني كه در اشعارشان معمولاً از ماده تاريخ استفاده مي‌كنند. ولي ديگر فرصت نشد و اين كار را به پايان نرساندم.
ضمائم: ۱ فايل۷۷۶ دانلود
۲. نمودار بيوريتم يا زيست‌چرخه‌هابرنامه را براي آزمايش و تست نوشتم تا واقعيت بيوريتم را تجربه كنم، موضوعي كه تازه مطرح شده بود و توجهات را جلب كرده. با VB.Net نوشته شده است. سه زيست‌چرخه قدرت فيزيكي، احساسات و عواطف و نيروي تفكر را نشان مي‌دهد، پس از اين‌كه تاريخ تولد را در جعبه پايين نرم‌افزار وارد كرده و دگمه Show را كليك كنيد. وضعيت اين سه زيست‌چرخه را تا يك هفته بعد و يك هفته قبل از روز جاري محاسبه مي‌كند. در اين نرم‌افزار از توابع تقويم خود دات‌نت استفاده كردم كه دقت بسيار بالايي دارد. دات‌نت از يك نگارشي به بعد تقويم شمسي را در توابع خود به كار گرفت. اطلاعات بيشتر درباره توابع تقويم شمسي در دات‌نت را مي‌توانيد از اين نشاني به دست بياوريد: http://rastan.parsiblog.com/posts/۵۱۸ اين نرم‌افزار را پيش از اين در نشاني http://rastan.parsiblog.com/posts/۲۲۵ معرفي كرده بودم. مي‌توانيد اطلاعات بيشتر را از اين نشاني دريافت كنيد.
ضمائم: ۲ فايل۱۵۸۱ دانلود
۳. نصب‌كننده نرم‌افزار Installerوقتي نرم‌افزار بُشري را براي دفتر مطالعات و تحقيقات زنان نوشتم (امروز نام آن به مركز مطالعات زن و خانواده تغيير كرده است) نياز به يك نرم‌افزاري پيدا كردم كه نرم‌افزار را در رايانه كاربر نصب كند. دلم نمي‌خواست از ابزارهاي آماده استفاده كنم. دوست داشتم يك چيز ايراني و خودي به زبان فارسي بنويسم و البته نوشتم و همراه آن نرم‌افزار منتشر شد. بعدتر همان نرم‌افزار نصب‌كننده را كلّي‌تر كردم، به نحوي كه قابل كاستومايز و شخصي‌سازي باشد. اين همان است. در شاخه setup فايل cd.inf قرار دارد كه تمامي اطلاعات شخصي‌سازي در آن ثبت مي‌شود. نام سي‌دي، مسير پيش‌فرض نصب، نام شاخه‌اي كه ساخته شده و نرم‌افزار در آن كپي مي‌شود و همچنين فايلي كه بايد اجرا شود، پس از تكميل نصب. دستوراتي نيز وجود دارد براي ساختن ميان‌بر و رجيستر كردن كنترل‌ها. فايل‌هاي كپي‌شونده نيز در شاخه data قرار مي‌گيرند. در حقيقت تمام موجودي شاخه ديتا در پوشه‌اي كه در مسير داده شده ساخته مي‌شود قرار خواهد گرفت. اين يك ابزار كوچك و ساده است كه به كمك آن مي‌توان به سرعت نرم‌افزار مورد نظر خود را روي سي‌دي ريخته و آمده نصب تحويل كاربر داد.
ضمائم: ۱ فايل۷۷۵ دانلود
۴. فهرست‌برداري از سي‌ديحجم سي‌دي‌هاي مؤسسه زياد شده بود. پيدا كردن نرم‌افزار سخت مي‌شد. دوستان ما وقت زيادي مي‌گذاشتند تا يك نرم‌افزار خاصي را براي نصب پيدا كنند. همان زمان بود كه اين ايده به ذهنم رسيد و اين نرم‌افزار را نوشتم. ابزار كوچكي‌ست. ساده كار مي‌كند. يك درايور را انتخاب مي‌كني و دگمه را كه بزني، فهرستي از تمام فايل‌ها و پوشه‌هاي داخل آن نمايش مي‌دهد. با اين ابزار توانستيم فهرستي از محتواي تمامي سي‌دي‌ها تهيه نموده و با جستجو در آن، فايل مورد نظر را پيدا كنيم. البته كه امروز ابزارهاي مفصل‌تري وجود دارد. ولي آن روز نبود، يا در دسترس ما. اين شد كه طراحي كردم، با زبان VB۶ هم هست.
ضمائم: ۱ فايل۷۰۷ دانلود
۵. ابزار مستقل كامنت‌گذاري در سايتسايت نشريات نهاد نمايندگي را كه طراحي كردم، خواستند ابزاري براي كامنت‌گذاري هم ذيل هر مطلب وجود داشته باشد. چنين شد كه اين ابزار مستقل را با asp كلاسيك نوشتم. زباني كه آن روز در اختيار ما بود. چرا مي‌گويم مستقل؟ چون يك ديتابيس مستقل دارد و هيچ وابستگي به سايت اصلي ندارد، جز يك كد كه به مطلب مورد نظر در سايت اصلي ارجاع مي‌دهد. من اين ابزار را بعدتر در سايت عماد و امتداد نيز استفاده كردم. براي نصب آن كافيست فايل rate.asp را در قالب يك iframe در صفحه مورد نظر درج نماييم و كد مطلب را با عنوان Art به صورت كوئري به آن پاس كنيم. در اين صورت ابتدا تمام كامنت‌هاي تأييد شده آن كد را نمايش داده و سپس جعبه ارسال كامنت را در اختيار كاربر مي‌گذارد. صفحات ديگري براي مديريت كامنت‌ها وجود دارد كه در بخش مديريت سايت مي‌تواند قرار داد و استفاده كرد. اين ابزار با آژاكس كار نمي‌كند، ولي رفتاري مشابه آژاكس دارد و فعاليت‌هاي آن دور از چشم كاربر انجام مي‌شود. فايل fc.asp شامل تمامي توابع اصلي برنامه است. شاخه Theme نيز حاوي قالب نمايشي ابزار كامنت است كه متن‌ها در اين قالب چيده شده و نمايش داده مي‌شود. فايل db.asp هم محتوي رمز ديتابيس و اطلاعات اصلي اتصال به آن است.
ضمائم: ۱ فايل۷۲۷ دانلود
۶. يافتن تصاوير ناقصي كوچك و بزرگسايت مؤسسه پارسا از هر كتاب دو نسخه تصوير داشت؛ يكي بزرگ و يكي كوچك. دوستي كه مسئول تصويربرداري از كتاب‌ها بود، وظيفه داشت نسخه‌هاي كوچك را هم بسازد و با يك پيشوند خاص در شاخه‌اي ديگر نگهداري كند. گاهي از دستش در مي‌رفت و تصاوير كوچك كم مي‌آمدند و آن وقت بايد در ميان هزاران فايل، با چشم مي‌گشت تا ناقصي‌ها را پيدا كند. اين برنامه نشاني دو پوشه را از فايل path.ini مي‌گيرد و فهرست‌برداري مي‌كند. فهرست‌ها را با هم مقايسه كرده و نواقص تصاوير كوچك و بزرگ را به تفكيك نشان مي‌دهد. اين برنامه كمك زيادي به روند اتوماسيون در بخش فني مؤسسه نمود. برنامه در چارچوب VB۶ نوشته شده است.
ضمائم: ۱ فايل۸۰۸ دانلود
۷. حذف پيشوند از نام فايل‌هاي تصويرهر كتابي كه وارد سامانه مؤسسه پارسا مي‌شد به بخش فني مي‌آمد و مسئول مربوطه از جلد آن تصوير مي‌گرفت. يك نسخه كوچك از اين تصوير با پيشوند thm_ به عنوان نسخه بندانگشتي به كار مي‌رفت تا در فهرست‌ها نمايش داده شود. اين نرم‌افزار را با VB۶ نوشتم تا بتواند پيشوندها را حذف نموده يا اضافه نمايد. با داشتن سورس نرم‌افزار مي‌توانيد هر تغييري را در كدها ثبت نماييد تا پس از اجرا روي فايل‌هاي شما انجام دهد.
ضمائم: ۱ فايل۷۲۵ دانلود
۸. فروشگاه كتاب عمادپنج رده از مديريت دارد با دسترسي‌هاي مختلف. تمام صفحات و ابزارهاي لازم براي معرفي و فروش كتاب. ويژگي‌هاي نرم‌افزار در نشاني http://movashah.ir/fa/index.php?w=work&x=۵۲۱ ذكر شده است. پوشه Theme حاوي تمامي قالب‌هاي صفحات است. هر صفحه يك قالب مختص به خود در اين شاخه دارد كه با خود آن فايل هم‌اسم است. شبيه به آن‌چه در دات‌نت به صورت خودكار انجام مي‌شود. اما اين‌جا با asp كلاسيك نوشته شده. استثنائاً ابزار اتصال به بانك سامان براي پرداخت مالي با VB.Net نوشته شده است، بعدها. كانكشن‌هاي ديتابيس در فايل db.asp قابل تنظيم است.
ضمائم: ۱ فايل۹۰۳ دانلود
۹. فروشگاه آماده استفاده CMSنرم‌افزاري كه براي سايت عماد نوشتم خيلي موفق بود. كاربري آساني داشت و به راحتي نصب و راه‌اندازي مي‌شد. به دليل مبتني بودن بر قالب، به سادگي هم مي‌شد ظاهر آن را تغيير داد. روي همان سايت عماد، به درخواست كارفرما، چند بار تمام تم سايت را تغيير دادم. بعدتر، يكي از دوستان فروشگاهي مشابه عماد خواست. اين‌بار نشستم و با اعمال تغييراتي در اين سايت، آن را به صورت CMS درآوردم. ديگر وابسته به مختصات عماد نبود و با هر عنواني مي‌شد استفاده كرد. چندين نسخه براي مشتريان مختلف نصب كردم و استفاده شد. اين نسخه همان نسخه عمومي شده است. اگر چه باز هم سورس سايت تحت سكوي ASP كلاسيك است، ولي ديتابيس از اكسس به SQL Server ارتقا يافته است. توضيحات بيشتر را در معرفي نرم‌افزار فروشگاه كتاب عماد بخوانيد.
ضمائم: ۱ فايل۸۰۱ دانلود
۱۰. ابزار فارسي‌نويسي در سايتسايت دفتر مطالعات و تحقيقات زنان را كه طراحي مي‌كردم نياز شديدي به يك ابزار فارسي‌ساز كوچك داشتم، براي استفاده در جعبه جستجوي سايت. چرا؟! زيرا آن زمان هنوز بيشتر كاربران از ويندوز ۹۸ انگليسي استفاده مي‌كردند و صفحه كليد فارسي روي خيلي از رايانه‌ها نبود. قبل‌تر در مؤسسه پارسا يك صفحه كليد مجازي فارسي درست كرده بودم كه ظاهري شبيه به صفحه كليد واقعي داشت. با تعداد زيادي دگمه كه با موس كار مي‌كرد. اما اين‌بار دلم نمي‌خواست يك صفحه كليد مقابل چشم كاربر قرار دهم. بعدتر وقتي سرويس پارسي‌بلاگ را طراحي مي‌كرديم، كارفرما چنين ابزاري را براي تمامي جعبه‌ها خواست. من هم ابزار قبلي را آوردم و ساعت‌ها كار كردم تا ارتقا يابد و روي تمامي مرورگرها كار كند. ابزارهاي بيشتري به آن افزودم و اين چيزي شد كه همچنان در اين سرويس وجود دارد. آخرين بار در سال ۱۳۸۸ آن را ويرايش كردم تا با آخرين تغييرات مرورگرها هماهنگ شود. يك فايل جاوااسكريپت است كه در صورت قرار گرفتن لينك آن در داخل صفحه HTML ابزارك كوچكي را در كنار تمامي جعبه‌هاي داراي مشخصه lang=fa قرار مي‌دهد. كليك كردن روي اين ابزارك كوچك، صفحه كليد را از انگليسي به فارسي تغيير مي‌دهد.
ضمائم: ۱ فايل۷۲۹ دانلود
۱۱. بازي فكربكر فارسي تحت داسدر نشاني http://rastan.parsiblog.com/Posts/۷۰۳ معرفي كردم اين بازي را. دبيرستان بودم كه تحت QBasic آن را نوشتم. خيلي خوب هم كار مي‌كرد. براي فارسي شدن نيمه دوم كدهاي اسكي هم از نرم‌افزار قرآني مركز نور استفاده كردم. فايل FEKER.BAT را كه اجرا كنيد، ابتدا قرآن تحت داس اجرا مي‌شود و كدها را فارسي مي‌كند. برنامه قرآن را ببنديد تا به صورت خودكار برنامه در مفسّر بيسيك اجرا شود. كد اصلي در فايل feker.bas است. ولي كدهاي ديگري نيز در ساير فايل‌هاي bas وجود دارد كه تست‌هاي اوليه مرا براي ايجاد انيميشن و حركت در بيسيك نشان مي‌دهد.
ضمائم: ۱ فايل۷۶۴ دانلود
۱۲. مرتب‌ساز كدهاي HTMLوقتي در مؤسسه پارسا HTML مي‌نوشتيم، كدها معمولاً به هم مي‌ريخت و از خوانايي مي‌افتاد. خصوصاً با بلايي كه InterDev مايكروسافت سر كدها مي‌آورد. آن روزها ابزاري نبود كه كدها را مرتّب نمايد. امروز البته هست. حتي آن‌لاينش هم هست. بيشتر اديتورها هم خودشان انجام مي‌دهند، ولي آن روز، احساس كردم به آن نياز دارم. اين نرم‌افزار را با VB۶ نوشتم. بيشتر فرم‌ها را طراحي كردم و الگوي كار را هم روي كاغذ آماده كرده بودم. تمام فرم‌ها و بخش‌ها را روي كاغذ كشيده و پيش‌بيني كردم. ولي وقتي رفتم سر كدنويسي، ناگهان تغيير سمت يافتم در مؤسسه و شدم سرپرست معاونت فني و آن‌قدر درگير كارهاي مديريتي كه نتوانستم اين پروژه را به اتمام برسانم. اين ابزار قرار بود كدهاي HTML را تحليل نمايد و به صورت كنگره‌دار درآورد.
ضمائم: ۱ فايل۷۴۹ دانلود
۱۳. پيوندزن پارسابيشتر صفحات سايت مؤسسه پارسا HTML بود. فقط چند صفحه اصلي با ASP‌ نوشته شد. وقتي هم هر بخش به روز مي‌شد، ناگزير بوديم تمام لينك‌هاي مرتبط با آن را در تمامي صفحات تغيير دهيم و دستي به روز كنيم. خصوصاً اين‌كه گاهي ناگهان يك پوشه جديد ايجاد مي‌شد و بخشي از ساختار تغيير مي‌كرد و كلّي از لينك‌ها از كار مي‌افتاد. اين را اضافه كنيد به نرم‌افزار اتوماسيون داخل مؤسسه كه آن نيز وب‌بيس بود و گرفتاري تغيير لينك‌ها را داشت. اين پروژه را شخصاً و بدون اطلاع مديران شروع كرده و به اتمام رساندم. ابزاري كه تمام صفحات سايت را باز مي‌كرد و دنبال يك لينك خاصي مي‌گشت و آن را با نسخه جديد جايگزين مي‌نمود. اين نرم‌افزار واقعاً كار مي‌كرد و جواب هم داد. نشان مديران دادم و كارش را هم نشان دادم. ولي ترديد كردند و ترسيدند وسط كار به چيزي در صفحات آسيب برساند. تأييد نشد و از آن هرگز استفاده رسمي نكرديم.
ضمائم: ۱ فايل۸۴۴ دانلود
۱۴. يابنده مشخصات IPهاي ايرانيهمان زمان كه طراحي كردم در نشاني http://rastan.parsiblog.com/posts/۱۳۰ معرفي آن را گذاشتم، همراه با لينك دانلود نرم‌افزار. وقتي نرم‌افزارهاي تحت اينترنت مي‌نويسي، هميشه نگران امنيت هم هستي. هكرها هستند، هميشه. سايت‌هاي مهم را هم مورد هجمه قرار مي‌دهند. نياز داشتم اطلاعات تمام IPهاي ايراني را پيدا كنم. گشتم در اينترنت و پولي بود. يك سايتي پيدا كردم كه تك به تك مي‌داد. نرم‌افزاري نوشتم و تمام اطلاعات را يك شب تا صبح استخراج كرد. اين اطلاعات را در فرمت اكسل در اين نشاني گذاشتم: http://rastan.parsiblog.com/posts/۱۲۳ اين ابزار را هم دم دستي نوشتم. روي ميز كارم باشد و هر وقت يك IP‌ ديدم، توسط آن مشخصات صاحب IP را بيابم.
ضمائم: ۱ فايل۷۵۸ دانلود
۱۵. متن‌ياب - استخراج اطلاعات از بانك جزواتشايد براي شما هم پيش آمده، دسترسي به يك بانك اطلاعات داريد، جستجو مي‌كنيد و متن را در صفحات وب در قالب HTML دريافت مي‌نماييد. طبيعتاً ذخيره مي‌كنيد و بعد كه مي‌خواهيد استفاده كنيد، حجم زيادي مطالب بي‌ربط و تبليغات دورتادور مطلب را گرفته است. من از بانك اطلاعات فرهنگستان علوم اسلامي خيلي استفاده مي‌كردم، وقتي كه آن‌جا بودم، بعد از اين‌كه تمامي حدود هفت هزار جزوه مباحث استاد حسيني (ره) درون اين بانك قرار گرفت. صفحات HTML را كه ذخيره مي‌كردم، اين نرم‌افزار را كنار آن‌ها كپي كرده و يك‌بار اجرا مي‌كردم. فوري تمام صفحات HTML را باز كرده، تگ‌هاي ابتدا و انتهاي متن را پيدا نموده و متن جزوه را استخراج كرده و در فايلي با فرمت TXT ذخيره مي‌كرد. بعد هم فايل‌هاي HTML تبديل شده را به پوشه‌اي با همين نام منتقل مي‌ساخت. سورس اين برنامه به زبان VB۶ است. مي‌توانيد تگ ابتدا و انتها را متناسب با منابع خود تغيير داده و متن‌هاي مورد نظر خود را استخراج نماييد.
ضمائم: ۱ فايل۷۴۴ دانلود