• الإعلانات

    • فيصل الحربي

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

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

HMS

الخبراء المعتمدون
  • عدد المشاركات

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

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

السمعه بالموقع

2 عادي

عن HMS

  • الرتبة
    خبير Visual Basic.NET

طرق الإتصال

معلومات الملف الشخصي

  • الجنس ذكر
  • الدولة : عمان
  • اهتمامات السفر، النجارة، التصوير، البرمجة
  1. كيفك يا إياس؟ لا يوجد يا إياس شيء إسمه محمي ومشفر في البرمجة، وجميع مقترحات الأخوة الأفاضل تتساوى في قيمتها ولن يستطيع أحد أن يقوم بتقديم حل أفضل مما قدموا (أقصد من ناحية القدرة على الحماية)، هناك الكثير من الأفكار وأكثرها إتباعاً لدى المبرمجين هي أن تضع النص الذي تريده في ملف مع عمل Encryption للنص، ولكن هذه الطريقة تتساوى في قدرتها على الحماية مع ما طرحه الأخوة، جميع المقترحات المقدمة تقدم لك حماية 100 بالمائة ما دامت شفرة برنامجك بعيدة عن عيني المستخدم، أما إن إستطاع المستخدم فكّ شفرة البرنامج (وهو أمر سهل لجميع لغات البرمجة بدون إستثناء) فإن جميع الطرق هي عديمة الجدوى على الأطلاق (سواء وضع النص في قاعدة بيانات محمية أو عمل encryption للنص ..ألخ) ... الملخص: تسطيع أن تجعل مهمة الآخرين صعبة في معرفة النص الذي تريد إخفاءه ولكن لن تستطيع جعل مهمتهم مستحيلة على الإطلاق وهنا يأتي السؤال عن أفضل الطرق لتحقيق تلك الغاية، أعتقد بأن ال Encryption هو الأفضل بلا منازع.
  2. لقد طُلب مني مشروع لإدارة المعلومات لشركة تتعامل مع السيارات، قاعدة البيانات فيها معلومات كثيرة عن السيارة ورقمها ورقم المحرك وسعته والشركة الصانعة ...الخ، الخ، الخ، وهذه المعلومات قد تتكرر للسيارة الواحدة، الحقيقة لقد عملت المشروع وإنتهيت منه وقد واجهت قضية في المشروع في حينه وأحببت أن أسمع رأيكم إن كان هناك طريقة أفضل لحل القضية، وإختصاراً ولتسهيل القضية سأفترض بأن قاعدة البيانات مكونة من جدول واحد وثلاثة أعمدة لا غير ( رقم السيارة، رقم المحرك، إسم الشركة الصانعة)، وأريد هنا وعند تشغيل البرنامج أن يقوم البرنامج بعمل loop في الجدول فإن كان هناك row في الجدول يشابه آخراً يقوم بأخذ أحدهما فقط (وإظهاره في داتاسيت للتعامل معه لاحقاً)...وللتبسيط الملل فإن المعلومات في الجدول هي كالتالي: رقم السيارة رقم المحرك الشركة الصانعة 45 555 Toyota 232 343 Nissan 45 555 Toyota لاحظ بأن ال row الأول والثالث يعودان لنفس السيارة، في هذه الحالة أنا أريد فقط أخذ row واحد منهما... الحلّ الذي أعتمدته هو أن أقوم بتحميل جميع الجدول في داتاسيت وبعض ذلك أعمل array من نوع string عدد عناصرها يساوي عدد ال rows في الجدول، وبعد ذلك قمت بجعل العنصر الأول من المصفوفة هو حاصل لجمع الأعمدة الثلاثة من الصف الأول للجدول، أي بالشكل التالي: Toyota55545 أما العنصر الثاني من المصفوفة فهو: Nissan343232 وبعد ذلك سأقوم بالتعامل مع المصفوفة وطرح ما تساوى من عناصرها. هذا هو الحل الوحيد الذي توصلت إليه، هل هناك من حل أفضل أو أسرع؟ وهل يوجد عندنا طريقة في الفيجوال بيسك نيت لمقارنة صفّين من جدول ما؟؟؟؟ أرجو تعليقاتكم الكريمة
  3. السلام عليكم ورحمة الله، مشاركتي هذه هي لمجرد المشاركة (بسبب تأنيب الضمير عن غيابي الطويل) وليس بحثاً عن حل. السؤال: عندي مجموعة من الأزرار Buttons أريد أن أعملها في برنامجي في وقت التشغيل، أنا لا أعلم عدد الأزرار ولا أعلم عرض الفورم (فقد يقوم المستخدم بتكبيره أو تصغيره)، والقضية هي أنني أريد عمل هذه الأزرار وترتيبها في وقت التشغيل بحيث تكون موزعة بشكل منسّق في الفورم بحيث يكون الزر الأول يبعد 10 بيكسل عن حافة الفورم الأيسر (أو أي رقم تريده) ويكون الزر الثاني بعد الزر الأول + 10 بيسكل وهكذا، وعندما لا يكون عرض الفورم كافياً لإستيعاب جميع الأزرار نقوم بوضع الأزرار في سطر جديد بحيث يكون هذا السطر يبعد عن السطر الأول بمقدار 10 بيسكل... وهكذا. لقد أرفقت ملفاً تنفيذياً يبين هذا الأمر (يوجد فيه textbox) تستطيع وضع عدد الأزرار الذي نريد عملها... ملاحظة: في الملف التنفيذي المرفق قمت بوضع panel ونسيت أن أعمل لها dock في أسفل الفورم (أي أن عرضها متغيراً ويساوي حجم الفورم عندما نقوم بعمل resize للفورم)، أرجو مراعاة ذلك في حل السؤال. أرجو محاولة حل المسألة الرياضيّة وسأقوم بوضع ال solution لاحقاً إن لم يتوصل أحد إلى حل. WindowsApplication2.zip
  4. نعم يوجد جملة resume ولكنها لن تنفع في حلّ السؤال المطروح
  5. ليس بالضرورة أن تكون الأيقونة موجودة في مجلد المشروع، الأيقونة هي موجود ولكنها في ال resources (أما إذا أضفت الأيقونة برمجياً وليس عن طريق الخصائص المرئيّة ففي هذه الحالة يجب أن تكون في مجلد المشروع أو في أي مجلد تحدده في الكود). أما كيف تضع الأيقونة على سطح المكتب أو في قائمة البرامج فذلك لا علاقة له بأسناد أيقونة للبرنامج، فأنت يجب أن تعمل shortcut للبرنامج على سطح المكتب أو في قائمة البرامج -ابدأ- وذلك من خلال البرنامج الذي تستخدمه لعمل setup لبرنامجك (مثلاُ setupfactory).
  6. يجب أن تعرفه بالصورة التالية: dim withevents lbl as new lablel ثم بعد ذلك تقوم بعمل handler له
  7. مثال جيد جدا للمتدئين

    الكثير من مشاركات هذا المنتدى (ومنها هذه المشاركة) تطرح القضيّة بشكل مختصر وعلى شكل "برقيّة"، ما المانع لو قمت أخي moudar345 بشرح بسيط وبأسطر قليلة عن طبيعة المثال وماذا سنستفيد منه وما الجدّيد الذي قُمت به، وهذا الأمر أيضاً سيفيد أي من الأخوة في المستقبل عندما يحاول البحث في المنتدى عن حلّ ما لمشكلة تواجهه.
  8. فعلاً "طولوا بالكم على الرجل"، أراد الخير والمصلحة العامّة... على كل حال، مشاركته هذه هي درس جيّد له بأن يعدّ لل 1000 قبل أن ينقل مقال من أحد المنتديات العربيّة. نشكر أستاذنا أحمد غريب الذي بيّن لنا بأن الملف المذكور هو ملف مهمّ، كنت فعلاً على وشك حذفه وحذف المجلّد system32. :lol: سامحك الله eng-1904 والله أخي crazy-man ليست تلك بإشاعة 100 %، فقد قرأت في أحد المجلات بأن بعض الدول قد طورّت ما يسمى ب "القنبلة العنصريّة"، وهي تستهدف "الملوّنين" - أي النّاس الذين لا يحملون البشرة البيضاء القوقازية - وتميّزهم عن طريق المادّة المُلوّنة المُسببة تشكيل لون البشرة (كلما كانت المادة موجودة أكثر في جسدك كلما كان تأثيرها أكبر).... أما كيف تعرف القنبلة بأن الإنسان مسلم أم لا فذلك أيضاً ليس صعباً (تحاول أن تبحث عن مُسواك في جيبة قميصه :lol: ). وبعيداً عن المزاح فإن إستهداف المستخدم العربي دون العالمين بفيروس ليس أمراً صعباً على الاطلاق، يكفي مثلاً أن يحاول الفيروس البحث عن أعدادات الجهاز فإن كانت إعداداته عربيّة فسيقوم بدوره التخريبي...
  9. أخشى بأن البعض يقوم بذلك عن قصد وتشويهاً للدين، فعندما يقرأ غير المسلم خبراً مثل هذا فإنه بالتأكيد سيعمّم ويظنّ بأن كل ما يُقال عن الإعجاز العلمي في القرآن هو أكاذيب ومن إختراع مشايخ الإنترنت الذين لا يميزون بين القطب المغناطيسي والقطب الجغرافي... قد يكون هذا الأسلوب هو محاولة لتشويه الدين (والله أعلم) أو على الأقل نابع من جهل منقطع النظير يجب أن يتم ردعه ممن يملكون بعض المعرفة (ألم ندرس في المدارس الإبتدائيّة بأن القطب المغناطيسي هو غير القطب الجغرافي!، ألم يقوم المدرسون بوضع إبرة البوصلة وييبينون لنا بأنّ الأبرة لا تشير إلى الشمال الجغرافي بل إلى الشمال المغناطيسي!).
  10. أولاً ديننا العظيم لا يحتاج إلى عالم ليزيد قناعتنا بعظمته وأن القرآن الكريم هو كتاب الله، حقيقة يجب أن نعيها مع أننا نفرح عندما نسمع خبر هنا وهناك يؤكد دخول الناس في دين الله عن قناعة... فالحمدلله. أما قضية إنقلاب الأرض وكما يفسره المقال فهو تفسير غير صحيح، والمسؤول عن طلوع الشمس الظاهري من الشرق هو دوران الأرض حول قطبيها الجغرافيين وليس قطبيها المغناطيسين، والأقطاب المغناطسية لا تتطابق مع الأقطاب الجغرافية من حيث المحور بل هي في تحرك دائم (وأورد المقال ذلك بشكل صحيح)، وقد كانت الأقطاب المغناطسية للكرة الأرضية منقلبة منذ ملايين السنين ولم يؤثر ذلك على قضية "طلوع الشمس" ولم تطلع الشمس حينها من الغرب. وأقصى تأثير لإنعكاس الأقطاب المغناطيسية (أو حتى تسطحها بحيث يوازي محورها خط الأستواء) هو إختفاء الشفق الشمالي aurora borealis. وأيضاً هناك مغالطات علمية في المقال من حيث تفسير سبب دوران الأرض حول محورها (وعزو ذلك إلى المجال المغناطيسي)، وكذلك مغالطة بأن المجال المغناطيس سببه الشمس (مع أن سببه هو الكرة المعدنية المنصهرة في قلب الكرة الأرضية).... قد تكون قصة ذلك العالم صحيحة (وأنه عالم ولديه نظرية جديدة لم يفسرها المقال) ولكنها بالتأكيد شوّهت من قبل المواقع العربيّة حبّاً في الإثارة أو "إيجاد دليل على صدق ديننا"، أستغفر الله من ذلك الجهل.
  11. رسالة junk وصلتني بالإيميل ولكنه معبّرة بعض الشيء عن واقع أمم هذه الأرض، أحببت أن أشارككم بها: A World-Wide survey was conducted by the UN.  The only question was: "Would you please give your honest opinion about solutions to the food shortage in the rest of the world ?" The survey was a huge failure due to the following: In Africa they didn't know what food means. In East Europe they didn't know what honest means. In Western Europe they didin't know what shortage means. In China they didn't know what opinion means. In the Middle East they didn't know what solution means. In South America they didn't know what please means. In the US they didn't know what the rest of the world means.
  12. كلام دقيق وصحيح، والحقيقة جميع برامج مكافحة الفيروسات تعتمد بالإضافة إلى طريقة المكافحة التقليدية (التي تعتمد على قاعدة بيانات) الطريقة الذكية وهي محاولة تحليل سلوك البرنامج أو كوده وإستنباط إن كان برنامجاً فعلياً أم أنه برنامج تخريبي (فيروس)، ولكن هذه البرامج عادة لا تقوم بالتعامل مع هذه البرامج "المحتمل أن تكون فيروسات" بطريقة عدائية تامّة (حذفها أو غير ذلك) وبدلاً من ذلك تعطي المستخدم البشري حق تقرير القرار النهائي بعد تزويده بإسم البرنامج وسلوكه وماذا حاول أن يفعل. جربت معظم برامج مكافحة الفيروسات ولم ينل إحترامي سوى النورتن ومكافي، أمّا النورتن فأنا لا أستخدمه لكونه ثقيل الظل على الجهاز ويأكل نصف قدرته، أما المكافي فهو بالفعل برنامج أكثر من رائع (وأظن بأن دعم مايكروسوفت له هو السبب، بالطبع قبل أن تقوم مايكروسوفت برفسه وتطليقه).
  13. لقد تداعت الأمم علينا تداعي الكِلاب، أهانات بطول الأرض وعرضها وحكامنا يستدعون سفراءنا للتشاور (بالطبع الأمر فقط للضحك علينا ذقوننا وخداعنا). هل تهب الأمة للدفاع عن نفسها في هذه الحرب الصليبيّة، هل نفعلها ونجبر الدمى التي تتحكم برقابنا بإيقاف تصدير النفط، هل يطلّ علينا حاكم فقط ليهدد (فقط تهديد) بقطع النفط إن لم يوقف مسلسل إهانة ديننا وقراننا ونبينا، أم أننا أدمنّا الهوان كما أدمنوا هم تناول نفطنا... شركة أمريكية تقوم بتصنيع "مرحاض" وتكتب عليه آيات قرآنية، أنظروا الرابط واقرأوا الإستفزاز وترّحموا على كرامة أمّة أنجبت في يوم من الأيام المُعتصم ومحمد الفاتح... http://www.brokennewz.com/displaystory.asp..._1250islmaflush
  14. لم أكتب البرنامج من جديد بل قمت بالتعديل على كودك وذلك للأسباب التالية: 1) إمكانية تعديل برنامجك بصورة تفي بالغرض. 2) يتطلب كتابة البرنامج إعادة تصميم الداتابيز لأنك لم تبنيها بطريقة علمية على الأطلاق (فقط أورد لك أحد المآخذ، فنحن عندما نبني قاعدة بيانات فيها أكثر من جدول مع علاقات بين الجداول فإننا نقوم بذلك أساساً حتى نخفف من حجم القاعدة وعدم إضافة معلومات لا فائدة منها ومكررة في أكثر من record، وأنت قمت بعمل جدولين ومع ذلك أضفت عمود في جدول الموظفين برقم وأسم القسم، لماذا؟ يجب أن لا تكتب أسم القسم لأنه موجود عندك في الجدول الثاني). لقد عملت بعض التعديلات على كود برنامجك وهي تحقق ما طلبته (مع أن الطريقة المثلى تتم بصورة مغايرة لما قمت به من تعديلات، ولكن للأسف لا يمكن إتباع تلك الطريقة المثلى ما لم يتم إعادة تشكيل القاعدة والبرنامج من جديد). ملاحظة هامة، لقد قمت حضرتك بجعل Emp_num رقماً أساساً، ولكنك وفي الوقت نفسه لم تكتب كوداً يتأكد من أن المستخدم قد قام بكتابة ذلك الرقم في صندوق "رقم العامل"، وكذلك يجب أن تتأكد بأن الرقم الذي أدخله المستخدم ليس مكرراً وتمّ أعطاءه سابقاً لموظف آخر (لسببين، أولاً لأن ذلك الرقم هو رقم أساس في الداتابيز، وسبب منطقي آخر وهو أنه لا يجب أن يشترك أكثر من موظف في نفس الرقم) أليس كذلك؟... وفي هذه الحالة فالطريقة المثلى هي أن لا نعطي المستخدم الحرية في كتابة ذلك الرقم ولكن يجب أن يقوم برنامجنا بعمله آلياً (مثلاً بعمل loop في جدول الموظفين وأختيار رقماً لا يوجد لعامل آخر)... أمّا إن أصريّت على أعطاء المستخدم الحق في كتابة الرقم بنفسه فيجب عليك التأكد من أمرين: 1) قام المستخدم بإدخال رقم (أي لم يترك صندوق النص فارغاً أو يكتب فيه حرفاً بدلاً من الرقم). 2) يجب أن تعمل loop في جدول الموظفين وتتأكد بأن الرقم الذي أدخله المستخدم ليس معطى لشخص آخر من قبل. والطريقة الثانية قمت بعملها لك (أنظر في كود البرنامج لترى كيف يتم ذلك الأمر البسيط، ويمكنك تعديله بشكل أفضل على ما أظن). وما ينطبق على جدول الموظفين ينطبق على جدول الأقسام، هناك يجب أن تتأكد من أمرين، المستخدم لم يقم بإعطاء رقماً معطي لقسم من الأقسام في السابق، وكذلك يجب أن تتأكد بأن المستخدم قام بكتابة أسم قسم غير موجود عندنا من قبل... لقد قمت بكتابة الكود الذي يتأكد من الرقم وتركت لك الكود الذي يتأكد من أسم القسم (تستطيع كتابة بالتأكيد عن طريق قراءة كود التأكد من الرقم، تحتاج فقط لنسخ الكود وإضافة تعديل على موقع ال loop بحيث يجري في عمود الأسماء بدلاً من عمود الأرقام). وأمر آخر (وقد تركته لك للقيام به)، عندما يقوم المستخدم بإضافة قسم من الأقسام فيجب عليك في هذه الحالة وعند رجوع المستخدم إلى فورم الموظفين بأن تضيف القسم الجديد الى الكمبوبوكس (يتم ذلك بطرق عدة، أسهلها إعادة تحديث الداتاسيت). الملف المعدل مرفق، أرجو لك التوفيق EMP.zip
  15. برنامج الفيجوال ستديو عندي على جهازي الآخر، للأسف لا يمكنني كتابة الكود لك كاملاً فكما هو ملاحظ فإنك لا زلت تستخدم الداتاسيت مع inner join وهذا هو سبب الخطأ (كما أتوقع فأنا لم أفتح كود برنامجك)... على كل حال أخي كفاح، سأكتب لك البرنامج كاملاً في الغد ولكن عليك أن تختار بين أمرين: 1) أن أقوم بعمل البرنامج من جديد مع تعديل الكثير من الكود لأنني وكما أتوقع هناك الكثير من الأخطاء فيه (ولكن الكثير من التعديل قد لا يكون مفهوماً بالنسبة لك). 2) أن أقوم فقط بعمل ما تريده (إضافة الرقم الأساس) وهو يتطلب مني كتابة كود يعمل معك ولكن بالتأكيد سيكون كوداً غير محترم من الناحية البرمجية. أعطني رأيك.