Kamis, 26 Januari 2012

Pengertian ID3 Tag.Information

M. Khozinul Mahfudz (10.111.0358)
Pemrograman API

// untuk menentukan lokasi yang akan dibuka
  fmp3:=TFileStream.Create(mp3File, fmOpenRead);
pengertian:
dibuat untuk  menciptakan contoh  TfileStream,. Ini membuka file dengan mode FileName mode, yang dapat memiliki salah satu dari nilai berikut:
fmCreate TFileStream.Create menciptakan sebuah file baru jika diperlukan.
TFileStream.Create fmOpenRead membuka file dengan akses read-only.
TFileStream.Create fmOpenWrite membuka file dengan menulis-hanya akses.
TFileStream.Create fmOpenReadWrite membuka file dengan akses baca-tulis.

try
//mencari letak atau posisi file pada ID3
    fmp3.position:=fmp3.size-128;
Pengertian:
Properti Position pada Delphi menunjukkan bagaimana menentukan posisi awal form. Nilai default poDesigned menunjukkan bahwa form akan muncul di mana rancangan dan di mana menggunakan sifat posisional (Kiri dan Top) dan ukuran (Lebar dan Tinggi) dari properti form.

//membaca file mp3 sebanyak ukuran dari ID3
    fmp3.Read(ID3,SizeOf(ID3));
Pengertian:
Prosedur Read akan membaca satu baris data dari sebuah file atau console.
Read dari file biner untyped, gunakan BlockRead.
Read  tidak menggunakan buffer - BlockRead  lebih efisien.
Read  juga merupakan direktif Delphi. Hal ini digunakan dengan  kata kunci Properti.


  finally

//menghapus fmp3
    fmp3.free;
  end;

 { or the non Stream approach - as in ChangeID3Tag procedure}
 try
//memasukkan file dari variabel fmp3 yang berlokasi di fmp3
   AssignFile(fMP3, mp3File);
Pengertian:
Prosedur AssignFile memberikan nilai untuk filehandle untuk FileName dalam persiapan untuk membaca atau menulis ke file

//untuk mereset fmp3
   Reset(fMP3);
Pengertian:
Prosedur reset ini digunakan  membuka file yang diberikan oleh filehandle untuk membaca, menulis atau membaca dan menulis akses. Dan juga harus menggunakan AssignFile untuk menetapkan file untuk filehandle sebelum menggunakan Reset.Gunakan Write atau writeln untuk menulis ke file setelah ulang ini dijalankan.

   Try


//mencari file yang bertipe mp3
     Seek(fMP3, FileSize(fMP3) - 128);
Pengertian:
Prosedur seek mencari posisi record yang berupasebuah file biner terbuka yang diberikan oleh filehandle ke RecordNumber pada posisi baru. File harus ditetapkan dengan AssignFile dan dibuka dengan Reset Rewrite

//mengkunci data yang telah ditemukan
     BlockRead(fMP3, ID3, SizeOf(ID3));
Pengertian:
Prosedur BlockRead digunakan untuk membaca catatan RecordCount data ke dalam buffer dari file biner untyped diberikan oleh filehandle itu. File harus telah ditetapkan menggunakan AssignFile dan dibuka dengan Reset.

   finally
   end;
 finally


//mengkosongkan nilai dari fmp3
   CloseFile(fMP3);
Pengertian:
Prosedur CloseFile menutup sebuah file yang terbuka yang diberikan oleh filehandle.File harus telah ditetapkan, dan dibuka dengan append, Reset atau  Rewrite.

 end;

//jika properti TAG dari mp3 tersebut tidak sama denga TAG maka akan ditampilkan pesan error
 if ID3.Tag <> 'TAG' then begin
   Title.Text:='Wrong or no ID3 tag information';
   Artist.Text:='Wrong or no ID3 tag information';
   Album.Text:='Wrong or no ID3 tag information';
   Year.Text:='Wrong or no ID3 tag information';
   Genre.Text:='Wrong or no ID3 tag information';
   Comment.Text:='Wrong or no ID3 tag information';
Pengertian:
Tag ID3 disimpan dalam 128 bytes terakhir dari file MPEG layer 3. Ini dimulai dengan string 'TAG'. Jika string ini tidak ada,maka  informasi ID3 telah dihapus.

 end

//jika properti TAG sama dengan 'TAG' maka akan ditampilkan informasi dari mp3 tersebut
else begin
   Title.Text:=ID3.Title;
   Artist.Text:=ID3.Artist;
   Album.Text:=ID3.Album;
   Year.Text:=ID3.Year;

//jika properti genre ditemukan diantara 0 sampai maxidgenre, maka genre akan ditampilkan denhan format string
   if ID3.Genre in [0..MaxID3Genre] then
     Genre.Text:=ID3Genre[ID3.Genre]
//jika tidak ditemukan, maka genre akan ditampilkan dengan hasil angka
   else
     Genre.Text:=IntToStr(ID3.Genre);
   Comment.Text:=ID3.Comment
 end;
end;