Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Список папок


fev ©   (2008-04-03 00:42:00) 

Как занести в TStrings список папок в указанной директории?


{RASkov}   (2008-04-03 20:17:00) [1]

> [10]   (03.04.08 19:57)

Похоже из-за твоего "ника" "плывут" сообщения у других :(


{RASkov}   (2008-04-03 20:16:00) [2]

> [10]   (03.04.08 19:57)
> Что там не так?

Хотя бы [8] :)
Помимо:
Нет смысла в глобальном объекте, repeat ... until - уже операторные скобки, чем отличаются:

>   if (F.Attr and faDirectory <> 0)  then SL.Add(F.Name);
>   if (F.Attr and faDirectory)<>0 then  Recurse(Dir+F.name);

?
нет убивания SL - но здесь ладно... всеж глобальная штука), ну и немного неверно организованно findfirst/next/close....
(FindClose нужно только если найдено, иначе не нужно... согласен, не критично, но....)


&lt;code&gt;   (2008-04-03 19:57:00) [3]

>А какой загадочный смысл в этом(?)

На всякий случай.

>Какой не грамотный код :(

Что там не так?


{RASkov}   (2008-04-03 19:38:00) [4]

> [7]   (03.04.08 19:11)

Какой не грамотный код :(


Andy BitOff   (2008-04-03 19:30:00) [5]

>   (03.04.08 19:11) [7]

Хм...
А какой загадочный смысл в этом(?):

> SL.Clear;


&lt;code&gt;   (2008-04-03 19:11:00) [6]


VAR SL:TStringList ;

procedure Recurse(Dir: string);
var
 F: TSearchRec;
 R: Integer;
begin
 if Dir<>'' then if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';

 if FindFirst(Dir+'*.*', faAnyFile, F)=0 then
 repeat

 begin
   if (F.name='.') or (F.name='..') then continue;
   if (F.Attr and faDirectory <> 0)  then SL.Add(F.Name);
   if (F.Attr and faDirectory)<>0 then  Recurse(Dir+F.name);
 end;

 until FindNext(F)<>0;
 FindClose(F);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SL:=TStringList.create;
  SL.Clear;
  Recurse('e:\BOOKS') ;
  ListBox1.Items:=SL;
end;


Anatoly Podgoretsky   (2008-04-03 16:10:00) [7]

> fev  (03.04.2008 00:49:02)  [2]

Фу какой упорный и недоверчивый.


Германн   (2008-04-03 01:08:00) [8]


> {RASkov} ©   (03.04.08 00:59) [4]

Голосом кота Матроскина:
- Потом ещё про TStrings объяснять придётся, потом про вышивание на машинке :-)


{RASkov}   (2008-04-03 00:59:00) [9]

> [2] fev   (03.04.08 00:49)

FindFirst/Next/Close - можно использовать как ключевые слова для поиска по этому, например, сайту...


Германн   (2008-04-03 00:50:00) [10]


> fev   (03.04.08 00:49) [2]
>
> вот в TStrings и надо получить список папок в указанной
> директории
>

Ааа. Ну тогда я - пас.


fev   (2008-04-03 00:49:00) [11]

вот в TStrings и надо получить список папок в указанной директории


Германн   (2008-04-03 00:45:00) [12]


> fev   (03.04.08 00:42)
>
> Как занести в TStrings список папок в указанной директории?
>
>

Во-первых, в TStrings вообще ничего нельзя занести. Во-вторых, ты уже научился получатьсписок папок в указанной директории?


Наверх

Титульная страница Поиск, карта сайта Написать письмо