برنامه نویسی ویندوز

طراحی و تولید برنامه های کاربردی ویندوز ...

هین سخن تازه بگو تا دو جهان تازه شود
وارهد از حد جهان بی‌حد و اندازه شود
گونه ی من سرخ نشد بی‌مدد لعل لبت
بی تو اگر سرخ شود از اثر غازه شود

سال نو مبارک بادت...

92/12/21 | |

هر که دلارام دید از دلش آرام رفت چشم ندارد خلاص هر که در این دام رفت
یاد تو می‌رفت و ما عاشق و بی‌دل شديم پرده برانداختی کار به اتمام رفت
ماه نتابد به روز چیست که در خانه تافت سرو نروید به بام کیست که بر بام رفت
مشعله‌ای برفروخت پرتو خورشید عشق خرمن خاصان بسوخت خانگه عام رفت
عارف مجموع را در پس دیوار صبر طاقت صبرش نبود ننگ شد و نام رفت
گر به همه عمر خویش با تو برآرم دمی حاصل عمر آن دمست باقی ایام رفت
هر که هوایی نپخت یا به فراقی نسوخت آخر عمر از جهان چون برود خام رفت
ما قدم از سر کنیم در طلب دوستان راه به جایی نبرد هر که به اقدام رفت
همت سعدی به عشق میل نکردی ولی می چو فروشد به کام عقل به ناکام رفت

دانلود اهنگ اين شعر با صداي جمال الدين منبري

92/08/25 | |

روزگار تا به اكنون حيران مانده، در بين بيشمار حوادث و اتفاقات خونبارش، اين يكي چيزي ديگر است.

مسئله فقط خون و مرگ نيست، فقط ميداند كه اين چيزي ديگر است...

... و

هنوز ذهن تاریخ را مشغول کرده است
آبی . . . که ســــــرد.....
از دور به لب های عطشان عباس (س) سلام داد

و از لابه لای انگشتانش گذشت... و در شرمساری فرات گم شد...


كرب و بلا چولونده طوفاندير يا محمد

گوندر كفن حسينه، عرياندور يا محمد

گَل كربلا چولونده بير اوغلوا نظر قيل

گول تك يير اوسته جسمي خندان دور يا محمد


92/08/22 | |

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

ترجمه ای از نوشته های: پابلو نرودا

92/02/04 | |

آن لحظه که از نیاز، انسان

دارد نه کم از هوای حیوان

یک دانه گندم طلایی

از تشت طلا گرانبهاتر

در حادثه های ناگهانی

سالم ز مریض مبتلاتر

آسوده مباش که بی نیازی

یک آنِ دگر پر از نیازی

آنجا که تو فرعون زمانی

در تیررس باد خزانی

91/07/26 | |

ساعت ۱۶:۵۳ بیست و یکم مرداد ماه ۱۳۹۱

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

عجب طعم تلخی دارد این مرگ... زنان شیون کنان، پابرهنه و بعضی بی حجاب و کودکان وحشت زده از التهاب بزرگان... یک لحظه قیامت جلوی چشمانم به تصویر کشیده شد، دیگر چشمی به چرانی نمی گشت، رنگها پریده و احساس مرده بود... آنان که ۲۲ روز رمضان را تا به امروز خوردند و خوابیدند آیا امشب فرصت توبه و بیدار شدن در سحر را خواهند داشت؟

91/05/21 | |

هرگاه خدا تو را به لبه ی پرتگاه برد به او اعتماد کن؛زیرا یا پرواز را یادت میدهد یا از پشت تو را میگیرد.

91/04/31 | |

مردان بزرگي مانند اينشتين زندگي زناشويي خوبي نداشتند و اغلب به طلاق انجاميده است. چون واقعاً زن نه هميشه بلكه اغلب مانع پيشرفت مرد است! 


پ ن:

دليل اينكه قاره آمريكا كشف شد اين بود كه كريستفر كلمب زن نداشت چون اگر ميداشت:

