Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99

Поиск файлов в каталоге по определенным атрибутам

26.02.2018, 16:54. Показов 1540. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Информационная запись о файле содержит следующие поля:
каталог, имя файла, расширение, дата и время создания, атрибуты
«только для чтения», «скрытый», «системный», количество выделенных
секторов (размер сектора принять равным 512 байтам).
Поиск - по каталогу.

Добавлено через 19 секунд
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
type 
  PList = ^TList;
  TList = record
    dir:       string[100];
    f_name:    string[100];
    f_ext:     string[100];
    date:      string[10];
    time:      string[10];
    ronly:     byte;
    hidden:    byte;
    system:    byte;
    sectors:  integer;
    next: PList;   
  end;
 
  procedure addAb(var head: plist; dir:string[100]; f_name:string[100]; 
    f_ext:string[100]; date:string[10]; time:string[10]; ronly:byte;
    hidden:byte; system:byte; sectors:integer);
  var
    cur: plist;
  begin
    new(cur);
    cur^.next := head; // Голова
    cur^.dir := dir;
    cur^.f_name := f_name;
    cur^.f_ext := f_ext;
    cur^.date := date;
    cur^.time := time;
    cur^.ronly := ronly;
    cur^.hidden := hidden;
    cur^.system := system;
    cur^.sectors := sectors;
    head := cur;
  end; // ШАПКА ГОТОВА
 
var 
 
  i, n, s, sectors: integer;
  dir, f_name, f_ext, vdir: string[100];
  date, time:   string[10];
  ronly, hidden, system:     byte;
  head,f: PList;
 
begin
  write('Сколько файлов в списке? ');
  readln(n);
  for i:=1 to n do begin
    write('Введите название каталога: ');
    readln(dir);
    write('Введите имя файла: ');
    readln(f_name);
    write('Введите расширение: ');
    readln(f_ext);
    write('Введите дату создания: ');
    readln(date);
    write('Введите время создания: ');
    readln(time);
    write('Введите 1  если файл «только для чтения», иначе 0: ');
    readln(ronly);
    write('Введите 1  если файл «скрытый», иначе 0: ');
    readln(hidden);
    write('Введите 1  если файл «системный», иначе 0: ');
    readln(system);
    write('Введите количество количество выделенных секторов: ');
    readln(sectors);
    addab(head, dir, f_name, f_ext, date, time, ronly, hidden, system, sectors);
  end;
  
  // поиск
  writeln('Введите каталог:');
  readln(vdir);
  
  s := 0;
  f:=head;
  for i:=1 to n do begin
    if f^.dir = vdir then begin
      writeln(f^.dir:30, f^.f_name:30, f^.f_ext:6, ' ', f^.date:12, ' ', f^.time:10, ' r', f^.ronly:1, ' h', f^.hidden:1, ' s', f^.system:1, ' size:', f^.sectors);
      s := 1; // признак, что что-то найдено.
    end;
    f:=f^.next;
  end;
 
  if s=0 then
    writeln('Ничего не найдено.')
  else
    writeln('Поиск окончен.');
    begin{Основная программа}
  New(P);  {Создать новую динамическую переменную и установить на нее переменную-указатель} 
  EndMenu := False;
  repeat{Очищать экран и выводить меню до тех пор, пока EndMenu<>True} 
    Writeln('1. Удаление первого списка');
    Readln(V);
    ClrScr;
    case V of {Вызов разных процедур в зависимости от выбора пункта меню}
     1: DelFirst(P);    {Удаление первого в списке}
      EndMenu := True; {Завершить вывод меню} 
    end;
    writeln;
  until EndMenu;  {Если EndMenu=True, то завершить вывод меню на экран}
  Dispose(p); {Уничтожить динамическую переменную Р и освободить память в куче}
end;
  f:=head;
  for i:=1 to n do begin
    writeln(f^.dir:30, f^.f_name:30, f^.f_ext:6, ' ', f^.date:12, ' ', f^.time:10, ' r', f^.ronly:1, ' h', f^.hidden:1, ' s', f^.system:1, ' size:', f^.sectors);
    f:=f^.next;
  end;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.02.2018, 16:54
Ответы с готовыми решениями:

