هذا هو أحد المشاريع التي أقوم بتطويرها حاليا , والمشروع عبارة عن نظام تشغيل وأسأل الله أن يعينني على إتمامه , والمشروع تخطى مراحله الآولى منذ مدة , فقد تم عمل Boot بحيث يتم استعمال النظام مباشر Live CD (وهذا للمرحلة الحالية).
04/10/2008
نظام تشغيل SBR OS 1.0
هذا هو أحد المشاريع التي أقوم بتطويرها حاليا , والمشروع عبارة عن نظام تشغيل وأسأل الله أن يعينني على إتمامه , والمشروع تخطى مراحله الآولى منذ مدة , فقد تم عمل Boot بحيث يتم استعمال النظام مباشر Live CD (وهذا للمرحلة الحالية).
03/10/2008
الطبعة الجديدة لكتابي برمجة واجهة المستخدم ج1
(وهو الكتيب رقم 9 من سلسلة البرمجة المفتوحة بلغة سي باستخدام توربوسي)
قدمت في هذا الكتيب مكتبة خاصة قمت ببرمجتها لتمكنك من تصميم واجهة للمستخدم باللغة الإنجليزية (شبيهة ببيئة النوافذ) أسميتها sbr_win.h ولقد شرحت كيفية استخدام دوال المكتبة شرح مبسط , أرجو الله أن ينفع به وأن يكون مساهمة منا في إثراء المكتبة العربية
والمبرمج العربي.
تقوم الدالة بعرض شريط سفلي للشاشة به زر "Start" , وتمكنك من اخيار أحد الخيارات من قائمة يتم عرضها على الشاشة.
ثاني دالة هي دالة صندوق السؤال
تقوم هذه الدالة بعرض صندوق السؤال على الشاشة , وتنتظر حتى يضغط المستخدم على زر"No" أو "Yes"
شرح طريقة تنصيب ++Turbo C
أقدم إليكم , شرحي لطريقة تنصيب توربوسي
لتحميل الشرح (مع السلسلة كاملة) اضغط هنا
كما يمكنك تحميل الاصدار 3 من برنامج توربوسي
لتحميل Turbo c++ v3 اضغط هنا
يسرني استقبال تعليقاتكم
01/10/2008
برنامج لعرض الملفات في مسار معين
هذا البرنامج أسميته SBR_SORT , وللعلم فإنني أقوم عادة بتسمية برامجي , وغالبا ما يسبقها الرمز SBR قد يستفسر البعض عن معنى هذا الإسم ؟؟ كل ما في الأمر أنني أطمح منذ صغري أن أكون شركة (إن شاء الله) , وقد عزمت أنا وأحد أقاربي على أن يكون اسم الشركة مشترك من اسمنا حيث S هو أول حرف من اسم قريبي , بينما حرف B هو أول حرف من اسمي بينما R هو أول حرف في لقبنا , ولكن مع مرور الأيام ودخولنا في تخصصات دراسية مختلفة نسينا هذا الأمر , إلا أنني وجدت في نفسي ميلا إلى هذا الرمز (ربما بسبب اعتيادي له) , وبما أن قريبي لم يكن مشتركا في ذلك فجلست أفكر في أنه لابد أن يكون هناك "معنى لإسم الشركة" , لايمكن أن أكون شركة بدون دلالة ؟؟؟ , فوجدت أن أقرب كلمة تبدأ بحرف S هي Sofware وبهذا أصبح الاسم SBR = Sofware Bara Ramli , هذه هي قصة الرمز , أما الآن فأترككم مع النص المصدري:
// SBR_Sort //
// Version 1.0 //
// By AL Bara Ramli //
// opencpp@yahoo.com //
// www.albara.co.cc //
// Tripoli Libya //
//////////////////////////////////////
// Last Update in 1/10/2008 //
//////////////////////////////////////
#include //stdio.h
#include //dos.h
#include //string.h
// قمت بكتابة الاستدعاء بهذه الصورة لأن المدونة لا تدعم الأقواس المعكوفة
/////////////////////////////////////////
char sss[100][100];
/////////////////////////////////////////
int dir(char path[60])
{
int i=0,done;
struct find_t ffblk;
done = _dos_findfirst(path,_A_NORMAL,&ffblk);
while (!done)
{
strcpy(sss[i++], ffblk.name);
done = _dos_findnext(&ffblk);
}
return i;
}
/////////////////////////////////////////
void print_dir(int i)
{
int j=0;
while (j< n="" void="">
دالة للطباعة بالعربي على الشاشة السوداء (الجزء الأول)
السلام عليكم ورحمة الله وبركاته
لقد واجهتني كثيرا مشكلة الكتابة باللغة العربية عند تعلمي للغة البرمجة C على Turbo c++
فكما تعلمون أن Turbo c++ يدعم اللغة الإنجليزية , وإذا أردت أن تصمم برنامج لكتابة جملة إنجليزية فما عليك إلا استخدام دالة printf
ولكن في أحد المرات كنت أريد تصميم برنامج أستخدم فيه أسماء عربية , ولكنني تفاجئت بأنه لا يوجد دالة أستطيع استخدامها لطباعة كلمة عربية على الشاشة السوداء
سألت زملائي الطلبة ولكنهم أخبروني أن DOS لا يدعم اللغة العربية إلا في بعض الإصدارات التي اندثرت
جلست أفكر , وأحدث نفسي أنهم إن استطاعوا إدخال اللغة الإنجليزية , فلماذا لا يمكننا إدخال اللغة العربية
ولكني تركت هذا الأمر ورضيت بالأمر الواقع إلى أن طلب منا "الدكتور في الجامعة" واجبا وكان أحد الأسئلة هو أن تكتب برنامج يقوم برسم شكل ما , وبعد انتهائي من حل الواجب خطر ببالي فكرة
وقلت في نفسي لما لا أقوم برسم الحروف العربية , مثلا أقوم بكتابة برنامج لرسم حرف الصاد مثلا
وبالفعل نجح الأمر, ولكن لرسم حرف الصاد تطلب مني استخدام 3 دوال رسم ودراسة أبعاد الحرف

وفرحت كثيرا بهذا الإنجاز وعقدت العزم على أن أقوم بتصميم كل الحروف , وبالفعل أنشأت عدة دوال كل دالة ترسم حرف معين
ولكنني كنت أريد أن أصمم برنامج يقوم المستخدم فيه باختيار حرف معين
فجلست أفكر "ما العمل" فخطر ببالي أن أنه إذا أدخل المستخدم الحرف الإنجليزي
a
يقوم البرنامج برسم الحرف المقابل له في (الكيبورد) وهو الحرف
ش
وبالفعل نجح الأمر واستطعت أن اكتب برنامج يختار فيه المستخدم عرض أي حرف عربي
ولكن إذا أدخل المستخدم أكثر من حرف فإن الحروف تكتب فوق بعضها
, لذا قمت بتعديل البرنامج وذلك بأن يقوم البرنامج بعمل مسافة بين كل حرف وحرف
لكن حتى الآن كل ما فعلناه هو رسم حروف مقطعة وليس متصلة
فجلست أفكر كيف سألصق الحروف معا
كان يلزمني أولا أن أرسم جميع حالات الأحرف , فمثلا حرف العين , في بداية الكلمة وفي وسط الكلمة وفي نهاية الكلمة ومنفرد
وهذه 4 حالات وبالفعل رسمتها جميعا
ولكن واجهتني مشكلة في ربط الحروف بـ (الكيبورد) لأن عدد أزرار لوحة المفاتيح لا تكفي لجميع الحالات
ستسألني: وكيف تربط الأرقام بـ (الكيبورد
سأقول لك: نربط الحرف المفرد فقط , يعني نربط حالة واحدة ومن ثم نعمل اختبار للحروف السابقة
وقد تمكنت من استخدام هذه الطريقة باستخدام مكتبة
يلزمك كتابة دوال الرسم يدويا لرسم الحروف وهذا متعب للغاية كما رأيتم في الطريقة السابقة

وبذلك يمكنك رسم جميع حالات الحروف بسهولة ويسر
ستسألني: وكيف سأستخدم هذه الحروف المرسومة ؟
سأقول لك: يقوم البرنامج بتحويل صورة الحرف إلى ملف نصي
ومن ثم يمكنك استعماله بتحويله إلى صورة , وقد قمت بالفعل بكتابة برنامج التحويل ونجح المشروع بالفعل
وللحديث بقية وسأخبركم إن شاء الله عن الأسلوب الجديد لعرض الحروف وهي أفضل من الطريقتين الأولى والثانية ونتائجها مبهرة ولم أكن أتوقع أن أصل لهذه المرحلة من قبل , وللحديث بقية إن شاء الله
برنامج لطباعة تهنئة للعيد باللغة العربية
أحب أن أقدم لكم هذا البرنامج وهو لطباعة كلمة "كل عام وأنتم بخير" باللغة العربية على شاشة دوس (في بيئة الرسم) , باستخدام مكتبة arabic.h
يلزمك أولا أن تقوم بنسخ المجلد FONT_2 إلى القرص الصلب C ليكون مساره الجديد هو C:\FONT_2 , ثم قم بنسخ الملف arabic.h إلى المسار الجديد c:\tc\include\arabic.h , بعد ذلك قم بتفعيل بيئة الرسم من Turbo CPP ثم قم بتشغيل البرنامج , أما الآن فأترككم مع النص المصدري:
// By AL Bara Ramli
// opencpp@yahoo.com
// www.albara.co.cc
// Copyright (C) 2008
// Tripoli Libya
//////////////////////////////////
#include //graphics.h
#include //conio.h
#include //arabic.h
//كتبت الاستدعاء بهذا الشكل لأن المدونة لا تدعم الاسهم المعكوفة
void main()
{
char ss[1000];int h=0,i;
char message[]=";g uhl ,Hkjl fodv";
char path_font_1[]="c:\\FONT_2\\15";
char path_font_2[]="c:\\FONT_2\\20";
ini_g("c:\\tc\\bgi");
setbkcolor(15);
for(i=1;i<=9;i++) { puts_arabic(300,h,message,i,15,1,0,path_font_1); puts_arabic(600,h,message,i,20,1,0,path_font_2); h+=40; } getch(); closegraph(); }
لتحميل مكتبة arabic.h ولمعرفة كيفية استخدام هذه المكتبة يمكنك الاطلاع على كتابي: