|
Вопрос # 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: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|