Программирование на Visual Basic | Microsoft Access. Бинарный вид файла Access

В этом разделе сайта находятся примеры из сборника программ "Архив файлов на Microsoft Access". В нем рассказывается о программировании форм, отчетов, таблиц и других объектов. Используйте этот архив для изучения работы с приложением Microsoft Office Access и программированием на Visual Basic for Application. Тем кто уже знаком с VBA, используйте поиск для нахождения кодов. Наберите, например, DAO, ADO, Recordset и найдете нужную ссылку для решения проблемы с программированием

Microsoft Access. Бинарный вид файла Access

05. Данный пример показывает бинарный вид файла Access. Когда вы сможете читать файлы Access бинарным способом, то Вам не будут страшны программы взломщики. Например, Вы сохранили в базе данных свойства, которые используются для авторизации. Далее нашли в базе данных смещение и расчитали контрольную сумму этих байт. Используя для проверки авторизации это число, то можно понять как прошла авторизация. Если неправильно (взломщик переписал байты), то можно "аккуратно", не выключая программу, "подать к столу" "отравленные" данные (реверс строки, vbNewLine добавить в текст и т.п.).

'==============================================================
'   Загрузка файла
Public Function funLoadDataBase(strFile As String)
Dim dbs As DAO.Database, rst As DAO.Recordset
Dim j As Long
Dim strСмещение As String
Dim strИсходник As String
Dim strЦифровик As String
Dim ID As Byte, bt As Byte

    'Проверяем файл и читаем его
    If strFile  "" Then
        Me.Parent.Tag = "start"
        ' Удаляем все из таблицы
        Set dbs = CurrentDb
        dbs.Execute "DELETE * FROM [Пример 05]"
        Me.Requery
        On Error GoTo 999
            ID = FreeFile 'Получаем свободный идентификатор файла
            Set rst = dbs.OpenRecordset("SELECT * FROM [Пример 05]")
            Open strFile For Binary As ID 'Открываем файл
            j = 0
            Do While Not EOF(ID)    ' Проверка конца файла
                strСмещение = j 'или hex(j)
                strИсходник = ""
                strЦифровик = ""
                Me.Parent.myTimer.Caption = " Загрузка: "  Format(j, "000000")
                DoEvents
                Do While Not EOF(ID)    ' Проверка конца файла
                    j = j + 1
                    Get #ID, , bt 'Читаем байты
                    strЦифровик = strЦифровик  Format(CLng(bt), "000")  " "
                    If (bt  32) Or (bt  255) Then
                        strИсходник = strИсходник  "."
                    Else
                        strИсходник = strИсходник  Chr(bt)
                    End If
                    If (j \ 16) = (j / 16) Then Exit Do
                Loop
                ' Вставляем строку
                rst.AddNew
                rst!Смещение = strСмещение
                rst!Исходник = strИсходник
                rst!Цифровик = strЦифровик
                rst.Update
                If Me.Parent.Tag = "stop" Then Exit Do
            Loop
            rst.Close
            Me.Parent.myTimer.Caption = " Загрузка завершена"
            Me.Requery
            Close 'Закрываем открытые файлы
    End If
    Exit Function
999:
    MsgBox Err.Description
End Function

Добавить комментарий

Loading