16+
ComputerPrice
НА ГЛАВНУЮ СТАТЬИ НОВОСТИ О НАС




Яндекс цитирования


Версия для печати

Модуль поиска не установлен.

Удаление документов на Visual Basic

22.07.2003

Сергей Капралов <hotservice@list.ru>

Наверное, каждый пользователь сталкивался с проблемой, когда необходимо уничтожить какой-либо файл, причем так, чтобы данные невозможно было восстановить при помощи утилит типа UnErase (из набора утилит Norton Utilities) или UnDelete. В основном для этой цели используются программы, в основе которых лежит запись на "место" файла шумоподобных кодов, или же несколько раз производится перезапись файла с искажением.
В этой статье описано довольно простое (при наличии у читателя минимальных навыков программирования) решение такой часто возникающей ситуации, основанное на методе перезаписи файла.

Для этого создадим небольшую утилиту при помощи языка программирования Visual Basic.

Нам понадобятся собственно сам компилятор Microsoft Visual Basic версии 5.0 или выше и несколько минут свободного времени.

Шаг 1. Создадим в среде VB простое однооконное приложение. В форму достаточно добавить всего лишь пару компонентов - кнопку и элемент CommonDialog .

Шаг 2. Теперь самое главное - нам надо написать функцию, которая и будет отвечать за уничтожение данных. Вызовем окно редактора кода, и в области General Declarations напишем следующее:

Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Эта API-функция будет отвечать за стирание файла с диска.
Public i,a As Byte

Это необходимые глобальные переменные.

Далее следует описание главной функции (рис. 1):

Function Rrecord(SourceFile)
Dim ByteArray() As Byte
Dim Filenr As Integer
DoEvents
For i = 1 To 3
Open SourceFile For Binary As #l
ReDim ByteArray(LOF(l) - 1)
LenF = LOF(1) - 1
Encoding ByteArray(), LenF
Put #l, 1, ByteArray()
Close #l
DoEvents
DeleteFile SourceFile
Next i
End Function

Две вспомогательные функции необходимы для заполнения файла "мусором":

Function ClearFile(FLNAme, Size)
Open FLNAme For Output As #2
For о = 1 To Size
Print #2, "A";
Next о
Close #2
End Function

Function Encoding (ByteArray() As Byte, ArrayLen)
For i = 0 To ArrayLen
ByteArray(i) = 1
Next i
End Function

Шаг З. Теперь нажмем на кнопку и добавим обработчик события Click:

Private Sub Command1_ Click()

CommonDialog1.ShowOpen - вызываем диалоговое окно для выбора файла.

Необходимо удостовериться, что выбран нужный файл:

vbresult = MsgBox("Bы уверены, что файл " &
CommonDialog1.FileNanie & " действительно необходимо уничтожить?", vbOKOnly + vbQuestion, "Уничтожение файла")
If vbresult = vbNo Or vbresult = vbCancel Then Exit Sub
End If

Вызов функции:

SourceFile = CommonDialog1.FileName
Rrecord SourceFile
End Sub

Вот, собственно, и все. Осталось только запустить программу и проверить ее в действии (рис. 2).

Данное творение не претендует на первое место среди подобных программ. При стирании программой файла, его невозможно восстановить (в UnErase он помечен как Poor), или же после восстановления мы находим в нем "мусор". Тестирование утилиты проводилось на Windows 98.

В качестве постскриптума - набор программ, входящих в Microsoft Office, поддерживает VBA (Visual Basic for Applications), следовательно, функцию, использованную в программе, можно вставить в макрос для MS Word или MS Excel, и она будет работать ничуть не хуже, чем в виде отдельной утилиты.



статьи
статьи
 / 
новости
новости
 / 
контакты
контакты