منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف يمكن إستخراج المفتاح من رقم الحساب - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كيف يمكن إستخراج المفتاح من رقم الحساب (/showthread.php?tid=19976)



كيف يمكن إستخراج المفتاح من رقم الحساب - ahmedfa71 - 12-04-17

السلام عليكم ورحمة الله وبركاته
لدي رقم حساب على سبيل المثال الرقم 1245789892
عملية حساب المفتلح تكون على هذا الشكل نبدأ بضرب الأرقام  في 4 فما فوقمن اليمين إلى اليسار على الشكل التالي
(2*4)+(9*5)+(8*6)+(9*7)+(8*8)+(7*9)+(5*10)+(4*11)+(2*12)+(1*13)
=13+24+44+50+36+64+63+42+45+8
=389
وبالتالي رقم الحساب هو 89
بحيث أضع الرقم في تيكست بوكس 1
ليظهر المفتاح في التكسب بوكي رقم 2
فأرجو المساعدة في هذا برمجيا
والسلام عليكم ورحمة الله وبركاته


RE: كيف يمكن إستخراج المفتاح من رقم الحساب - ابو ليلى - 12-04-17

اهلاً اخي الكريم في البداية يظهر انك مو حافظ جدول الضرب  Shy


بالنسبة للكود جرب ما يلي

PHP كود :
       If IsNumeric(TextBox1.TextThen
            Dim Str 
As String TextBox1.Text.Trim
            Dim p 
As Integer 4

            Dim MyNumbers 
As New List(Of Integer)
 
           For i 0 To Len(Str) - 1
                MyNumbers
.Add(CInt((Mid(StrLen(Str) - i1))) * p)
 
               p += 1
            Next

            Dim Result 
As Integer
            For Each Entry 
As Integer In MyNumbers
                Result 
+= Entry
            Next

            If Len
(Result) >= 3 Then
                Result 
Mid(ResultLen(Result) - 22)
 
               MsgBox(Result)
 
           End If

 
       End If 



RE: كيف يمكن إستخراج المفتاح من رقم الحساب - silverlight - 12-04-17

هذا حل اخر .....


PHP كود :
       Dim x As Integer 4
        Dim y 
As Integer 1245789892
        Dim s 
As String y.ToString()
 
       Dim values As Integer() = New Integer(s.Length 1) {}
 
       For i As Integer 0 To s.Length 1
            Dim current 
As String y.ToString()(i)
 
           ' في الخطوة التالية يت م عكس الارقام
            values(s.Length - 1 - i) = CInt(current)
        Next

        Dim total As Integer = 0
        For i As Integer = 0 To values.Length - 1
            Dim v As Integer = values(i)
            total += (v) * (x)
            x += 1
        Next

        ' 
استخدم الناتج الاجمالي كما يحلو لك 
الناتج بطريقتك يكون كالتالي


PHP كود :
total total Mod 100 



RE: كيف يمكن إستخراج المفتاح من رقم الحساب - ahmedfa71 - 13-04-17

شكرا لكل الإخوة على الردود
وعلى الكود الشغال
بارك الله فيكم

السلام عليكم ورحمة الله وبركاته
عند تجربة الكود
If IsNumeric(TextBox1.Text) Then
            Dim Str As String = TextBox1.Text.Trim
            Dim p As Integer = 4

            Dim MyNumbers As New List(Of Integer)
            For i = 0 To Len(Str) - 1
                MyNumbers.Add(CInt((Mid(Str, Len(Str) - i, 1))) * p)
                p += 1
            Next

            Dim Result As Integer
            For Each Entry As Integer In MyNumbers
                Result += Entry
            Next

            If Len(Result) >= 3 Then
                Result = Mid(Result, Len(Result) - 2, 2)
                TextBox2.Text = Result
                ' MsgBox(Result)
            End If

        End If
الكود شغال مع جميع الأرقام ما عدا عند البدأ بالرقم  0 أو 1 أو 2 تظهر رسالة خطأ
يتوقف البرنامج عند السطر
  Result = Mid(Result, Len(Result) - 2, 2)

Conversion from string "" to type 'Integer' is not valid