Страница 3 из 3

Добавлено: 01 сен 2005, 00:27
RoKon
Ладно, утомил ты меня :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; 

Добавлено: 01 сен 2005, 09:32
Duncon
Да нет, я вообще к тому, что с темы съехали.... А за еще одно решение, респект.. У LAngel-а пример менее нагруженным получился..

Добавлено: 01 сен 2005, 15:23
RoKon
ну я не думал что так подробно придется все расписывать.
Менее нагруженным, согласен. Но ты смотри для каких целей тебе вообще этот скрипт нужен. Если ты его только один раз будешь использовать конечно не было смысла че-то менять. А если выборка будет производится постоянно, причем будут меняться условия фильтрации, тот скрипт будет очень неудобно использоваться.

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