Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2011, 15:38   #1
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
Сообщение ID3v2!!!!!

Здрасти я наверно достал вас своими вопросами но все же у меня такая трабла написал плеер на bass.dll все там сделал .......и т.д
но вот беда при чтении папки еслив папки болле 500-800 песен ID3v2 выдает ошибку можете помочь как нибудь если надо могу привести код поиска фалов и чтения тегов
Кольша вне форума Ответить с цитированием
Старый 03.09.2011, 19:54   #2
Anfall
Форумчанин
 
Регистрация: 10.02.2009
Сообщений: 181
По умолчанию

Что конкретно за ID3v2? Как вы читаете теги?
Ну и какая ошибка?
Anfall вне форума Ответить с цитированием
Старый 03.09.2011, 20:44   #3
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

вот
Код:
процедура ........
var
  fn: TSearchRec;
  Finds,i: integer;
  ID2Tag: TID3v2;
begin

  i:=0;
  ID2Tag:=TID3v2.Create;
  Finds:=FindFirst(Directory + '\*.mp3',faAnyFile,fn);
  while Finds = 0 do begin
    ID2Tag.ReadFromFile(Directory + '\' + fn.Name);
    with Playlist.Items.Add do begin
          Caption:=ID2Tag.TrackString + '. ' + ID2Tag.Artist + ' - ' + ID2Tag.Title;
      SubItems.add(Directory + '\' + fn.Name);
   
      end;
    Finds:=FindNext(fn);
    inc(i);
end; 
  FindClose(fn);
  end;
Кольша вне форума Ответить с цитированием
Старый 03.09.2011, 21:30   #4
Anfall
Форумчанин
 
Регистрация: 10.02.2009
Сообщений: 181
По умолчанию

Ну так трудно сказать, но во-первых, не забудь уничтожать в конце ID2Tag.
Как работает твой TID3v2, я не знаю, но скорее всего рано или поздно ты натыкаешься на какой-нибудь битый файл, и происходит ошибка. Чтобы этого избежать, используй исключения.
http://www.delphisources.ru/pages/fa...s/Try.php.html

Вот пример (в компилляторе не проверял).
Также ссори, при копировании из нотепада++, трабла с табуляцией произошла, но суть поймешь.
Код:
процедура ........
var
  fn: TSearchRec;
  Finds,i: integer;
  ID2Tag: TID3v2;
begin

  ID2Tag:=TID3v2.Create;

  try
    Finds:=FindFirst(Directory + '\*.mp3',faAnyFile,fn);
    while Finds = 0 do
    begin
        try
            ID2Tag.ReadFromFile(Directory + '\' + fn.Name);
            with Playlist.Items.Add do
            begin
              Caption:=ID2Tag.TrackString + '. ' + ID2Tag.Artist + ' - ' + ID2Tag.Title;
              SubItems.add(Directory + '\' + fn.Name);
            end;
        except
          Playlist.Items.Add.Caption:='Невозможно прочесить файл';
        end;
        Finds:=FindNext(fn);
    end;
      FindClose(fn);
  finally
    FreeAndNil(ID2Tag);
  end;

 end;
Также, учти, что в зависимости от настроек компилятора, если запускать exe файл прямо из него, то ошибки в самой среде разработки все рано будут показываться, но на деле они не будут заметны пользователю.
Anfall вне форума Ответить с цитированием
Старый 04.09.2011, 06:04   #5
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

ID2Tag выдает ошибку такова типа Reset(SourceFile, 1);
но я с английским не сильно дружу это типо что то сброс исходново кода файла
Кольша вне форума Ответить с цитированием
Старый 04.09.2011, 06:07   #6
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

может быть знает как по другому можно читатьтеги я пробывал ручками читать по байтам но там тоже ошибка
Кольша вне форума Ответить с цитированием
Старый 04.09.2011, 11:53   #7
Anfall
Форумчанин
 
Регистрация: 10.02.2009
Сообщений: 181
По умолчанию

Ну я тебе код скинул, ты попробовал так читать?
Anfall вне форума Ответить с цитированием
Старый 04.09.2011, 15:20   #8
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

да таже самая ошибка делфи начанает указывать красным на вот :
Reset(SourceFile, 1);
эту строчку кода в ID3v2.pas
Кольша вне форума Ответить с цитированием
Старый 04.09.2011, 15:53   #9
Anfall
Форумчанин
 
Регистрация: 10.02.2009
Сообщений: 181
По умолчанию

Цитата:
Сообщение от Кольша Посмотреть сообщение
да таже самая ошибка делфи начанает указывать красным на вот :
Reset(SourceFile, 1);
эту строчку кода в ID3v2.pas
Код который я тебе скинул вообще не может вызывать каких-либо ошибок, т к находится в try except end;
Я ж говорил. Запускай программу не из компилятора, а просто из папки с проектом.
Anfall вне форума Ответить с цитированием
Старый 04.09.2011, 16:48   #10
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

не знаю что случилось но твой код стал роботать хотя в прощлый раз я сделал так же как и сеичас но была ошибка спасибо тебе кстати в компиляторе ошибка выдаеться
Кольша вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обложка альбома через ID3v2 adr Мультимедиа в Delphi 31 20.09.2011 21:02
ID3v2 в delphi darts116 Помощь студентам 2 22.06.2010 12:07
ID3v2 и Delphi 2010 fuss Мультимедиа в Delphi 6 19.05.2010 22:08
Работа с тэгом ID3v2 rush_13 Общие вопросы C/C++ 3 04.02.2007 12:12