скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

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



Автор: Igor Kovalevsky

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Автоматическое получение следующего имени файла в каталоге

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

Зависимости: 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\'));





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook