На одном из форумов обнаружил код для выщипования первых пяти байт из любого файла и замены этих байт на нули.
Sub Испортить_файл()
'испортить можно только не открытый файл
Dim sFN$
'место расположения и имя требуемого испортить файла
sFN$ = "C:\1.gif"
Dim f%
Dim i%
'ключ
Dim skey$
Dim b As Byte
Dim b0 As Byte
f = FreeFile
Open sFN For Binary As #f
For i = 1 To 5
Get f, i, b
skey = skey & Hex(b)
Put f, i, b0
Next i
Close #f
Debug.Print skey
'назначил именованный диапазон AAA
[AAA] = skey
End Sub
и соответственно код для исправления:
Sub Исправить_испорченный_файл()
Dim f%
Dim i%
Dim b As Byte
Dim sFN$
'место расположения и имя требуемого исправить ранее испорченого файла
sFN$ = "C:\1.gif"
'ключ, который был получен, перед тем как испортить файл
Dim skey$
skey$ = [AAA]
f = FreeFile
Open sFN For Binary As #f
For i = 1 To 5
b = CByte("&H" & Mid(skey, 2 * i - 1, 2))
Put f, i, b
Next i
Close f
End Sub
Пока отщипываем 5 байт - проблем нет.
Хочу отщипнуть 10 байт, соответственно исправляю:
For i = 1 To 10
При восстановлении файла выдается 13 ошибка в строке:
b = CByte("&H" & Mid(skey, 2 * i - 1, 2))
Если к полученому 18 значному коду добавить пару знаков, то ошибка не выдается, но файл не восстанавливается...
Sub Испортить_файл()
'испортить можно только не открытый файл
Dim sFN$
'место расположения и имя требуемого испортить файла
sFN$ = "C:\1.gif"
Dim f%
Dim i%
'ключ
Dim skey$
Dim b As Byte
Dim b0 As Byte
f = FreeFile
Open sFN For Binary As #f
For i = 1 To 5
Get f, i, b
skey = skey & Hex(b)
Put f, i, b0
Next i
Close #f
Debug.Print skey
'назначил именованный диапазон AAA
[AAA] = skey
End Sub
и соответственно код для исправления:
Sub Исправить_испорченный_файл()
Dim f%
Dim i%
Dim b As Byte
Dim sFN$
'место расположения и имя требуемого исправить ранее испорченого файла
sFN$ = "C:\1.gif"
'ключ, который был получен, перед тем как испортить файл
Dim skey$
skey$ = [AAA]
f = FreeFile
Open sFN For Binary As #f
For i = 1 To 5
b = CByte("&H" & Mid(skey, 2 * i - 1, 2))
Put f, i, b
Next i
Close f
End Sub
Пока отщипываем 5 байт - проблем нет.
Хочу отщипнуть 10 байт, соответственно исправляю:
For i = 1 To 10
При восстановлении файла выдается 13 ошибка в строке:
b = CByte("&H" & Mid(skey, 2 * i - 1, 2))
Если к полученому 18 значному коду добавить пару знаков, то ошибка не выдается, но файл не восстанавливается...