![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
что-то сделал но все время какие-то ошибки выбивающие систему...а сдавать надо ее....желательно с пояснениями...спасибо заранее
a) Вывести в текстовый файл DIR.TXT оглавление текущей директории в формате: имя [DIR] размер дата создания время создания b) Найти в текущей директории и в её поддиректориях все BAK-файлы и уничтожить их. c) Найти в текущей директории и в её поддиректориях самый маленький EXE-файл и выполнить его. d) Найти в поддиректориях текущей директории все EXE-файлы и уничтожить их. e) Найти в текущей директории и в её поддиректориях самый старый DPR-файл и записать в его конец фразу "здесь был(а) <свое имя>". |
|
#2
|
||||
|
||||
|
Хех, думаю что врятли тебе помогут с таким вопросом, писать не мало придётся. Лучше показывай свои ошибки, разберёмся, быстрее будет.
|
|
#3
|
||||
|
||||
|
Я бы помог, т.к. компонентики у меня для этого самописные есть, но вот общее направление этого задания мне категорически не нравится.
|
|
#4
|
||||
|
||||
|
Если это задача поставлена ему ,например, преподом, то твои компонентики ему врятли помогут. А вообще постановка задачи странная, скорее всего ещё один начинающий вирусописатель.
|
|
#5
|
|||
|
|||
|
Да не, скорее всего действительно задача от препода. причем уровня школы. Все задачи решаются с помощью FindFirst/FindNext/FindClose, ну и еще пара функций:
- Удаление DeleteFile - Запуск WinExec или ShellExecute (рекомендую второй, из молуля ShellAPI) - Работа с текстовым файлом - через TStringList |
|
#6
|
|||
|
|||
|
так, в качестве развлекалочки. Вот процка, которая занимается перебором файлов. Тебе надо только правильные калл-бэки написать и ей подсунуть в качестве третьего параметра:
Код:
type
TEFCallBackAttr = record
Name : String;
FullName : String;
Size : Integer;
TimeStamp : TDateTime;
IsFolder : Boolean;
end;
TEFCallBack = procedure(AInfo : TEFCallBackAttr) Of Object;
//...
procedure TForm1.EnumFiles(APath: String; ARecurse : Boolean; ACallBack: TEFCallBack);
function FileTime2DateTime(FileTime: TFileTime): TDateTime;
var
LocalFileTime: TFileTime;
SystemTime: TSystemTime;
begin
FileTimeToLocalFileTime(FileTime, LocalFileTime) ;
FileTimeToSystemTime(LocalFileTime, SystemTime) ;
Result := SystemTimeToDateTime(SystemTime) ;
end;
procedure CallCallBack(AP : String; AF : TSearhcRec; ACB: TEFCallBack);
var
AInfo : TEFCallBackAttr;
begin
If ACB <> Nil Then
Begin
AInfo.Name := F.Name;
AInfo.FullName := APAth + F.Name;
AInfo.IsFolder := (AF.Attr And faDirectory) <> 0;
AInfo.Size := F.Size;
AInfo.TimeStamp:= FileTime2DateTime(F.Time);
ACB(AInfo);
End;
end;
var
F : TSearchRec;
iFound : Integer;
begin
APath := IncludeTrailingPathDelimiter(APath);
iFound := FindFirst(APath + '*.*', faAnyfile, F);
While iFound = 0 Do
Begin
If (F.Attr And faDirectory) <> 0
Then
Begin
CallCallBack(APAth, F, ACallBack);
If (F.Name <> '.') And (F.Name <> '..') And (ARecurse) Then
EnumFiles(APath,ARecurse,ACallBack);
End
Else
Begin
CallCallBack(APAth, F, ACallBack);
End;
iFound := FindNext(F);
end;
FindClose(F);
end; |
|
#7
|
|||
|
|||
|
спасиб,да задача 1 курса надо сделать))
![]() |