Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Byte 1-3 = ID 'TAG'
Byte 4-33 = Titel / Title
Byte 34-63 = Artist
Byte 64-93 = Album
Byte 94-97 = Jahr / Year
Byte 98-127 = Kommentar / Comment
Byte 128 = Genre
}
ID: string [3];
Titel: string [30];
Artist: string [30];
Album: string [30];
Year: string [4];
Comment: string [30];
Genre: Byte;
end ; [0..146] of string =
('Blues','Classic
Rock','Country','Dance','Disco','Funk','Grunge',
'Hip- Hop','Jazz','Metal','New
Age','Oldies','Other','Pop','R&B',
'Rap','Reggae','Rock','Techno','Industrial','Alternative','Ska',
'Death Metal','Pranks','Soundtrack','Euro-Techno','Ambient',
readID3Tag(FileName: string ): TID3Tag;
var [1..128] of Char;
begin
fmShareDenyWrite); (Buffer, 128);
with Result do
begin
ID := Copy(Buffer,
1, 3); ;
finally ; ; TfrmMain.Button1Click(Sender: TObject);
begin OpenDialog1.Execute then
begin readID3Tag(OpenDialog1.FileName) do
begin
LlbID.Caption := 'ID: ' + ID;
LlbTitel.Caption := 'Titel: ' + Titel;
LlbArtist.Caption := 'Artist: ' + Artist;
LlbAlbum.Caption := 'Album: ' + Album;
LlbYear.Caption := 'Year: ' + Year;
LlbComment.Caption := 'Comment: ' + Comment;
if (Genre >= 0) and (Genre <=146)
then
LlbGenre.Caption := 'N/A';
end ;
end ; ;
type
TID3Tag = record
const
Genres : array
'Trip-Hop','Vocal','Jazz+Funk','Fusion','Trance','Classical',
'Instrumental','Acid','House','Game','Sound
Clip','Gospel','Noise',
'Alternative
Rock','Bass','Punk','Space','Meditative','Instrumental Pop',
'Instrumental
Rock','Ethnic','Gothic','Darkwave','Techno-Industrial','Electronic',
'Pop-Folk','Eurodance','Dream','Southern
Rock','Comedy','Cult','Gangsta',
'Top 40','Christian Rap','Pop/Funk','Jungle','Native
US','Cabaret','New Wave',
'Psychadelic','Rave','Showtunes','Trailer','Lo-Fi','Tribal','Acid Punk',
'Acid Jazz','Polka','Retro','Musical','Rock & Roll','Hard
Rock','Folk',
'Folk-Rock','National Folk','Swing','Fast
Fusion','Bebob','Latin','Revival',
'Celtic','Bluegrass','Avantgarde','Gothic Rock','Progressive
Rock',
'Psychedelic Rock','Symphonic Rock','Slow Rock','Big
Band','Chorus',
'Easy
Listening','Acoustic','Humour','Speech','Chanson','Opera',
'Chamber Music','Sonata','Symphony','Booty
Bass','Primus','Porn Groove',
'Satire','Slow
Jam','Club','Tango','Samba','Folklore','Ballad',
'Power Ballad','Rhytmic Soul','Freestyle','Duet','Punk
Rock','Drum Solo',
'Acapella','Euro-House','Dance Hall','Goa','Drum &
Bass','Club-House',
'Hardcore','Terror','Indie','BritPop','Negerpunk','Polsk
Punk','Beat',
'Christian Gangsta','Heavy Metal','Black
Metal','Crossover','Contemporary C',
'Christian Rock','Merengue','Salsa','Thrash
Metal','Anime','JPop','SynthPop');
var
Form1: TForm1;
implementation
function
FS: TFileStream;
Buffer: array
FS := TFileStream.Create(FileName, fmOpenRead or
try
FS.Seek(-128, soFromEnd);
FS.Read
Titel := Copy(Buffer, 4, 30);
Artist := Copy(Buffer, 34, 30);
Album := Copy(Buffer, 64, 30);
Year := Copy(Buffer, 94, 4);
Comment := Copy(Buffer, 98, 30);
Genre := Ord(Buffer[128]);
end
FS.Free;
end
end
procedure
if
with
LlbGenre.Caption := 'Genre: ' +
Genres[Genre]
else
end