کجا داری میری؟ - با کی داری می ری؟ - واسه چی می ری؟ - چطوری می ری؟ - کشف؟ -برای کشف چی می ری؟ - چرا فقط تو می ری؟ - تا تو برگردی من چیکار کنم؟! - می تونم منم باهات بیام؟! -راستشو بگو توی کشتی زن هم دارین؟ - بده لیستو ببینم! - حالا کِی برمی گردی؟ - واسم چی میاری؟ - تو عمداً این برنامه رو بدون من ریختی٬ اینطور نیست؟! - جواب منو بده؟ - منظورت از این نقشه چیه؟ - نکنه می خوای با کسی در بری؟ - چطور ازت خبر داشته باشم؟ - چه می دونم تا اونجا چه غلطی می کنی؟ - راستی گفتی توی کشتی زن هم دارین؟! - من اصلا نمی فهمم این کشف درباره چیه؟ - مگه غیر از تو آدم پیدا نمی شه؟ - تو همیشه اینجوری رفتار می کنی! - خودتو واسه خود شیرینی می ندازی جلو؟! - من هنوز نمی فهمم٬ مگه چیز دیگه ایی هم برای کشف کردن مونده! -چرا قلب شکسته ی منو کشف نمی کنی؟ - اصلا من می خوام باهات بیام! - فقط باید یه ماه صبر کنی تا مامانم اینا از مسافرت بیان! - واسه چی؟؟ خوب دوست دارم اونا هم باهامون بیان! - آخه مامانم اینا تا حالا جایی رو کشف نکردن! - خفه خون بگیر!!!! تو به عنوان داماد وظیفته! - راستی گفتی تو کشتی زن هم دارین؟

91/01/13 | |

... بـوی عیـدی، بـوی تـوپ 
بـوی کـاغـذ رنـگی 
بـوی یـاس جـانـمـاز تـرمـه مـادربـزرگ 
شـادی شـکسـتـن قـلک پـول 
وحشـت کـم شـدن سـکـه عـیـدی از شـمـردن زیـاد 
بـوی اسـکنـاس تـا نـخـورده لای کـتـاب 
بـا ایـنـا زمسـتـونـو سـر مـی کـنـم 
بـا ایـنـا خسـتـگیـمـو در مـی کـنـم ...

سال نو پیشاپیش مبارکـــــــــــــ

90/12/27 | |

آزارم ميدهد ديدن آن منظره كه مادري كودكش راسيلي ميزند
ولي كودك بازهم دامانش را رها نميكند،
كجاست آن قاضي تا حكم كند كه مادر منبع محبت است؟ يا كودك ؟!!


زنده یاد حسین پناهی

 

90/12/23 | |

پاك چو آورده اي ام، پاك بر، پاك به مهماني افلاك بر
آتش پيچيده ي در هستي ام، سوختن است اين نه شبِ مستي ام...
بهر چه در خويشتن آشفته ام؟ بي خبر از خويش چرا خفته ام؟
خواب ز شبگرديِ عاشق جداست، عاشقي و خواب چه ناآشناست...

90/12/17 | |

عجب دورانی بود یادش به خیر عهد شباب! اگه کسی از بچه ها تونست خودشو بشناسه!!! خبر بده ببینم کجاست چیکار میکنه اصلاً زنده است یا نه؟ 

90/12/11 | |

برنامه نویسان امروزی ویژوال بیسک دات نت! دلتان میخواهد اولین ورژن ویژوال بیسیک محصول 1991 میلادی را ببینید؟! سبکبال و سبکبار تنها در ۴۳۸ کیلوبایت بدون نیاز به نصب! هنوز هم میتوان باهاش برای ویندوز برنامه نوشت، اون هم برنامه هایی پرتابل که در WIN 3.1 گرفته تا WIN7 قابل اجرا هستند.

از اینجا دانلود کنید.

Visual Basic 1.0 for Microsoft Windows.

90/11/05 | |

 این هم روش و شبه کدهای مربوط به پروژه نه چندان آسان بازيابي فضاي فايل با استفاده از پشته پيوندي که دوستان زیادی خواسته بودند تا در سی پلاس انجام دهم.

عمليات مورد نياز:

·        جستجوي ترتيبي براي پيدا کردن رکوردي با يک فيلد معين

