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

لوحة المتصدرين

  1. adiba adiba

    adiba adiba

    الأعضاء


    • نقاط

      1

    • المساهمات

      1


  2. محمد المري2

    محمد المري2

    الأعضاء


    • نقاط

      1

    • المساهمات

      68


  3. طارق جهاد

    طارق جهاد

    الأعضاء


    • نقاط

      1

    • المساهمات

      188


  4. عمرو خميس

    عمرو خميس

    الأعضاء


    • نقاط

      1

    • المساهمات

      9


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 10/16/18 in أجوبة

  1. أريد تسويق منتوجي وإتاحته لمختلف المسوقين بالعمولة من أجل ربح أكبر، لكن كيف اقنع المسوقين الكبار بتسويق منتوجي ؟
    1 نقطة
  2. مساء الخير اود اولا ان اشكركم على على موقعكم والمعلومات القيمة التي تطرحونها فيه كان لدي استفسار اتمنى ان القى اجابته لديكم انا اعمل على مونتاج احد الفديوهات بدمج فديو قصير لمنظر تساقط المطر مدته 20 تانية بحيت حركة وزاوية الفديو هي نفسها ثابتة بحيث اريد اظافة له صوت تساقط المطر mp3 مدته 30 دقيقة فكنت اريد تمديد مدة الفديو لتتماشي مع صوت المطر لمدة 30 دقيقة بدون ان يضهر ان هناك خدعة فهل يمكن ذلك عبر استخدام برنامج filmora اتمني ان القى الجواب لديكم جزاكم الله كل خيراً وسنة هجرية مباركة ادخلها الله عليكم باليمن والبركات
    1 نقطة
  3. في المثالين الهدف هو التنسيق النصي: 1. نقوم بوضع الرمز @ للتخلص مما يسمى ب Escape Character، مثل backslash \ قومي بتجريب هذا المثال في بيئة سي شارب عندك: Console.WriteLine("C:\Program Files\Microsoft"); ستلاحظين ان بيئة سي شارب تعطي خطأ هنا، لأن backslash تعتبر escape character، بمعنى انها في هذا المثال لا يقصد بها الرمز \ وإنما تؤخذ كرمز واحد مع الحرف الذي يليها: \P لاتعني شيء بالنسبة لسي شارب، لذلك يظهر عليها الخطأ \M أيضا لا تعني شيء بالنسبة لسي شارب، لذلك يظهر عليها الخطأ ايضا ولكي تتضح الصورة اكثر، نلاحظ المثال التالي: Console.WriteLine("C:\Program Files\Microsoft\n"); سنلاحظ هنا ان سي شارب لم تعترض على n\ لانها تعني سطر جديد! أي ان سي شارب قامت بالنظر إلى backslash وشاهدت الحرف الذي يليها، واذا لم يكن من ضمن الرموز المعرفة في سي شارب، فسيظهر الخطأ. طبعا لحل هذه المشكلة، نقوم بإضافة backslash اضافي، كما يلي: Console.WriteLine("C:\\Program Files\\Microsoft\n"); الآن سي شارب لن تعترض على استخدم backslash بهذه الطريقة. لكن يمكننا التخلص من هذا الـ backslash الاضافي، فقط باخبار سي شارب ذلك، عن طريق وضع الرمز @ بداية النص: Console.WriteLine(@"C:\Program Files\Microsoft"); الآن ايضا سي شارب لن تعترض. 2. نقوم بوضع الرمز $ لسهولة التنسيق النصي ضمن سي شارب. مثلا Console.WriteLine("The sum of " + 4 + " and " + 5 + " = " + 9 +""); هذه طريقة التنسيق التقليدية في سي شارب. ونلاحظ انها صعبة الفهم والتتبع خاصة في حال وجود اخطاء، لذلك افترضت سي شارب، ان نقوم بعمل تنسيق نصي مناسب اكثر، وهو بدل ان نضع الرقم 4 مباشرة بهذا الشكل، نضع رمز او مؤشر مكانه، ثم نقوم باستبدال هذا الرمز او المؤشر بالرقم 4 لاحقاً كما يلي: Console.WriteLine("The sum of {0} and {1} = {2}", 4, 5, 9); الآن نلاحظ ان التنسيق اصبح اكثر وضوحاً! وسيتم استبدال الرمز {0} بالرقم 4 لاحقاً. يمكن استخدام هذا النمط من التنسيق خارج جملة Console.WriteLine من خلال استخدام الدالة string.Format var result = string.Format("The sum of {0} and {1} = {2}", 4, 5, 9); لكن مؤخراً قامت سي شارب باختصار هذه الصيغة ايضا كونها لا زالت تحمل بعض التعقيد او الغموض، فمثلا لو أردت ان اعرف ما هي القيمة التي سيتم استبدالها عند الرمز {2} سأقوم بعد المتغيرات 4 و 5 حتى اعثر على 9! لكن ماذا لو كان لدي 20 متغير او اكثر، هنا سيصعب تتبع البيانات! الحل كان باستخدام الرمز $ والذي يسبق التنسيق النصي، مع هذا الرمز سأتخلص من الدالة string.Format اولاً، ثم بدل ان أضع {2} وأقوم لاحقا باستبدالها بالرقم 9، سأقوم بوضع 9 مباشرة ضمن القوسين كما يلي: var result = $"The sum of {4} and {5} = {9}"; طبعاً في جميع الحالات النتيجة ستكون واحدة، لكن الهدف هو تسهيل العمل على المطور. لذلك تسمى جميع هذه الاختصارات والتكتيكات ب Syntactic Sugar او التجميل اللغوي، لانها فعليا لا تؤثر على المعنى ولكن على الشكل فقط! بالتوفيق،،،
    1 نقطة
  4. هذا كلاس بسيط يؤدي المهمة : public class MoneyConverter { double egp_param = 1.0; double usd_param = 0.0561116; public void Main() { Console.WriteLine(this.ConvertToEgp(1).ToString()); Console.WriteLine(this.ConvertToUsd(20).ToString()); } public double ConvertToEgp(double usd) { return usd * (1 / usd_param); } public double ConvertToUsd(double egp) { return egp * usd_param; } }
    1 نقطة
  5. اذا كنت محتفظ بأي معلومات تسجيل دخول داخل البرنامج, فيجب عليك التخلص منها وإتخاذ طريقة اخرى لعملها. لان هذا يعتبر خطأ برمجي حاد, فأي شخص يستطيع الوصول لها بكل سهولة. لذلك مايتوجب عليك عمله هو اولاً ضبط طريقة الاتصال بالـ SQL Server وذلك عن طريق التعديل على ConnectionString للإتصال وجعله يعتمد على حساب المستخدم المسجل بالنظام Windows Account Login .. والـ ConnectionString سيكون شبيه بالتالي : connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=True" فقط تقوم بتغيير الـ ServerName و DatabaseName .. وسيكون الاتصال بقواعد البيانات مبني على تصاريح حساب المستخدم الذي يستخدمه على النظام نفسه Windows .. ومن الممكن ان يتم عمل متغيرات لها حتى يتمكن المستخدم من تغيير اسم ServerName و DatabaseName اذا كان سير عمل البرنامج يسمح بذلك. اما عن معلومات تسجيل الدخول الاخرى او اي معلومات قد تكون حساسة , يجب عليك تشفيرها وعدم حفظها بدون تشفير, وجعل البرنامج يقرأها بالتشفير. واذا كنت لاتعرف كيف ذلك, انصحك بالبحث والقراءة ثم تطبيقها على مشروع جديد (تجريبي) وعندما تكون جاهزة , يمكن تطبيقها على البرنامج وعمل التغييرات اللازمة لها. يمكن ايضاً حفظها بملف اعدادات البرنامج Settings وذلك عن طريق الضغط على اسم المشروع الزر الايمن ثم اختيار Properties ثم الذهاب الى Settings .. اذا لم يكن هنالك ملف اعدادات قم بإنشاءه (في Visual Studio سيكون هنالك رسالة لذلك عند فتح نافذة Settings فقط اضغط عليها وسيتم انشائها تلقائياً). فائدة ملف الاعدادات هذا هو حفظ اي بيانات تمكن البرنامج من قرائتها باستمرار بما فيها معلومات الـ ConnectionString مثل DatabaseName و ServerName .. ويمكن ايضاً حفظ معلومات الدخول فيها ولكن كما ذكرت ليست الحل الامثل لها ولكنها ستعمل خارج نطاق البرنامج. ويمكن ايضاً وضع متغيرات بداخلها يقوم البرنامج بقرائتها او الحفظ فوقها في كل مره يعمل (مثل عدد مرات تشغيل البرنامج) .. اما بداخل البرنامج فيتم استدعائها عن طريق : String someString = Properties.Settings.Default.MySavedSettingString; اما اذا كنت قد استخدمت خصائص DataSet و Data Models وقمت بإستيراد schema من الـ VisualStudio فالـ ConnectionString سيكون استدعائه مشابه للمثال الآتي : String db = ConfigurationManager.ConnectionStrings["ProjectName.Properties.Settings.db"].ConnectionString; اتمنى ان تكون الامور اوضح الآن
    1 نقطة
×
×
  • أضف...