• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

البحث في المنتدى

Showing results for tags 'open library'.

  • البحث بالتاقات

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • البحث بكاتب الموضوع

تم إيجاد 12 نتيجة

  1. // Part 1 string result = CodeHelper.getCastedValue<string>(dataReader["name"]); int myId = CodeHelper.getCastedValue<int>(dataReader["id"]); int myId = CodeHelper.getCastedValue<int>(dataReader["id"], /*default value*/ -1); // Part 2 int test = 5; if( CodeHelper.isValueInList<int>( test, 1, 2, 3, 6, 5 ) ) { // TRUE CODE } else { // FALSE CODE } // Part 3 object test = new DataSet(); if ( CodeHelper.isTypeInList<object>( test, typeof(DataTable), typeof(DataView), typeof(DataSet) ) ) { // TRUE CODE } else { // FALSE CODE } // Part 4 if(CodeHelper.getTopDataRow(DataSet) == null) { // EMPTY DATASET } if (CodeHelper.getTopDataRow(DataTable) != null) { // NOT EMPTY DATATABLE }   هذه بعض الأكواد البرمجية التي أستخدمها لتسهيل التعامل مع أكواد السي شارب و أكواد ال في بي إليكم الكود الكامل:   namespace HelpersLibrary { public static class CodeHelper { public static T getCastedValue<T>(object obj) { T result = default(T); if (obj != null && !Convert.IsDBNull(obj)) { Type normalType = typeof(T); Type nullableType = Nullable.GetUnderlyingType(normalType); if (nullableType != null) { result = (T)Convert.ChangeType(obj, nullableType); } else { result = (T)Convert.ChangeType(obj, normalType); } } return result; } public static T getCastedValue<T>(object obj, T defaultValue) { T result = getCastedValue<T>(obj); if (result.Equals(default(T))) result = defaultValue; return result; } public static bool isValueInList<T>(T value, params T[] checkList) { return isValueInList(value, checkList.AsEnumerable()); } public static bool isValueInList<T>(T value, IEnumerable<T> checkList) { bool result = false; if (value != null && checkList != null) { foreach (T item in checkList) { if (item != null) { if (value.Equals(item)) { result = true; break; } } } } return result; } public static bool isValueInListParallel<T>(T value, params T[] checkList) { return isValueInListParallel(value, checkList.AsEnumerable()); } public static bool isValueInListParallel<T>(T value, IEnumerable<T> checkList) { bool result = false; if (value != null && checkList != null) { Parallel.ForEach( checkList, () => false, (listItem, loopState, madeChange) => { if (listItem != null) { if (madeChange = value.Equals(listItem)) loopState.Break(); } return madeChange; }, (changed) => { if (changed) lock (checkList) { result = changed; } } ); } return result; } public static bool isTypeInList<T>(T value, params Type[] checkList) { return isTypeInList(value, checkList.AsEnumerable()); } public static bool isTypeInList<T>(T value, IEnumerable<Type> checkList) { bool result = false; if (value != null && checkList != null) { Type valueType = value.GetType(); foreach (Type item in checkList) { if (item != null) { if (valueType.IsAssignableFrom(item)) { result = true; break; } } } } return result; } public static bool isTypeInListParallel<T>(T value, params Type[] checkList) { return isTypeInListParallel(value, checkList.AsEnumerable()); } public static bool isTypeInListParallel<T>(T value, IEnumerable<Type> checkList) { bool result = false; if (value != null && checkList != null) { Type valueType = value.GetType(); Parallel.ForEach( checkList, () => false, (listItem, loopState, madeChange) => { if (listItem != null) { if (madeChange = valueType.IsAssignableFrom(listItem)) loopState.Break(); } return madeChange; }, (changed) => { if (changed) lock (checkList) { result = changed; } } ); } return result; } public static DataRow getTopDataRow(DataSet dataSet) { return getTopDataRow<DataSet>(dataSet); } public static DataRow getTopDataRow(DataTable dataTable) { return getTopDataRow<DataTable>(dataTable); } public static DataRow getTopDataRow(DataView dataView) { return getTopDataRow<DataView>(dataView); } private static DataRow getTopDataRow<T>(T data) { DataRow dataRow = null; if (data != null) { if ( isTypeInList( data, typeof(DataSet), typeof(DataTable), typeof(DataView) ) ) { if (data is DataSet) { DataSet dataSet = data as DataSet; if (dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows.Count > 0) { dataRow = dataSet.Tables[0].Rows[0]; } } } else if (data is DataTable) { DataTable dataTable = data as DataTable; if (dataTable != null) { if (dataTable.Rows.Count > 0) { dataRow = dataTable.Rows[0]; } } } else if (data is DataView) { DataView dataView = data as DataView; if (dataView != null) { if (dataView.Table != null) { if (dataView.Table.Rows.Count > 0) { dataRow = dataView.Table.Rows[0]; } } } } } else { throw new InvalidCastException("Data parameter is not valid, you are only alowed to use: DataTable, DataSet and DataView"); } } return dataRow; } } }   CodeHelper.cs
  2. السلام عليكم ورحمة الله وبركاته بعض البرامج فيها خاصية التعديل على شكل المخرجات في التقرير بحسب الشكل الذي يختاره المستخدم -دون استخدام البرمجة- عن طريق السحب والإفلات واضافة أو حذف حقول معينة من التقرير  وتحديد اللوان الترويسة وخصائص الصفحة وهوامشها بحيث يكون الشكل الذي يختاره المستخدم هو الشكل المعتمد في البرنامج  وهذه التقنية تسمى فيما أظن (Open Reports)   السؤال : هل هذه التقنية لها أدوات Tools  تضاف على البرامج أم أنها اجتهاد للمبرمجين ؟ وهل هذه التقنية موجودة في Active Report أو Crystal Report أو أي برنامج متخصص في إنشاء التقارير؟    
  3. مشروع ادارة مكتبة (تعليمي)

      هنا مشروع كامل وبالخطوات التفصيلية لادارة مكتبة  أظنه بداية جيدة لطلبة الجافا     بالتوفيق للجميع    
  4. السلام عليكم ورحمة الله وبركاته   مدخل : إذا بدأنا الحديث عن "إعادة استخدام الكود" فسنبدأ بذكر التوابع , فعندما تكتب جسم التابع ثم تستدعيه مرات ومرات داخل الكود , فأنت توفر إعادة كتابة هذا التابع في كل مرة استدعيته فيها ( باستثناء التوابع العودية التي تقوم بأكثر من ذلك) ثم أخذت الأمور تكبر , وصار لدينا العديد من التوابع وصرنا نحتاج نسخ ولصق أجسام التوابع الخاصة بنا أينما ذهبنا .. لذلك قررنا وضع كل تلك التوابع في ملف واحد , وأسميناه header file وعوضاً عن نسخ محتوى الملف يدوياً جاءت include# لتقوم بعملية النسخ واللصق فقط , ونحن نخبرها بموضع واسم الملف الذي نريد لصق محتواه . ولكن ماذا عن أجسام التوابع ! آلاف التوابع وآلاف الأجسام , وكلها تحتاج للترجمة من قبل الـ compiler كل مرة ! عندها جاءت مكتبات الربط لحل المشكلة .. وأصبحنا ننسخ فقط الـ function prototype فقط ليعرف المترجم أن هناك تابعاً بهذا الاسم وهذه الوسطاء parameters وله القيمة المعادة من النوع الفلاني returned type . ولكن أين أجسام التوابع ؟ كثيراً ما حاولنا رؤية محتوى أحد التوابع المثيرة للاهتمام , ماذا بداخل التابع sin وماذا بداخل التابع rand ! أحياناً يكون متاحاً لنا الوصول إلى أجسام التوابع , وأحياناً أخرى تكون الأجسام مخفية داخل المكتبات الساكنة التي سنتحدث عنها اليوم .   هذا المقال موجّه لمن تجاوز مرحلة انشاء التوابع ويرغب بالتعرف على كيفية حزم التوابع ضمن مكتبات مشابهة لمكتبات اللغة بحيث تظهر الـ prototypes فقط للتوابع ولا تظهر أجسامها.   الفهرس :   0- مقدمة 1- ما هي المكتبات الساكنة static library ؟ 2- لماذا نحتاج إلى مكتبة ساكنة ؟ 3- إنشاء مكتبة ربط ساكنة باستخدام بيئة code::blocks ربط المكتبة مع مشروع بلغة C ربط المكتبة مع مشروع بلغة ++C  0-المفدمة : لدينا الكود البسيط التالي : int Add(int i1, int i2){    return i1 + i2;}long long Mul(int i1, int i2){    return i1 * i2;}int Sub(int i1, int i2){    return i1 - i2;}int Div(int i1, int i2){    if(i2)        return i1 / i2;    return -1;}أين ستضع الكود السابق في حال أردت استخدام التوابع السابقة بشكل متكرر ؟ قد تقوم بنسخها معك أينما ذهبت , وقد تقوم بوضعها في ملف header خاص بك وقوم بعمل include له , ولكن ماذا لو كان لديك المئات من التوابع , هل تدري أنك في كل مرة تقوم بعمل compile يتم إعادة ترجمة الكود كاملاً , وربط كل تلك التوابع مع استدعاءاتها في عمليات طويلة , يمكنك أن تتخيل ان عملية ترجمة ملفات بهذا الحجم ستسغرق الكثير من الوقت , فما بالك عندما تصل إلى آلاف التوابع , ستكون عملية الترجمة لكودك البسيط الذي لم يتجاوز الأسطر .. كابوساً من الانتظار .   1- ما هي المكتبات الساكنة static library ؟ هي ملفات تحوي أجسام توابع تمت ترجمتها مسبقاً ومتغيرات تم حجزها مسبقاً, يتم نسخ محتويات المكتبة إلى الملف التنفيذي مباشرة عند بناء مشروع مرتبط linked بها بعد عمل الـ linking اللازمة لربط استدعاءات التوابع بأجسامها كما يمكن أن تنسخ إلى مساحة ذاكرة ساكنة خاصة بها محددة في وقت الترجمة .   2- لماذا نحتاج إلى مكتبة ساكنة ؟ كما ذكرنا في المقدمة , فإن انشاء مكتبة ساكنة يخفف الحمل عن المترجم compiler في وقت الترجمة , فالمكتبة مترجمة مسبقاً وتنتظر الربط linking كما أنها تقيد في تجزئة ملفات الكود وتنظيم بنية المشروع , ويمكننا أن نضيف إلى فوائدها : إغلاق مصدر البرنامج , أي جعله closed source وذلك لأن عدم وجود أجسام للتوابع ضمن ملفات المشروع يجعل هذا الجزء مغلق المصدر , مما يتيح بعض الخصوصية وحقوق النشر للمبرمج والشركة.   3- إنشاء مكتبة ربط ساكنة باستخدام بيئة code::blocks يمكن إنشاء مكتبات الربط بأي مترجم , وتتيح أي بيئة القيام بذلك بسهولة , باستخدام code::blocks سنقوم بإنشاء مكتبة ربط ساكنة ثم نربطها بمشروع يستخدمها , من القائمة file اختر new ثم project واختر نوع المشروع Static Library لدينا أجسام التوابع التالية : int Add(int i1, int i2){    return i1 + i2;}long long Mul(int i1, int i2){    return (long long)i1 * i2;}int Sub(int i1, int i2){    return i1 - i2;}int Div(int i1, int i2){    if(i2)        return i1 / i2;    return -1;} انسخ الكود السابق واستبدل المحتوى السابق للمشروع (الذي تنشئه البيئة افتراضياً) به . والآن قم بعمل Build ويفترض أن الكود خالٍ من الأخطاء ( لا تقم بعمل run لأن هذا ليس مشروعاً كاملاً ولا يحوي main ) ربط المكتبة مع مشروع بلغة C والآن لنقم بإنشاء مشروع جديد عادي من نوع console project واختر لغة C لكتابة المشروع للتبسيط , سنقوم بلصق تصاريخ التوابع قبل الـmain مباشرة : سيكون لدينا الكود التالي في المشروع : #include <stdio.h>#include <stdlib.h>int Add(int,int);long long Mul(int, int);int Sub(int, int);int Div(int, int);int main(){    printf("4 + 2 = %d\n",Add(4,2));    printf("5 - 4 = %d\n",Sub(5,4));    printf("5 * 5 = %d\n",Mul(5,5));    printf("5 / 5 = %d\n",Div(5,5));    return 0;}والآن إلى عملية الـ linking , من Settings>> Compiler اختر Linker settings ثم قم بالضغط على Add واختر مسار المكتبة الذي أنشأناها قبل قليل ثم O.K -- O.K والآن يمكنك عمل Build ثم run للمشروع وتكون قد أنشأت أول مكتبة ربط ساكنة لك   ربط المكتبة مع مشروع بلغة ++Cتختلف توابع الـ C عن توابع ++C بمسألة تسمى name mangling وهي عملية يقوم بها المترجم فيغيّر أسماء التوابع قبل مرحلة الـ linking ليتمكن من عمل  overloading للتوابع أو إذا كانت بداخل classes , المهمّ أن توابع ++C لا تبقى بنفس الاسم الذي نكتبه عند التعريف , وكل مترجم له mangling خاص به , ولكن في C لا يوجد overloading ولا تغليف للتوابع , فالتابع يبقى بنفس اسمه بالنسبة للمترجم أثناء الربط , لذلك عندما نقوم بعمل مكبتة ربط ساكنة ونريد ربطها مع كود بلغة ++C فعلينا اخبار المترجم أن هذه التوابع مكتوبة ومترجمة بلغة C وذلك عن طريق الكلمة المجوزة التي لا نستخدمها كل يوم , extern ويصبح كود الـ ++C كما يلي : #include <cstdio>#include <cstdlib>extern "C"{    int Add(int,int);    long long Mul(int, int);    int Sub(int, int);    int Div(int, int);}int main(){    printf("4 + 2 = %d\n",Add(4,2));    printf("5 - 4 = %d\n",Sub(5,4));    printf("5 * 5 = %d\n",Mul(5,5));    printf("5 / 5 = %d\n",Div(5,5));    return 0;} والآن يمكنك الانطلاق لعمل مكاتبك الساكنة الخاصة بك , وتنظيم مشاريعك بطريقة أكثر تقدماً .   والله ولي التوفيق
  5. صلي هو برنامج مجاني و مفتوح المصدر لحساب اوقات الصلاة الاسلامية لمعظم دول العالم   الموقع الرسمى للبرنامج هو : http://sallyproject.altervista.org                 صلي هو برنامج مجاني و مفتوح المصدر و يحق لكل شخص استعماله و نشره, فقط لا تنسونا من خالص دعائكم
  6. السلام عليكم , انا احمد من كردستان العراق , انا طالب جامعي المرحلة الاخيرة (الرابعة ) علوم الحاسبات , عندي مشروع لازم اسويه , ولكن لا اعرف كيف اقوم بذالك , المطلوب مني ان اركب ويب كام على نضارات نكدر نشوف العين , و نربطة ويا ال سي شارب , حتي نسوي ( اي رايتر ) eye writer < ف شفت بعض الفيديوهات تستعمل ال opencv < ولكن انا بس من قبل اسبوعين سمعت بيها , ف ممكن مساعدة باي شكل من الاشكال ؟؟؟و شكرا ... :)
  7. بسم الله والحمد لله     هذا كلام مقتضب أكتبه على عجالة من أمري فكانت كلماته قليلة ولكن مغزاه كبير ولكل أحد أن يحكم بما شاء وإنما نبدي نحن عن بنات أفكارنا   البرمجيات الحرة والمصادر المفتوحة لها فضل كبير في نشأة المبرمج أيا كان مشربه وأيا كان مذهبه ، لا يجوز بحال إنكار فضلها على تعلمه وتطوره   كانت ولا تزال المصادر المفتوحة أصل العلوم ولبابها ولولاها ما وصلت البرامج ولا المبرمجون إلى ما وصلوا إليه     هذا أمر كان يقع في نفسي كلما سمعت أحدا يعيب المصادر المفتوحة وينقم عليها ويزعم ظلما وجورا أنها تهدم العلم وتحبط الهمة وتنكس النفس عن طلب المعالي وبلوغ المرام   ألم يعلم بأن اللغات الأولى لو بقيت مغلقة على أصحابها ما وصلت إلينا ، أم لم يعلم بأن اللغات الأشهر كالسي والسي ++ والجافا والباسكال مفتوحة المصدر   قد ينكر هذا الكلام  ناكر  ثم ما يلبث أن يضرب بإصبعه على لوحة مفاتيحه ليبحث عن كود لاتصال بقاعدة بيانات كذا وكذا ، أو عن كود استبدال كلمة بكلمة ، أو عن خوارزمية الترتيب الأسرع ، أو عن كود لبرمجة لعبة أو إنشاء نظام للموظفين     أفلا يرجع إلى نفسه ثم يسألها أليست هذا الأكواد المبثوثة في الشبكات والمخطوطة في الكتب والمشروحة في الفيديوهات أليست مصادر مفتوحة ، فإن كان ما يراه من شرها الأكبر حقا فلا يستفد منها  ولا يبحث عن كود أبدا ولا يسأل أستاذا عن كيف يفعل كذا وكذا لأن ذلك علم مفتوح
  8. ااسلام عليكم انا عندي واحب في computer Graphic using vc++ open gl وهذي اللغه جديده عليه فاتمنى تساعدوني في حلها Write a program that animates whirling hexagons• Requirement: The animation is generated by continuous zoom-in and zoom-out. Starting from the initial configuration of the hexagons, keep zooming in until you reach the smallest hexagon at the center covering the entire screen window, then reverse gear and start zooming out. Once you come back to the initial configuration, start zooming in again. This process is infinitely repeated until the user presses ‘q’ key to exit program. Make sure to slow down the speed of animation so the zooming process can be comfortably viewed. Also, make sure there is no flickering artifact during animation. . Write a program that draws a rosette • Requirement: Everytime the program runs, a random n-rosette must be generated and dis- played. n ranges in [5,17]. Write a program that draws the fifth-generation Koch snowflake ,
  9. أعلنت CIPS أن الحكومة الصينية سوف تعتمد نظام التشغيل Linux كنظام موحد للبلاد، وبالتحديد سيتم استخدام التوزيعة الصينية "أوبونتو كيلين" ('Ubuntu Kylin') وهي أحد النكهات الرسميّة لتوزيعة أوبونتو المشهورة. "أوبونتو كيلين" هي توزيعة صينية تمت إضافتها مؤخرا إلى عائلة أوبونتو باعتبارها نكهة رسمية، وسيتم إطلاق اﻹصدار اﻷول من التوزيعة في 25 أبريل جنبًا إلى جنب مع غيرها من نكهات أوبونتو الرسمية. وقال مارك شتلوورث مؤسس شركة كانونيكال المطوّرة ﻷوبونتو : " مع أوبونتو كيلين فإن الصين أصبح لديها نظام تشغيل خاص بها، آمن ومستقر، إنه قد أنتج بفضل المجتمع العالمي ﻷوبونتو، إن أوبونتو تجمع بين التكنولوجيا التامة والنظام اﻹيكولوجي الناضج ومصنّعي المعدات اﻷصليين والشركاء الذي نتعاون معهم، إن تلك المبادرة تحقق نقاط قوة للصين عبر مجموعة متكاملة من المنصات : (سطح المكتب، السيرفرات، الهواتف، اللوحيات، التخزين السحابي) " .   المصدر : لينكس اليوم
  10.   السلام عليكم ورحمة الله وبركاته   بغيت استفسر عن مفهوم Open-Source Software و Proprietary Software   من ناحية Policy, Methodology, Target Users, Spread      عندي بريزنتيشن مقارنه بينهم ومش فاهمه الموضوع وما لقيت مقالات كثيرة تفصل فيه..   ياليت توضحوا لي الموضوع او اذا فيه مقاللات عنه..       مشكورين وجزاكم الله خير..
  11. السلام عليكم ورحمة الله وبركاته أقدم لكم مشروع مضاد فيروسات ب net. مفتوح المصدر open source التحميل
  12. السلام عليكم ورحمة الله تعالى وبركاته   أود أولاً أن أشكر كافة طاقم الإدارة وأعضاء هذا المنتدى على جهودهم الجبارة   بينما كنت أتصفح منتدنا الحبيب, رأيت كثرة المواضيع التي تخص قواعد البيانات فكان ذلك الروتين قاتلا (وكأننا نريد صنع صاروخ بSQL) ففكرت لماذا لا أبدع فكرت من أفكاري الغبية ؟   فصنعت برنامجا لتشفير النصوص طبعا لكي تحفظوا أسراركم   :P   طبعاً البرنامج مفتوح المصدر (Open source) ويجب أن يكون لديك برنامج Visual Basic 2010.Net لكي تتمكن من التعديل (جرب الإصدارات السابقة وشوف حظك ^^)   البرنامج (معلومات بسيطة):   https://sourceforge.net/projects/encryptedtexts   لتحميله: https://sourceforge.net/projects/encryptedtexts/files/latest/download   ولتحميل السورس كود:   https://sourceforge.net/projects/encryptedtexts/files/Source%20Codes.rar/download?_test=updater&utm_expid=65835818-0   صور البرنامج:   واجهة الترحيب (جد جد بسيطة وبإمكانكم التعديل عليها من البروجيكت):   عملية التشفير:   عملية فك التشفير (يا أخي قَطِع قَطِع):     أرجو أن ينال البرنامج إعجابكم   وإنتظروانا في الإصدار 2 قريباً بمميزات جديدة ^^   تعليقاتكم تهمني كثييير   :rolleyes:   سلام