اذهب إلى المحتوى

Wael Aljamal

الأعضاء
  • المساهمات

    6975
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    218

كل منشورات العضو Wael Aljamal

  1. غير متوفر ب 64 بت مع php 8 الأفضل عمل Formant وتنصيب نظام متوافق.
  2. حاول تحميل إصدار PHP وتنصيبه من الرباط: preconfigured PHP 8.1.0 package (32-bit) for Windows. ثم تأكد من إضافة مسار التنصيب لمتغيرات البيئة C:\Program Files\PHP8 ثم تأكد من إصدار PHP php -version يجب أن يظهر الإصدار 8.1.0 بحالة تعديل نسخة إصدار نظام التشغيل إلى 64، عليك عمل Format وإعادة التنصيب لويندوز من جديد ما سيحذف جميع الملفات و البرامج في القرص C الخاصة بنظام التشغيل و عليك إعادة تنصيبهم و نقل ملفاتك جميعها مثل مشاريع XAMPP وغيرها.
  3. ما رأيك أن نلصق ال id باسم المستخدم، أي سنعمل String من الاسم ثم الرقم مع وجود فاصل بينهم مثلاً (:) for (int i=0 ; i < responsebody.length ; i++){ listsearch.add(responsebody[i]['name'] + ':' + responsebody[i]['id']); } هذه ستنفع لأن البحث يتم عن طريق startsWith أي من اليسار لليمين، يمكنك لاحقاً اقتصاص id من خلال البحث عن ":" ثم الاحتفاظ بالجزء الأول للاسم و الثاني للرقم //s هي النص name + : + id String name = s.substring(0, s.indexOf(':')); String id = s.substring(s.indexOf(':') + 1); او // int id = int.parse(s.substring(s.indexOf(':') + 1));
  4. سأقترح عليك فكرة أبسط لحذف الأعداد الأولية من مكدس، يمكنك تعريف مكدس مؤقت (يكون فارغ بالحالة الأولية)، سوف نقوم بإفراغ المكدس الأساسي من العناصر الواحد تلو الآخر، و سوف نضيف العنصر الغير أولي من المكدس الأساسي للمكدس المؤقت، ثم بعد انتهاء فلترة العناصر جميعها، نعيد تفريع المكدس المؤقت و نضيف العناصر للمكدس الأساسي وسوف يعاد ترتريب جميع العناصر بنفس الترتيب السابق مع التخلص من الأعداد الأولية. stack; // مكدس فيه عناصر temp; // مكدس فارغ مؤقت while (stack.size() > 0) { int x = stack.pop() if (! prime(x)) { // غير أولي X temp.push(x) } } // إعادة العناصر للمكدس الأساسي while (temp.size() > 0) { int x = temp.pop() stack.push(x) }
  5. هل حاولت استعمال startActivityForResult أي تقوم بتشغيل نشاط آخر و بعد انتهائه و تعود بنتيجة نشغل دالة في النشاط الحالي؟ نبدأ النشاط رقم 2 من النشاط رقم 1 button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivityForResult(intent, 2);// Activity is started with requestCode 2 } }); بعد العودة من النشاط 2 للنشاط 1 نستدعي الدالة @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // check if the request code is same as what is passed here it is 2 if(requestCode==2) { // استدعاء الدالة } } الحل الأمثل هو عمل async task ثم ضمن الدالة do in background يمكنك تنفيذ الدوال وراء بعضها. أو استخدام executor Executor executor = anExecutor(); executor.execute(new RunnableTask1()); executor.execute(new RunnableTask2());
  6. حسناً، في هذه الحالة و نمط البيات int لا يتسع لعدد كبير من الخانات، لذلك نحفظ الرقم على شكل سلسلة نصية أو مصفوفة، حيث نقوم بالمرور على عناصر المصفوفة مثلا، و نقوم بإسناد قيمة عشوائية لكل عنصر فيها، فيتم تمثيل العدد على عناصر المصفوفة. أو تشكيل عدد عشوائي و إضافته لسلسة نصية، نفس المنطق. import java.util.Random; Random rand = new Random(); int arr[] = new int[111]; int y = rand.nextInt(9); // 0-8 y = y + 1; // => 1-9 arr[0] = y; for (int i=1;i <100;i++) { arr[i] = rand.nextInt(10); // 0-9 }
  7. تمام، حسب مفهوم android life cycle بعد انتهاء إنشاء العرض أي انتهاء الدالة on Create يتم مناداة on Start يمكنك نقل استدعاء الدوال التي يجب تنفيذها بعد نهاية الإنشاء ل on Start حاول إضافة هذه: @Override public void onStart () { super.onStart(); showAdmobBanner(); } أو مجرد نقل الاستدعاء لنهاية loadAdmobBanner public void loadAdmobBanner() { try { admobBanner = new AdView(this); admobBanner.setAdSize(AdSize.BANNER); admobBanner.setAdUnitId(this.getResources().getString(R.string.admob_banner_id)); AdRequest adRequest = new AdRequest.Builder().build(); admobBanner.loadAd(adRequest); // هنا showAdmobBanner(); } catch (Exception ignored) { } }
  8. شكرا لإرفاق الشيفرة، أنا أفهم هذا الأمر، لكن أحتاج لفهم دقيق للعمليات التي تقوم بها كلا الدالتين لاستخدام تعليمات برمجية من الممكن أن تحل المشكلة، يفترض أن البرمجة متزامنة و أن استدعاء الدوال تسلسلي، فكيف يتم استدعاء دالة قبل انتهاء ما قبلها؟ يمكن تجريب حل بسيط وهو استدعاء الدالة الثانية ضمن الدالة الأولى في آخر سطر لها مثلاً .. private void loadBannerAd () { ...//الدالة الأولى ... showBannerAd(); }
  9. أرجو مشاركة الشيفرة البرمجية مع تحديد الدالتين لنستطيع مساعدتك بشكل أفضل.
  10. أنا أزلت النجمة لأنه من الواضح استخدام حقلي الاسم فقط، يمكنك إضافتها SELECT cat1.name AS name1, cat2.name AS name2, * From ...
  11. الحل يكمن في استعلام SQL حيث يمكنك وضع اسم مستعار لكل من الحقلين الذين لهما نفس الاسم $sql=" SELECT cat1.name AS name1, cat2.name AS name2, FROM Tabletop inner join Cat cat1 ON Tabletop.IDCat = cat1.id inner join Sub_Cat cat2 ON Tabletop.Id_Sub_Cat = cat2.id where Tabletop.id = ? " ; ثم في Flutter if (data != null) { //table -1 name1 var GetName = data[0]['name1']; // Table-2 name2 var GetNameTwo = data[0]['name2']; }
  12. يمكنك إضافة كلمات مفتاحية توجه عملية البحث عن المشاريع البسيطة الخاصة بالمبتدئين مثل كتابة simple django projects for Beginners لكن بشكل عام، لا أنصحك بتحميل مشاريع مباشرة و قراءة الأكواد، بل من الأفضل متابعة كورسات و مشاهدة فيديوهات لمبرمجين ماهرين يقومون بإنشاء المشاريع خطوة بخطوة، وهذا ما سيعلمك، أما فتح مشروع و قراءة الأكواد، لن تعرف ترتيب الخطوات اللازمة للتدرج في عمل المشروع. ولحسن حظك، تم اليوم نشر "دورة تطوير التطبيقات باستخدام لغة Python" في أكاديمية حسوب. يمكنك الاشتراك بها، ستعلمك من الأساسيات حتى بناء مشاريع تجارة الكترونية بإطار Django.. كالتالي: الأسس البرمجية السليمة عبر لغة Python التعامل مع مختلف صيغ الملفات مثل إكسل Excel وورد Word وخدمات المستندات السحابية استخراج البيانات من صفحات الويب Web Scraping وتحليلها أساسيات التعامل مع قواعد البيانات عبر بايثون، والتعامل مع البريد الإلكتروني لإرسال الرسائل أساسيات إطار العمل جانغو Django بناء تطبيق إدارة المهام باستخدام إطار العمل جانغو Django تطوير متجر إلكتروني متكامل باستخدام إطار العمل جانغو Django وربطه مع وسائل الدفع باي بال PayPal وسترايب Stripe أساسيات إطار العمل فلاسك Flask، وبناء مدونة بسيطة تطوير واجهة برمجية API اعتمادًا على نمط RESTful لمعالجة الصور
  13. يمكن ذلك من خلال التلاعب بالخاصية z-index حيث أن العنصر الذي له z-index أكبر يظهر فوق باقِ العناصر. div { z-index: 999; // في أعلى كل القيم التي أصغر } ولكي تتحرك الصورة لجهة اليسار كما فهمت أن Footer على اليسار؟ استخدم position absolute للصورة مع تحديد المحاذاة left و bottom مع قيم مناسبة لها. div { position: absolute; left: 30px; bottom: 0px; } bottom بقيمة 0 لكي تلاصف الحافة السفلية left بنفس قيمة الهوامش في مشروعك مثلاً. إذا كانت الصورة تنتمي ل div آخر، اجعل خاصية over flow له أضف أيضاً z-index div { overflow: visible; }
  14. يمكن أيضاً حساب عدد مرات إمكانية قسمة العدد على 10 حيث أن كل خانة للعدد العشري من مضاعفات 10 int counter = 0; int x = input // عدد نريد حساب عدد خاناته int temp = x ; // نسخة مؤقتة while(temp>0) { counter ++; temp = temp / 10; } System.out.println(counter);
  15. تُعد البيئة الافتراضية virtualenv كنظام برمجي معزول (بيئة محلية) عن النظام العام في الحاسوب لديك، بحيث يمكنك تثبيت المكتبات و الاعتماديات فيه بحرية تامة، بدون التأثير على المكتبات و إصدارات لغات البرمجة و غيره التي تستعملها في نظامك بصورة طبيعية. أي هي أداة توفر طريقة لعزل تطبيقك و الحزم البرمجية الخاصة به (ترقية وتعديل الإصدارات) بدون عمل تأثير على نظام التشغيل لديك و المكتبات، لكي لا تنتهي بعدد ضخم من المكتبات غير المتوافقة و التي تؤثر سلبا على مشاريعك الأخرى. حيث سيتم تخصيص مجلد له و يمكن بسهولة التخص منه لاحقاً. إن واجهتك أي مشكلة يمكنك طرح سؤال خاص بها مع ذكر جميع التفاصيل عن الخطأ.
  16. يمكنك استخدام معرف المنتج ID نفسه الموجود في حقل قاعدة البيانات الذي يتم توليده تلقائياً auto increment عند تحديد حقل ID ك primary key بالضبط، وهكذا لن تكون مسؤول عن إدارة عملية توليد الأرقام العشوائية للمنتجات لأنها طريقة خطأ، الأرقام التسلسلية لا تتكرر وهي المناسبة في حالتك.
  17. اسم قالب الموقع هو 9oole وهو برمجة خاصة، أي ليس متاح بشكل مجاني، مطور من قبل Px-Lab يمكنك توظيف مستقل لتصميم قالب مناسب لك أو شبيه بالموقع المذكور من خلال موقعي مستقل أو خمسات
  18. يمكنك مشاركة الشيفرة التي قمت بكتابتها لنساعدك على تصحيح الأخطاء.
  19. لماذا تقوم بتوليد أرقام المنتجات ضمن التطبيق وليس ضمن BackEnd? ولماذا رقم عشوائي بدل رقم تسلسلي في قاعدة البيانات..
  20. هي طريقة ممكنة، لكن من الممكن عدم إكمال المستخدم تسجيل الدخول، أو محاولته الدخول أكثر من مرة بشكل خاطئ ما يملأ قواعد البيانات بدون نفع، مما يضطرك لعمل دالة تحذف البيانات منتهية الصلاحية من القاعدة.. لذلك Token هو أفضل حل، يليه تخزين الجلسة لأنه يحذف بطريقة تلقائية
  21. بهذه الحالة المصدر لايدعم صيغة json..
  22. يمكنك نشاركة البرنامج الذي كتبته لنساعدك
  23. عليك حساب تكرار كل عدد من عناصر المصفوفة، ثم بعد الانتهاء من العد، يمكنك طباعة الأعداد التي لها تكرار حسب شرط المسألة
  24. حتى تحصل على شهادة أكاديمية حسوب، عليك الإلمام ب 4 مسارات ضمن الدور التي تشتريها، ومن ثم تقديم امتحان و يتوجب عليك النجاح به للحصول غلى الشهادة. و إن الشهادة تتوفر على شكل رابط انترنت مرفوع على استضافة تابع لشركة حسوب قابلة للتحقق الكترونيا بمجرد دخول الرابط و ستكون باسمك الكامل. و سوف يضاف لحسابك في مستقل شارة تؤكد أنك خريج أكاديمية حسوب. الاعتراف بالشهادة هو موضوع تؤكد عليه مهاراتك (حتى الشهادة الجامعية لاتدل على شيء إن لم يكون صاحبها بارع في مجاله و ملم به)، حيث أن معظم شركات البرمجة لها مقابلات توظيف للتأكد من مهارات المبرمجون، شهادة الأكاديمية سوف تفيدك في التقديم على وظائف، بجانب اهتمامك بمعرض أعمالك و نشرهم ليستطيع العملاء مشاهدتها و اختبارها و من ثم توظيفك على المشاريع. يمكنك تصفح الأسئلة الشائعة و فيها رابط يصف الامتحان و باقي التفاصيل من هنا بالتوفيق
  25. في الشيفرة التي ارفقتها لك، يتم وضع رابط في الإيميل، استبدل الرابط بالنص الذي تريد إرساله. وأنت قمت بذلك، حسنا بقي لك فك تشفير Token و قراءة الرمز المولد عشوائيا ولكن طريقة الToken لا تحفظ الرمز في المخدم لذلك: إن كنت تريد حفظ الرمز في المخدم، استخدم session storage و قم بضبط المدة الزمنية التي تناسبك للاحتفاظ ببيانات الجلسة. و عملية التحقق تتم من خلال التأكد هل الرمز الذي أدخله المستخدم موجود في session storage طبعا هذه في المخدم و ليس المتصفح
×
×
  • أضف...