·        انجام عمل درج و حذف رکورد

·        بازيابي فضاي فايل با استفاده از پشته پيوندي

نکته: براي سادگي طول رکوردها ثابت فرض شود.

اصول پیاده سازی:

در این روش وقتی رکوردی حذف می شود، آدرس رکورد حذف شده قدیمی از هیدر به مکان رکورد در حال حذف فعلی نوشته می شود (در یکی از فیلدهای آن که بهتر است فیلد وضعیت باشد)، این آدرس معمولاً در ابتدا که چیزی حذف نشده عدد منهای یک است که در هیدر قرار دارد.

سپس بلافاصله آدرس رکورد در حال حذف کنونی به هیدر منتقل می شود.

 

//Writen by: Saleh , www.winprog.blogfa.com

void Person_Manager::Delete()

{

                 int found=0;

                 long RecordAddress;

                 char LstName[16];

                 clrscr();

                 cout<<"Enter LastName To Find And Delete It's Record: ";

                 cin>>LstName;

                 clrscr();

                 FILE *File;

                 File=fopen("DataBase.dat","r+b");

                 while (fread(&person, sizeof(person),1,File))

                 {

                                   if (strcmp(person.LastName, LstName) == 0 && strcmp(person.Status, "OK") == 0)

                                   {

                                                                RecordAddress = ftell(File)-sizeof(person);

                                                                fseek(File, RecordAddress, 0);

                                                                ltoa(GetHeaderValue(), person.Status, 10); // Write address of last deleted record from header to here...

                                                                fwrite(&person, sizeof(person), 1, File);

                                                                found=1;

                                                                break;

                                   }

                 }

                 SetHeaderValue(RecordAddress);  // Save Current Deleted Record Address To Header...

                 fclose(File);

                 if (found == 0) cout<<"'"<

                 cout<<"Press Enter...";

                 getch();

}

 بازیابی فضای فایل با استفاده از پشته پیوندی

 

وقتی رکورد جدیدی قرار است نوشته شود به هیدر نگاه می کنیم، اگر مقدار آن منهای یک باشد به معنی این است که هیچ فضای حذف شده ای وجود ندارد و باید رکورد جدید را به انتهای فایل اضافه کنیم، در غیر اینصورت اشاره گر فایل را به مکانی که هیدر نشان می دهد منتقل می کنیم مقدار فیلد وضعیت آن را که به یک مکان حذف شده زائد دیگر در فایل اشاره می کند در هیدر می نویسیم و آن نقطه را با رکورد جدید بروز رسانی می کنیم.

 

//Writen by: Saleh , www.winprog.blogfa.com

void Person_Manager::Add()

{

                 clrscr();

                 strcpy(person.Status, "OK");

                 cout<<"Enter LastName: ";

                 cin>>person.LastName;

                 cout<<"Enter FirstName: ";

                 cin>>person.FirstName;

                 cout<<"Enter Address: ";

                 cin>>person.Address;

                 cout<<"Enter City: ";

                 cin>>person.City;

                 cout<<"Enter State: ";

                 cin>>person.State;

                 cout<<"Enter PostCode: ";

                 cin>>person.PostCode;

                 long HdrValue = GetHeaderValue();

                 if (HdrValue == -1) // There is no deleted record...

                 {

                                fstream File("DataBase.dat",ios::app | ios::binary);

                                File.write((char *) &person, sizeof(person));

                                File.close();

                 }

                 else

                 {

                                // Move file pointer to place that header say... And get last deleted record address

                                Person per;

                                FILE *file;

                                file=fopen("DataBase.dat","r+b");

                                fseek(file, HdrValue, 0);

                                fread(&per, sizeof(per),1,file);

                                fseek(file, HdrValue, 0);

                                fwrite(&person, sizeof(person), 1, file);

                                fclose(file);

                                // Set header value to the last deleted address

                                SetHeaderValue(atol(per.Status));

                 }

}

 بازیابی فضای فایل با استفاده از پشته پیوندی

 

