23-05-14, 06:48 PM
تفضل أخي
، بخصوص Swap عند الضغط على زر
، بخصوص Swap عند الضغط على زركود :
'تعريف متغيرات عامة
Dim MyBuffer As Byte()
Dim FilePath As String = "D:\test.exe"
'كود فتح الملف وتحميل بيانات الملف داخل MyBuffer
Private Sub OpenButton_Click(sender As System.Object, e As System.EventArgs) Handles OpenButton.Click
Dim MyFileStream As IO.FileStream = Nothing
Try
'تعريف مسار الملف
MyFileStream = New IO.FileStream(FilePath, IO.FileMode.Open, IO.FileAccess.Read)
'مصفوفة من البايت بحجم الملف
Array.Resize(MyBuffer, MyFileStream.Length - 1)
'قرائة الملف حتي النهاية
MyFileStream.Read(MyBuffer, 0, MyBuffer.Length)
Finally
If MyFileStream IsNot Nothing Then MyFileStream.Close()
End Try
End Sub
'كود Swap
Private Sub SwapButton_Click(sender As System.Object, e As System.EventArgs) Handles SwapButton.Click
If MyBuffer Is Nothing Then Return
'المصفوفة 1 المراد البحث عنها داخل الملف
Dim Find1 As Byte() = {&HB8, &H0, &H0, &H0}
'المصفوفة 2 المراد البحث عنها داخل الملف
Dim Find2 As Byte() = {&HE, &H1F, &HBA, &HE}
'البحث عن المصفوفة الأولى
Dim Index1 As Integer = SearchByteArray(MyBuffer, Find1, 0)
'البحث عن المصفوفة الثانية
Dim Index2 As Integer = SearchByteArray(MyBuffer, Find2, 0)
If Not Index1 = -1 And Not Index2 = -1 Then
'تبديل المصفوفة الأولى بالثانية
For I As Integer = 0 To Find2.Length - 1
MyBuffer(Index1 + I) = Find2(I)
Next
'تبديل المصفوفة الثانية بالأولى
For I As Integer = 0 To Find1.Length - 1
MyBuffer(Index2 + I) = Find1(I)
Next
End If
End Sub
'كود حفظ التغييرات للملف
Private Sub SaveButton_Click(sender As System.Object, e As System.EventArgs) Handles SaveButton.Click
Dim MyFileStream As IO.FileStream = Nothing
Try
'تعريف مسار الملف
MyFileStream = New IO.FileStream(FilePath, IO.FileMode.Open, IO.FileAccess.Write)
'الانتقال لبداية الملف
MyFileStream.Seek(&H0, IO.SeekOrigin.Begin)
'كتابة المصفوفة للملف بعد التعديل
MyFileStream.Write(MyBuffer, 0, MyBuffer.Length)
'للتأكد من أنه تم كتابة كل البيانات للملف
MyFileStream.Flush()
Finally
If MyFileStream IsNot Nothing Then MyFileStream.Close()
End Try
End Sub