Архив исходников программ, модулей и компонентов на Delphi


Начальная страница

Поиск по базе



Операционная система
Настройка приложения
Взаимодействия приложений
Файлы и директории
Строки и символы
Математика
Базы данных
Интернет и сеть
Мультимедиа
Аппаратная часть
VCL
Другие разделы [0]
 

Количество записей в базе - 537
Сегодня добавлено – 0

Имена, пути файлов



Вернуться к списку функций
 Автоматическое получение следующего имени файла в каталоге

 Прислал: Igor Kovalevsky (Владикавказ) ( 1 июня 2002 г. )
©  Igor Kovalevsky
 Описание:
Функция предоставляет Вам каждый раз новое имя файла, а если список файлов исчерпан, начинает перебор снова. Может пригодиться при написании Вашего собственного слайдшоу с фотографиями или в похожих задачах, где важно не повторить до конца списка уже воспроизведённый файл.

 Зависимости:
Windows, Messages, SysUtils, Classes, DIALOGS;

 Ограничения:
нет

 Исходный текст:
{ **** UBPFD *********** by http://kladovka.net.ru/delphibase/ ****
>> Автоматическое получение следующего имени файла в каталоге

Функция предоставляет Вам каждый раз новое имя файла, а если список файлов исчерпан, начинает перебор снова. Может пригодиться при написании Вашего собственного слайдшоу с фотографиями или в похожих задачах, где важно не повторить до конца списка уже воспроизведённый файл.

Зависимости: Windows, Messages, SysUtils, Classes, DIALOGS;
Автор:       Igor Kovalevsky, pc-ambulance@mail.ru, Владикавказ
Copyright:   Igor Kovalevsky
Дата:        1 июня 2002 г.
***************************************************************** }

function GetNextFileName( Path : String ) : String;
const
     ListFileName = 'ListFile.lst';
     FileMask = '*.*'
var
   SearchRec : TSearchRec;
begin
     with TStringList.Create do
         begin
              if FileExists(ListFileName) then
                 begin
                      LoadFromFile(ListFileName);
                 end;
              if FindFirst(IncludeTrailingBackslash(Path) + FileMask,
                          faAnyFile and not faDirectory,
                          SearchRec) = 0 then
                 begin
                      // Редкий случай, когда цикл repeat..until
                      // на что-то годится
                      repeat
                            Result := SearchRec.Name;
                            if (FindNext( SearchRec ) <> 0) then
                               begin
                                    Clear;
                               end;
                      until (IndexOf(Result) = -1);
                      Add( Result );
                      FindClose( SearchRec );
                 end
              else
                  begin
                       Result := '';
                  end;
              SaveToFile(ListFileName);
              Free;
         end;
end;

 Пример использования:
ShowMessage(GetNextFileName( 'C:\Windows\' ));


Вернуться к списку функций

Наверх ▲