اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

عبدالله سليمان

02 الأعضاء
  • Posts

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

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

كل منشورات العضو عبدالله سليمان

  1. حتى بالاصدار الجديد من أوفيس 2010 لازالت المشكلة موجودة ... والحل هو بالتحايل على عبر استخدام نمط ( بلا ) علامة تبويب ،،، ثم إضافة مربعات تسمية تقوم بوظيفة علامات التبويت في تغيير صفحات التبويب .
  2. المشكلة تكمن في مكان التاب tab على النموذج ، فمع أني جربت جميع الطرق التي أعرفها للتحايل على المشكلة ولكني مع الأسف لم أجد حلاً لهذه المشكلة . فهل سبق أن مر بكم حل لهذه المشكلة .
  3. لكن بقي ثلاث مشاكل : 1- طريقة التعامل مع أحجام الصور المختلفة عند عرضها . 2- طريق التعامل مع الصور التي تتكون من أكثر من صفحة . 3- البرنامج عند إلغاء عملية المسح يعلق ولايقبل أن شيء .
  4. شكراً لك أخي طيف على تجاوبك . وبالنسبة لقاعدة البيانات فإني أريد أن أعمل عليها حماية برقم المعالج مع ترميزها وتشفير البيانات في الجداول . وبعد بحث وجدت عدة أكواد للتشفير ، وقد أرفقتها بعد عمل مثال على أحدها ، أرجو أن يفيدك بشيء أخي طيف وبقية رواد المنتدى . فشكراً لك أخي طيف مرة أخرى ، ولو لم ترد بردك السابق لأصبح هذا الموضوع حوار بيني وبين نفسي :d _____.rar
  5. هل سأستمر كثيراً في محادثة نفسي :') .... أرجو غير ذلك :@ . يبدو أن ما ذكرته في ردي السابق كان غير صحيح ، فعن طريق دالة التشفير يمكن تجاوز تلك المشاكل . ويبقى احتمال حصول بعض البطء في البحث والاستعلام . وهذا موضوع وجدته محفوظاً لدي عن التشفير منتدى فيجول بيسك العرب الذي لا أدري أين ذهبوا بعد إلغاء الموقع السابق . دروس المبتدئين: كيفية تشفير النصوص والملفات للمبتدئين Posted on 08-03-2002 by الحلبي يتعلق هذا الدرس بكيفية تشفير ملف , حيث سأحاول ان اوضح الطرق المختلفة لتشفير البيانات.والطريقة المستخدمة في هذا الدرس هي طريقة بداية ولكنها ستكون المدخل الاول لفهم طريقة التشفير أولاً يجب معرفة ان اي ملف هو عبارة عن مجموعة من الرموز منها من يمكن إظهاره كالحروف و الارقام ومنها من لايمكن رؤيته على الرغم من كونة موجوداً حيث تظهر على شكل رموز غير مفهومة , في الوقت الحالي يجب التركيز على ان حرف يظهر امامك على لوحة المفاتيح او زر له رمز خاص, مثلاً : -------------------------------------------------------------------------------- A=65 , a=97 , y=121 -------------------------------------------------------------------------------- حيث يسمى هذا النظام ASCII ويرمز لكل زر برقم مختلف حتى ان الاحرف الكبيرة لاتساوي الارقام الصغيرة. ويمكن الحصول على الرمز الخاص بأي حرف من خلال الدالة ASC التي تعطي قيمة الاسكي لاي حرف او رقم , مثلاً : -------------------------------------------------------------------------------- Print Asc(“A”) ‘ يطبع الرقم 65 على الفورم والذي يمثل الرمز الخاص بالحرفA Print Asc(“9”) ‘ يطبع الرقم 59 والذي يمثل الرمز الخاص بالعدد 9 -------------------------------------------------------------------------------- كما ان الدالة Chr() تقوم بعكس العمل تماماً حيث تأخد الرمز وترجع الحرف المناسب : -------------------------------------------------------------------------------- Print Chr(65) ‘ تطبع الحرف A Print Chr(59) ‘ تطبع الرقم 9 -------------------------------------------------------------------------------- بعد ان عرفنا انه يمكن تحويل اي حرف الى كود معين ومن ثم يمكن إرجاع الحرف السابق من الكود التابع له, بقي ان نعرف ان مجال هذة الرموز هو من 0 الى 255 اي انه لايوجد رمزخارج عن هذا المجال, امثله : الرمز التابع للزر إدخال(ENTER) هو 13 كما ان الرمز التابع للزر مسافة (SPACE) هو 32 وكذلك حال باقي الأزرار. يمكن استغلال المعلومات السابقة في عملة التشفير , دعونا نرى مثالاً : إذا كان لدينا الحرف A مثلاً يمكن تشفيره وذلك كالتالي : -------------------------------------------------------------------------------- Text=”A” Text=Chr( Asc(Text)+3 ) ‘ Text = “D” -------------------------------------------------------------------------------- حيث قمنا بتحويل الحرف A الى رمز(65) باستخدام ASC() تم اضفنا العدد 3 الى الرمز وحولنا الرقم الناتج (68) إلى حرف باستخدام الدالة Chr() فكان الناتج هو “D” وبهذة الطريقة فقد قمنا بإخفاء الحرف القديم بحرف آخر بحيث يمكن ببساطة إسترجاع الحرف الحقيقي بعكس الطريقة : -------------------------------------------------------------------------------- Text=”D” Text = Chr ( Asc(Text)-3 ) ‘ Text =”A” -------------------------------------------------------------------------------- وكذلك الحال إذا كان النص اكبر من حرف واحد : -------------------------------------------------------------------------------- Text=”Welcome To Visual Basic” FOR I=1 TO Len(Text) Letter=Mid(Text,I,1) Mid(Text,I,1)=Chr( Asc(Letter)+3 ) NEXT I -------------------------------------------------------------------------------- يقوم المثال السابق بتكرار العملية السابقة على كل حرف وذلك بمعرفة طول النص بواسطة الدالة Len() ومن ثم اخذ النص حرف بعد حرف عن طريق الدالة MID() التي تقص النص في الموقع I بطول حرف واحد ومن ثم تطبيق التحويل السابق على هذا الحرف وبعده الذي يليه حتى آخر النص , وفي الاخير سوف ينتج النص التالي : -------------------------------------------------------------------------------- Text=”Zhofrph#Wr#Ylvxdo#Edvlf” -------------------------------------------------------------------------------- من الواضح ان النص الناتج هو نص غير مفهوم و بذلك يمكن إسترجاع النص اللاصلي كالتالي : -------------------------------------------------------------------------------- Text=”Zhofrph#Wr#Ylvxdo#Edvlf” FOR I=1 TO Len(Text) Letter=Mid(Text,I,1) Mid(Text,I,1)=Chr( Asc(Letter)+3 ) NEXT -------------------------------------------------------------------------------- تبقى الان ان نبين انه يوجد عيب في الامثلة السابقة وهو انه اذا وجد حرف رمزه اكبر من 252 فانه بإضافة 3 الى هذا الرقم سوف نتجاوز المجال المسموح به وهو من 0 الى 255 , كما انك قد تود ان تستخدم رقم آخر غير الثلاثة للتشفير مثل 76 وذلك لزيادة درجة الصعوبة , الطريقة الثلى لتجاوز هذة المشكلة هي استخدام الطريقة التالية : -------------------------------------------------------------------------------- Mid(Text,I,1)=Chr( (Asc(Letter)+3) Mod 256 ) -------------------------------------------------------------------------------- حيث لا يسمح الامر MOD بتجاوز العدد 255 , وبذلك يمكن استخدام الرقم الذي تريدة بدلاً عن الثلاثة دون اي مشاكل . سوف نضع الان شفرة البرنامج دالة فرعية يمكن إستدعائها عند الحاجة: -------------------------------------------------------------------------------- Function Encrypt1(Text As String, Num As Integer, Encrypt As Boolean) As String Dim Letter As String Dim Length As Long Dim I, Code As Long Length = Len(Text) For I = 1 To Length Letter = Mid(Text, I, 1) If Encrypt Then Code = Asc(Letter) + Num Else Code = Asc(Letter) - Num End If Mid(Text, I, 1) = Chr(Code Mod 256) Next I Encrypt1 = Text End Function -------------------------------------------------------------------------------- لاحظ ان الوسيط Encrypt هو الذي يحدد فيما اذا مكنا سنقوم بتشفير او بفك التشفير, فإذا كانت قيمتة True فان العملية ستكون عملة تشفير والعكس ستكون العملية عكسية. يمكن الأن استغلال الطريقة السابقة في تشفير اي ملف وذلك بفتح الملف اولاً تم قراءة بياناته الى متغير نص ومن ثم تطبيق الطريقة السابقة لتشفيرة ثم إعادة النص المشفر الى الملف وحفظه ويكون بذلك في مامن حتى يحين الوقت الذي نريد فيه استعادة البيانات الاصلية فنقوم فتح الملف وتطبيق العملية العكسية ونكون بذلك قد استعدنا البيانات : -------------------------------------------------------------------------------- Dim F As Integer Dim File As String Dim Data As Sting File=InputBox(“ Enter The Name Of The File “) F=FreeFile OPEN File For Binary As F Data=Space(LOF(F)) Get #F, ,Data Data=Encrypt( Data,34,True ) ‘ ENCRYPTION Put #F,1,Data Close F -------------------------------------------------------------------------------- قمنا في المثال السابق بعملية تشفير للملف الذي يريده المستخدم, وذلك باستخدام الرقم 34 بدلاً عن الرقم 3. لكي نقوم بفك التشفير نستبدل السطر التاسع بالتالي : -------------------------------------------------------------------------------- Data=Encrypt( Data,34,False) -------------------------------------------------------------------------------- ******************************************************** كانت المناقشة السابق مجرد مدخل للتشفير حيث ان الطريقة التي ذكرتها هي عبارة عن طريقة قديمة وغير فعالة في حالة ان البيانات المراد تشفيرها هي بيانات مهمة, حيث ان بقليل من التركيز وإعادة المحاولة يمكن للمبرمج الذكي ان يعرف الرقم الذي الاذي استخدمته في التشفير ومن ثم يقوم بعكس العملية واستخراج البيانات . ولكن لاتقلق يوجد هناك طرق اكثر فعالية للتشفير ساقوم بمنقشتها في المستقبل القريب ان شاء الله العلي القدير. كلمة اخيرة : الطريقة التي ناقشناها تعتبر طريقة مثالية في الاستخدامات البسيطة مثلاً في حالة ارسال بعض البيانات في اقراص بحيث تريد ان لايعرف حامل الاقراص بياناتك فيمكن استخدامها لضمان ذلك. او لتشفير بعض اللفات التي لاتريد لاحد ان يعرف محواها في جهازك المنزلي او في مقر العمل....الخ ملحوظة: الدرس بقلم/ رغيد الطيب
  6. أعتقد أن المشكلة من بعض المنتديات الجديدة ولا أدري هل هي عملية مقصودة أم أنه مجرد خطأ في برمجة المنتديات ، والأولى أرجح .
  7. يبدو أني صرفت النظر عن موضوع التشفير لأنه سوف يؤدي إلى مشاكل كثيرة في البحث والاستعلامات .
  8. السلام عليكم أقوم حالياً بتصميم قاعدة بيانات مهمة ، وتحتوي على معلومات من المهم عدم تسربها خارج الجهاز . وقد سبق أن قرأت عن طريقة تشفير البيانات في الجداول عن طريق تغيير رقم الاسكي لكل حرف في كل حقل . ولكني أعتقد أن هذه الطريقة سهلة الاكتشاف . فهل لدى رواد المنتدى معلومات عن هذا الموضوع ، وقد بحثت في المنتدى ولم أجد ما يتعلق بهذا الموضوع مباشرة .
  9. شكراً لك اخي ابن مسقط فإن هذا الكود مهم لمن يريد عمل قاموس خاص به مع نطق الكلمات .
  10. الأخ / أبو هادي أشكر لك ردك ، وعذراً عن الأخطاء في الرد السابق فقد كتبته ونصفي نوم .
  11. نسيت أن أذكر أن دالة DateDiff تختلف فيها النتيجة بالسنة والأسبوع كما في المثال السابق عند تحويل التقويم إلى ميلادي ، ولعل الحل لهذه المشكلة هو تحويل التقويم إلى ميلادي في دالة UmDateDiff للتتطابق النتائج في السنة أم الأسبوع فهو مرتبط في السنة الميلادي بأمور أخرى كبداية أول أسبوع في السنة .
  12. أشكر لكما التواصل : - لقد جربت الدوال في برنامج الوورد VBA ونجحت بالعمل مع بعض التعديلات على أحداث مربع النص قبل وبعد التحديث .ر - تغيير أسماء الدوال توجه صحيح وقد كنت أفكر فيه لكن أبو هادي سبقني أليه . - أبو هادي الأمر كما قلت فيجب أن يكون حساب التقويم في السنوات التي سبقت اعتماد تقويم أم القرى كما هو دون تغيير ، ولكن ألا يمكن أن نبدأ من اليوم الأول للتقويم الهجري . ولا أدري حقيقة ماذا سيكون وضع التواريخ الموجودة في كتب التاريخ المعتمدة هل ستخلف فيها التواريخ أو الأيام عن هذا التقويم . وما هو المرجع عند وجود الاختلاف هل هو من عاش الحدث وسجل اليوم والتاريخ أم نحن بتقويمنا . - يرتبط بما سبق فكرة برمجة برنامج بالفيجول بيسك لتحويل التاريخ يكون متعددة الأفكار ( أم القرى والهجري والميلادي ) مع ملفات مساعدة توضح الفرق بين التقاويم . - كما أنه في النهاية وعند اكتمال العميل يجب علينا تحويل جميع هذه الدوال إلى مكتبة (DLL) من يرغب في استخدامها يقوم بإضافتها إلى الأكسس بكل سهولة. مع عمل ملفات مساعدة لها . - لعله بالإمكان بعد عمل المكتبة مراسلة مدينة الملك عبدالعزيز للعلوم والتقنية للأخذ شهادة منها بصحة بيانات الدوال التاريخية لهذه الدالة . بعد ذلك يمكن مراسلة شركة مايكروسوفت أو فرعها بالسعودية لتضاف هذه المكتبة وملفات المساعدة الخاصة بها إلى برامج الأوفيس ، مع حفظ حقوق أخينا أبو هادي الأدبية فيها. أرجو ألا أكون قد شطحت بعيداً بأفكاري . :d برفقه المثال بالدوال الجديدة مع بعض التعديلات البسيطة خاصة على طريقة العرض في النموذج . الملفات المرفقة UmAlQura_20041103.rar ( 83.96ك ) عدد مرات التنزيل: 22
  13. الأخ / أبو هادي تسلم على التعديلات الأخيرة ، وإن شاء الله نلقى الوقت لتجربتها . وبرفقه رابط لتقويم أم القرى من عام 1 إلى عام 1450 http://www.awalnet.net.sa/arabic/files/hijrical.asp?m=6&y=1
  14. مشكور أخوي مهند عبادي على هذا البرنامج الذي يعتبر مصدر معلوماتي غزير في برمجة قواعد البيانات خاصة وقد قلت أنك (وضعت به جل ما تملك من معرفة في برمجة الأكسس ) . شكراً لكم ، وكتب الله لكم ثواب ذلك .
  15. الأخ نشوان نسأل الله أن ييسر لك استعادة برنامجك ، لكن من المهم في مثل هذه الأمور عدم تثبيت ملفات أو برامج في نفس القسم من الهاردسك حتى لوكانت برامج استعادة . الأمر الآخر هو أن مثل هذه المواقف تبين أهمية النسخ الاحتياطي للبيانات ليس على نفس الجهاز فقط بل على جهاز آخر أو على وسيط تخزين خارجي لتفادي مثل هذه المشاكل . أحد الزملاء فقد المئات من السجلات ومع أن قاعدة البيانات المستخدمة يوجد فيها نسخ احتياطي على نفس الجهاز لكن ما حصل هو أن الهاردسك بكامله تعطل ولم نتمكن من استعادة أي شيء منه .
  16. ولكن هل يمكن أن تكون النتيجة صحيحة في الاشهر التي يكون فيها اختلاف بين تقويم أم القرى ، والتقويم الهجري ، فمثلاً هل سيقبل الاكسس شهراً بثلاثين يوماً في تقويم أم القرى بينما هو في التقويم الهجري تسعة وعشرون يوماً . ============== من جهة أخرى أعتقد أن كثير من الأخطاء تعود لسببين : السبب الأول : هو أختلاف تنسيق النتيجة عن التنسيق المطلوب المعتمد في بلد المستخدم ، وهذا أمر بسيط يمكن التغلب عليه عادة بسهولة . السبب الثاني وهو الأهم : هو اختلاف طريقة حساب النتيجة في دوال تقويم أم القرى عن الدوال الأصلية ، فمثلاً في دالة DateDiff عندما يكون الفرق به كسور هل يجبر أم يحذف الكسر ، وما هو حد الكسر الذي يجبر أو يحذف . ولعل أفضل حل لهذه المشكلة هو معرفة القواعد المستخدمة من قبل برنامج الاكسس في هذا الأمر وتطبيقها في دوال تقويم أم القرى . أمر أخير لابد من ذكره - وإن كان بسيطاً - هو الانتباه إلى إعادة نوع التقويم حسب انوع المستعمل في قاعدة البيانات ، عند الخروج من الدالة قبل الوصول إلى سطر إعادة التقويم .
  17. الأخوة الكرام أعددت الملاحظات التالية ، قبل أن أقرأ الردود بعد ردي السابق ، فأعذروني على ما فيها من تكرار . 1- حذفت الدوال التالية من المثال دون إيضاح السبب : BeforeUpdate_UM AfterUpdate_UM Change_UM لهذا لايمكن تعديل التواريخ في المثال . 2 - لم يتضح لي دور الوحدة النميطية (UmAlQura_LocalizationData) 3- دالة Now2 تعرض الوقت بشكل غير مناسب ، وبدون حرف ص أو م 4- الدالة format2 - C تعرض التاريخ بشكل مقلوب 5- الدالة format2 - Q أعتقد أنها تعطي نتيجة غير صحيحة 6- الدالة format2 - Y تعطي نتيجة صراحة لم أفهما 7- الدالة format2 - T تعطي نتيجة بحرف T 8- الدالة format2 - WW ربما تحتاج إلى التأكد من نتيجتها 9- الدالة format2 - yyy تعطي نتيجة False 10- الدالة DateDiff2 تعطي نتيجة مختلفة عن دالة DateDiff الأصلية ، لهذا فهي تحتاج إلى تدقيق أكثر لأهميتها . 11- الدالتين Date2 - Now2 - تعطي خطأ توقف عند تحويل التقويم إلى التقويم الهجري . 12- الدالة CDate تعطي النتيجة كرقم وليس كتنسيق تاريخي . وبرفقه المثال بعد إعادة تصميمه بشكل مختصر ، مع وجود الملاحظات السابقة . وتحويل التقويم بقاعدة البيانات إلى التقويم الهجري . الملفات المرفقة UmAlQura_20041017.rar ( 65.06ك ) عدد مرات التنزيل: 15
  18. الأخ أبو هادي . سأحاول الليلة -بإذن الله - تجربة الدوال ، خاصة بعد التغييرات الأخيرة التي طالت جميع الكود . علماً أني ولله الحمد استفدت من هذه الدوال قبل إعادة كتابتها وجرى تطبيقها في برامجي ونجحت بدون أي مشاكل ولله الحمد والشكر ، بل حتى في الاستعلامات ذات المعايير التاريخية لم تكن هناك مشاكل مع كون التعبير يتعامل مع حقل نصي وليس تاريخي على اعتبار أني قمت بحفظ تاريخ أم القرى فقط في قاعدة البيانات كحقل نصي مكون من عشرة حقول . وأكرر شكري لكم وللأخ أبو سليمان على جهودكم .
  19. شوف في المستندات الجديدة وباختصار يمكن الذهات إلى : إدراج > حقل > اسم المستند طبعاً يجب أن يكون هذا في نفس القالب ليظهر في جميع المستندات الجديدة .
  20. شوف العمود الأول من اليمين ( إذا كان المستند عربي ) A العمود الثاني B والخلية الأولى من العمود الأول A1 والخلية الثانية من العمود الأول A2 .. وهكذا . أرجو أن يكون هذا ما تبحث عنه .
×
×
  • اضف...

Important Information