Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2009, 19:16   #1
leo_new
 
Регистрация: 05.11.2009
Сообщений: 4
По умолчанию Поиск в папке и подпапках(что то странное твориться)

Вот скелет. В одном проекте он работает, а при копировании содержимого в другой - тупо вылетает форма с пустым МЕМО. В чем может быть причина?
P.S. делфи 7
Код:
unit del;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, masks, ExtCtrls,ComObj,  ShlObj;
type
TForm1 = class(TForm)
memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
public
end;

var
     Form1: TForm1;

implementation
     {$R *.dfm}
     procedure FindFiles(StartFolder, Mask: string; List: TStrings;
     ScanSubFolders: Boolean = True);
  var
     SearchRec: TSearchRec;
     FindResult: Integer;
          
     begin
          List.BeginUpdate;
          try
          StartFolder := IncludeTrailingPathDelimiter(StartFolder);
          FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
          try
          while FindResult = 0 do
          with SearchRec do
               
               begin
                    if (Attr and faDirectory) <> 0 then
                         begin
                              if ScanSubFolders and (Name <> '.') and (Name <> '..') then
                              FindFiles(StartFolder + Name, Mask, List, ScanSubFolders);
                         end
                    else
                              begin
                                   if MatchesMask(Name, Mask) then
                                   List.Add(StartFolder + Name);
                              end;
                    FindResult := FindNext(SearchRec);
               end;
               finally
                    FindClose(SearchRec);
               end;
               finally
                         List.EndUpdate;
              end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var f:file of byte;
g, l, r: integer;
s, oldName, newName, blob : string;

     begin
          FindFiles('C:\1\', 'pro?.*', memo1.lines, true);
          for r := 0 to Memo1.Lines.Count-1 do
               begin
                    .................
                     МОЙ КОД
                    .................
               end;
     end;
end.

Последний раз редактировалось leo_new; 16.12.2009 в 19:19.
leo_new вне форума Ответить с цитированием
Старый 16.12.2009, 20:01   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Времени не было разбираться. Вот то, чем я пользуюсь:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
        procedure FindFile(Dir:String);

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FindFile(Dir: string);
var
  SR: TSearchRec;
  FindRes: Integer;
  Kol:integer;
begin
  FindRes := FindFirst(Dir + '*.*', faAnyFile, SR);
  while FindRes = 0 do
  begin
    if ((SR.Attr and faDirectory) = faDirectory) and
      ((SR.Name = '.') or (SR.Name = '..')) then
    begin
      FindRes := FindNext(SR);
      Continue;
    end;

    // если найден каталог, то
    if ((SR.Attr and faDirectory) = faDirectory) then
    begin
      // входим в процедуру поиска с параметрами текущего каталога +
      // каталог, что мы нашли
      FindFile(Dir + SR.Name + '\\');
      FindRes := FindNext(SR);
      // после осмотра вложенного каталога мы продолжаем поиск
      // в этом каталоге
      Continue; // продолжить цикл
    end;

    ListBox1.Items.Add(SR.Name);
    FindRes := FindNext(SR);
  end;
  FindClose(SR);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
listbox1.Clear;
FindFile(edit1.Text);
end;

end.
Отлично работает
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск видео в папке Revival001 Мультимедиа в Delphi 7 18.05.2009 15:21
Поиск в подпапках. Rahim1993 Общие вопросы Delphi 5 11.10.2008 21:44
Как сделать поиск файлов в папке BETONOMESHALKA Общие вопросы Delphi 3 01.02.2008 22:43
Просмотр файлов в папке и подпапках Yar Помощь студентам 9 07.08.2007 16:56
Поиск файлов в папках и подпапках Format C: Общие вопросы Delphi 17 04.05.2007 23:31