Поиск всех доступных файлов в заданном каталоге
всем доброго времени суток, вот столкнулся с такой проблемой. есть например любой каталог например диск &quot;E:&quot;. в нем нужно...

Рекурсивный поиск файлов по заданным атрибутам
Здравствуйте. У меня возникла проблема. Не получается сделать так, чтобы программа к примеру, искала файлы только по заданным атрибутам....

Пакетный файл, предназначенный для подсчета файлов в каталоге, заданном определенным путем
Ребят помогите пожалуйста, я а этом как дерево... Задача: Пакетный файл, предназначенный для подсчета файлов в каталоге,...

11
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
26.02.2018, 16:57  [ТС]
Как в этом коде исправит эту ошибку помогите плиз мне умоляю ??
Миниатюры
Поиск файлов в каталоге по определенным атрибутам  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.02.2018, 17:07
Pascal
1
2
3
4
5
6
case V of {Вызов разных процедур в зависимости от выбора пункта меню}
1: begin
    DelFirst(P); {Удаление первого в списке}
    EndMenu := True; {Завершить вывод меню} 
   end;
end;
0
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
26.02.2018, 17:15  [ТС]
Скажите мне пожалуйста куда вставить этот код в мою программу ?
Pascal
1
2
3
4
5
6
case V of {Вызов разных процедур в зависимости от выбора пункта меню}
1: begin
    DelFirst(P); {Удаление первого в списке}
    EndMenu := True; {Завершить вывод меню} 
   end;
end;
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.02.2018, 17:21
Цитата Сообщение от Programmer ABC Посмотреть сообщение
куда вставить
Сказал бы я куда... Где стоит там и поправить просто.
стр. 95
Pascal
1
2
3
4
case V of {Вызов разных процедур в зависимости от выбора пункта меню}
     1: DelFirst(P);    {Удаление первого в списке}
      EndMenu := True; {Завершить вывод меню} 
    end;
Вот это поправь.
Все равно у тебя неправильно написано по моему.
0
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
26.02.2018, 17:24  [ТС]
Иза чего всё ровно ощибка ?
Миниатюры
Поиск файлов в каталоге по определенным атрибутам  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.02.2018, 17:30
Ты что издеваешься, или тупой до безумия? Я же тебе написал как исправить, а ты ничего не сделал.
0
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
26.02.2018, 17:44  [ТС]
Да я тупой сможешь сделать за меня ?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.02.2018, 17:45
Ага, только шнурки поглажу.
0
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
26.02.2018, 17:48  [ТС]
ну правда без шуток сможешь плиз ?
0
Aimez-vous les baguettes?
193 / 26 / 27
Регистрация: 25.10.2017
Сообщений: 165
26.02.2018, 19:25
Какой же Вы программер, если только и смогли у одногруппника код выманить...И то...Неправильный...
0
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
26.02.2018, 22:29  [ТС]
Самый лучший

Добавлено через 17 секунд
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
program cal;{Информационная запись о файле содержит следующие поля:
 каталог, имя файла, расширение, дата и время создания, атрибуты 
«только для чтения», «скрытый», «системный», количество выделенных
 секторов (размер сектора принять равным 512 байтам). 
Поиск - по каталогу.}
Uses crt;
type
  PList = ^TList;
  TList = record
    dir: string[100];
    f_name: string[100];
    f_ext: string[100];
    date: string[10];
    time: string[10];
    ronly: byte;
    hidden: byte;
    system: byte;
    sectors: integer;
    next: PList;   
  end;
 
procedure addAb(var head: plist; dir: string[100]; f_name: string[100]; 
    f_ext: string[100]; date: string[10]; time: string[10]; ronly: byte;
    hidden: byte; system: byte; sectors: integer);
var
  cur: plist;
begin
  new(cur);
  cur^.next := head; // Голова
  cur^.dir := dir;
  cur^.f_name := f_name;
  cur^.f_ext := f_ext;
  cur^.date := date;
  cur^.time := time;
  cur^.ronly := ronly;
  cur^.hidden := hidden;
  cur^.system := system;
  cur^.sectors := sectors;
  head := cur;
end;// ШАПКА ГОТОВА
 
procedure  DelFirst(var P: plist);
var
  cur: plist;  
begin
  if P<>nil then 
    if P^.next = nil then begin
      dispose(P);
      P:=nil;
    end else begin
      cur:=P;
      P:=cur^.next;
      dispose(cur);
    end;
end;
 
var
  i, n, s, sectors: integer;
  dir, f_name, f_ext, vdir: string[100];
  date, time: string[10];
  ronly, hidden, system, V: byte;
  head, f: PList;
  EndMenu: Boolean;
 
begin
  write('Сколько файлов в списке? ');
  readln(n);
  for i := 1 to n do 
  begin
    write('Введите название каталога: ');
    readln(dir);
    write('Введите имя файла: ');
    readln(f_name);
    write('Введите расширение: ');
    readln(f_ext);
    write('Введите дату создания: ');
    readln(date);
    write('Введите время создания: ');
    readln(time);
    write('Введите 1  если файл «только для чтения», иначе 0: ');
    readln(ronly);
    write('Введите 1  если файл «скрытый», иначе 0: ');
    readln(hidden);
    write('Введите 1  если файл «системный», иначе 0: ');
    readln(system);
    write('Введите количество количество выделенных секторов: ');
    readln(sectors);
    addab(head, dir, f_name, f_ext, date, time, ronly, hidden, system, sectors);
  end;
  
  // поиск
  writeln('Введите каталог:');
  readln(vdir);
  
  s := 0;
  f := head;
  for i := 1 to n do 
  begin
    if f^.dir = vdir then begin
      writeln(f^.dir:30, f^.f_name:30, f^.f_ext:6, ' ', f^.date:12, ' ', f^.time:10, ' r', f^.ronly:1, ' h', f^.hidden:1, ' s', f^.system:1, ' size:', f^.sectors);
      s := 1; // признак, что что-то найдено.
    end;
    f := f^.next;
  end;
  
  if s = 0 then
    writeln('Ничего не найдено.')
  else
    writeln('Поиск окончен.');
  
  begin{Основная программа}
    //New(P);  {Создать новую динамическую переменную и установить на нее переменную-указатель} 
    // у нас вместо P используется head
    EndMenu := False;
    repeat{Очищать экран и выводить меню до тех пор, пока EndMenu<>True} 
      Writeln('1. Удаление первого в списке');
      Readln(V);
      ClrScr;
      case V of {Вызов разных процедур в зависимости от выбора пункта меню}
        1: DelFirst(head);    {Удаление первого в списке}
        else EndMenu := True; {Завершить вывод меню} 
      end;
      writeln;
    until EndMenu;  {Если EndMenu=True, то завершить вывод меню на экран}
    //Dispose(p); {Уничтожить динамическую переменную Р и освободить память в куче}
    // у нас вместо P используется head. Надо ещё выводить оставшиеся записи.
  end;
  
  f := head;
  repeat
    writeln(f^.dir:30, f^.f_name:30, f^.f_ext:6, ' ', f^.date:12, ' ', f^.time:10, ' r', f^.ronly:1, ' h', f^.hidden:1, ' s', f^.system:1, ' size:', f^.sectors);
    f := f^.next;
  until f=nil;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2018, 22:29
Помогаю со студенческими работами здесь

Организовать поиск файлов в директории по атрибутам текущей даты создания (день, месяц, год)
Задача, организовать поиск файлов в директории по атрибутам текущей даты создания (день месяц год) с возможностью перенаправления...

Рекурсивный поиск файлов в каталоге
Книга C++ builder Книга рецептов Ермолаев. С темой &quot;Получение списка файлов в каталоге&quot; разобрался. С темой &quot;Рекурсивный...

Форма поиск файлов в каталоге
Здраствуйте форумчане!Есть проблема Есть каталог с файлами в сервере.название файлов цифры. Нужен форма который ищет название файла в...

Поиск файлов в каталоге Linux
Здравствуйте, мне нужно найти все файлы в опр. каталоге (на Linux), не подскажите, как это осуществить? Я это осуществил на OC...

Поиск файлов по маске в каталоге
Программа выполняет поиск файлов в каталоге по заданной маске. Количество потоков равно количеству каталогов. Найденные файлы сохраняются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru