Программа для работы с тегами файлов .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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.