Меню сайта
Форма входа

Категории раздела
Уроки по созданию игр [38]
Программирование игр разной сложности
Игровые алгоритмы [24]
Алгоритмы, которые уже реализованы для разных жанров игр
Графика [5]
Учимся работать с графикой в Делфи
Мультимедиа [3]
Работа с мультимедийными возможностями Делфи
Другие статьи [18]
Статьи не вошедшие не в один из разделов
Ошибки [4]
Всевозможные ошибки и пути их решения
Среда, 15.05.2024, 05:30
Приветствую Вас Гость

Статьи по программированию

Главная » Статьи » Другие статьи

Поиск файлов на компьютере
поиск первого файла в папке
FindFirst(каталог поиска и маска файла, атрибуты искомого файла, поисковая переменная);

каталог и маска - 'c:\*.*'

атрибуты искомого файла
faReadOnly - только чтение файлов
faHidden - скрытые файлы
faSysFile - системные файлы
faVolumeID - файл метки диска
faDirectory - атрибут признака каталога
faArchive - обычный файл
faAnyFile - поиск по всем атрибутам
можно применять например так: faDirectory+faHidden

поисковая переменная должна иметь тип - TsearchRec

функция возвращает ноль если файл найден.


поиск следующего файла
findNext(поисковая перменная)
в случае удачного поиска возвращает ноль

finfClose - закрывает поиск и освобождает память




тип TsearchRec такие параметры
Name -  имя файла в байтах
Size - размер
Attr - атрибуты каталога файла
Time - упакованное значение времени и даты создания каталога (файла)



пример использования
var
FindRes:integer; // peremennaya zapisi poiska
Sr:TSearchRec; //poisk peremennaya

begin
listbox1.clear;
FindRes:=FindFirst( 'c:\delphi\*.*' , faAnyFile , SR );

   //poisk 
   while FindRes=0 do
   begin
   
   Listbox1.Items.Add(SR.name);
   FindRes:=FindNext(SR);
   end;
FindClose(SR);
end;




пример использования 2
в этом случае при нахождении каталога с именем "." и с именем ".." программа продолжит обработку цикла поиска без вывода найденого имени элемента в компонент списка листбокс.
var
FindRes:integer; // peremennaya zapisi poiska
Sr:TSearchRec; //poisk peremennaya

begin
listbox1.clear;
FindRes:=FindFirst( 'c:\delphi\*.*' , faAnyFile , SR );

   //poisk 
   while FindRes=0 do
   begin
         if ((SR.attr and faDirectory)=faDirectory) and 
         ((SR.name='.') or (SR.name='..')) then
         begin
         FindRes:=FindNext(SR); //prodolzhit poisk
         Continue; //prodolzhit tsikl
         end;
      Listbox1.Items.Add(SR.name);
      FindRes:=FindNext(SR);
   end;
FindClose(SR);
end;










пример использования 3
поиск по дате создания. ищетфайлы созданные начина с даты указанной в тдатапикере
var
FindRes:integer; // peremennaya zapisi poiska
Sr:TSearchRec; //poisk peremennaya

begin
listbox1.clear;
FindRes:=FindFirst( 'c:\delphi\*.*' , faAnyFile , SR );

   //poisk 
   while FindRes=0 do
   begin
         if ((SR.attr and faDirectory)=faDirectory) and 
         ((SR.name='.') or (SR.name='..')) then
         begin
         FindRes:=FindNext(SR); //prodolzhit poisk
         Continue; //prodolzhit tsikl
         end;

         if FileDateToDateTime(SR.Time)<DateTimePicker1.Date then
         begin
         FindRes:=FindNext(SR); //prodolzhit poisk
         Continue; //prodolzhit tsikl
         end;

      Listbox1.Items.Add(SR.name);
      FindRes:=FindNext(SR);
   end;
FindClose(SR);
end;












Организовуем поиск по вложенным каталогам в папке
edit1.text:='c:\delphi\';
public
procedure FindFile(Dir:String);

procedure Tform1.FindFile(Dir:String);
var
SR:TsearchRec;
FindRes:Integer;
begin
   FindRes:=FindFirst(Dir+'*.*'+faAnyFile,SR);
   while FindRes=0 do
   begin

      if ((SR.Attr and faDirectory)=faDirectory) and ((SR.Name='.') or (SR.Name='..')) then
      begin
      FindRes:=FindNext(SR);
      Continue;
      end;

      //esli nayden katalog a ne fayl
      if ((SR.Attr and faDirectory)=faDirectory) then
      begin
      FindFile(Dir+SR.Name+'\');
      FindRes:=FindNext(SR);
      Continue;
      end;

   ListBox1.Items.Add(SR.Name);
   FindRes:=FindNext(SR);      
   end;
FindClose(SR);
end;


procedure Tform1.Button1.Click(Sender:TObject);
begin
listbox1.clear;
FindFile(Edit1.text);
end; 
Категория: Другие статьи | Добавил: Armageddets (05.07.2012)
Просмотров: 1348 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Какие уроки по созданию игр Вам удобнее?
Всего ответов: 141
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0