در این صورت است که ما فضای زائد و حذف شده فایل را دوباره بازیابی کرده و مورد استفاده قرار می دهیم، روش فوق زمانی جواب می دهد که طول رکوردها ثابت فرض شود.

 ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ارادتمند شما، صالح

 

90/09/30 | |

گاهی که به خیال خود به خوشبختی رسیده ای، بیشتر اندیشه کن و گاهی که در اندیشه خود بدبختی بیشتر به حکمت خداوند بیاندیش....

از باغ می برند چراغانی‌ات کنند
تا کاج جشنهای زمستانی‌ات کنند 
پوشانده‌اند «صبح» تو را «ابرهای تار»
تنها به این بهانه که بارانی‌ات کنند
یوسف! به این رها شدن از چاه دل مبند
این بار می‌برند که زندانی‌ات کنند
ای گل گمان مکن به شب جشن می‌روی
شاید به خاک مرده‌ای ارزانی‌ات کنند
یک نقطه بیش فرق رحیم و رجیم نیست
ز نقطه‌ای بترس که شیطانی‌ات کنند
آب طلب نکرده همیشه مراد نیست
گاهی بهانه‌ای است که قربانی‌ات کنند

90/08/04 | |

یه موقع شدیداً معتقد بودم که پول، طرفدار و طرفدار  قدرت می آورد، اما الان دیگه با ديدن تصوير بالا نظرم کلاً عوض شده، تازه فهمیدم که همه قدرتهای زمینی از هر اندازه و بزرگی که باشند پوشالی اند و نباید گول خورده و دچار توهم شویم! موقعی که قدرت دستمونه نه صرفاً برا رضای خدا بلکه به خاطر خودمون هم که شده مراقب باشیم تا مورچه ای رو له نکنیم!!!!!!

90/08/02 | |

ای مهربان تر از برگ در بوسه های باران

بیداری ستاره در چشم جویباران

آینه نگاهت پیوند صبح و ساحل

لبخند گاه گاهت صبح ستاره باران

باز آ که در هوایت خاموشی جنونم

فریادها برانگیخت از سنگ کوهساران

ای جویبار جاری زین سایه برگ مگریز

کاینگونه فرصت از کف دادند بیشماران

گفتی به روزگاری مهری نشسته گفتم

بیرون نمیتوان کرد حتی به روزگاران

بیگانگی ز حد رفت ای آشنا مپرهیز

زین عاشق پشیمان سرخیل شرمساران

پیش از من و تو بسیار بودند و نقش بستند

دیوار زندگی را زینگونه یادگاران

وین نغمه محبت بعد از من و تو ماند

تا در زمانه باقیست آواز باد و باران

90/06/05 | |

جهان سست است و بی بنیاد، از این فرهاد کش فریاد...

 


90/05/15 |

 

فقط قابل توجه برنامه نویسان ویندوز :

بلاخره بعد از ماه ها کار طاقت فرسای من و همکارانم در شرکت نرم افزاری مبین ملکان، یکی از ارزشمندترین محصولات این شرکت پا به عرصه وجود گذاشت (Mobinsoft Native Farsi Framework) چهار چوب کاری فارسی بومی برای پلت فورمهای ویندوز با نام تجاری اختصاری NFF.

اما این چهارچوب کاری به چه دردی می خورد، همه برنامه نویسان تجربه کرده اند که وقتی نرم افزاری به زبان فارسی می نویسند همیشه برای نشر آن مشکل داشته و دارند مثل عدم پشتیبانی ویندوز مشتری از زبانهای راست به چپ و عدم وجود فونتهای فارسی، به هم ریختگی کاراکترها، مشکلات تاریخ شمسی و یونیکد و ...، حتماً همیشه در پشتیبانی نرم افزارهایی که به فارسی نوشته اید دچار مشکل هستید و گاهی شاید بارها مجبور شوید که فقط جهت نصب برنامه تیم پشتیبانی را روانه محل کار مشتری کنید. حالا این فریم ورک همه این مشکلات را حل کرده است طوری که با داشتن آن می توانید بدون نگرانی از نوع سکوی ویندوز (انگلیسی یا فارسی یا...) نرم افزار فارسی طراحی کنید کنترلهایی همراه این فریم ورک ارائه شده اند که کاملاً بومی فارسی هستند یعنی فارسی را ذاتاً پشتیبانی می کنند اگر عبارت فینگلیش هم در خصوصیت متن آنها قرار دهید اتوماتیک به فارسی یونیکد نمایش و اکسپورت می دهند نیز از راست به چپ بدون توجه به سیستم عامل پشتیبانی می کنند این کنترلها شامل کنترلهای استاندارد نظیر لیبل و تکست باکس و لیست باکس و کمبو باکس و دیتا گرید و...می باشند.

نیز این فریم ورک شامل یک درایور پایگاه داده کاملاً استند الاون (بی نیاز از هرگونه افزونه) می باشد که توسط شرکت مبین ساخته شده است در صورتی که از این موتور پایگاه داده به جای اکسس و اسکیو ال و ... استفاده کنید می توانید مطمئن شوید که نرم افزار شما در مقصد کاری بدون درگیر شدن با مشکلات درایورهای پایگاه داده می تواند بدون مشکل کار کند این درایور تقریباً سریعتر از اس کیو ال می باشد زیرا بسیاری از امکانات اس کیو ال را که شما هیچگاه لازم ندارید در بر نمی گیرد.

نمونه ای از یک دیتاگرید از این فریم ورک:

mobinsoft native farsi framework NFF

توجه کنید که مطابق کد های زیر این دیتاگرید بدلیل عدم پشتیبانی سیستم عامل از فارسی با کارکترهای فینگلیش ایجاد شده مثلاً فینگلیش 'ردیف' شده vndt اما ملاحضه می کنید که کنترل فوق چگونه بومی فارسی شده است:

Me.FarsiGrid1.Cols = 3
Me.FarsiGrid1.ColWidth(1) = 1000
Me.FarsiGrid1.ColWidth(2) = 1800
Me.FarsiGrid1.ColWidth(3) = 2200


Me.FarsiGrid1.ColText(1) = "vndt"
Me.FarsiGrid1.ColText(2) = "jhdlv"
Me.FarsiGrid1.ColText(3) = "j,qdphj"

Me.FarsiGrid1.embFontIndex = 1
Me.FarsiGrid1.FontSize = 12
Me.FarsiGrid1.RowsHeight = 500

For i = 1 To 50000
    Me.FarsiGrid1.AddListItem i & vbTab & Timer & vbTab & Date$
Next i


http://www.mobinsoft.com

90/03/23 | |

سلام

پروژه شبیه سازی شبکه تلفن های سلولی (همراه) که در ويژوال بیسیک کلاسیک نوشته ام، این پروژه زیرساخت کلیه امکانات صوتی یک شبکه تلفن سلولی را در بر میگیرد فقط اینجا به جای امواج حامل موبایل در لایه فیزیکی از پکت های آی پی استفاده شده است. ازامکانات آن می توان به تعریف و ایجاد شماره تلفن های جدید در سرور ثبت شماره و تعریف پین کد (شبیه سازی سیمکارت) گرفته تا کالر آیدی و تشخیص خاموش بودن گوشی (نرم افزار کلاینت مقابل)  و تعیین کیفیت صدا با توجه به سرعت شبکه اشاره کرد، پی سی باید دارای میکروفون و بلندگو (کارت صوتی) باشد. در حال حاضر می توان توسط این نرم افزار در هر سازمانی که دارای شبکه محلی است یک سیستم تلفن سانترال با هزینه صفر برپا کرد.

http://www.mobinsoft.com

شبیه سازی زیرساخت شبکه های تلفن همراه سلولی

90/03/17 | |

آمدن عید مبارک بادت، وان مواعید که کردی نرود از یادت.

ای شاهد افلاکی در مستی و در پاکی

من چشم ترا مانم تو اشک مرا مانی

در سینه سوزانم مستوری و مهجوری

در دیده بیدارم پیدایی و پنهانی

من زمزمه عودم تو زمزمه پردازی

من سلسله موجم تو سلسله جنبانی

از آتش سودایت دارم من و دارد دل

