0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99

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

26.02.2018, 16:54. Показов 1446. Ответов 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
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
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
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
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
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
26.02.2018, 17:30
Ты что издеваешься, или тупой до безумия? Я же тебе написал как исправить, а ты ничего не сделал.
0
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
26.02.2018, 17:44  [ТС]
Да я тупой сможешь сделать за меня ?
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru