• الإعلانات

    • فيصل الحربي

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

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

crazy-man

المشرفين القدامى
  • عدد المشاركات

    2,096
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة crazy-man

  1. موقع مختص في مسابقة الخوارزميات العربية و هو مكان لتنافس بين المبرمجين العرب للمشاركة المرجو دخول على : http://www.arabalgo.com       قوانين المسابقة :   المسابقة جد بسيطة لن تحتاج الا للتسجيل في الموقع و بعدها مباشرة تبدأ، من اجل المشاركة في المسابقة يجب ان تتأكد بأن هناك أصلا مسابقة مفتوحة للمشاركة و ذلك عن طريق ضغطك على الرابط "المشاركة في المسابقة" بعدها تختار خوارزمية تدخل بعدها الى الخوارزمية و المطلوب منك تحاول حلها و بعد ان تحلها تكتب الحل بلغة البرمجة المفضلة لديك بعد ذلك يتم تفحص مشاركتك و كودك من طرف طاقم من المبرمجين المميزين و يتم تحديد اذا ماكان جوابط صحيح او خاطئ في حالة اذا ماكان صحيح يتم تحديد النقاط و ذلك اعتمادا على عدة معايير منها : سرعة الكود في تنفيذ المطلوب تنظيم الكود   المسابقة تظل مفتوحة للمشاركة لمدة لا تتجاوز الأسبوع لإتاحة الفرصة للعدد الأكبر للمشاركة بعد ذلك يتم اغلاقها. و في نهاية كل مسابقة يتم الاعلان عن الفائز. بالنسبة للجوائز حقيقة الموقع قائم على جهد فردي و لا يمكنني حاليا تقديم اية جوائز مادية في انتظار اي مساعدة او دعم من اي جهة فردا كانت او مؤسسة لعلها تساندني لتقديم و لو جوائز رمزية للفائز، لكن الجئزة الحقيقة التي يمكنكم ان تكسبوها هي التجربة و معرفة هل انتم بالفعل مبرمجين ام لا. يمكنكم بعد نهائة كل مسابقة الاطلاع على اكواد المبرمجين الآخرين لمقارنتها بأكوادكم و ايضا يمكنكم الاطلاع على "أرشيف المسابقات" التي مضت. أتمنى منكم المشاركة بكثافة و شكرا لكم. أي استفسار راسلوني على البريد الالكتروني :         قوانين المشاركة و نظام التنقيط من يمكنه المشاركة ؟   هذه المسابقة مفتوحة للجميع دون حصر و يمكن لاي مبرمج يجد في نفسه القدرة على المشاركة و المنفسة ان يشارك. ما هي لغات البرمجة التي يمكن المشاركة بها؟ لحد الآن لغات البرمجة التي يمكن ان تشارك بها هي : Visual Basic.NET C# Java C/C++ PHP Delphi Visual Basic 6 و سيتم فتح الباب امام اللغات الأخرى مستقبلا. نظام التنقيط : لكل خوارزمية عدد من النقاط و هي كالتالي : خوارزمية المستوى الأول : 250 نقطة خوارزمية المستوى الثاني :500 نقطة خوارزمية المستوى الثالث :1000 نقطة   بمجرد فتح خوارزمية معينة يبدأ العد العكسي الى ان تقوم بطرح المشاركتك بالنسبة للخوارزمية من المستوى الأول امامك 30 دقيقة و الخوارزمية من المستوى الثاني امامك 45 دقيقة و الخوارزمية من المستوى الثالث امامك ساعة واحدة لذا قبل فتح أية خوارزمية يجب ان تكون جاهزا لحلها. من سيضع الاجابة بعد مرور الوقت المحدد سيعامل على الشكل التالي : اذا كانت اجابته صحيحة : سؤال المستوى الأول : يحصل على 25 نقطة سؤال المستوى الثاني : يحصل على 50 نقطة سؤال المستوى الثالث : يحصل على 100 نقطة   اذا كانت اجابته خاطئة سيحصل على 0 نقطة بالنسبة
  2. مكتبة الدروس الخاصة بالفيجوال بيسك دوت نت تحميل9In This Video You Will Learn How To Use The 'FontDialog'In Your Project --Video Presented By : www2 ---تحميل10In This Video You Will Learn How To Use The 'ColorDialog'In Your Project --Video Presented By : www2 ---تحميل11درس يعتبر كمقدمة لتقنية ال Windows Presentation Foundationتحميل11مقدمة عامة لبرنامج ال MS Expression Blendتحميل12 انشاء Button ذات Design خاص بك بواسطة برنامج MS Blend تحميل13 من MS Expression Design الى MS Expression Blend - الجزء الأول تحميل14 من MS Expression Design الى MS Expression Blend - الجزء الثانيتحميل15 تعديل شكل ListBox بال WPF - الجزء الأولتحميلعنوان الكتابوصف الكتابرابط التحميلMS Press - OOP with Microsoft VB.NET and C#كتاب مهم لكل من يريد فهم الـ OOP (Object Oriented Programming) وهومن وجهة نظر شخصية كتاب جد رائعتحميلAdvanced GDI+ Programming in C# and VB.NETكتاب حول التعامل مع GDI+ التي تعطيك امكانية كبيرة في الرسمتحميلVB - VisualBasic® .NET, I didn't know you could do that!كتاب للمبتدئين في عالم الـ VB.NET وخصوصا اولئك المنتقلون من الفيجوال بيسك حديثاًتحميلIntroducing Visual Basic 2005كتاب من مايكروسفت يعتبر مقدمة لكل من يريد الانتقال الى الفيجوال بيسك 2005تحميلVisual Basic 2005 Jumpstartكتاب حول الفيجوال بيسك 2005تحميلProgramming Visual Basic 2005كتاب حول الفيجوال بيسك 2005تحميلWiley Publishing - Visual Basic Design Patterns.pdf***********************تحميلVisual Basic 2005 in a Nutshell NewEDكتاب حول الفيجوال بيسك . نت 2005 --- من أجل فك الضغط كلمة السر هي : free4all تحميلكاتب الدرسعنوان الدرسرابط الدرسAyoub JAMAL EL IDRISSIالجديد في الفيجوال بيسك 2005الرابطDr.Painافكار وتلميحات عن الفئة XmlTextReaderالرابطعبد الله فتحيتحزيــــم التطبيــــقات ... تمهيداً لتوزيعها, الرابطhazzoomًالدرس الأول : الكلاسات في الفيجوال بيسك .نت// الدرس الثاني : الوراثة فيالفيجوال بيسك . نت // الدرس الثالث : انشاءالخواص في الفيجوال بيسك .نترابط الدرس الأولرابط الدرس الثانيرابط الدرس الثالثرغيد الطيبتقنية الإستدعاء الذاتي, مناقشة لهذة التقنية ( فوائد و عيوب )رابط الدرس SOLO.NETالطباعة بواسطة ال VB.NETرابط الدرس SOLO.NETResource Files In Visual Basic .NET 2005رابط الدرس SOLO.NETADO.NET, الوضع المتصلرابط الدرس Ayoub JAMAL EL IDRISSI أساسيات البرمجة, سلسلة دروسرابط الدرس ALATTAR2005 دروس فى إنشاء وإتصال وتحويل قواعد بيانات SQLرابط الدرس o.mohammed انشاء ListBox متعدد الاعمدهرابط الدرس Ayoub JAMAL EL IDRISSI تعلم التعامل مع ال Processesرابط الدرس Ayoub JAMAL EL IDRISSI الفرق بين ByRef و ByValرابط الدرس Ayoub JAMAL EL IDRISSI كيف تنشأ WebService و تستهلكه, فيديو رابط الدرس NO BODY CAN BEAT ME الدالات الفرعية رابط الدرس الأول رابط الدرس الثاني NO BODY CAN BEAT ME اضافة زر للبرنامج في متصفح الانترنت رابط الدرس عابد الرحمن إجعل إتجاه أدواتك من اليمين إلى اليسار, (toolbar- treeview-listview-panel-الخ)رابط الدرس Ayoub JAMAL EL IDRISSIخطوة خطوة في التعامل مع الملفات و المجلدترابط الدرس Ayoub JAMAL EL IDRISSIال Generics في الفيجوال بيسك 2005, من بين الاضافات الجديدة في النسخةالجديدرابط الدرس bashmohandesمقدمة في ال Generics, احدى نقاط القوة في 2005رابط الدرس bashmohandesمقدمة في ال Generics (الجزء الثـــاني), Generic Functionsرابط الدرس Ayoub JAMAL EL IDRISSIمشروع LINQ و الفيجوال بيسك 9رابط الدرس SOLO.NETCompress And Decompress Dataرابط الدرس SOLO.NETالتشفير في الفيجوال بيسك دوت نترابط الجزء الأولرابط الجزء الثانيhazzoomغير طريقة ظهور برنامجكرابط الدرس Ayoub JAMAL EL IDRISSI نظرة على جديد الفيجوال بيسك 9 - الجزء الأولرابط الدرس Ayoub JAMAL EL IDRISSI نظرة على جديد الفيجوال بيسك 9 - الجزء الثانيرابط الدرس Ayoub JAMAL EL IDRISSI كيف يمكنك تعداد تكرار كلمة في نص معين بواسطة ال Linqرابط الدرس Ayoub JAMAL EL IDRISSI البحث عن تعابير معينة في جملة معينة بواسطة Linqرابط الدرس Ayoub JAMAL EL IDRISSI البحث عن ملفات تبعا لإمتدادها بواسطة ال Linqرابط الدرس Ayoub JAMAL EL IDRISSI البحث عن الاختلافات بين لائحتين بواسطة ال Linqرابط الدرس Ayoub JAMAL EL IDRISSIHashSet(T)رابط الدرس سوف يتم ان شاء الله تحديث المكتبة كلما وجد كتاب او فيديو أو درس جديد لذا اجعلوها اول مكان تزرونهاذا كان هناك أي مشكل في التحميل المرجو اعلامي عن طريق الخاصو السلام عليكم
  3. موقع عربي يحتوي على العديد من دروس البرمجة أنصحكم به موقع المبرمجون العرب
  4. مشكلة بجد بجد غريبه

    replace inner by left , and retry
  5. مواضيع متنوعة حول الفيجوال بيسك دوت نت   استخدامات متقدمه للماوسConsole Applicationبرنامج البحث عن الملفات في جهازككيف يمكنك تعداد تكرار كلمة في نص معين بواسطة ال Linqالبحث عن تعابير معينة في جملة معينة بواسطة Linqالبحث عن ملفات تبعا لإمتدادها بواسطة ال Linqنظرة على جديد الفيجوال بيسك 9 – الجزء الثانينظرة على جديد الفيجوال بيسك 9 – الجزء الأولHashSet(T)كيف اكسر حماية برنامج مكتوب بالـ .NETتقنية ال .NET Remotingشرح خوارزمية ال Bubble Sortقنص الأخطاء و طرق التخلص منها – Exceptions Handlingالمعامل IsNotال Using Instructionال Global InstructionXML Commentsال Partial Classال Genericsالمعامل TryCastالإختصار MYMake Data Types NullableEncrypt Secrets for the Current UserADO.NET مقدمة لاهم كائناتهامكتبة للتحكم بال Nintendo’s WiimoteVisual Basic TVجرب قدراتك البرمجية مع مايكرسفتلغة XAMLال WinFX و ال Avalonوضع أسماء الالوان المتاحة في كومبوبوكسعمل خاصية Nudge كالتي في المسنجر!لفرق بين ByRef و ByValاستعمال كلمة محجوزة كمتغيرGets Installed Printers In your Computerاستخدام الكلمة المحجوزة withFlash Window – عمل اضاءة لبرنامجك في TaskBarرسم شكل هندسيعمل Drag&Dropالتعامل مع ال ProcessThreading and the Asynchronous Pattern in VB.NETكيفية ايقاف و الخروج من الويندوزتنفيذ أوامر Dos في برنامجك و إظهار النتائج فيهانشاء Button ذات Design خاص بك بواسطة برنامج Ms Blendمن MS Expression Design الى MS Expression Blend – الجزء الأMake some effects to images with VB.NETManaging text files with vb.netشرح الحصول على ip address من ال HostNameWebServices in Visual Basic.NET Part 2 (Arabic)WebServices in Visual Basic.NET Part 1 (Arabic)الوراثة في الفيجوال بيسك دوت نت – الجزء الثانيالوراثة في الفيجوال بيسك دوت نت – الجزء الأولاستخدام ال Crystal Report مع الفيجوال بيسك دوت نتمقدمة لبرنامج Microsoft Expression Blendخطوة بخطوة في التعامل مع الملفات و المجلداتالتعامل مع الملفات (قراءة،كتابة،،،)إستخلاص معلومات حول ملف معينCompress/Decompress Filesإستخراج ال Tags من ملف MP3اجعل جهازك يعمل شيئا من أجلك.التعامل مع ال Stringأساسيات البرمجة – مقدمة عامةالمصفوفات – Arraysالمتغيراتالحلقة التكرارية For … Nextبدايات البرمجة – الأساسياتما هي خاصية IsMdiContainer وكيف تعملخوارزمية ال Bubble SortUsing CodeDomالحلقة التكرارية For … Next 
  6. موقع مختص في مسابقة الخوارزميات العربية و هو مكان لتنافس بين المبرمجين العرب للمشاركة المرجو دخول على : http://www.arabalgo.com       قوانين المسابقة :   المسابقة جد بسيطة لن تحتاج الا للتسجيل في الموقع و بعدها مباشرة تبدأ، من اجل المشاركة في المسابقة يجب ان تتأكد بأن هناك أصلا مسابقة مفتوحة للمشاركة و ذلك عن طريق ضغطك على الرابط "المشاركة في المسابقة" بعدها تختار خوارزمية تدخل بعدها الى الخوارزمية و المطلوب منك تحاول حلها و بعد ان تحلها تكتب الحل بلغة البرمجة المفضلة لديك بعد ذلك يتم تفحص مشاركتك و كودك من طرف طاقم من المبرمجين المميزين و يتم تحديد اذا ماكان جوابط صحيح او خاطئ في حالة اذا ماكان صحيح يتم تحديد النقاط و ذلك اعتمادا على عدة معايير منها : سرعة الكود في تنفيذ المطلوب تنظيم الكود   المسابقة تظل مفتوحة للمشاركة لمدة لا تتجاوز الأسبوع لإتاحة الفرصة للعدد الأكبر للمشاركة بعد ذلك يتم اغلاقها. و في نهاية كل مسابقة يتم الاعلان عن الفائز. بالنسبة للجوائز حقيقة الموقع قائم على جهد فردي و لا يمكنني حاليا تقديم اية جوائز مادية في انتظار اي مساعدة او دعم من اي جهة فردا كانت او مؤسسة لعلها تساندني لتقديم و لو جوائز رمزية للفائز، لكن الجئزة الحقيقة التي يمكنكم ان تكسبوها هي التجربة و معرفة هل انتم بالفعل مبرمجين ام لا. يمكنكم بعد نهائة كل مسابقة الاطلاع على اكواد المبرمجين الآخرين لمقارنتها بأكوادكم و ايضا يمكنكم الاطلاع على "أرشيف المسابقات" التي مضت. أتمنى منكم المشاركة بكثافة و شكرا لكم. أي استفسار راسلوني على البريد الالكتروني :         قوانين المشاركة و نظام التنقيط من يمكنه المشاركة ؟   هذه المسابقة مفتوحة للجميع دون حصر و يمكن لاي مبرمج يجد في نفسه القدرة على المشاركة و المنفسة ان يشارك. ما هي لغات البرمجة التي يمكن المشاركة بها؟ لحد الآن لغات البرمجة التي يمكن ان تشارك بها هي : Visual Basic.NET C# Java C/C++ PHP Delphi Visual Basic 6 و سيتم فتح الباب امام اللغات الأخرى مستقبلا. نظام التنقيط : لكل خوارزمية عدد من النقاط و هي كالتالي : خوارزمية المستوى الأول : 250 نقطة خوارزمية المستوى الثاني :500 نقطة خوارزمية المستوى الثالث :1000 نقطة   بمجرد فتح خوارزمية معينة يبدأ العد العكسي الى ان تقوم بطرح المشاركتك بالنسبة للخوارزمية من المستوى الأول امامك 30 دقيقة و الخوارزمية من المستوى الثاني امامك 45 دقيقة و الخوارزمية من المستوى الثالث امامك ساعة واحدة لذا قبل فتح أية خوارزمية يجب ان تكون جاهزا لحلها. من سيضع الاجابة بعد مرور الوقت المحدد سيعامل على الشكل التالي : اذا كانت اجابته صحيحة : سؤال المستوى الأول : يحصل على 25 نقطة سؤال المستوى الثاني : يحصل على 50 نقطة سؤال المستوى الثالث : يحصل على 100 نقطة   اذا كانت اجابته خاطئة سيحصل على 0 نقطة بالنسبة
  7. السلام عليكم اخي العزيز شكرا على ملاحظاتك انا حاليا اعمل على انشاء برنامج يقوم باختبار الاكواد بشكل اوتوماتيكي و ان شاء الله سيتم عمل مسابقات مستقبلا مقابل جوائز للفائزين على فكرة انا حاليا ابحث عن مبرمجين ليكونوا معي في طاقم ادارة الموقع و هذه دعوة لكل من يرى في نفسه الامكانية لذلك ان يراسلني عبر الخاص و شكرا
  8. تحديث لبعض لنكات الدروس   استخدامات متقدمه للماوسConsole Applicationبرنامج البحث عن الملفات في جهازككيف يمكنك تعداد تكرار كلمة في نص معين بواسطة ال Linqالبحث عن تعابير معينة في جملة معينة بواسطة Linqالبحث عن ملفات تبعا لإمتدادها بواسطة ال Linqنظرة على جديد الفيجوال بيسك 9 – الجزء الثانينظرة على جديد الفيجوال بيسك 9 – الجزء الأولHashSet(T)كيف اكسر حماية برنامج مكتوب بالـ .NETتقنية ال .NET Remotingشرح خوارزمية ال Bubble Sortقنص الأخطاء و طرق التخلص منها – Exceptions Handlingالمعامل IsNotال Using Instructionال Global InstructionXML Commentsال Partial Classال Genericsالمعامل TryCastالإختصار MYMake Data Types NullableEncrypt Secrets for the Current UserADO.NET مقدمة لاهم كائناتهامكتبة للتحكم بال Nintendo’s WiimoteVisual Basic TVجرب قدراتك البرمجية مع مايكرسفتلغة XAMLال WinFX و ال Avalonوضع أسماء الالوان المتاحة في كومبوبوكسعمل خاصية Nudge كالتي في المسنجر!لفرق بين ByRef و ByValاستعمال كلمة محجوزة كمتغيرGets Installed Printers In your Computerاستخدام الكلمة المحجوزة withFlash Window – عمل اضاءة لبرنامجك في TaskBarرسم شكل هندسيعمل Drag&Dropالتعامل مع ال ProcessThreading and the Asynchronous Pattern in VB.NETكيفية ايقاف و الخروج من الويندوزتنفيذ أوامر Dos في برنامجك و إظهار النتائج فيهانشاء Button ذات Design خاص بك بواسطة برنامج Ms Blendمن MS Expression Design الى MS Expression Blend – الجزء الأMake some effects to images with VB.NETManaging text files with vb.netشرح الحصول على ip address من ال HostNameWebServices in Visual Basic.NET Part 2 (Arabic)WebServices in Visual Basic.NET Part 1 (Arabic)الوراثة في الفيجوال بيسك دوت نت – الجزء الثانيالوراثة في الفيجوال بيسك دوت نت – الجزء الأولاستخدام ال Crystal Report مع الفيجوال بيسك دوت نتمقدمة لبرنامج Microsoft Expression Blendخطوة بخطوة في التعامل مع الملفات و المجلداتالتعامل مع الملفات (قراءة،كتابة،،،)إستخلاص معلومات حول ملف معينCompress/Decompress Filesإستخراج ال Tags من ملف MP3اجعل جهازك يعمل شيئا من أجلك.التعامل مع ال Stringأساسيات البرمجة – مقدمة عامةالمصفوفات – Arraysالمتغيراتالحلقة التكرارية For … Nextبدايات البرمجة – الأساسياتما هي خاصية IsMdiContainer وكيف تعملخوارزمية ال Bubble SortUsing CodeDomالحلقة التكرارية For … Next 
  9. the javascript function name is "send()" not 'end()' !!!
  10. كما ترى في نص الخوارزمية Public Function calculateFinalPrice(product As String, price As Integer, food As String()) As Doubleفنوع المتغير الذي يعود كنتيجة دوبل يعني فقط يجب إحترام المدخلات والمخرجات للخوارزمية :) على فكرة أنا رأيت حلك و هو صحيح و أتمنى أن تحاول مع ألخورزميات الأصعب
  11. افضل php editor

    Sublime Text 2 , try it
  12. here is your code corrected <html><head> <title> Welcome </title> </head><body><table border="1"><?php$number=0; for( $number = 0; $number < 10; $number++ ){        $result = $number + 1;        $counter=1;    echo "<tr>";    for ( $counter=1; $counter <= 10; $counter++ )    {    $res = $counter + (10 * $number);    echo "<td> $res </td>";    }    echo "</tr>";                }?></table></body></html>
  13. حاول أن تكتب هذا الكود header( 'Location: index.php' ) ;بدلا من هذا السطر Echo '<meta http-equiv="refresh" content="3; url= index.php">';
  14. هل انت محترف للغة الــ PHP ؟

    Hello everybody, i'm sory to write in english coz i don't have an arabic keyboard right now, and i have to say something about all this looooong discussion i notice that there is a lot of talking about defining terms "professionnal" and no one of you talked about the posted codes and if they respect the "professionnal" rules of programming, i will not talk about all the posted code, juste the last one, as the owner of this subject said; it's a professionnal code :), in this code there is a lots of errors i'll start explaining one by one okay , so let' go : 1 : PUBLIC VS PRIVATE public $length ; public $nameArray = array(); thoses two attributes must be 'private' not 'public' coz $nameArray is just a recipient that will contain names passed as param to the getUser() function and our class User is the only one that will use it, and if it's public, i can pass you protect() function with a code like that :) : foreach ( $ctrUser->nameArray as $value){ echo 'Username : '.$value.'<br />Password : '.$ctrUser->genPass().'<br /><hr width="150" align="left" />'; }$ctrUser->nameArray = array('iframe','object'); the same thing for $length !! don't know why it's public while we are passing it like a param for the User constructor !! this prototype is incorrecte : public function protect($input) that must be a private function the user of our Class don't need it it's just for internal use, so declaring it as Public is not correct. 2 : VARIABLES TYPE : the way you pass params to your constructor , $ctrUser = new users($names,'10'); You know that in PHP types of variables are created once we assign a value to a variable, the second param is an INT but you pass it as STRING !!! and that's WRONG , or let me say NOT PROFESSIONNAL. 3 : MYSQL FUNCTION $input = mysql_real_escape_string($input) using a mysql function in a code that not using a connection to mysql will give you an error. 4 : ARRAYS $string .= $characters[mt_rand(0, strlen($characters))]; without compiling this code a "professionnal" must know that will throw an exception, why ? strlen($string) return the length of string if $string = 'ab', the it will return 2 so if $characters = array('value1','value2','value3') $string .= $characters[mt_rand(0, strlen($characters))]; , will be a value between 0 and 3 so if 3 then it will be out of range so the correct code is : $string .= $characters[mt_rand(0, strlen($characters)-1)]; so if you have remarks about my remarks, let me know :)
  15. بسم الله الرحمن الرحيم إستخراج ال Tags من ملف MP3 مقدمة : درسنا اليوم ليس له علاقة فقط بالفيجوال بيسك دوت نت بل يمكن استغلاله في لغات برمجة اخرى، الدرس سيكون حول كيفية استخراجنا لمعلومات معينة من ملف من نوع MP3. هذا الأمر كنت بحاجة اليه عند عملي لبرنامج من نوع MP3 Player طبعا هناك مكتبات جاهزة تساعدك على ذلك و أيضا أداة ال WMP تمكنك من ذلك لكني كنت أريد أن أعمل الكود الخاص باستخراج تلك المعلومات لأغراض شخصية فمنها اني عندما أريد قراءة تلك المعلومات لا اريد استعمال اداة ال WMP لأنه من اجل استخراجها يجب ان تمرر اسم الملف اليها و ذلك معناه انها تفتح الملف بل و تقرأه لكي تعطيك تلك المعلومات، الحل كما قلت كان بايجاد أداة اخرى لعمل ذلك و فعلا توجد DLL's لعمل ذلك، لكن لما اخاطر باستعمال DLL قد يكون يستعمل طريقة تجعل برنامجي يستهلك ذاكرة اكثر من اللازم، لذا قررت ان اكتب الكود بنفسي خصوصا أني أعرف ان كل تلك المعلومات موجودة في الملف نفسه. ID3 أول خطوة كانت كيف سأعرف أين توجد تلك المعلومات بالتحديد في الملف ؟؟؟ بعد بحيث لم يستغرف خمس دقائق وجدت ان هذه المعلومات TAGS تكون في آخر الملف و كل تلك المنطقة او كل تلك المعلومات تسمى ID3، بعد بحث آخر :D وجدت مقالة حولها في ال WikiPedia : http://en.wikipedia.org/wiki/ID3 الذي يهمنا في هذا المقال أن المعلومات التي نريد موجودة في ال 128 بايت الأخيرة من ملف ال MP3 و هي مقسمة كالتالي : 0 -> 3 = "TAG" 3 -> 33 = Title 33 -> 63 = Artist Name 63 -> 93 = Album 93 -> 97 = Year 97 -> 127 = Comments 127 -> 128 = Genre طبعا نبدأ من بداية ال Structure و التي تحتل ال 128 بايت الأخير. الآن بعد ان عرفنا أين نجد المعلومات و ال Structure الخاصة بها أظن انكم متشوفون لكتابة الكود الخاص بكم الذي يقرأ هذه المعلومات، جيد أتمنى ان يعتبر كل واحد منكم هذا كتمرين له و يحاول ان يكتب كود خاص به و لما لا لا يضعه لنا كرد هنا لعله يكون أحسن من طريقتي. كتابة الكود الآن من أجل عمل مرتب وجميل سنقوم بإنشاء Structure خاصة بنا وستكون على الشكل التالي : Public Structure MP3TAG Dim Title As String Dim Artist As String Dim Album As String Dim Année As String Dim Commentaires As String Dim Genre As String End Structure الآن بعد انشاءنا لل Structure الخاصة بنا سوف نقوم بتسجيل طول كل معلومة ال Structure في ملف ال MP3، يعني اسم المغني يحتوي على كم Char ؟ لو عدت معي للأعلى ستجده يبتدأ من البايت 33 الى 63 يعني الطول المخصص له هو 30 بايت . TAG = 3 Chars Title = 30 Chars Artist = 30 Chars Album = 30 Chars Year = 4 Chars Comment = 30 Chars Genre = 1 Char الآن نقوم بتسجيل هذه المعلومات في برنامجنا على شكل Constants و سيكون تعريفها بالشكل التالي : Const TitleChars As Integer = 30 Const ArtistChars As Integer = 30 Const AlbumChars As Integer = 30 Const YearChars As Integer = 4 Const CommentsChars As Integer = 30 Const GenreChars As Integer = 1 جميل، لحد الآن كل الأمور واضحة، الآن ننتقل للكود الذي سيمكننا من استخراج هذه المعلومات لأننا لحد الآن لم نعمل سوى بعض التعريفات، نقوم بعمل Function تعيد لنا متغير من نوع MP3TAG وهوال Structure التي عرفناها في الأول و سيكون تعريف الدلة كالتالي : Private Function GetMp3Tags(ByVal MP3Path As String) As MP3TAG End Function داخل هذا ال Function سنبدأ العمل، الخطوة الاولى هي فتح الملف بشكل Binary لذا فال StreamReader لن تنفعنا بل سنستعمل بدلها ال BinaryReader، نقوم بتعريفها بالشكل التالي : Dim Mp3Binary As New BinaryReader(File.Open("D:\music\Kan Tayeb.mp3", FileMode.Open)) الملاحظة التي يمكن ملاحظتها هي انه لم نمرر للكلاس BinaryReader مسار ملف معين كما نفعل مع ال StreamReader بل استعملنا File.Open() ذلك ا نال BinaryReader يستقبل Stream و ال File.Open() يقوم بقراء ملف و يرجع FileStream و طبعنا حددنا نوع الفتح : FileMode.Open . الآن لدينا محتوي ملف ال MP3 في الدالة Mp3Binary. سنقوم الآن باعلان متغير من نوع Char و سيكون بالتحديد Array ذو حجم ال Structure الخاصة بال Tags في ملف ال MP3 و التعريف سيكون كالتالي : Dim Tags(125) As Char الآن سوف ... "هيهووووووووووووووو لحظة لحظة، في البداية قلت ا نال Tags تحتل ال 128 بايت الأخير من الملف لكنك أعلنت Array من 125 فقط ، أين الباقي؟؟؟" ملاحظة في محلها لكن لو عدت معي الى البداية و ال Structure فسنجد ان كلمة "TAG" تحتل ال 3 Bytes الأولى من ال Structure و نحن فعليا لانحتاجها لذا سوف لن نأخذها في الحسبان لذا سنقرأ فقط 125 بايت، الآن تبين كل شئ، أليس كذلك J. الخطوة التالية ستكون بأن نضع مؤشرنا على آخر 125 بايت في الملف و حن نعرف ان محتوى الملف الآن موجود في المتغير Mp3Binary و من أجر وضع المؤشر او بتعبير آخر من أجل أن ننتقل الى بداية آخر 125 بايت سيكون الكود كالتالي : Mp3Binary.BaseStream.Position = Mp3Binary.BaseStream.Length – 125 الخاصية Position تمكننا من تحديد مكان البداية في Stream معينة و نحن حددنا له ان البداية ستكون طول ال Stream – 125 أظن ان هذه الجملةلا تحتاج لشرح أكثر. الآن بعد ان انتقلنا الى بداية ال 125 بايت الأخيرة سوف نقوم بقراءتها ووضعها في ال Array التي اعلناها Tags() و الكود هو : Mp3Binary.Read(Tags, 0, 125) دالة Read هنا استقبلت ثلاث Params الأول ال Array التي توضع فيها المعلومات و هذه ال Array يمكن ان تكون من Char كما هو الحل في مثالنا أو Byte ثانيا نقطة بداية القراءة و هي 0 بالطبع و أخيرا كم عدد ال Bytesالتي يجب قراءتها. الآن بعد ان وضعنا المعلومات التي نريدها في ال Array الخاص بنا فلم نعد نحتاج المتغير Mp3Binary لذا نقوم باغلاقه : Mp3Binary.Close() الآن التعامل مع Array من نوع Char سيكون اكثر تعقيدا لذا من اجل تفادي هذه التعقيدات نحوله الى String : Dim TagToString As String = Convert.ToString(Tags) الآن لدينا TagToString يحتوي على المعلومات الخاصة بملف ال MP3 ك String الآن يسهل لدينا قراءة المعلومات و استخراج ما نريد. كود الاستخراج من ال String سيكون كالتالي : 'Get Title GetMp3Tags.Title = TagToString.Substring(0, TitleChars) 'Get Artist GetMp3Tags.Artist = TagToString.Substring(TitleChars, ArtistChars) 'Get Album GetMp3Tags.Album = TagToString.Substring(TitleChars + ArtistChars, AlbumChars) 'Get Year GetMp3Tags.Year = TagToString.Substring(TitleChars + ArtistChars + AlbumChars, YearChars) 'Get Comments GetMp3Tags.Comments = TagToString.Substring(TitleChars + ArtistChars + AlbumChars + YearChars, CommentsChars) 'Get Genre GetMp3Tags.Genre = TagToString.Substring(TitleChars + ArtistChars + AlbumChars + YearChars + CommentsChars, GenreChars) لنأخذ مثالا السطر الأول الذي يقوم باستخراج اسم المغني : GetMp3Tags.Title = TagToString.Substring(0, TitleChars) بكل بساطة أسندنا للمتغير Title والذي هو ضمن ال Structure المسماة GetMp3Tags اسم المقطع عن طريق استعمال SubString في ال String التي تحتوي على كل المعلومات و طبعا أخذنا اسم المقطع من الحرف الأول الى الحرف رقم 30 و هوالمحدد في ال Constant المسماة TitleChars، بعدها سنأخذ اسم المغني و ستكون بدايته من الحرف 30 الى الحرف 60 : GetMp3Tags.Artist = TagToString.Substring(TitleChars, ArtistChars) بالنسبة لاسم ال Album ستكون بدايته هي بداية طول اسم المقطع + اسم المغني : TitleChars + ArtistChars و طوله طبعا هو قيمة الثابث AlbumChars : GetMp3Tags.Album = TagToString.Substring(TitleChars + ArtistChars, AlbumChars) نفس الأمر بالنسبة للمعلومات الأخرى دائما نبدأ بمجموع طول ال Tags السابقة وبهذا سنحصل على ما نريد. الكود الكامل الآن اليكم الكود كاملا و يمكنكم تجربته : Imports System.IO Public Class Form1 Public Structure MP3TAG Dim Title As String Dim Artist As String Dim Album As String Dim Year As String Dim Comments As String Dim Genre As String End Structure Const TitleChars As Integer = 30 Const ArtistChars As Integer = 30 Const AlbumChars As Integer = 30 Const YearChars As Integer = 4 Const CommentsChars As Integer = 30 Const GenreChars As Integer = 1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim FormattedString As String = "" Dim MyMP3Tags As MP3TAG MyMP3Tags = GetMp3Tags("d:\music\el-lilady.mp3") With MyMP3Tags MessageBox.Show("Title : " & .Title) MessageBox.Show("Artist : " & .Artist) MessageBox.Show("Album : " & .Album) MessageBox.Show("Year : " & .Year) MessageBox.Show("Comments : " & .Comments) MessageBox.Show("Genre : " & .Genre) End With End Sub Private Function GetMp3Tags(ByVal MP3Path As String) As MP3TAG Dim Mp3Binary As New BinaryReader(File.Open("D:\music\Kan Tayeb.mp3", FileMode.Open)) Dim Tags(125) As Char Mp3Binary.BaseStream.Position = Mp3Binary.BaseStream.Length - 125 Mp3Binary.Read(Tags, 0, 125) Mp3Binary.Close() Dim TagToString As String = Convert.ToString(Tags) 'Get Title GetMp3Tags.Title = TagToString.Substring(0, TitleChars) 'Get Artist GetMp3Tags.Artist = TagToString.Substring(TitleChars, ArtistChars) 'Get Album GetMp3Tags.Album = TagToString.Substring(TitleChars + ArtistChars, AlbumChars) 'Get Year GetMp3Tags.Year = TagToString.Substring(TitleChars + ArtistChars + AlbumChars, YearChars) 'Get Comments GetMp3Tags.Comments = TagToString.Substring(TitleChars + ArtistChars + AlbumChars + YearChars, CommentsChars) 'Get Genre GetMp3Tags.Genre = TagToString.Substring(TitleChars + ArtistChars + AlbumChars + YearChars + CommentsChars, GenreChars) Return GetMp3Tags End Function End Class
  16. طلب كتاب JAVA - LA MAITRISE

    السلام عليكم اتمنى لو أجد عند أحدكم نسخة الكترونية من كتاب JAVA - LA MAITRISE شكرا لكم
  17. طلب كتاب JAVA - LA MAITRISE

    شكرا لكن هدا ليس الكتاب كاملا فقط الفهرس و مقطه منه انا ابحت عن الكتاب كاملا
  18. ASSALAMO 3ALAYKOM Sorry coz i m writing in english but i don't have an arabic keyboard right now !! my prob is so simple for you (coz i m soooooooo fresh with C/C++ ) i creat a function that return an array of Chars i want then convert the resulted Char Array to Int then print it into screen the code of my function is : char* ToBinary(int Number) { int Rest; int i=0; char Result[100]; //int NumberRest; while (Number > 0) { Rest = fmod(Number,2); Result[i] = Rest; Number = Number / 2; i++; } return Result; } thank you and sorry for my english
  19. Return Char Array And Convert It To Int

    thank you HGB ,, i used the ATOI function but i think the prob was that i dont fill the array bye "\r" thank you guys , ;)
  20. Return Char Array And Convert It To Int

    thx Fahd ,, but the next step is to convert this char array "Result" to Int ,, how come ?? thank you :)
  21. GoogleWave

    alf chokr akhi hasan , :)
  22. GoogleWave

    hassan can you send me an invitation to googlewave , thx my email is : [email protected]