Усовершенствовать скрипт

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

Ладно, утомил ты меня :twisted: . В твоем случае все будет выглядеть следующим образом:

Код: Выделить всё

procedure CreateImageFileList;
var Filter: TStringList;
begin
 try
  Filter:=TStringList.Create;
  Filter.Add('.bmp');
  Filter.Add('.jpg');
  Filter.Add('.gif');
 // ... продолжаешь добавлять все необходимые расширения
  Dir('C:\Documents and Settings\All Users\My picture', FileList, Filter);
 finally
  Filter.Free
 end
end;


procedure Dir(Path: string; FileList: TStrings; Filter: TStringList); 
var 
  SR: TSearchRec; 
  Ext: String; 
  i: integer; 
begin 
  if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then 
  begin 
    repeat 
      if (SR.Attr <> faDirectory) then 
      begin 
        Ext := UpperCase(ExtractFileExt(SR.Name)); 
        if Filter.Find(Ext, i) // в переменную i запишется индекс найденного элемента, он тебе не нужен, не обращай на него внимания
          then FileList.Add(SR.Name); 
      end; 
    until FindNext(SR) <> 0; 
    FindClose(SR); 
  end; 
end; 
The trurh is out there...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Да нет, я вообще к тому, что с темы съехали.... А за еще одно решение, респект.. У LAngel-а пример менее нагруженным получился..
[syntax=Delphi] [/syntax]
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

ну я не думал что так подробно придется все расписывать.
Менее нагруженным, согласен. Но ты смотри для каких целей тебе вообще этот скрипт нужен. Если ты его только один раз будешь использовать конечно не было смысла че-то менять. А если выборка будет производится постоянно, причем будут меняться условия фильтрации, тот скрипт будет очень неудобно использоваться.
The trurh is out there...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Согласен..
ну я не думал что так подробно придется все расписывать.
Ну на самом деле, я считаю что на форумах должно быть все подробно, многие без наглядности недопонимают происходящего..
Что касается меня - постоянно прыгаю с языка на язык из-за этого болты и амнезия, к примеру к Delphi я вернулся после годовой паузы, почти как в первые разы себя ощущаю.. :|
Ответить