Следующий после вызова rewinddir вызов
uses stdio;
procedure rewinddir(dirptr:pdir);
Следующий после вызова rewinddir вызов readdir вернет первую запись в каталоге, на который указывает переменная dirptr.
В приведенном ниже примере функция my_double_ls дважды выведет на экран имена всех файлов в заданном каталоге. Она принимает в качестве параметра имя каталога и в случае ошибки возвращает значение -1.
uses linux,stdio;
function my_double_ls(name:pchar):integer;
var
dp:PDIR;
d:pdirent;
begin
(* Открытие каталога с проверкой ошибок *)
dp:=opendir (name);
if dp=nil then
begin
my_double_ls:=-1;
exit;
end;
(* Продолжить обход каталога,
* выводя записи в нем, если
* индекс остается допустимым
*)
d:=readdir(dp);
while d<>nil do
begin
if d^.ino<>0 then
writeln(d^.name);
d:=readdir(dp);
end;
(* Вернуться к началу каталога ... *)
rewinddir(dp);
(* ... и снова вывести его содержимое *)
d:=readdir(dp);
while d<>nil do
begin
if d^.ino<>0 then
writeln(d^.name);
d:=readdir(dp);
end;
closedir(dp);
my_double_ls:=0;
end;
Порядок выводимых функцией my_double_ls имен файлов будет совпадать с порядком расположения файлов в каталоге. Если вызвать функцию my_double_ls в каталоге, содержащем три файла abc, bookmark и fred, то ее вывод может выглядеть так:
.
..
fred
bookmark
abc
.
..
fred
bookmark
abc
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий