<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[libid3: Tags werden falsch eingelesen]]></title><description><![CDATA[<p>Hallo,<br />
Ich verwende diese Bibliothek: <a href="http://id3lib.sourceforge.net/" rel="nofollow">http://id3lib.sourceforge.net/</a></p>
<p>um die Metatags aus mp3 Dateien auszulesen. Nun passiert folgendes:</p>
<p>Das Programm beginnt, die erste(n) Datei(en) werden koorekt bearbeitet. Dann jedoch wird den nächsten Dateien irgendwann (zu keinem sichtbar besonderen Zeitpunkt) die Tags der Datei zuvor zugeordnet und/oder nicht alle Dateien bearbeitet.</p>
<p>Das Ende vom Lied ist dass Datei x,y und z die Tags von Datei a zugewiesen werden.</p>
<p>Das Tagobjekt wird ordnungsgemäß geleert, es ist mir also ein Rätsel wie dies auftreten kann:</p>
<pre><code class="language-cpp">bool myTag::read(string mp3)
{

    worktag.Link(mp3.c_str());

    if (Ar_frame = worktag.Find(ID3FID_LEADARTIST))
	{Ar_frame-&gt;Field ( ID3FN_TEXT ).Get ( artist, 1024 );}
	else{artist[0] = 'N'; artist[1]='A'; }

	if (Ti_frame = worktag.Find(ID3FID_TITLE))
	{Ti_frame-&gt;Field ( ID3FN_TEXT ).Get ( title, 1024 );}
	else {title[0] = 'N'; title[1]='A';}

    if (Le_frame = worktag.Find(ID3FID_SONGLEN))
	{Le_frame-&gt;Field ( ID3FN_TEXT ).Get ( length, 1024 );}
	else{length[0]='N'; length[1]='A';}

    if (Al_frame = worktag.Find(ID3FID_ALBUM))
	{Al_frame-&gt;Field ( ID3FN_TEXT ).Get ( album, 1024 );}
	else{album[0]='N'; album[1]='A';}

    if (Ye_frame = worktag.Find(ID3FID_YEAR))
	{Ye_frame-&gt;Field ( ID3FN_TEXT ).Get ( year, 1024 );}
	else{year[0] ='N'; year[1]='A';}

	worktag.Clear();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/261242/libid3-tags-werden-falsch-eingelesen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 13:27:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/261242.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Feb 2010 17:46:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to libid3: Tags werden falsch eingelesen on Mon, 15 Feb 2010 17:46:38 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich verwende diese Bibliothek: <a href="http://id3lib.sourceforge.net/" rel="nofollow">http://id3lib.sourceforge.net/</a></p>
<p>um die Metatags aus mp3 Dateien auszulesen. Nun passiert folgendes:</p>
<p>Das Programm beginnt, die erste(n) Datei(en) werden koorekt bearbeitet. Dann jedoch wird den nächsten Dateien irgendwann (zu keinem sichtbar besonderen Zeitpunkt) die Tags der Datei zuvor zugeordnet und/oder nicht alle Dateien bearbeitet.</p>
<p>Das Ende vom Lied ist dass Datei x,y und z die Tags von Datei a zugewiesen werden.</p>
<p>Das Tagobjekt wird ordnungsgemäß geleert, es ist mir also ein Rätsel wie dies auftreten kann:</p>
<pre><code class="language-cpp">bool myTag::read(string mp3)
{

    worktag.Link(mp3.c_str());

    if (Ar_frame = worktag.Find(ID3FID_LEADARTIST))
	{Ar_frame-&gt;Field ( ID3FN_TEXT ).Get ( artist, 1024 );}
	else{artist[0] = 'N'; artist[1]='A'; }

	if (Ti_frame = worktag.Find(ID3FID_TITLE))
	{Ti_frame-&gt;Field ( ID3FN_TEXT ).Get ( title, 1024 );}
	else {title[0] = 'N'; title[1]='A';}

    if (Le_frame = worktag.Find(ID3FID_SONGLEN))
	{Le_frame-&gt;Field ( ID3FN_TEXT ).Get ( length, 1024 );}
	else{length[0]='N'; length[1]='A';}

    if (Al_frame = worktag.Find(ID3FID_ALBUM))
	{Al_frame-&gt;Field ( ID3FN_TEXT ).Get ( album, 1024 );}
	else{album[0]='N'; album[1]='A';}

    if (Ye_frame = worktag.Find(ID3FID_YEAR))
	{Ye_frame-&gt;Field ( ID3FN_TEXT ).Get ( year, 1024 );}
	else{year[0] ='N'; year[1]='A';}

	worktag.Clear();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1856084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1856084</guid><dc:creator><![CDATA[morphd]]></dc:creator><pubDate>Mon, 15 Feb 2010 17:46:38 GMT</pubDate></item></channel></rss>