![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Скопировал код отсюда: http://delphisources.ru/pages/faq/ba...lude_dirs.html (получить список подкаталогов в папке)
Происходит Read Access Violation при вызове процедуры InsDirs. Причем происходит сразу после вызова, т.е. после выполнения строки InsDirs(root + '\', OutPaper.Count, Root, OutPaper); Я перемещал описание этой процедуры перед GetTreeDirs, как и положено, но не помогло. В чем проблема? |
|
#2
|
|||
|
|||
|
Вообще, такая ошибка обычно происходит при обращении к несуществующему объекту или в облась защищенной памяти.
Подозреваю, что у вас просто не создан объект Strs (см в примере использования). |
|
#3
|
|||
|
|||
|
Действительно, забыл создать объект. Но теперь другая проблема - процедура возвращает пустую Strs, хотя подкаталоги есть.
|
|
#4
|
|||
|
|||
|
Ну, скорее всего, опять что-то не так сделал.
Хотя, ИМХО, приведенный код слишком сложный. Можно и короче написать. |
|
#5
|
|||
|
|||
|
Для этой процедуры нужен модуль UDBF.FillTreeViewWithFiles, подключит его не удается и непонятно откуда его брать.
На сайте есть еще один исходник http://www.delphisources.ru/pages/fa...t_subdirs.html Но там есть неизвестная функция AddDirSeparator, которая нигде не описана. Видимо тоже нужен какой то модуль... |
|
#6
|
|||
|
|||
|
Госпадя!!!
Код:
procedure GetDirsList(root : String; var list : TStringList);
var
i : Integer;
F : TSearchRec;
begin
list.add(root);
i := FindFirst(IncludeTrailingPathDelimeiter(root) + '*.*',faAnyFile,F);
While i = 0 Do
Begin
If ((F.Attr And fadirectory) <> 0) And (F.Name <> '.') And (F.Name <> '..')
Then GetDirsList(IncludeTrailingPathDelimeiter(root) + F.Name,list);
i := FindNext(F);
End;
FindClose(F);
end;Все. При вызове вернет тебе в списке все папки. |
|
#7
|
|||
|
|||
|
За код, конечно, спасибо, но не работает. list.add(root) не добавляет ничего в список.
|