<?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[Letzten 128 Byte auslesen einer Datei]]></title><description><![CDATA[<p>Ich versuche ein Programm, welches die ID-Tags von MP3-Dateien ausliest, zu programmieren. Die Tags sind in den letzten 128 Byte enthalten. Nur weiß ich nicht genau wie man das mit fstreams lösen sollte. Ich hab es mal so gemacht:</p>
<pre><code class="language-cpp">struct Lied
{
    std::string Interpret;
    std::string Titel;
    std::string Album;
    unsigned int TitelNummer;
};
</code></pre>
<pre><code class="language-cpp">std::ifstream mp3Datei(&quot;bla.mp3&quot;,std::ios::binary);
        if(!mp3Datei)
        {
            std::cout &lt;&lt; &quot;Datei nicht gefunden!&quot; &lt;&lt; i-&gt;c_str()&lt;&lt; std::endl;
            // abbrechen
        }
        int Groesse = 0;
        while(mp3Datei.ignore()) { Groesse++; }
        mp3Datei.clear();
        mp3Datei.seekg(Groesse - 126);
        Lied AktLied;
        char temp[30];
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Titel = temp;
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Interpret = temp;
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Album = temp;
        mp3Datei.ignore(34); // Ignoriere Erscheinungsjahr und Notiz
        mp3Datei.read(reinterpret_cast&lt;char*&gt;(&amp;AktLied.TitelNummer),sizeof(AktLied.TitelNummer));
</code></pre>
<p>Das funktioniert auch (bis auf die Titelnummer), ist aber TOTAL langsam!! Für eine Datei braucht er mehrere Sekunden und für eine ganzes Album ne halbe Minute! Ich hab wahrscheinlich auch den uneffektivsten Weg gewählt, mir ist aber keine Alternative eingefallen. Wie lässt sich dies lösen??</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/138754/letzten-128-byte-auslesen-einer-datei</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 06:21:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138754.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Feb 2006 22:12:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Letzten 128 Byte auslesen einer Datei on Tue, 28 Feb 2006 22:13:31 GMT]]></title><description><![CDATA[<p>Ich versuche ein Programm, welches die ID-Tags von MP3-Dateien ausliest, zu programmieren. Die Tags sind in den letzten 128 Byte enthalten. Nur weiß ich nicht genau wie man das mit fstreams lösen sollte. Ich hab es mal so gemacht:</p>
<pre><code class="language-cpp">struct Lied
{
    std::string Interpret;
    std::string Titel;
    std::string Album;
    unsigned int TitelNummer;
};
</code></pre>
<pre><code class="language-cpp">std::ifstream mp3Datei(&quot;bla.mp3&quot;,std::ios::binary);
        if(!mp3Datei)
        {
            std::cout &lt;&lt; &quot;Datei nicht gefunden!&quot; &lt;&lt; i-&gt;c_str()&lt;&lt; std::endl;
            // abbrechen
        }
        int Groesse = 0;
        while(mp3Datei.ignore()) { Groesse++; }
        mp3Datei.clear();
        mp3Datei.seekg(Groesse - 126);
        Lied AktLied;
        char temp[30];
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Titel = temp;
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Interpret = temp;
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Album = temp;
        mp3Datei.ignore(34); // Ignoriere Erscheinungsjahr und Notiz
        mp3Datei.read(reinterpret_cast&lt;char*&gt;(&amp;AktLied.TitelNummer),sizeof(AktLied.TitelNummer));
</code></pre>
<p>Das funktioniert auch (bis auf die Titelnummer), ist aber TOTAL langsam!! Für eine Datei braucht er mehrere Sekunden und für eine ganzes Album ne halbe Minute! Ich hab wahrscheinlich auch den uneffektivsten Weg gewählt, mir ist aber keine Alternative eingefallen. Wie lässt sich dies lösen??</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005573</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Tue, 28 Feb 2006 22:13:31 GMT</pubDate></item><item><title><![CDATA[Reply to Letzten 128 Byte auslesen einer Datei on Tue, 28 Feb 2006 22:55:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">mp3Datei.seekg( 0, ios::end );
size_t length = mp3Datei.tellg();
</code></pre>
<p>Lesen kannst du die letzten 128Bytes mit</p>
<pre><code class="language-cpp">unsigned char buf[128];
mp3Datei.seekg( -128, ios::end );
mp3Datei.read( buf, 128 );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1005581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005581</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Tue, 28 Feb 2006 22:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to Letzten 128 Byte auslesen einer Datei on Wed, 01 Mar 2006 15:15:19 GMT]]></title><description><![CDATA[<p>Danke! Das mit dem end kannte ich noch nicht! So sieht's jetzt aus:</p>
<pre><code class="language-cpp">struct Lied
{
    std::string Interpret;
    std::string Titel;
    std::string Album;
    unsigned char TitelNummer;
};
</code></pre>
<pre><code class="language-cpp">std::ifstream mp3Datei(&quot;bla.mp3&quot;,std::ios::binary);
        if(!mp3Datei)
        {
            std::cout &lt;&lt; &quot;Datei nicht gefunden!&quot; &lt;&lt; std::endl;
            // abbrechen
        }
        mp3Datei.seekg(-125, std::ios::end);
        Lied AktLied;
        char temp[30];
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Titel = temp;
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Interpret = temp;
        mp3Datei.read(temp,sizeof(temp));
        AktLied.Album = temp;
        mp3Datei.ignore(33); // Ignoriere Erscheinungsjahr und Notiz
        mp3Datei.read(reinterpret_cast&lt;char*&gt;(&amp;AktLied.TitelNummer),sizeof(AktLied.TitelNummer));
        Lieder.push_back(AktLied);
</code></pre>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005984</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 01 Mar 2006 15:15:19 GMT</pubDate></item></channel></rss>