داغی که نمی بینی دردی که نمی دانی

89/12/28 | |

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

نگرانی بزرگترین حماقت بشر است چون باور کنید ۹۹ درصد نگرانیهای ما هرگز به وقوع نمی پیوندند.

89/12/21 | |

مرد را دردی اگر باشد خوش است                  درد بی دردی علاجش آتش است

بی دردی ابتذال می آورد و ابهّت و شکوه مردانگی را از بین می برد...

آتش

89/12/20 | |

اگر برنامه نویس ویژوال بیسیک هستید و فایلی دارید که برنامه شما در زمان اجرا به آن نیاز خواهد داشت و دوست دارید که آن را به فایل اجرایی تولید شده تان الحاق کنید (Embed) برنامه زیر را دانلود کنید، این برنامه را برای این منظور برای خودم نوشته بودم که همینک در اختیار شما دوستان عزیز هم قرار می دهم. برای مثال من فونتی داشتم که با کمک این برنامه تبدیل به یک ماژول کد کردم و هر موقع لازم بود دستور اکسترکت آن را فراخوانی می کردم و فونت را مورد استفاده قرار می دادم بدون اینکه نگران وجود آن در پوشه فونت ویندوز بوده باشم.

استفاده از این برنامه آسان است، هر فایلی را روی آیکون این برنامه دراگ دروپ کنید ماژول کد آن ساخته می شود البته سعی کنید فایلهایی با سایز معقول را انتخاب کنید.

لینک دانلود

89/12/16 | |

مدتی است روی یک پروژه انیمیشن سه بعدی ایرانی کار می کنم، کار نسبتاً زیادی لازم نبود تا به کاراکتر سمت چپ پوشش اسلامی دهم، در واقع کاراکتر سمت راست حالت با حجاب کاراکتر سمت چپ است. زیبایی زن زمانی که در حجاب است دوچندان می شود یا نه؟

حجاب و زیبایی

پ ن : اين مطلب خيلي جالب شده! حجمه ي زيادي از طرف خانومها با كامنت خصوصي دريافت كردم كه همه شون قابل درج نيستند! انگاري خيلي بهشون برخورده كه كسي معتقد باشه كه زن در حجاب زيباتر ديده مي شود! اما من فقط يه سوال پرسيدم و عقيده شخصيمو نگفتم كه ؟!! جواب اين سوال نزد مرداي لاابالي است كه مدتها با شاهدان بازاري خوش ميگذرانند و آخر كار كه ميخوان ازدواج كنن، زن آينده شونو از بين دختران پاكدامن و باحجاب يا به قول خودشون آفتاب مهتاب نديده انتخاب ميكنن.

89/12/07 | |

دمي با غم به سر بردن جهان يک سر نمي‌ارزد

به مي بفروش دلق ما کز اين بهتر نمي‌ارزد

شکوه تاج سلطاني که بيم جان در او درج است

کلاهي دلکش است اما به ترک سر نمي‌ارزد

89/11/29 | |

کار تولید انیمیشن فضیل عیاض از امروز بیست و ششم بهمن در دستور کار واحد انیمیشن شرکت نرم افزاری مبین ملکان قرار گرفت، قرار است این انیمیشن تاریخی 30 دقیقه ای تا اوایل تابستان سال آینده آماده اکران شود.

