Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.04.2010, 00:39
vuldanov vuldanov вне форума
Прохожий
 
Регистрация: 12.04.2010
Сообщения: 4
Репутация: 10
Радость Помогите пжлста...работа с файлами..

что-то сделал но все время какие-то ошибки выбивающие систему...а сдавать надо ее....желательно с пояснениями...спасибо заранее
a) Вывести в текстовый файл DIR.TXT оглавление текущей директории в формате:

имя [DIR] размер дата создания время создания

b) Найти в текущей директории и в её поддиректориях все BAK-файлы и уничтожить их.

c) Найти в текущей директории и в её поддиректориях самый маленький EXE-файл и выполнить его.

d) Найти в поддиректориях текущей директории все EXE-файлы и уничтожить их.

e) Найти в текущей директории и в её поддиректориях самый старый DPR-файл и записать в его конец фразу "здесь был(а) <свое имя>".
Ответить с цитированием
  #2  
Старый 13.04.2010, 00:44
Аватар для Лунтик-Некрофил
Лунтик-Некрофил Лунтик-Некрофил вне форума
Начинающий
 
Регистрация: 28.09.2009
Сообщения: 165
Репутация: 12
По умолчанию

Хех, думаю что врятли тебе помогут с таким вопросом, писать не мало придётся. Лучше показывай свои ошибки, разберёмся, быстрее будет.
__________________
Алкоголик-аморал, явная угроза обществу
Блин, я уже местный, а все равно нифига не знаю...
Ответить с цитированием
  #3  
Старый 13.04.2010, 00:47
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Я бы помог, т.к. компонентики у меня для этого самописные есть, но вот общее направление этого задания мне категорически не нравится.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 13.04.2010, 01:03
Аватар для Лунтик-Некрофил
Лунтик-Некрофил Лунтик-Некрофил вне форума
Начинающий
 
Регистрация: 28.09.2009
Сообщения: 165
Репутация: 12
По умолчанию

Если это задача поставлена ему ,например, преподом, то твои компонентики ему врятли помогут. А вообще постановка задачи странная, скорее всего ещё один начинающий вирусописатель.
__________________
Алкоголик-аморал, явная угроза обществу
Блин, я уже местный, а все равно нифига не знаю...
Ответить с цитированием
  #5  
Старый 13.04.2010, 04:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,037
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да не, скорее всего действительно задача от препода. причем уровня школы. Все задачи решаются с помощью FindFirst/FindNext/FindClose, ну и еще пара функций:
- Удаление DeleteFile
- Запуск WinExec или ShellExecute (рекомендую второй, из молуля ShellAPI)
- Работа с текстовым файлом - через TStringList
Ответить с цитированием
  #6  
Старый 13.04.2010, 04:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,037
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

так, в качестве развлекалочки. Вот процка, которая занимается перебором файлов. Тебе надо только правильные калл-бэки написать и ей подсунуть в качестве третьего параметра:

Код:
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  
Старый 13.04.2010, 17:28
vuldanov vuldanov вне форума
Прохожий
 
Регистрация: 12.04.2010
Сообщения: 4
Репутация: 10
По умолчанию

спасиб,да задача 1 курса надо сделать))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter