Вниз
Скачать: CL | DM;

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

← →
syte_ser78 ©   (2004-08-16 20:23) [0]

Сабж. Следующий код ищет файлы по пути path по маске mask, но... через один. Тоесть грубо говоря из файлов 1 2 3 4 5... он найдет 1 3 5. Тоже самое относится к папкам. Подскажите в чем ошибка.

Procedure PrintFiles(path,mask:string);
var sr:tsearchrec;
begin
 findfirst(path+mask,faanyfile-fadirectory,sr);
 repeat
   if sr.name<>"" then
   begin
     writeln(F,"<LI> <OBJECT type="text/sitemap">");
     writeln(F,"<param name="Name" value="",sr.name,"">");
     writeln(F,"<param name="Local" value="",path+sr.name,"">");
     writeln(F,"</OBJECT>");
   end;
   findnext(sr);
 until FindNext(sr) <> 0;
end;

Procedure SearchFiles(path,mask:string);
var sr:tsearchrec;
begin
 findfirst(path+"*.*",faanyfile,sr);
 PrintFiles(path,mask);
 repeat
   if (sr.attr and fadirectory=fadirectory) and
      (sr.name<>".") and (sr.name<>"..") then
      begin
       writeln(F,"<LI> <OBJECT type="text/sitemap">");
       writeln(F,"<param name="Name" value="",sr.name,"">");
       writeln(F,"<param name="Local" value="",path+sr.name,"">");
       writeln(F,"</OBJECT>");
       writeln(f,"<UL>");
       SearchFiles(path+sr.name+"\",mask);
       writeln(f,"</UL>");
      end;
   findnext(sr);
 until FindNext(sr) <> 0;
end;


← →
jack128 ©   (2004-08-16 20:39) [1]

Сразу в глаза брасается

> findfirst(path+"*.*",faanyfile,sr);
где проверака результата функции FindFirst ?
и насчет поиска через один - чего то не видно тут такого..
И вообще SearchFiles и PrintFiles одно и тоже делают - зачем делить на две процедуры?


← →
vuk ©   (2004-08-16 20:42) [2]

>   findnext(sr);
> until FindNext(sr) <> 0;
Вызов findnext два раза подряд.


← →
syte_ser78 ©   (2004-08-16 20:46) [3]


> [2] vuk ©   (16.08.04 20:42)
> >   findnext(sr);
> > until FindNext(sr) <> 0;
> Вызов findnext два раза подряд.

Блин!!!!!!!!!
Огромное спасибо! :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.019 c
8-1087034489
Snip
2004-06-12 14:01
2004.09.05
DirectShow


3-1091984810
Shade
2004-08-08 21:06
2004.09.05
Распечатка в строку в FastReports.


1-1092819673
yaric
2004-08-18 13:01
2004.09.05
Работа с TStrings


14-1092839517
nasty
2004-08-18 18:31
2004.09.05
можно как-нибудь получить стринговое имя выполняющегося метода?


1-1092599700
HSD
2004-08-15 23:55
2004.09.05
Пересечение классов




   Наверх