С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
1

Поиск файлов

17.11.2018, 11:20. Показов 841. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с ошибкой
Delphi
1
if cDir [length (cDir) ] <> 'V then cDir := cDir+'\';
Задача поиска файлов. Пусть нужно получить список всех файлов, например, с расширением bmp, которые находятся в указанном пользователем каталоге и во всех подкаталогах этого каталога.

Delphi
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
procedure TForm1.Button1Click(Sender: TObject);
var
FileName: string; // имя или маска искомого файла
cDir: string;
n: integer; // кол-во файлов, удовлетворяющих запросу
// поиск файла в текущем каталоге
procedure Find;
var
SearchRec: TSearchRec; // информация о файле или каталоге
begin
GetDir(0,cDir); // получить имя текущего каталога
if cDir [length (cDir) ] <> 'V then cDir := cDir+'\';
if FindFirst(FileName, faArchive,SearchRec) = 0
then repeat
if (SearchRec.Attr and faAnyFile) = SearchRec.Attr
then begin
form1.Memo1.Lines.Add(cDir + SearchRec.Name);
n := n + 1; end; until FindNext(SearchRec) <> 0;
// обработка подкаталогов текущего каталога
if FindFirst('*', faDirectory, SearchRec) = 0 then repeat
if (SearchRec.Attr and faDirectory) = SearchRec.Attr then begin
// каталоги .. и . тоже каталоги, // но в них входить не надо .'.'.'
if SearchRec.Name[1] <> '.' then begin
ChDir(SearchRec.Name);// войти в каталог
Find; // выполнить поиск в подкаталоге
ChDir('..');// выйти из каталога
end;
end;
until FindNext(SearchRec) <> 0;
end;
// возвращает каталог, выбранный пользователем
function GetPath(mes: string):string;
var
Root: string; // корневой каталог
pwRoot : PWideChar; Dir: string;
begin
Root := '';
GetMem(pwRoot, (Length(Root)+1) * 2);
pwRoot := StringToWideChar(Root, pwRoot, MAX_PATH*2);
if SelectDirectory(mes, pwRoot, Dir) then
if length(Dir) =2 // пользователь выбрал корневой каталог
then GetPath := Dir+'\' else GetPath := Dir else
GetPath := '';
end;
 //щелчок на кнопке Поиск
procedure Tforml.ButtonlClick(Sender: TObject);
begin
Memo1.Clear; // очистить поле Memol
Label4.Caption := '';
FileName := Edit1.Text; // что искать.
cDir := Edit2.Text; // где искать
n:=0; // кол-во найденных файлов
ChDir(cDir); // войти в каталог начала поиска
Find; // начать поиск
if n = 0 then
ShowMessage('Файлов, удовлетворяющих критерию поиска нет.')
else Label4.Caption := 'Найдено файлов:' + IntToStr(n);
end;
// щелчок на кнопке Папка
procedure Tforml.Button2Click (Sender: TObject);
var
Path: string; begin
Path := GetPath('Выберите папку');
if Path <> ''
then Edit2.Text := Path;
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2018, 11:20
Ответы с готовыми решениями:

Работа с файловой системой. Поиск файлов, определение размеров файлов и подсчёт среднего арифметического размера.
Всем привет! Помогите пожалуйста! Вообщем необходимо реализовать программу , которая будет...

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

Поиск файлов
Доброго времени суток. Помогите пожалуйста с функцией поиска файлов которые имеют особенности в...

Поиск файлов
есть код который ищет файлы по маске в указанной директории и под директории uses IOUtils;...

13
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
17.11.2018, 11:23 2
Delphi
1
if cDir [length (cDir) ] <> 'V' then cDir := cDir+'\';
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
17.11.2018, 11:26  [ТС] 3
ZX Spectrum-128, Теперь на этом
Delphi
1
if SelectDirectory(mes, pwRoot, Dir) then
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
17.11.2018, 11:33 4
Maikl2020, а какая ошибка?
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
17.11.2018, 11:36  [ТС] 5
ZX Spectrum-128,
Delphi
1
2
3
4
5
6
7
[Warning] Unit2.pas(46): Symbol 'faArchive' is specific to a platform
[Error] Unit2.pas(73): Undeclared identifier: 'SelectDirectory'
[Error] Unit2.pas(79): ';' expected but '.' found
[Error] Unit2.pas(93): Identifier redeclared: 'Tforml'
[Error] Unit2.pas(100): ';' expected but '.' found
[Error] Unit2.pas(103): Declaration expected but end of file found
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit2.pas'
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
17.11.2018, 11:41 6
Delphi
1
2
uses
  FileCtrl;
Есть?

http://www.delphibasics.ru/SelectDirectory.php

Добавлено через 1 минуту
Maikl2020, текст программы выложите полностью.
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
17.11.2018, 11:43  [ТС] 7
ZX Spectrum-128, Оба вариант не годится что то еще ошибка
Delphi
1
2
3
4
5
6
7
[Warning] Unit2.pas(46): Symbol 'faArchive' is specific to a platform
[Error] Unit2.pas(73): Undeclared identifier: 'SelectDirectory'
[Error] Unit2.pas(79): ';' expected but '.' found
[Error] Unit2.pas(93): Identifier redeclared: 'Tforml'
[Error] Unit2.pas(100): ';' expected but '.' found
[Error] Unit2.pas(103): Declaration expected but end of file found
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit2.pas'
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
17.11.2018, 11:44 8
текст программы выложите полностью
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
17.11.2018, 11:46  [ТС] 9
ZX Spectrum-128, Польный проект имейти виду.
Project2
Вложения
Тип файла: rar Новая папка.rar (171.7 Кб, 5 просмотров)
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
17.11.2018, 12:19  [ТС] 10
ZX Spectrum-128, Этот не получился?
0
Эксперт Pascal/Delphi
4918 / 2786 / 854
Регистрация: 04.10.2012
Сообщений: 10,138
17.11.2018, 22:35 11
Цитата Сообщение от Maikl2020 Посмотреть сообщение
нужно получить список всех файлов, например, с расширением bmp, которые находятся в указанном пользователем каталоге и во всех подкаталогах
какая версия Delphi у Вас?
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
18.11.2018, 16:48  [ТС] 12
Delphi 7

Добавлено через 13 минут
droider, Delphi 7
0
Эксперт Pascal/Delphi
4918 / 2786 / 854
Регистрация: 04.10.2012
Сообщений: 10,138
28.11.2018, 23:17 13
Maikl2020, вопрос еще актуален?
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,443
29.11.2018, 10:31  [ТС] 14
droider, да
0
29.11.2018, 10:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2018, 10:31
Помогаю со студенческими работами здесь

Поиск файлов
Есть папка с файлами, самыми разными, как в папке с windows. Среди них пару файлов(2 и болише) с...

Поиск файлов
uses Windows, System.Classes, System.IOUtils, System.SysUtils, System.Types, System.Masks; var...

Поиск файлов
Добрый день, такая проблема, пытаюсь организовать поиск всех файлов по заданным форматам и и...

Поиск файлов
Всем доброго дня! Мне надо найти все exe-шники в директории. Вот в чём беда: Если искать все файлы,...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru