ترجمه الكود الي فيجوال بيسك دوت نت
c#
' إنشاء الواجهة
' زر الأوامر => Command1
' مربع النص => txtKey
' مربع النص => txtName
Private Sub Command1_Click(sender As Object, e As EventArgs) Handles Command1.Click
Dim c, i, j, szCNLen As Integer
Dim a(6) As Integer
Dim MgcNum(21) As Integer
Dim ssName(50) As Integer
Dim szName As String
' تعيين القيم الأولية للمصفوفات
a(0) = 0
a(1) = 0
a(2) = 0
a(3) = 99
a(4) = 99
a(5) = 0
MgcNum(0) = 38 : MgcNum(1) = 56
MgcNum(2) = 57 : MgcNum(3) = 57
MgcNum(4) = 99 : MgcNum(5) = 15
MgcNum(6) = 58 : MgcNum(7) = 12
MgcNum(8) = 13 : MgcNum(9) = 17
MgcNum(10) = 19 : MgcNum(11) = 18
MgcNum(12) = 88 : MgcNum(13) = 58
MgcNum(14) = 52 : MgcNum(15) = 52
MgcNum(16) = 12 : MgcNum(17) = 13
MgcNum(18) = 12 : MgcNum(19) = 57
MgcNum(20) = 52 : MgcNum(21) = 98
' تنظيف وتعديل اسم المستخدم
szName = UCase(Trim(txtName.Text))
szCNLen = szName.Length - 1
i = 0
j = 0
' الحلقة الأولى لمعالجة الاسم
Do While i <= szCNLen
For c = 1 To szName.Length
ssName(i) = Asc(Mid(szName, c, 1))
If j > 2 Then j = 0
a(j) = (ssName(i) * szName.Length + a(j)) Mod &H64
If a(j) >= &H64 Then a(j) = a(j) Mod &H64
i = i + 1
j = j + 1
Next
Loop
i = 0
' الحلقة الثانية
Do While i < 5
a(5) = ((a(5) + a(i) * szName.Length)) Mod &H16
i = i + 1
Loop
' تحديث مفتاح التفعيل بناءً على الحسابات السابقة
a(5) = MgcNum(CInt(a(5)))
' التحقق من طول الاسم المدخل
If Trim(txtName.Text).Length < 3 Then
txtkey.Text = "Name must be more than 03 Chars"
Else
txtkey.Text = a(3) & a(5) & a(4) & a(0) & a(1) & a(2)
End If
End Sub
c#
// إنشاء الواجهة
// زر الأوامر => Command1
// مربع النص => txtKey
// مربع النص => txtName
private void Command1_Click(object sender, EventArgs e)
{
int c, i, j, szCNLen;
int[] a = new int[6];
int[] MgcNum = new int[22];
int[] ssName = new int[50];
string szName;
// تعيين القيم الأولية للمصفوفات
a[0] = 0;
a[1] = 0;
a[2] = 0;
a[3] = 99;
a[4] = 99;
a[5] = 0;
MgcNum[0] = 38; MgcNum[1] = 56;
MgcNum[2] = 57; MgcNum[3] = 57;
MgcNum[4] = 99; MgcNum[5] = 15;
MgcNum[6] = 58; MgcNum[7] = 12;
MgcNum[8] = 13; MgcNum[9] = 17;
MgcNum[10] = 19; MgcNum[11] = 18;
MgcNum[12] = 88; MgcNum[13] = 58;
MgcNum[14] = 52; MgcNum[15] = 52;
MgcNum[16] = 12; MgcNum[17] = 13;
MgcNum[18] = 12; MgcNum[19] = 57;
MgcNum[20] = 52; MgcNum[21] = 98;
// تنظيف وتعديل اسم المستخدم
szName = txtName.Text.Trim().ToUpper();
szCNLen = szName.Length - 1;
i = 0;
j = 0;
// الحلقة الأولى لمعالجة الاسم
while (i <= szCNLen)
{
for (c = 1; c <= szName.Length; c++)
{
ssName[i] = (int)szName[c - 1]; // تحويل الحرف إلى قيمته ASCII
if (j > 2) j = 0;
a[j] = (ssName[i] * szName.Length + a[j]) % 0x64;
if (a[j] >= 0x64) a[j] = a[j] % 0x64;
i++;
j++;
}
}
i = 0;
// الحلقة الثانية
while (i < 5)
{
a[5] = ((a[5] + a[i] * szName.Length)) % 0x16;
i++;
}
// تحديث مفتاح التفعيل بناءً على الحسابات السابقة
a[5] = MgcNum[a[5]];
// التحقق من طول الاسم المدخل
if (txtName.Text.Trim().Length < 3)
{
txtKey.Text = "Name must be more than 03 Chars";
}
else
{
txtKey.Text = a[3] + a[5] + a[4] + a[0] + a[1] + a[2];
}
}