Программа для работы с тегами файлов .mp3
Создание программы, которая позволяет пользователю задавать произвольную директорию, содержащую музыкальные файлы. Осуществление поиска или рекурсивного поиска файлов в этой директории и формирование csv-файла. Исправление тегов в музыкальных файлах.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.02.2015 |
Размер файла | 241,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Северо-Кавказский горно-металлургический институт
(Государственный Технологический университет)
Курсовая работа
по дисциплине "Программирование на Delphi"
"Программа для работы с тегами файлов .mp3"
г. Владикавказ, 2015 г.
Задание на курсовую работу
Основная задача: Написать программу для работы с тегами .mp3 файлов.
Необходимые функции: a) Позволить пользователю задавать произвольную директорию, содержащую музыкальные файлы.
б) Программа в зависимости от функциональности осуществляет поиск или рекурсивный поиск файлов в этой директории и формирует csv-файл следующим образом: абсолютный путь к mp3-файлу, название, исполнитель, альбом, год. жанр.
в) Разделитель csv-файлов задается пользователем.
г) Возможно выполнение обратной задачи: пользователь задает csv-файл аналогичного формата, программа исправляет теги в музыкальных файлах в соответствии с данными, содержащимся в указанном csv-файле.
Метод решения.
Так как программа должна иметь графический и интуитивно-понятный интерфейс, то для решения очень подходит Delphi. Была выбрана и признана наиболее подходящей версия 7.0.
программа файл тег музыкальный
1. Входные и выходные данные
Входные данные:
Пользователь вводит при использовании функции "загрузка mp3-файлов" разделитель csv-файла в строке ввода и выбирает директория для поиска mp3-файлов. В данном случае mp3-файлы являются входными файлами. И далее выбирает директорию для сохранения csv-файла с загруженными Mp3-тегами. Сsv-файла является в данном случае выходными данными.
Выходные данные:
При использование функции "Загрузка csv-файла" пользователь выбирает csv-файл (который является входными данными). После этого в mp3-файлах, указанных в csv-файле, происходит корректировака mp3-тегов. Mp3-файлы в этом случае являются выходной информацией.
2. Список процедуры и функций
Ядро программы:
1) procedure findfiles(startfolder, mask: string; tabl: TStringGrid; scansubfolders: boolean = true) - процедура ищет файлы в указанной директории.
2) procedure FormActivate(Sender: TObject) - процедура, выполняющая начальные действия.
3) procedure Loadmp31Click(Sender: TObject) - процедура загрузки mp3-файлов.
4) procedure Exit1Click(Sender: TObject) - процедура выхода из программы.
5) procedure Loadcsv1Click(Sender: TObject) - процедура загрузки csv-файлов.
6) procedure About1Click(Sender: TObject) - процедура вызова формы, описывающего программу.
7) procedure delspace(var s: string) - процедура удаления пробелов их строк.
8) function getmp3tag(fn: string): tmp3tag функция получения mp3-тегов.
9) function write_probel(Count: integer; rasmer : integer) : string - функция написания недостающих пробелов.
10) function SetMp3Tag(MP3Tag: TMP3Tag; FileName: string): Boolean - функция записи тегов.
11) procedure del_kavychki(var s: string) - процедура удаления кавычек
12) procedure write_db(adress_file_local : string; tabl : TStringGrid; str : string) - процедура записи в csv-файл.
13) procedure read_db (FileName: String; separator: char; tabl : TStringGrid) - процедура чтения сsv-файла.
14) function find_char(str : string) : char -функция нахождения разделителя.
3. Вид окон программы
Ядро программы:
Подключаемые модули:
Модуль 1 (Заставка):
Модуль 2 (Выбор директории для сканирования):
Сохранение csv-файла:
Модуль 3 (Описание программы):
4. Описание программы
Используемые элементы.
Ядро программы:
1) MainMenu1: TMainMenu;
2) File1: TMenuItem;
3) Loadmp31: TMenuItem;
4) Exit1: TMenuItem;
5) od1: TOpenDialog;
6) tabl: TStringGrid;
7) Loadcsv1: TMenuItem;
8) About1: TMenuItem;
9) sd1: TSaveDialog;
10) StatusBar1: TStatusBar;
Подключаемые модули:
Модуль 1 (Заставка):
1) Panel1: TPanel;
2) OKButton: TButton;
3) Timer1: TTimer;
4) Image1: TImage;
5) Label1: TLabel;
Модуль 2 (Выбор директории для сканирования):
1) DirectoryOutline1: TDirectoryOutline;
2) Memo1: TMemo;
3) Label1: TLabel;
4) Label2: TLabel;
5) Button1: TButton;
6) Edit1: TEdit;
7) Label3: TLabel;
8) Label4: TLabel;
Модуль 3 (Описание программы):
1) Panel1: TPanel;
2) ProductName: TLabel;
3) Version: TLabel;
4) Copyright: TLabel;
5) Comments: TLabel;
6) OKButton: TButton;
7) Image1: TImage;
5. Код программы
Ядро программы:
unit Unit2;
interface
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Grids, Outline, DirOutln, ComCtrls, ShellCtrls, Masks,
ExtCtrls;
type
tmp3tag = packed record
filename, title, artist, album, year, comment : string;
end;
TForm1 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Loadmp31: TMenuItem;
Exit1: TMenuItem;
od1: TOpenDialog;
tabl: TStringGrid;
Loadcsv1: TMenuItem;
About1: TMenuItem;
sd1: TSaveDialog;
procedure findfiles(startfolder, mask: string; tabl: TStringGrid;
scansubfolders: boolean = true);
procedure FormActivate(Sender: TObject);
procedure Loadmp31Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure Loadcsv1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
nomer : integer;
adress_db : string;
implementation
uses Unit1, Unit4, Unit5;
{$R *.dfm}
//------------------------------------------------------------------------------
//Функция для получения тегов
function getmp3tag(fn: string): tmp3tag;
var
tag : array[0..127] of char;
f : file;
i : byte;
s : string;
procedure delspace(var s: string);
begin // Удаляет пробелы и символы
// #0 в конце строки.
if length(s) = 0 then exit;
while s[length(s)] in [' ', #0] do
begin
delete(s,length(s),1);
if s = '' then break;
end;
end;
begin
result.filename := fn;
result.title := '';
result.artist := '';
result.album := '';
result.year := '';
result.comment := '';
assignfile(f,fn); // Открываем файл
{$i-} // с проверкой его существования :)
reset(f,1);
seek(f,filesize(f)-128); // Читаем тэг - последние 128 байт
blockread(f,tag,128);
closefile(f);
{$i+}
if ioresult<>0 then
begin
exit;
end;
s := '';
for i := 0 to 127 do
s := s + tag[i];
result.title := copy(s,4,30);
delspace(result.title);
result.artist := copy(s,34,30);
delspace(result.artist);
result.album := copy(s,64,30);
delspace(result.album);
result.year := copy(s,94,4);
delspace(result.year);
result.comment := copy(s,98,30);
delspace(result.comment);
end;
//конец функция для получения тегов
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Функция для написания пробелов
function write_probel(Count: integer; rasmer : integer) : string;
var
i: integer;
begin
result := '';
if (rasmer - count) = 1 then
result := ' '
else
if count < rasmer then
begin
result := ' ';
for i := 1 to 120 do
result := result + ' ';
end;
end;
// Функция для написания пробелов
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//Функция для записи тегов в mp3-файл
function SetMp3Tag(MP3Tag: TMP3Tag; FileName: string): boolean;
var
f_write : file of byte;
str : string[30];
str_probel : string;
size_str : integer;
begin
Result := false;
try
assignfile(f_write, FileName);
{$i-}
reset(f_write);
{$i+}
seek(f_write,filesize(f_write)-125);
//Заносим название
size_str := length(MP3Tag.Title);
str_probel := write_probel(size_str,30);
str := MP3Tag.Title + str_probel;
blockwrite(f_write, str, 30);
//Заносим артиста
size_str := length(MP3Tag.Artist);
str_probel := write_probel(size_str,30);
str := MP3Tag.Artist + str_probel;
blockwrite(f_write, str, 30);
//Заносим альбом
size_str := length(MP3Tag.Album);
str_probel := write_probel(size_str,30);
str := MP3Tag.Album + str_probel;
blockwrite(f_write, str, 30);
//Заносим год
size_str := length(MP3Tag.Year);
str_probel := write_probel(size_str,4);
str := MP3Tag.Year + str_probel;
blockwrite(f_write, str, 4);
//Заносим комменты
size_str := length(MP3Tag.Comment);
str_probel := write_probel(size_str,30);
str := MP3Tag.Comment + str_probel;
blockwrite(f_write, str, 30);
// str := write_probel(1,128);
// write(f, str);
closefile(f_write);
Result := true;
except
Result := false;
end;
end;
//конец функциb для записи тегов
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//Функция для удаления " из строк
procedure del_kavychki(var s: string);
var
i : integer;
begin .
if length(s) = 0 then exit;
{$I-}
delete(s,1,1);
delete(s,length(s),1);
{$I+}
end;
//конец функции для удаления " из строк
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//функция для записи строк в csv-файл
procedure write_db(adress_file_local : string; tabl : TStringGrid; str : string);
var
fw : textfile;
i : integer;
begin
str := '"'+str+'"';
assignfile(fw, adress_file_local);
ReWrite(fw);
for i := 1 to tabl.RowCount - 1 do // проход по всем строкам
begin
if tabl.Cells[0,i]<> '' then begin
WriteLn(fw,
'"'+tabl.Cells[0, i], str,
tabl.Cells[1, i], str,
tabl.Cells[2, i], str,
tabl.Cells[3, i], str,
tabl.Cells[4, i], str,
tabl.Cells[5, i], str,
tabl.Cells[6, i]);
end;
end;
closefile(fw);
end; //конец функции для записи строк в csv-файл
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//функция чтения строк из csv-файл
procedure read_db (FileName: String; separator: char; tabl : TStringGrid);
var f: TextFile;
s1, s2: string;
i, j: integer;
begin
i := 1;
tabl.RowCount := 2;
tabl.Cells[0, 1] := '';
tabl.Cells[1, 1] := '';
tabl.Cells[2, 1] := '';
tabl.Cells[3, 1] := '';
tabl.Cells[4, 1] := '';
tabl.Cells[5, 1] := '';
tabl.Cells[6, 1] := '';
AssignFile (f, FileName);
{$i-}
Reset(f);
{$i+}
while not eof(f) do
begin
readln (f, s1);
i := i + 1;
j := 0;
while pos(separator, s1)<>0 do
begin
s2 := copy(s1,1,pos(separator, s1)-1);
j := j + 1;
delete (s1, 1, pos(separator, S1));
del_kavychki(s2);
tabl.Cells[j-1, i-1] := s2;
end;
if pos (separator, s1)=0 then
begin
j := j + 1;
tabl.Cells[j-1, i-1] := s1;
end;
tabl.RowCount := i+1;
end;
CloseFile(f);
end;
//функция чтения строк из csv-файл
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
//функция нахождения файлов и вложенных кодкаталогов в указанной директории
procedure TForm1.findfiles(startfolder, mask: string; tabl: TStringGrid;
scansubfolders: boolean = true);
var
searchrec: tsearchrec;
findresult: integer;
nomer : integer;
mp3tag : tmp3tag;
begin
try
startfolder:=includetrailingbackslash(startfolder);
findresult:=findfirst(startfolder+'*.*', faanyfile, searchrec);
try
while findresult = 0 do with searchrec do begin
if (attr and fadirectory)<>0 then begin
if scansubfolders and (name<>'.') and (name<>'..') then
findfiles(startfolder+name, mask, tabl, scansubfolders);
end else begin
if MatchesMask(name, mask) then
begin
mp3tag := getmp3tag(startfolder+name);
tabl.RowCount:=tabl.RowCount+1;
nomer := 1;
while tabl.Cells[0,nomer]<>'' do // ищем пустую строку для добавления записи
nomer :=nomer+1;
tabl.Cells[0,nomer]:= inttostr(nomer); // поле номер задания
tabl.Cells[1,nomer]:= mp3tag.filename; //поле имя файла получаем из OpenDialog
tabl.cells[2,nomer]:= mp3tag.title;
tabl.Cells[3,nomer]:= mp3tag.artist;
tabl.Cells[4,nomer]:= mp3tag.album;
tabl.Cells[5,nomer]:= mp3tag.year;
tabl.Cells[6,nomer]:= mp3tag.comment;
end;
end;
findresult:=findnext(searchrec);
end;
finally
findclose(searchrec);
end;
finally
nomer := 1;
end;
end;
//конец функции нахождения файлов и вложенных кодкаталогов в указанной директории
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
//при создании формы создаем начало таблицу
procedure TForm1.FormActivate(Sender: TObject);
begin
//заполняем шапку
tabl.cells[0,0]:= 'Номер';
tabl.cells[1,0]:= 'Адрес файла';
tabl.cells[2,0]:= 'Название';
tabl.cells[3,0]:= 'Артист';
tabl.cells[4,0]:= 'Альбом';
tabl.cells[5,0]:= 'Год выпуска';
tabl.cells[6,0]:= 'Комментарии';
AboutBox1.ShowModal;
aboutbox1.free;
end;
//Конец создание начало таблицы
//------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//Процедура на загрузку тегов в csv-файл из указанного mp3-файла
procedure TForm1.Loadmp31Click(Sender: TObject);
var
nomer : integer;
begin
statusbar1.SimpleText:= 'Загружаем mp3-файлы...';
OKRightDlg.Button1.Font.Color:=clWindowText;
OKRightDlg.ShowModal;
if OKRightDlg.Button1.Font.Color = clScrollBar then
begin
nomer := 1;
while tabl.Cells[0,nomer]<>'' do
begin
tabl.cells[0,nomer]:= '';
tabl.cells[1,nomer]:= '';
tabl.cells[2,nomer]:= '';
tabl.cells[3,nomer]:= '';
tabl.cells[4,nomer]:= '';
tabl.cells[5,nomer]:= '';
tabl.cells[6,nomer]:= '';
nomer := nomer + 1;
end;
tabl.RowCount := 2;
findfiles(OKRightDlg.DirectoryOutline1.directory, '*.mp3', tabl, true);
if (OKRightDlg.Edit1.Text <> '"') and (length(OKRightDlg.Edit1.Text) = 1) then
begin
if sd1.execute then
write_db(sd1.filename , tabl, OKRightDlg.Edit1.Text);
statusbar1.SimpleText:= 'Были загруженны mp3-файлы из директории'+OKRightDlg.DirectoryOutline1.directory+'.';
end
else
statusbar1.SimpleText:= 'Выбран неправильный разделитель! Пожалуйста, выберите другой.';
end
else
statusbar1.SimpleText:= 'Загрузка mp3-файлов была отменена!';
end;
//Конец процедуры на загрузку тегов в csv-файл из указанного mp3-файла
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//функция на поиск указанного символа в указанной строке
function find_char(str : string) : char;
var
i, number : integer;
begin
SetLength(str, number);
for i := 1 to number do
begin
if i < 4 then
continue;
if (str[i] = '"') and (str[i-2] = '"') then
begin
result := str[i-1];
exit;
end;
end;
end;
//Конец функции на поиск указанного символа в указанной строке
//-------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//процедура на загрузку csv
procedure TForm1.Loadcsv1Click(Sender: TObject);
var
mp3tag : tmp3tag;
OldMp3Tag : tmp3tag;
i, position : integer;
rasdelitel : char;
file_str : string;
f: textfile;
begin
statusbar1.SimpleText:= 'Загружаем csv-файл...';
if od1.Execute then // если OpenDialog - выполнен без ошибок
begin
//Узнаем какой разделитель задействован
AssignFile (f, od1.FileName);
{$i-}
Reset(f);
{$i+}
readln (f, file_str);
rasdelitel := find_char(file_str);
closefile(f);
//Конец узнавания какой разделитель задействован
read_db(od1.FileName, rasdelitel, tabl);
for i := 1 to tabl.RowCount - 1 do // проход по всем строкам
begin
mp3tag := getmp3tag(tabl.Cells[1, i]);
OldMp3Tag.filename := tabl.Cells[1,i];
OldMp3Tag.title := tabl.Cells[2,i];
OldMp3Tag.artist := tabl.Cells[3,i];
OldMp3Tag.album := tabl.Cells[4,i];
OldMp3Tag.year := tabl.Cells[5,i];
OldMp3Tag.comment := tabl.Cells[6,i];
SetMp3Tag(OldMp3Tag, tabl.Cells[1, i])
end;
statusbar1.SimpleText:= 'Загружен сsv-файла с адресом '+od1.FileName+'.';
end
else
statusbar1.SimpleText:= 'Загрузка csv-файла отменена!';
end;
//конец процедура на завершения программы
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//процедура на завершения программы
procedure TForm1.Exit1Click(Sender: TObject);
begin
Application.Terminate; //закрыть приложение
end;
//конец процедура на завершения программы
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//Процедура, показывающая о программе
procedure TForm1.About1Click(Sender: TObject);
begin
aboutbox.showmodal;
end;
end.
//конец процедуры, показывающую о программе
//------------------------------------------------------------------------------
Подключаемые модули:
a) Aboutbox (описание программы):
unit Unit4;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, jpeg;
type
TAboutBox = class(TForm)
Panel1: TPanel;
ProductName: TLabel;
Version: TLabel;
Copyright: TLabel;
Comments: TLabel;
OKButton: TButton;
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
{$R *.dfm}
end.
б) TOKRightDlg (модуль для задания директории с mp3-файлами):
unit Unit1;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, ComCtrls, ShellCtrls, Grids, Outline, DirOutln;
type
TOKRightDlg = class(TForm)
DirectoryOutline1: TDirectoryOutline;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
OKRightDlg: TOKRightDlg;
implementation
{$R *.dfm}
procedure TOKRightDlg.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
DirectoryOutline1.drive := Key;
end;
procedure TOKRightDlg.Button1Click(Sender: TObject);
begin
OKRightDlg.close;
end;
end.
в) AboutBox1 (заставка):
unit Unit5;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, jpeg;
type
TAboutBox1 = class(TForm)
Panel1: TPanel;
OKButton: TButton;
Timer1: TTimer;
Image1: TImage;
Label1: TLabel;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox1: TAboutBox1;
implementation
uses Unit4;
{$R *.dfm}
procedure TAboutBox1.Timer1Timer(Sender: TObject);
begin
Close;
end;
end.
6. Блок-схемы
1) Загрузка mp3:
Begin
statusbar1.SimpleText:= 'Загружаем mp3-файлы...';
OKRightDlg.Button1.Font.Color:=clWindowText;
OKRightDlg.ShowModal;
nomer := 1;
while tabl.Cells
[0,nomer]<>'' do
tabl.cells[0,nomer]:= '';
tabl.cells[1,nomer]:= '';
tabl.cells[2,nomer]:= '';
tabl.cells[3,nomer]:= '';
tabl.cells[4,nomer]:= '';
tabl.cells[5,nomer]:= '';
tabl.cells[6,nomer]:= '';
nomer := nomer + 1;
tabl.RowCount := 2;
OKRightDlg.Button1.Font.
Color = clScrollBar
findfiles(OKRightDlg.DirectoryOutline1. statusbar1.SimpleText:= 'Загрузка directory, mp3-файлов была отменена!';
'*.mp3', tabl, true);
(OKRightDlg.Edit1.Text <> '"')
and (length(OKRightDlg.
Edit1.Text) = 1)
statusbar1.SimpleText:='Выбран неправильный
разделитель! Пожалуйста, выберите другой.';
sd1.execute
write_db(sd1.filename , tabl, OKRightDlg.Edit1.Text);
statusbar1.SimpleText:= 'Были загруженны mp3-файлы из директории'+OKRightDlg.DirectoryOutline1.directory+'.';
end.
2) Загрузка csv:
Begin.
statusbar1.SimpleText:=
'Загружаем csv-файл...';
od1.Execute
AssignFile (f, od1.FileName); statusbar1.SimpleText:= {$i-} Reset(f); 'Загрузка csv-файла отменена!';
{$i+} readln (f, file_str);
rasdelitel := find_char(file_str);
closefile(f);
read_db(od1.FileName,
rasdelitel, tabl);
i := 1 to
tabl.RowCount - 1 do
OldMp3Tag.filename := tabl.Cells[1,i];
OldMp3Tag.title := tabl.Cells[2,i];
OldMp3Tag.artist := tabl.Cells[3,i];
OldMp3Tag.album := tabl.Cells[4,i];
OldMp3Tag.year := tabl.Cells[5,i;]
OldMp3Tag.comment := tabl.Cells[6,i];
SetMp3Tag(OldMp3Tag, tabl.Cells[1, i])
end.
Размещено на Allbest.ru
Подобные документы
Исследование проблемы сравнения звуковых файлов и определение степени их схожести. Сравнение файлов с использованием метода нечеткого поиска, основанного на метрике (расстоянии) Левенштейна. Сравнение MIDI-файлов и реализация алгоритмов считывания.
курсовая работа [2,0 M], добавлен 14.07.2012Алгоритм написания программы для поиска музыкальных файлов по электронному каталогу магазина на языке программирования С++. Проектирование консольного меню для обеспечения взаимодействия пользователя с компьютером. Тестирование программы на компиляторе.
курсовая работа [548,9 K], добавлен 25.11.2015Принципы создания последовательных и файлов произвольного доступа. Формирование файлов, в одном из которых помещены фамилии пяти знакомых, а в другой номера их телефонов. Составление программы, которая по фамилии знакомого определяет номер его телефона.
контрольная работа [17,9 K], добавлен 25.12.2010Характеристика работы архиватора - компьютерной программы, которая осуществляет сжатие данных в один файл архива для более легкой передачи, компактного их хранения. Особенности процесса архивирования - записи файлов и разархивирования - открытия файлов.
реферат [216,5 K], добавлен 26.03.2010Организация возможности просмотра текстовых файлов и осуществления поиска нужных слов в тексте. Редактирование текста (шрифт, размер). Алгоритм поиска подстроки в строке (метод Кнута-Морриса-Пратта). Загрузка текста из файла (с расширением .txt).
курсовая работа [2,2 M], добавлен 29.05.2013Установка и использование антивирусных программ. Определение скорости проверки файлов на наличие вирусов. Проверка антивирусных программ на эффективность поиска зараженных файлов. Антивирусные программы NOD32, Dr. WEB, Kaspersky Internet Security.
курсовая работа [69,1 K], добавлен 15.01.2010Современные графические обозреватели. Возможность редактирования графики. Объектно-ориентированное программирование в среде ".NET". Библиотека классов GDI+. Открывание как одного файла, так и директории. Перелистывание файлов при помощи кнопок.
курсовая работа [804,4 K], добавлен 14.11.2015Описание типизированных файлов. Принципы работы с файлами, создание и открытие на запись нового файла. Чтение из файла, открытие существующего файла на чтение. Определение имени файла. Запись в текстовый файл. Описание множества и операции над ними.
реферат [86,4 K], добавлен 07.02.2011Понятия файлов и каталогов. Область внешней памяти, группа файлов на одном носителе. Древовидная структура файлов на диске. Имя и местонахождение файла. Маршрут или путь по файловой системе. Запись имени файла в DOSе. Шаблоны. Структура каталога.
лабораторная работа [15,2 K], добавлен 30.09.2008Описание документов, на основании которых ведется разработка. Назначение разработки и анализ функций проектируемого программного средства. Этапы разработки программы для поиска и открытия файлов. Руководство для пользователя на разработанную программу.
курсовая работа [3,3 M], добавлен 10.11.2010