Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 802

•  TDictionary Custom Sort  5 908

•  Fast Watermark Sources  5 711

•  3D Designer  8 488

•  Sik Screen Capture  6 045

•  Patch Maker  6 489

•  Айболит (remote control)  6 479

•  ListBox Drag & Drop  5 342

•  Доска для игры Реверси  94 987

•  Графические эффекты  6 685

•  Рисование по маске  5 816

•  Перетаскивание изображений  4 869

•  Canvas Drawing  5 244

•  Рисование Луны  4 964

•  Поворот изображения  4 511

•  Рисование стержней  3 192

•  Paint on Shape  2 438

•  Генератор кроссвордов  3 311

•  Головоломка Paletto  2 621

•  Теорема Монжа об окружностях  3 409

•  Пазл Numbrix  2 254

•  Заборы и коммивояжеры  2 913

•  Игра HIP  1 883

•  Игра Go (Го)  1 798

•  Симулятор лифта  2 138

•  Программа укладки плитки  1 863

•  Генератор лабиринта  2 300

•  Проверка числового ввода  1 990

•  HEX View  2 299

•  Физический маятник  1 959

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Получение MP3 тэга



Автор: Victor

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение MP3 тэга

Функция получает ID3v1 тэг из указанного mp3-файла.

Зависимости: uses System :)
Автор:       Victor, zazoo@ukr.net, ICQ:149676405, Киев
Copyright:   Собственное написание
Дата:        06 мая 2002 г.
***************************************************** }

type
  TMP3Tag = record
    FileName, Title, Artist, Album, Year, Comment: string;
  end;

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];

  if copy(s, 1, 3) = 'TAG' then // В файле есть тэг - разбираем его
  begin
    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;
end;

Пример использования:

var
  Tag: TMP3Tag;
begin
  if OpenDialog1.Execute then
    Tag := GetMP3Tag(OpenDialog1.FileName);
end;




Похожие по теме исходники

MP3 Bass Object

MP3 Auto Renamer




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте