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


Автор: Berliner 23.8.2005, 09:14
Здрвствуйте, вот хочу написать программу ктоторая находит файл (например текстовик *.txt) в каталоге c:\1
кторый сформирован самым последним . В каталоге лежит много файлов с разными датами и временем формирования. Помогите с кодом
У меня получилось написать программу котороя сравнивает дату создания файла с выбранной датой а как сделать чтобы отбирала самый свежий файл не знаю. smile

Автор: ~FoX~ 23.8.2005, 09:29
Примерно так:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  f : TSearchRec;
  i : integer;
  Dat: integer;
  LFile: string;

begin
 i := FindFirst('c:\temp\1\*.*', faAnyFile, f);
 if (f.Name <> '.') and (f.Name <> '..') then  begin
   Dat := f.Time;
   LFile := f.Name;
 end;
   while (i=0) do
    begin
     Application.ProcessMessages;
     i := FindNext(f);
     if (f.Time > Dat) and (f.Name <> '.') and (f.Name <> '..') then  begin
       Dat := f.Time;
       LFile := f.Name;
     end;

    end;
  FindClose(f);
  ShowMessage(LFile);
end;

Автор: Berliner 23.8.2005, 09:43
Спасибо буду пробывать

Автор: Girder 23.8.2005, 10:21
Вот компонент и пример использования.

PS: Писал давно и в попыхах smile так что возможны какие нить ошибочки smile Но вроде в свое время их все пофиксил.

PS2: Одно точно помню... что все что хотел запихнуть в ентот компонент - на 100% не реализовал smile . Да и некоторые весчи реализовал через одно место smile . В настоящее время уже переписывать его лень smile

PS3: Ну а отсев по дате... прикрутить туда... пяти минутное дело... smile

Автор: Berliner 23.8.2005, 12:04
Код робает! Вот вопрос :
добавил свой код и что -то не отправялет файл может кто знает где ошибка
Код


procedure TForm1.Button1Click(Sender: TObject);
var a:integer;
    s,d3,filetP:string;
    d2:TDateTime;
    poisk:TSearchRec;
    f : TSearchRec;
    i : integer;
   Dat: integer;
   LFile: string;

begin
       
       if CheckBox1.Checked=true and CheckBox5.Checked=true then
       begin
       i := FindFirst('f:\kassa\out\*.arx', faAnyFile, f);
 if (f.Name <> '.') and (f.Name <> '..') then  begin
   Dat := f.Time;
   LFile := f.Name;
 end;
   while (i=0) do
    begin
     Application.ProcessMessages;
     i := FindNext(f);
     if (f.Time > Dat) and (f.Name <> '.') and (f.Name <> '..') then  begin
       Dat := f.Time;
       LFile := f.Name;
     end;

    end;
  FindClose(f);
  ShowMessage(LFile);
 NMSMTP1.Host:='127.0.0.1';
NMSMTP1.Port:=25;
NMSMTP1.UserID:='Syntez bank';
NMSMTP1.Connect;
NMSMTP1.PostMessage.ToAddress.Add(Form2.Edit1.Text);
NMSMTP1.PostMessage.FromAddress:='[email protected]';
NMSMTP1.PostMessage.Subject:='Тема';
NMSMTP1.PostMessage.Body.Add('Оплата ');
NMSMTP1.PostMessage.Attachments.Add(Lfile);
NMSMTP1.SendMail;
NMSMTP1.Disconnect;


       end;


Ошибка: Efoopen error Cannot open file K1231231.arx в чем может біть проблема smile
Добавлено @ 12:07
У меня отправка подобным образом с другими файлами работает
эт я дописываю программу

Автор: ~FoX~ 23.8.2005, 14:43
Цитата(Berliner @ 23.8.2005, 13:04)
Efoopen error Cannot open file K1231231.arx в чем может біть проблема

Ну наверное вот так надо то:
Код

  NMSMTP1.PostMessage.Attachments.Add('f:\kassa\out\'+Lfile);

Автор: Berliner 23.8.2005, 22:16
Спасибо большое буду пробывать

И вообще нравиться мне на форуме -помогают советы дельные дают smile smile
Вот только форум по киликс вялый - а жаль, может оживет

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