| 
| 
 | Вопрос # 6 076/ вопрос решён / | 
 |  Приветствую, уважаемые эксперты!Немного не могу разобраться в проблеме , вот лситинг функции
 http://pastebin.com/qjpAJ7r4
 функцию запускаю как  ffind('D:\');
 Выдает просто несколько файлов, не пойму почему вместо всего листнга фалов на диске Д выыводить несоколько, атребуты мб не так задаю ,не могу понять...
 Может быть кто незамыленным глазом разберётеся, прошу помощи...
 
 П.с. На всякий случай дублирую листинг в приложении.
 Приложение:Переключить в обычный режим procedure ffind(cat: string);var  sea: TSearchRec;  res: integer;begin  list := Tstringlist.Create;    While res = 0 do  begin    if (sea.Attr = faDirectory) and ((sea.Name = '.') or (sea.Name = '..'))     begin      res := findNext(sea);     end;     begin       end;    end; end;
|  |   Вопрос задал: winner13 (статус: 1-ый класс)Вопрос отправлен: 14 апреля 2012, 22:08
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 3; последнее сообщение — 15 апреля 2012, 22:45; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 15 апреля 2012, 08:41 [#1]:Чойта меня смущают операторы "Continue". Я вчера ездил в баню, заодно и помылся. Поэтому я щас сбодуна, не проснулся ещё. Вот тебе кусок моего кода (тред для поиска текста в файлах), посмотри, сравни.
 
 function TFileTextFinder.FindInFolder(const APath: string): Integer;
var
  Rec: TSearchRec;
  Lines: TStringList;
begin
  // Поиск в каталоге
  Result:= 0;
  Lines:= TStringList.Create();
  FPage:= nil;
 
  try
    if FindFirst(APath + '\*.*', faAnyFile, Rec) = 0
      then repeat
             if Terminated
               then Break; // Прерывание
 
             if (Rec.Name <> '.') and (Rec.Name <> '..')
               then begin
                      // Наткнулся на файл
                      if Rec.Attr and faDirectory = 0
                        then begin
                               if MatchesMasks(AnsiLowerCase(Rec.Name), FMasks)
                                 then begin
                                        // Попытка загрузки файла
                                        FFileName:= APath + '\' + Rec.Name;
                                        Synchronize(DoOnFile);
 
                                        try
                                          Lines.LoadFromFile(FFileName);
                                          Result:= Result + FindText(Lines);
                                        except
                                          FSubStrIndex:= -1; // Ошибка открытия файла
                                          Synchronize(DoCallback);
                                        end;
                                      end;
                             end
                        // Наткнулся на каталог
                        else if FSubFolders
                               then Result:= Result + FindInFolder(APath + '\' + Rec.Name);
                    end;
           until FindNext(Rec) <> 0;
  finally
    SysUtils.FindClose(Rec);
    Lines.Free();
  end;
end;Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | winner13 (статус: 1-ый класс), 15 апреля 2012, 14:48 [#2]:хыыыы, ездил в бану, и голова с бодуна помылся называется, вы там в пиве мылись ??? гг По теме  сравнил, разобрался, что всё такий нужно фаэнифаил сделать, и всё.
 Не решимых проблем нет, есть неприятные для нас решения. |  
|   | min@y™ (статус: Доктор наук), 15 апреля 2012, 22:45 [#3]: Цитата (winner13): хыыыы, ездил в бану, и голова с бодуна помылся называется, вы там в пиве мылись ??? гг По теме сравнил, разобрался, что всё такий нужно фаэнифаил сделать, и всё.  Ничо не понял, но, вижу, помогло.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  18 апреля 2012, 17:05: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |