اذهب الي المحتوي
أوفيسنا

فهم كود معين


إذهب إلى أفضل إجابة Solved by sandanet,

الردود الموصى بها

الاساتذة الكرام / أعضاء المنتدى 

كل عام وانتم بخير بمناسبة حلول شهر رمضان الكريم أعاده الله علينا وعليكم وعلى المسلمين باليمن والبركات 

برجاء ممكن توضيح وشرح معنى هذا الكود وجزاكم الله خيرا 

b = decoder(DLookup("[Text1]", "Text2"), DLookup("[text3]", "text2"))

حاولت فهمه ولم استطع وجزاكم الله خيرا 

رابط هذا التعليق
شارك

Decoder

غالبا هذه وظيفة مخصصة من عمل المستخدم

وتحتاج لوسيطتين

و هما هنا

العائد من دألتى  dlookup

ابحث فى الوحدات النمطية عن الوظيفة لتعرف ماذا تفعل

والله أعلم

أيضا يخزن الناتج فى متغير b

تم تعديل بواسطه عبد الفتاح كيرة
رابط هذا التعليق
شارك

3 ساعات مضت, أبو أحمد said:

decoder

فرضنا ان هذا مأخوذة من وحدة نمطية 
اي يعني صاحب القاعدة اي المبرمج عمل وحدة نمطية بهذا الاسم اي يعني هو شاطر حقا

3 ساعات مضت, أبو أحمد said:

DLookup

كلنا نعرف وضيفته

3 ساعات مضت, أبو أحمد said:

(DLookup("[Text1]"

هناك عمل ديلوك اب مع الحقل تيكست 1 
هناك سؤال : هل تيكست 1 هو اسم الحقل ؟ المبرمج لماذا سميت بهذا الاسم ؟

3 ساعات مضت, أبو أحمد said:

(DLookup("[Text1]", "Text2")

واسم الجدول هو تيكست 2 
هناك نفس السؤال الاول : هل تيكست 2 هو اسم الجدول او اسم اي ؟  لماذا سميت الجدول بهذا الاسم ؟

3 ساعات مضت, أبو أحمد said:

(DLookup("[Text1]", "Text2"), DLookup("[text3]", "text2

هناك اجى دور الشروط

بشرط اي ؟ ديلوك اب تيكست 3 من تيكست 2 

رجاءا زودنا بقاعدة بيانات بها هذه الكود و معمول به 

 

  • Like 2
رابط هذا التعليق
شارك

6 ساعات مضت, عبد الفتاح كيرة said:

Decoder

غالبا هذه وظيفة مخصصة من عمل المستخدم

وتحتاج لوسيطتين

و هما هنا

العائد من دألتى  dlookup

ابحث فى الوحدات النمطية عن الوظيفة لتعرف ماذا تفعل

والله أعلم

أيضا يخزن الناتج فى متغير b

 

رابط هذا التعليق
شارك

10 ساعات مضت, عبد الفتاح كيرة said:

هذا يقال عند الحيرة فى أمر من الأمور :biggrin::biggrin:

ما حيرتني الكود بل جننتني :smile:

بل اللي حيرتني هو مشاركة استاذ @رمهان :wink2:

رابط هذا التعليق
شارك

مرحبا اخي الاستاذ شيفان

انا مع الاستاذ عبدالفتاح بالتمام

دالة تستقبل متغيرين قيمتهما تم استرجاعهما بواسطة dlookup  من جدول text2  لحقلي text1,text3  وبدون شرط اي اول قيمة في الحقلين من الجدول

تحياتي

 

  • Like 1
رابط هذا التعليق
شارك

  • أفضل إجابة
16 ساعات مضت, أبو أحمد said:

الاساتذة الكرام / أعضاء المنتدى 

كل عام وانتم بخير بمناسبة حلول شهر رمضان الكريم أعاده الله علينا وعليكم وعلى المسلمين باليمن والبركات 

برجاء ممكن توضيح وشرح معنى هذا الكود وجزاكم الله خيرا 

b = decoder(DLookup("[Text1]", "Text2"), DLookup("[text3]", "text2"))

حاولت فهمه ولم استطع وجزاكم الله خيرا 

بعد إذن اساتذتي الكرام ..أخي الكريم أبو أحمد أولاً رمضان كريم عليك وعلى جميع الأخوة والأساتذة الكرام في هذا المنتدى الرائع.. ثانياً الكود الذي وضعته انت هو كالتالي : للعلم فإنه هنالك وحدة نمطية خاصة بتشفير البيانات وفك تشفيرها يجب ان تكون موجودة في قاعدة البيانات التي جلبت منها الكود السابق وجزء من هذه الوحدة النمطية هو الكود التالي الخاص بفك التشفير 

Function decode(a, b As String) As String
On Error Resume Next
    Dim R, i As Integer, s, u As String
    u = getcode(a, b)
    i = Val(Mid(u, 1, 1)) + 1
    u = Mid(u, i + 1, Len(u) - i)
    If Len(u) Mod 3 <> 0 Then u = Mid(u, 1, Len(u) - 1)
    s = ""
    For R = 1 To Len(u) - 2 Step 3
        s = s + Chr(Val(Mid(u, R, 3)))
    Next
    decode = s

أما دالة التشفير فهي كالتالي :

Function incode(a As String, b As String) As String
 Dim R, i As Integer, s, u As String
1:
    u = ""
    s = ctrs(a, 3)
    If Len(s) Mod 2 = 1 Then s = s + Trim(str(Int(8 * Rnd(-Timer))))
    i = 3 * Rnd(-Timer) + 1
    For R = 1 To i
        u = Chr(100 * Rnd(-Timer) + 155) + u
    Next
    u = Trim(str(i)) + u
    u = u + s
    u = getcode(u, b)
    If decode(u, b) = a Then
       incode = u
    Else
       GoTo 1:
    End If
End Function

اما بقية اكود الوحدة النمطية فهي كالتالي :

Function getcode(a, b As String) As String
On Error Resume Next
  Dim L, R As Integer, c As Long, q As String
  c = 0
  For R = 1 To Len(b)
     c = c + Asc(Mid(b, R, 1)) * (10 ^ R)
  Next
  q = str(c)
  c = 0
  For R = 1 To Len(q)
     c = c + Val(Mid(q, R, 1))
  Next
  q = ""
  For R = 1 To Len(a)
     L = 256 - Asc(Mid(a, R, 1)) - R - Len(a)
     If L + c > 255 Then
        q = q + Chr(L - c)
     Else
        q = q + Chr(L + c)
     End If
  Next
  getcode = q
End Function
Function ctrs(s As String, Y As Byte) As String
 Dim R, i As Integer, u, T As String
    u = ""
    For R = 1 To Len(s)
        T = Trim(str(Asc(Mid(s, R, 1))))
        For i = 1 To Y - Len(T)
            T = "0" + T
        Next i
        u = u + T
    Next
    ctrs = u
End Function

وطبعاً يجب ان يكون التشفير وفك التشفير مستند على معيار التشفير (بمعنى آخر الرقم الخاص بك او النص الذي بدونه لايمكن فك التشفير عن البيانات .. هذا الرقم او النص هو الذي يتم تمريره للدالة لكي تشفر البيانات) 

للتوضيح .. عنما تريد تشفير رقم موجود في جدول تستخدم الأمر التالي 

incode(Table1.[impnumber],10)

كما تلاحظ فإننا استدعينا كود التشفير incode ومررنا إليه الحقل impnumber الموجود في جدول Table1 وقلنا له اجعل مفتاح التشفير هو الرقم 10 وفائدة ذلك هو لما يقوم شخص بسرقة بياناتك المشفرة ويحاول فك تشفيرها باستخدام الدالة decode فهو لن يعرف مفتاح التشفير المستخدم وبذلك لن يحصل على البيانات

 

وهنا سوف تستخدم الأمر decode بنفس الطريقة السابقة للحصول على الرقم الأصلي كالتالي 

decode(Table1.[impnumber],10)

 

في الكود الذي ارفقته انت لاحظ ان المبرمج استخدم مفتاح التشفير التالي 

DLookup("[text3]", "text2")

 

 

ارجو ان يكون الشرح وافي 

 

تحياتي

تم تعديل بواسطه sandanet
رابط هذا التعليق
شارك

أساتذي الكرام / مرة ثانية كل عام وانتم بخير وبارك الله لنا ولكم في شهر رمضان 

وجزاكم الله خيرا على ما قمتم بشرحه 

رابط هذا التعليق
شارك

في ٢٦‏/٥‏/٢٠١٧ at 14:53, sandanet said:

DLookup("[text3]", "text2")

بعد اقول غريبة

لماذا استخدم المبرمج هذه الاسماء
ما رأيت بحياتي واحد بيسمى الحقول والجداول بهذه الاسماء
هل في المستقبل سيعرف ما عمله ؟

هذا هو السر اللي افكر فيه ...

  • Like 1
رابط هذا التعليق
شارك

13 ساعات مضت, Shivan Rekany said:

بعد اقول غريبة

لماذا استخدم المبرمج هذه الاسماء
ما رأيت بحياتي واحد بيسمى الحقول والجداول بهذه الاسماء
هل في المستقبل سيعرف ما عمله ؟

هذا هو السر اللي افكر فيه ...

هيا فعلا المسميات تلخبط اى حد ووارد جدا انها تختلط فيما بينها لأن الواضح ان ملهاش ضوابط ولكنها مسميات عشوائية وبالنسبة لسؤالك عن امكانيات المبرمج اللى يستخدم Decoder طبعا يبقى متمكن ومليون فى المية مش هوا اللى مسمى المسميات الغريبة دى ولكن شخص اخر اخذ الوحدة النمطية والاكواد وعدل عليها بمسمياته واظن ان فيه احتمال ايضا انه لما عدل المسميات عدلها غلط لقلة معرفته بطريقة عمل دالة Dlookup

مع تحيات المفتش كرومبو :wavetowel:

 

  • Like 2
رابط هذا التعليق
شارك

6 ساعات مضت, Shivan Rekany said:

بعد اقول غريبة

لماذا استخدم المبرمج هذه الاسماء
ما رأيت بحياتي واحد بيسمى الحقول والجداول بهذه الاسماء
هل في المستقبل سيعرف ما عمله ؟

هذا هو السر اللي افكر فيه ...

صحيح كلامك استاذي شفان حتى انا استغربت فعل ذلك لكن الطيور على اشكالها تقع .. تحياتي لك

  • Like 1
رابط هذا التعليق
شارك

2 ساعات مضت, Amr Ashraf said:

مع تحيات المفتش كرومبو :wavetowel:

رامبو   ....... :smile:

3 دقائق مضت, sandanet said:

صحيح كلامك استاذي شفان حتى انا استغربت فعل ذلك لكن الطيور على اشكالها تقع .. تحياتي لك

اخيرا الحمد لله صاحب السؤال وصلت الى النتيجة

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information