Информация


Programm.ws - это сайт, на котором вы можете почитать литературу по языкам программирования, а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..

Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.

Файлы

53. Напишите программу, которая в указанном пользователем каталоге и его подкаталогах выполняет поиск файла.

Рекомендуемый вид диалогового окна приведен на рис. 1.54. Для ввода имени каталога во время работы программы используйте стандартное диалоговое окно Обзор папок (рис. 1.55).

Рис. 1.53.

Рис. 1.53.

// Поиск файла в указанном каталоге и его подкаталогах
// используется рекурсивная процедура Find.
unit FindFile_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, FileCtrl;
type
TForral = class(TForm)
Editl: TEdit; // что искать
Edit2: TEdit; // где искать
Memol: TMemo; //' результат поиска
Buttonl: TButton; /'/ кнопка Поиск
Button2: TButton; // кнопка Папка
Labell: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure ButtonlClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
/ Private declarations }
public
{ Public declarations }
end;
var
Forml: TForml;
implementation
i$R *.dfm}
var
FileName: string; // имя или маска искомого файла
cDir: string;
n: integer; // кол-во файлов, удовлетворяющих запросу
Рис. 1.54. Форма программы Поиск файла
Рис. 1.55. Стандартное окно Обзор папок
// поиск файла в текущем каталоге
procedure Find;
var
SearchRec: TSearchRec; // информация о файле или каталоге
begin '
GetDir(0, cDir); // получить имя текущего каталога
if cDir [length (cDir) I <> 'V then cDir := cDir+'V;
if FindFirst(FileName, faAnyFile,SearchRec) = 0 then
repeat
if (SearchRec.Attr and faAnyFile) = SearchRec.Attr
then begin
Forml.Memol.Lines.Add(cDir + SearchRec.Name)
n := n + 1;
end;
until FindNext(SearchRec) <> 0;
// обработка подкаталогов текущего каталога
{ Если не обрабатывать системные каталоги, то
вместо faAnyFile можно задать faDirectory.
Это объясняется тем, что значение SearchRec.Attr
для обычного каталога равно faDirectory (16),
для Program Files — faDirectory+faReadOnly (1 7) ,
а для каталога Windows — faDirectory+faSysFile (20) }
if FindFirst С*1, faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.Attr and faDirectory) = faDirectory
then
// каталоги '.. ' и '. ' тоже каталоги,
// но в них входить не надо !!!
if SearchRec.Name[i] о '.' then
begin
ChDir(SearchRec.Name); // войти в каталог
Find; // выполнить поиск в подкаталоге
ChDir('..');// выйти из каталога
end;
until FindNext(SearchRec) О 0;
end;
// щелчок на кнопке Поиск
procedure TForml.ButtonlClick(Sender: TObject);
begin
if not DirectoryExists(Edit2.Text) then
begin
ShowMessage('Каталог указан неверно.');
Edit2.SetFocus;
exit;
end;
Buttonl.Enabled := False;
Label4.Caption := '';
Label4.Repaint;
Memol.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);
Buttonl.Enabled := True;
end;
/У возвращает каталог, выбранный пользователем
function GetPath(mes: string):string;
var
Root: string; // корневой каталог
pwRoot : PWideChar;
Dir: string;
begin
Root : = ''; // корневой каталог — папка Рабочий стол
GetMemfpwRoot, (Length(Root)+1) * 2);
pwRoot := StringToWideChar(Root,pwRoot,MAX_PATH*2);
if SelectDirectory(mes, pwRoot, Dir)
then
if length(Dir) =2 // выбран корневой каталог
then GetPath := Dir+'V
else GetPath := Dir
else
GetPath :=
end;
// щелчок на кнопке Папка
procedure TForral.Button2Click(Sender: TObject);
var
Path: string;
begin
Path := GetPath('Выберите папку1);
if Path О "
then Edit2.Text := Path;
end;end.