uItem;
) About1: TMenuItem;
) sd1: TSaveDialog;
10) StatusBar1: TStatusBar;
Модулі:
Модуль 1 (Заставка):
1) Panel1: TPanel;
) OKButton: TButton;
) Timer1: TTimer;
4) Image1: TImage;
) Label1: TLabel;
Модуль 2 (Вибір директорії для сканування):
1) DirectoryOutline1: TDirectoryOutline;
) Memo1: TMemo;
) Label1: TLabel;
) Label2: TLabel;
) Button1: TButton;
) Edit1: TEdit;
7) Label3: TLabel;
) Label4: TLabel;
Модуль 3 (Опис програми):
1) Panel1: TPanel;
) ProductName: TLabel;
) Version: TLabel;
) Copyright: TLabel;
) Comments: TLabel;
) OKButton: TButton;
7) Image1: TImage;
. Код програми
Ядро програми:
unit Unit2 ;, Messages, SysUtils, Classes, Graphics, Controls, Forms ,, StdCtrls, Menus, Grids, Outline, DirOutln, ComCtrls, ShellCtrls, Masks,; tag=packed record, title, artist , album, year, comment: string ;;=class (TForm): TMainMenu ;: TMenuItem ;: TMenuItem ;: TMenuItem ;: TOpenDialog ;: TStringGrid ;: TMenuItem ;: TMenuItem ;: TSaveDialog; findfiles (startfolder, mask: string; tabl: TStringGrid ;: boolean=true); FormActivate (Sender: TObject); Loadmp31Click (Sender: TObject); Exit1Click (Sender: TObject); Loadcsv1Click (Sender: TObject); About1Click (Sender: TObject);
{Private declarations}
{Public declarations} ;: TForm1 ;: integer; _db: string; Unit1, Unit4, Unit5;
{$ R * .dfm}
//------------------------------------------------------------------------------
//Функція для отримання тегів
function getmp3tag (fn: string): tmp3tag ;: array [0..127] of char ;: file ;: byte ;: string; delspace (var s: string);
begin//Видаляє пробіли і символи
//# 0 в кінці рядка.
if length (s)=0 then exit; s [length (s)] in [ raquo ;, # 0] do (s, length (s), 1); s= then break ;;;. filename:=fn; .title:= raquo ;;. artist:= raquo ;;. album:= raquo ;;. year:= raquo ;;. comment: = raquo ;; (f, fn);// Відкриваємо файл
{$ i-}//з перевіркою його існування:) (f, 1); (f, filesize (f) - 128);// Читаємо тег - останні 128 байт
blockread (f, tag, 128); (f);
{$ i +} ioresult lt; gt; 0 then ;;:= raquo ;; i:=0 to 127 do:=s + tag [i] ;. title:=copy (s , 4,30); (result.title) ;. artist:=copy (s, 34,30); (result.artist) ;. album:=copy (s, 64,30); (result.album);.year:=copy (s, 94,4); (result.year) ;. comment:=copy (s, 98,30);
delspace (resultment) ;;
//кінець функція для отримання тегів
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//Функція для написання пробеловwrite_probel (Count: integer; rasmer: integer): string ;: integer;:= raquo ;; (rasmer - count)=1 then:= count lt; rasmer then:= raquo ;; i:=1 to 120 do:=result + raquo ;;;
end;
//Функція для написання прогалин
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//Функція для запису тегів в mp3-файл
function SetMp3Tag (MP3Tag: TMP3Tag; FileName: string): boolean; _write: file of byte ;: string [30]; _ probel: string; _str: integer;:=false; (f_write, FileName );
{$ i -} (f_write);
{$ i +} (f_write, filesize (f_write) - 125);
//Заносимо названіе_str:=length (MP3Tag.Title); _ probel:=write_probel (size_str, 30);:=MP3Tag.Title + str_probel; (f_write, str, 30);
//Заносимо артіста_str:=length (MP3Tag.Artist); _ probel:=write_probel (size_str, 30);:=MP3Tag.Artist + str_probel; (f_write, str, 30);
//Заносимо альбом_str:=length (MP3Tag.Album); _ probel:=write_probel (size...