داستان فیلمنامه، بخشهایی از زندگی فضیل بن عیاض می باشد. فضیل که در عصر امام صادق (ع) زندگی می کرد، در ابتدا به راهزنی و دزدی مشغول بود. اما بر اثر یک انقلاب روحی که در او پدید آمد، راهزنی و دزدی را کنار گذاشت و توبه کرد و در زمره ی عارفان و مردان حق قرار گرفت. آنچه که در زندگی این عارف بزرگ، قابل تأمل می باشد؛ توجه به این نکته است که تغییر و تحول در ابعاد شخصیتی یک انسان، تصادفی نیست و انسان باید زمینه های این تغییر و تحولات را در خود ایجاد کرده باشد. درونمایه و هدف اصلی این انیمیشن نیز، بررسی این زمینه ها در شخص فضیل عیاض می باشد. نقل است که فضیل، در عین حال که به غارت اموال کاروانها و دزدی می پرداخت، نمازهای واجب روزانه را به جماعت اقامه می کرد. هرکسی از یارانش نیز در نماز جماعت، حاضر نمی شد؛ او را از خود می راند. به یارانش توصیه ی اکید کرده بود که در هنگام هجوم به کاروانها برای غارت اموال آنها، با زنان و کودکان کاروان کاری نداشته باشند و کوچکترین آزاری به آنها نرسانند. هر کسی از یارانش از این توصیه، تعدی و سرپیچی می کرد، سخت تنبیه می شد. به هنگام غارت اموال کاروانها، همه ی دارایی افراد را به غارت نمی برد و بخشی از آن مال را برای صاحبش باقی می گذاشت. نسبت به ادای نماز در اول وقت آن، حساسیت عجیبی داشت و...
در یک توصیف کلی از شخصیت فضیل بن عیاض- قبل از تحول روحی که در او پدید آمد – می توان گفت که در عین حال که به کار ناپسند و غیر شرعی دزدی و راهزنی، مشغول بود، انسان جوانمرد و «دل رحمی» به شمار می رفت...
قسمت پایانی انیمیشن، صحنه ای را نشان می دهد که فضیل با شنیدن آیه ای از قرآن، متحول می شود و توبه می کند. دزدی و راهزنی را کنار می گذارد و در زمره ی عارفان در می آید.


انیمیشن فضیل
89/11/26 | |

سلام

طراحی سیستم عامل کار بسیار طاقت فرسایی است، دانش زیاد و پشتکار فراوانی می خواهد. در هر حال اگر به این فکر افتادید که خودتان سیستم عامل طراحی کنید می توانید کیت توسعه سیستم های عامل دیسکی Disk Operating System شرکت نرم افزاری مبین ملکان را سفارش دهید، این کیت به همراه ابزارگان مربوطه شامل آموزش های لازم نیز می باشد توسط این کیت می توانید پس از ساختن سیستم عامل، بسته ای جهت نصب سیستم کنار سیستم عامل هایی چون XP و Seven ایجاد کنید به طوری که کاربر ان از طریق منوی انتخاب سیستم عاملها در شروع به کار کامپیوتر سیستم عامل شما را انتخاب و بارگذاری خواهند کرد.

 سیستم عامل بسیار ساده زیر را در زبان اسمبلی نوشته ام که فقط از دو دستور Cls و Reboot پشتیبانی می کند.

 

سیستم عامل ساده صالح

 

این هم کدهای این سیستم عامل بسیار ساده در اسمبلی:

1 - کد های هسته (Kernel.asm) :

include MobinLib.inc
.model small
.stack 100h
.data
message db "Saleh's Simple OS Version 1.0", 10, 13, "(C) Copyright 2010-2011 by Saleh hajiaghazadeh!.", 0h
prompt  db 10,13,"Shell>", 0h
bad_cmd db 10,13,"Bad command or filename.", 0h
cmd_size equ 256
cmd  db cmd_size dup(?)
boot_cmd db "reboot"
cls_cmd db "cls"
.code
main proc
 ; Load ds with data segment
     mov ax, @data                
     mov ds, ax
 cls
 print_si message
 get_cmd:
 print_si  prompt
 get_string cmd, cmd_size
 strcompare cmd, boot_cmd, 6, 0
 je restart
 strcompare cmd, cls_cmd, 3, 0
 je clearscr
 print_si bad_cmd
 jmp get_cmd
 jmp done
 restart:
 reboot
 clearscr:
 cls
 gotoxy 0h,-1h
 jmp get_cmd
 done:
main endp


end main

2 - کتابخانه ماکرو (MobinLib.inc) :

mobindata segment para 'data'
 boot_vector       DW 00000h                 ; Offset of reboot vector
              DW 0FFFFh
mobindata ends
;********** print string **************
print_si macro str_to_print
 local print, done
 lea si, str_to_print
 print:
 mov al, [si]
 cmp al, 0h ; if 0 null is detected then it is end of string
 jz done
 mov ah,0eh
 int 10h
 inc si
 jmp print
 done:
endm
print_si2 macro
 local print, done
 print:
 mov al, [si]
 cmp al, 0h
 jz done
 mov ah,0eh
 int 10h
 inc si
 jmp print
 done:
endm
;********** cls , set 80x25 color text mode ************
cls macro
 mov ah,0h
 mov al,03h
 int 10h
endm
;************* wait for a key *********
wait_for_key macro
 mov ah, 0h
 int 16h
endm
;*************** reboot *********
reboot macro
 assume ds:mobindata
 mov ax,40h
 mov es,ax
 mov word ptr es:[72h], 1234h
 jmp dword ptr boot_vector
endm
;******************* get string ************
get_string macro input_buffer, buffer_size
 local empty_buffer, wait_for_a_key, add_to_buffer, empty_buffer, exit
 lea di, input_buffer
 mov dx, buffer_size
 mov     cx, 0                   ; char counter.
 cmp     dx, 1                   ; buffer too small?
 jbe     empty_buffer            ;
 dec     dx                      ; reserve space for last zero.
 wait_for_a_key:
 mov     ah, 0                   ; get pressed key.
 int     16h
 cmp     al, 0Dh                  ; 'return' pressed?
 jz      exit
 cmp     al, 8                   ; 'backspace' pressed?
 jne     add_to_buffer
 jcxz    wait_for_a_key            ; nothing to remove!
 dec     cx
 dec     di
 putc    8                       ; backspace.
 putc    ' '                     ; clear position.
 putc    8                       ; backspace again.
 jmp     wait_for_a_key
 add_to_buffer:
         cmp     cx, dx          ; buffer is full?
              jae     wait_for_a_key    ; if so wait for 'backspace' or 'return'...
              mov     [di], al
              inc     di
              inc     cx
              mov     ah, 0eh         ; print the key
              int     10h
 jmp     wait_for_a_key
 exit:
 mov al,0h ; null byte
 mov     [di],al ; mark end of input string
 mov     di, 0 ; terminate by null
 empty_buffer:
endm
;************************* putc ************
putc   macro  char
        mov     al, char
        mov     ah, 0eh
        int     10h    
endm
;*************************** gotoxy
gotoxy  macro   col, row
        mov     ah, 02h
        mov     bh,0h ; page number   
        mov     dh, row
        mov     dl, col
        int     10h
endm
;************************** getxy
getxy macro
 mov ah,03h
 mov bh,00h; page number
 int 10h
 ;x=dl    dh=y    begl=cl  endl=ch
endm
;****************************** string compare, caution the str1 must have null byte (0h) at the end, and str1>str2 *****************
StrCompare macro str1, str2, size
 local  done, comp_age
 mov ah,size
 lea si,str1
 lea di,str2
 dec di
 comp_age:
 inc di
 dec ah
 lodsb ;load al with next char from str1
 cmp [di],al
 jne done
 cmp ah,0h
 jne comp_age
 done:
 lodsb
 cmp al,0 ; check to terminator char it is usally 0h (null byte)
 ;use je to jump if str1=str2
endm

 

89/10/28 | |

 
سلام
 
مسئله : تعیین حاصلضرب دو ماتریس n ×n که در آن n توانی از 2 است.
پیچیدگی این الگوریتم از لحاظ ضرب، جمع و تفریق بهتر از پیچیدگی درجه سوم است.
نکته : روش استراسن در مورد ضرب ماتریس های 2×2 ارزش چندانی ندارد.
   
سورس کد مربوط را می توانید از اینجا دانلود کنید. و در توربو سی اجرا کنید.
89/09/02 | |

سلام

ضمن عرض پوزش از کلیه دوستانی که در کامنتهای خصوصی در خواست انجام پروژه و یا سورس کد می کنند. باید به اطلاع این دوستان برسانم که متاسفانه بنده فرصت انجام این کارها را ندارم و اساساْ این وبلاگ به این منظور ایجاد نشده است. گرچه هر موقع میسر شود سورس کدی در وبلاگ قرار می دهم.

89/09/02 | |