Jag har nu suttit ett par timmar med att försöka bygga en ID3-klass (ID3 är information om en mp3fil, mer information finns på www.id3.org). Det fungerar som det ska och jag får fram den informationen jag vill ha, MEN det går lite för långsamt. Jag antar att det beror på att programmet läser igenom hela mp3 filen för att hitta informationen. Jag har absolut ingen koll på vad jag håller på med och behöver därför hjälp med att förstå min egen kod, jag har kommit hit genom tur och en massa tålamod. Ibland ser man inte skogen när alla träden är i vägen...Det löste sig, det behövdes bara fs.Position = fs.Length - 128; så hoppade programmet till slutet av filen.Tweakning av ID3-klass
Här kommer koden:
<code>
using System;
using System.IO;
using System.Text;
class getID3
{
public string Title;
public string Artist;
public string Album;
public string Year;
public string Comment;
public string Track;
public string Genre;
public getID3(string path)
{
setFile(path);
}
public getID3()
{
;
}
public void setFile(string path)
{
string file = path;
Title = "";
Artist = "";
Album = "";
Year = "";
Comment = "";
Track = "";
Genre = "";
try
{
using (FileStream fs = File.OpenRead(file))
{
byte[] b = new byte[1024];
while (fs.Read(b,0,b.Length) > 0)
{
if(fs.Length - 128 < fs.Position)
{
for(int i = 0; i < b.Length; i++)
{
if(b[i] == 84 && b[i + 1] == 65 && b[i + 2] == 71)
{
int pos = i + 3;
//Get the title
for(int y = 0; y < 30; y++)
{
Title = Title + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
//Get the artist
for(int y = 0; y < 30; y++)
{
Artist = Artist + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
//Get the Album
for(int y = 0; y < 30; y++)
{
Album = Album + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
//Get the Year
for(int y = 0; y < 4; y++)
{
Year = Year + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
//Get the Comment
for(int y = 0; y < 28; y++)
{
Comment = Comment + Convert.ToString(Convert.ToChar(b[pos]));
pos++;
}
//Get the Track
for(int y = 0; y < 2; y++)
{
Track = Track + Convert.ToString(b[pos]);
pos++;
}
Genre = Convert.ToString(b[pos]);
i = b.Length;
}
}
}
}
}
}
catch
{
;
}
}
}
</code>Sv: Tweakning av ID3-klass