Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Перебрать файлы в хронологическом порядке


Автор: mspuz 3.3.2006, 12:05
У меня имеется директория в которой находится n количество файлов *dbf. Как мне выкачать из них информацию начиная с ранее всех созданного файла и так далее до самого позднего??? И случайно это не "по умолчанию"??? Потому что вроде у меня и так все работает smile , но уверености нет

Автор: _hunter 3.3.2006, 12:13
если вопрос в сортировке -- ищи все файлы в папке ( FindFirst/FindNext ) потом сортируй их по дате.
если вопрос в выкачивании информации -- не в этот раздел зашел...

Автор: mspuz 3.3.2006, 12:17
_hunter, Вопрос в сортировке. Т.е. создать массив, куда занести название файла и дату его создания, а затем уже обращаться используя этот массив???

Автор: Guedda 3.3.2006, 12:18
А зачем заносить дату создания? Сканируешь, находишь самый ранний, и заносишь его имя в массив, и так далее

Автор: mspuz 3.3.2006, 12:31
Guedda, Я просто люблю "на месте" разбираться - занес, а потом уже перебрал, а так все "в воздухе висит". Ну в общем спасибо, я так и думал.

Автор: SlaUr 3.3.2006, 13:05
Юниты находятся на SlaUr.narod.ru (mysys,mystr)



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,mysys,mystr;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var list:tstringlist;i1:integer;st1,st2:string;
s1:Tsearchrec;
begin
List:=Tstringlist.Create;
SearchInDir('*.*','C:\Windows' ,True , List);
List.Sorted:=true;
for i1:=0 to List.Count-1
do
begin
St1:=list[i1];
 if FindFirst(St1,faAnyFile,S1) = 0 then
List1[i1]:=intToStr(s1.Time)+'|'+List1[i1];{Т.к. list сортированый все выстроится как надо}
List.Sorted:=False;
 end;
For i1:=0 to list.Count-1 do
List[i1]:=cNFi(2,List[i1],|');
Halt;
end;

end.


Писал нетерезвый но думаю все правильно

Автор: _hunter 3.3.2006, 13:16
mspuz, ну да. получить массив и потом сортировать.

Guedda, т.е. ты на сотню файлов предлагаеш сотню поисков делать? а если их ( файлов 1000 )? -- месяц за компом сидеть?

Автор: Guedda 3.3.2006, 13:41
У меня процик 800 МГц
Так вот 1000 файлов просканило за 15 мин.

Автор: _hunter 3.3.2006, 14:02
ну ладно. усложняем задачу. 14000 файлов ( JCL )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)