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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2011, 16:05   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию Поиск на компе

Код:
unit Audit1;
interface

uses windos;

var
  dest: string;

procedure dorecurse(dir: string);

implementation
{$R *.DFM}

procedure Process(dir: string; Searchrec: tsearchrec);
begin
  showmessage(Searchrec.name);
  case Searchrec.attr of
    $10:
      if (searchrec.name <> '.') and (searchrec.name <> '..') then
      begin
        dorecurse(dir + '\' + searchrec.name);
        writeln(dir);
      end;
  end;
end;

procedure Dorecurse(dir: string);
var
  Searchrec: Tsearchrec;
  pc: array[0..79] of Char;
begin
  StrPCopy(pc, dir + '\*.*');
  FindFirst(pc, FaAnyfile, SearchRec);
  Process(dir, SearchRec);
  while FindNext(SearchRec) <> -18 do
  begin
    Process(dir, SearchRec);
  end;
end;

procedure startsearch;
begin
  dorecurse(paramstr(1));
end;

begin
  startsearch;
end.

вот код взял с делфи ворд но почему пишет ошибку


где тут ошибка и как тут указать какой файл найти???
cargo29 вне форума Ответить с цитированием
Старый 24.01.2011, 16:06   #2
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

вот это подчеркивает
Код:
uses windos;
cargo29 вне форума Ответить с цитированием
Старый 24.01.2011, 18:24   #3
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

никто не знает??????????
cargo29 вне форума Ответить с цитированием
Старый 24.01.2011, 18:40   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

странно что там код такой есть, это ж паскаль.
Код:
function ScanDir(Directory,FileName,Extention:string;Strings:TStrings;IgnoreCase,Dirs,Files:boolean;SubFoldersCount:integer):longword;
var SR:TSearchRec;
    s:string;
begin
 Directory:=IncludeTrailingPathDelimiter(Directory);
 if IgnoreCase then FileName:=ANSILowerCase(FileName);
 Extention:=ANSILowerCase(Extention);
 Result:=0;
 if Strings=nil then exit;
 if not DirectoryExists(Directory) then exit;
 try
  if FindFirst(Directory+'*.*',faAnyFile,SR)<>0 then exit;
  repeat
   if(SR.Name<>'.')and(SR.Name<>'..') then begin
                                          if ((SR.Attr and faDirectory<>0)and(SubFoldersCount>0))then Result:=Result+ScanDir(Directory+SR.Name,FileName,Extention,Strings,IgnoreCase,Dirs,Files,SubFoldersCount-1);
                                          if Dirs then begin
                                                        if IgnoreCase then s:=ANSILowerCase(SR.Name) else s:=SR.Name;
                                                        if ((SR.Attr and faDirectory)<>0)and((FileName='')or(Pos(FileName,s)<>0))then begin
                                                                                                                                       Result:=Result+1;
                                                                                                                                       Strings.Add(Directory+SR.Name);
                                                                                                                                      end;
                                                       end;
                                          if Files then begin
                                                         if IgnoreCase then s:=ANSILowerCase(SR.Name) else s:=SR.Name;
                                                         if ((SR.Attr and faDirectory)=0)and((FileName='')or(Pos(FileName,s)<>0))and((Extention='')or(Extention=ANSILowerCase(ExtractFileExt(SR.Name))))then begin
                                                                                                                                                                                                              Result:=Result+1;
                                                                                                                                                                                                              Strings.Add(Directory+SR.Name);
                                                                                                                                                                                                             end;
                                                        end;
                                         end;
  until FindNext(SR)<>0;
 finally
  FindClose(SR);
 end;
end;
я пользовался ею(точнее её более продвинутой версией, но она private)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.01.2011, 20:20   #5
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от cargo29 Посмотреть сообщение
вот это подчеркивает
Код:
uses windos;
Круто

WINDOWS
vovk вне форума Ответить с цитированием
Старый 24.01.2011, 22:25   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а мне нравится код, который неоднократно приводился тут на форуме:

http://www.programmersforum.ru/showthread.php?t=117683
http://www.programmersforum.ru/showthread.php?t=112435
http://www.programmersforum.ru/showthread.php?t=96145

p.s. по всем вышеприведённым ссылкам я предлагаю один и тот же код...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.01.2011, 07:25   #7
KrPr
Пользователь
 
Регистрация: 27.01.2009
Сообщений: 18
По умолчанию

для поиска всегда пользуюсь компонентом mFileScan легкий, быстрый.
KrPr вне форума Ответить с цитированием
Старый 25.01.2011, 09:34   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
для поиска всегда пользуюсь компонентом mFileScan легкий, быстрый.
угу. а если в него заглянуть, то наверняка увидим, что это обёртка всё на теми же APIшными функциями FindFirst / FindNext
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.01.2011, 20:33   #9
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
странно что там код такой есть, это ж паскаль.
Код:
function ScanDir(Directory,FileName,Extention:string;Strings:TStrings;IgnoreCase,Dirs,Files:boolean;SubFoldersCount:integer):longword;
var SR:TSearchRec;
    s:string;
begin
 Directory:=IncludeTrailingPathDelimiter(Directory);
 if IgnoreCase then FileName:=ANSILowerCase(FileName);
 Extention:=ANSILowerCase(Extention);
 Result:=0;
 if Strings=nil then exit;
 if not DirectoryExists(Directory) then exit;
 try
  if FindFirst(Directory+'*.*',faAnyFile,SR)<>0 then exit;
  repeat
   if(SR.Name<>'.')and(SR.Name<>'..') then begin
                                          if ((SR.Attr and faDirectory<>0)and(SubFoldersCount>0))then Result:=Result+ScanDir(Directory+SR.Name,FileName,Extention,Strings,IgnoreCase,Dirs,Files,SubFoldersCount-1);
                                          if Dirs then begin
                                                        if IgnoreCase then s:=ANSILowerCase(SR.Name) else s:=SR.Name;
                                                        if ((SR.Attr and faDirectory)<>0)and((FileName='')or(Pos(FileName,s)<>0))then begin
                                                                                                                                       Result:=Result+1;
                                                                                                                                       Strings.Add(Directory+SR.Name);
                                                                                                                                      end;
                                                       end;
                                          if Files then begin
                                                         if IgnoreCase then s:=ANSILowerCase(SR.Name) else s:=SR.Name;
                                                         if ((SR.Attr and faDirectory)=0)and((FileName='')or(Pos(FileName,s)<>0))and((Extention='')or(Extention=ANSILowerCase(ExtractFileExt(SR.Name))))then begin
                                                                                                                                                                                                              Result:=Result+1;
                                                                                                                                                                                                              Strings.Add(Directory+SR.Name);
                                                                                                                                                                                                             end;
                                                        end;
                                         end;
  until FindNext(SR)<>0;
 finally
  FindClose(SR);
 end;
end;
я пользовался ею(точнее её более продвинутой версией, но она private)
а как тут указать какой файл надо искать?* и потом вывести путь до этого файла?
cargo29 вне форума Ответить с цитированием
Старый 29.01.2011, 12:57   #10
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

подскажет кто нить?
cargo29 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сервер на компе Altera Свободное общение 20 25.03.2010 11:57
Помогите с ошибкой на компе Полинка Хабаровск Свободное общение 31 02.02.2009 04:22
Гнильё в компе..... :-(( steck Свободное общение 14 23.01.2009 17:58
джамба на компе gred PHP 5 13.04.2008 23:50
Запутстить на удаленном компе Elm0 Безопасность, Шифрование 7 06.08.2007 10:58