Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2014, 15:52   #1
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию Удаление файла без возможности восстановления

Нашел вот такую процедуру:

Код:
procedure ZeroFillDelete(FileName: string);
var
fs: TFileStream;
i:  integer;
procedure RandomWrite;
var b:  byte;
begin
repeat
b := Random(256); fs.Write(b, 1);
until fs.Position + 1 >= fs.Size;
end;
procedure WritePattern(pattern: byte);
const patt: array[5..31] of dword = ($555555, $AAAAAA, $924924, $492492,
$249249, 0, $111111, $222222, $333333, $444444, $555555, $666666,
$777777, $888888, $999999, $AAAAAA, $BBBBBB, $CCCCCC, $DDDDDD,
$EEEEEE, $FFFFFF, $924924, $492492, $249249, $6DB6DB, $B6DB6D, $DB6DB6);
var d: dword;
begin
d := patt[pattern] shl 8;
repeat fs.Write(d, 3); until fs.Position + 3 >= fs.Size;
end;
begin
if not FileExists(FileName) then Exit;
for i := 1 to 35 do
try
fs := TFileStream.Create(FileName, fmOpenWrite);
try
if (i < 5) or (i > 31) then RandomWrite
else WritePattern(i);
finally
fs.Free;
end;
except Exit; end;
DeleteFile(FileName);
end;
Но не пойму как правиль вызвать эту процедуру. Например мне нужно удалить файл который открыт в OpenDialog
UKRtortik вне форума Ответить с цитированием
Старый 11.03.2014, 16:10   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

неужели у вас проблема вызвать процедуру с одним параметром?
у OpenDialog свойство FileName вернет имя выбраного файла.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.03.2014, 17:07   #3
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
неужели у вас проблема вызвать процедуру с одним параметром?
у OpenDialog свойство FileName вернет имя выбраного файла.
Ну вот не получается...
UKRtortik вне форума Ответить с цитированием
Старый 11.03.2014, 17:14   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от UKRtortik Посмотреть сообщение
Ну вот не получается...
показывайте как пытались.
диалог показать можете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.03.2014, 17:15   #5
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Код:
begin
  ZeroFillDelete('C://projec.exe');
end;
-=Virus=- вне форума Ответить с цитированием
Старый 11.03.2014, 17:17   #6
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от -=Virus=- Посмотреть сообщение
Код:
begin
  ZeroFillDelete('C://projec.exe');
end;
Unsatisfied forward or external declaration: 'TForm1.ZeroFillDelete'
UKRtortik вне форума Ответить с цитированием
Старый 11.03.2014, 17:19   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от UKRtortik Посмотреть сообщение
Unsatisfied forward or external declaration: 'TForm1.ZeroFillDelete'
весь код кидайте тогда.
вы процедуру то в код добавили?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.03.2014, 17:23   #8
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
весь код кидайте тогда.
вы процедуру то в код добавили?
Это как???

type
TForm1 = class(TForm)
procedure ZeroFillDelete;
private
{ Private declarations }
public
{ Public declarations }
end;


???
UKRtortik вне форума Ответить с цитированием
Старый 11.03.2014, 17:42   #9
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Должно быть:
Код:
type
TForm1 = class(TForm)
procedure ZeroFillDelete(FileName: string);
FaTaL вне форума Ответить с цитированием
Старый 11.03.2014, 17:52   #10
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Должно быть:
Код:
type
TForm1 = class(TForm)
procedure ZeroFillDelete(FileName: string);
Благодарю. А хотелось бы поинтересоватся, данный способ действительно полностью удалет файл (Без возможности восстановить.)
UKRtortik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Bash скрипт восстановления файла untrash Gadjett Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 0 04.05.2013 12:35
Уничтожить данные без возможно восстановления hon Безопасность, Шифрование 20 05.01.2012 21:39
Удаление файлов без возможности востановления alegz81 Общие вопросы Delphi 2 24.04.2010 13:23
о возможности прослушивания файла AMR ZAY JULIA Свободное общение 4 20.03.2009 22:46
Доступ к БД Access без возможности копирования Virtson Безопасность, Шифрование 4 24.03.2007 14:43