PDA

View Full Version : باز کرن فایل به صورت باینری



.:KeihanCPU:.
چهارشنبه 29 آبان 1387, 18:07 عصر
دوستان من یک فایل رو به صورت باینری باز کردم و در یک متغیر بایت قرار دادم.
حالا میخوام یه استرینگ رو توش سرچ کنم چیکار کنم؟
کاری که میکنم err میده
شما لطفا یه راهکار کامل معرفی کنید

mostafaaa
چهارشنبه 29 آبان 1387, 18:42 عصر
ببین این بدردت میخوره.

Public Function SearchInBinary(ByVal Match As String, ByVal b() As Byte) As Boolean
Dim Temp() As Byte = System.Text.Encoding.ASCII.GetBytes(Match)
For i As Integer = 0 To b.Length - 1
If Temp(0) = b(i) Then
For j As Integer = 0 To Temp.Length - 1
If Not Temp(j) = b(i + j) Then
Exit For
Else
If j = Temp.Length - 1 Then Return True
End If
Next
End If
Next
Return False
End Function

shask00l
چهارشنبه 29 آبان 1387, 21:04 عصر
دوستان من یک فایل رو به صورت باینری باز کردم و در یک متغیر بایت قرار دادم.
حالا میخوام یه استرینگ رو توش سرچ کنم چیکار کنم؟


دوست عزیز
فکر کنم شما توی سوالتون مستقیما به مشکل اشاره کردین . وقتی 1 فایل رو بصورت باینری باز میکنید نمیتونید مستقیما توش رشته جستجو کنید . مگر اینکه رشته رو بصورت باینری در بیارید یا فایل رو بصورت text باز کنید .

توی تابع معرفی شده هم دقیقا ار همین روش استفاده میشه . توی خط دوم رشته دریافتی به حالت باینری تبدیل میشه .
البته این نظر منه . شایدم اشتباه میکنم . شاید بشه .

mostafaaa
چهارشنبه 29 آبان 1387, 22:08 عصر
دوست عزیز
فکر کنم شما توی سوالتون مستقیما به مشکل اشاره کردین . وقتی 1 فایل رو بصورت باینری باز میکنید نمیتونید مستقیما توش رشته جستجو کنید . مگر اینکه رشته رو بصورت باینری در بیارید یا فایل رو بصورت text باز کنید .

توی تابع معرفی شده هم دقیقا ار همین روش استفاده میشه . توی خط دوم رشته دریافتی به حالت باینری تبدیل میشه .
البته این نظر منه . شایدم اشتباه میکنم . شاید بشه .
نه دوست من به این شکل که شما فکر میکنی نیست. بعضی از فایلها یکسری مشخصاتشون به صورت Binary توشون ذخیره شده. که ممکنه در مواقعی اون اطلاعات بدردمون بخوره .
مثلا رشته زیر از یک فایل PDF استخراج شده

%PDF-1.4
%????
3 0 obj
<<
/Type /Page
/Parent 2 0 R
/Resources <<
/ProcSet [/PDF /Text ]
/Font <<
/F1 6 0 R
/F2 9 0 R
/F3 12 0 R
/F4 15 0 R
>>
>>
/MediaBox [0 0 595 841]
/Contents 4 0 R
>>
endobj
4 0 obj
<<
/Filter /FlateDecode
/Length 5063
>>
stream
x^?]K?$?
??????R??,???ENعلاوه بر اون معمولا اگه خودمون هم بخواهیم اطلاعاتی رو به همین طریق به یه فایل اضافه بکنیم باز هم در کیفیت فایل تغییری ایجاد نمیشه.