Hallöle,
Ich habe ein Problem (mal wieder - selbes Programm - soll MP3 Dateien finden und Auflisten)
Jedoch funktioniert das Liste nicht mit gausi seiner ID3v1 - ID3v2 Codes irgendwie nicht.
Ich habe Folgenden Code:
in der uses ist Deklariert: Mp3FileUtils_WE
var
Form1: TForm1;
quelle:string;
Id3v1Tag:TId3v1Tag;
Id3v2Tag:TId3v2Tag;
der code soll MP3 Dateien finden und in das ListView Eintragen:
Delphi-Quellcode:
procedure TForm1.CreateFileList(Dir, Ext: String; UseSubDirs: Boolean);
var
SR: TSearchRec;
stream: TFilestream;
Item: TListItem;
begin
If FindFirst(Dir + '*.*', faAnyFile, SR) = 0 then
Repeat
If (SR.Attr and faDirectory = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') and (UseSubDirs) then CreateFileList(IncludeTrailingPathDelimiter(Dir + SR.Name), Ext, UseSubDirs)
Else If LowerCase(ExtractFileExt(SR.Name)) = LowerCase(Ext) then
begin
Application.ProcessMessages;
////////////////////////////////////////////////////////////////////////////
stream := TFileStream.Create(dir + sr.name, fmOpenRead or fmShareDenyWrite);
// ID3v2-Tag auslesen
Id3v2Tag.ReadFromStream(stream);
// Position neu setzen
if Not Id3v2Tag.exists then
stream.Seek(0, sobeginning)
else
stream.Seek(Id3v2Tag.size, soFromBeginning);
// ID3v1-Tag auslesen
Id3v1Tag.ReadFromStream(stream);
stream.free;
// ListView1.Items.Add(Dir + SR.Name);
////////////////////////////////////////////////////////////////////////////
Item.Caption:=Id3v2Tag.Artist;
Item.SubItems.Add(Id3v2Tag.Title);
Item.SubItems.Add(Id3v2Tag.Album);
Item.SubItems.Add(SR.Name);
Label1.Caption:='Bin da!';
end;
Until FindNext(SR) <> 0;
FindClose(SR);
end;
Start des Programmes
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Id3v1Tag:=TId3v1Tag.Create;
Id3v2Tag:=TId3v2Tag.Create;
end;
bei FormDestroy wirds wieder frei gegeben
und zu guter letzt die Suche selbst
Delphi-Quellcode:
procedure TForm1.BtnSucheClick(Sender: TObject);
begin
ListView1.Clear;
CreateFileList(quelle + '\','mp3', CheckBox1.Checked);
end;
Habe diesmal auf eine Sortierung bisher verzichtet! (Programm ist neu Entwickelt
Grüße!
Ein wahrhaft großer Mann wird weder einen Wurm zertreten noch vor dem Kaiser kriechen.
Benjamin Franklin
17.01.1706 - 17.04.1790