![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TAG в mp3 [D6, WinXP]
Валентин © (2004-01-14 03:46:00)Здарова мастера, у меня вопрос, как вытащить TAG из mp3 я знаю, как изменить догнал, а вот как сохранить изменения...В этом собственно и проблема(доп.компоненты использовать не хочу).Зарание спасибо
P.S. есль не сложно черкните на мыло valentin_galiaf@rambler.ru
Alex44 (2004-01-29 11:28:00) [1]Zavisit ot togo, kakoj tag. Esli v1, to prosto perepisat' na
staroe mesto (ili dopisat' k koncu file'a, esli ne bylo).
Esli v2, to slozhnee, t.k. on v nachale. Bol'shinstvo program zapisyvayut na staroe mesto, esli novyj razmer ne bol'she (t.e.,
sohranyayut razmer); esli zhe on bol'she, to pridetsa pisat'
vremennyj file i potom pereimenovyvat'.
Graff (2004-01-29 01:17:00) [2]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;
Нашел на этом же сайте.
zapped (2004-01-16 22:37:00) [3]как считываешь, так и пишешь, только наоборот
TrollXP (2004-01-16 10:26:00) [4]www.id3.org
VMcL (2004-01-16 01:31:00) [5]Я бы еще
TFileStreamпорекомендовал.
DrPass (2004-01-14 21:46:00) [6]Хм. BlockWrite выучи