Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 076

/ вопрос решён /

Приветствую, уважаемые эксперты!
Немного не могу разобраться в проблеме , вот лситинг функции
http://pastebin.com/qjpAJ7r4
функцию запускаю как ffind('D:\');
Выдает просто несколько файлов, не пойму почему вместо всего листнга фалов на диске Д выыводить несоколько, атребуты мб не так задаю ,не могу понять...
Может быть кто незамыленным глазом разберётеся, прошу помощи...

П.с. На всякий случай дублирую листинг в приложении.

Приложение:
  1. procedure ffind(cat: string);
  2. var
  3. sea: TSearchRec;
  4. res: integer;
  5. begin
  6. list := Tstringlist.Create;
  7.  
  8.  
  9. While res = 0 do
  10. begin
  11. if (sea.Attr = faDirectory) and ((sea.Name = '.') or (sea.Name = '..'))
  12.  
  13. begin
  14. res := findNext(sea);
  15.  
  16. end;
  17.  
  18. begin
  19.  
  20.  
  21.  
  22. end;
  23.  
  24.  
  25. end;
  26.  
  27. end;


winner13 Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: winner13 (статус: 1-ый класс)
Вопрос отправлен: 14 апреля 2012, 22:08
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 15 апреля 2012, 22:45; участников в обсуждении: 2.
min@y™

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

winner13 (статус: 1-ый класс), 15 апреля 2012, 14:48 [#2]:

хыыыы, ездил в бану, и голова с бодуна помылся называется, вы там в пиве мылись ??? гг
По теме сравнил, разобрался, что всё такий нужно фаэнифаил сделать, и всё.
Не решимых проблем нет, есть неприятные для нас решения.
min@y™

min@y™ (статус: Доктор наук), 15 апреля 2012, 22:45 [#3]:

Цитата (winner13):

хыыыы, ездил в бану, и голова с бодуна помылся называется, вы там в пиве мылись ??? гг По теме сравнил, разобрался, что всё такий нужно фаэнифаил сделать, и всё.

Ничо не понял, но, вижу, помогло.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

18 апреля 2012, 17:05: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:41
Выполнено за 0.02 сек.