<?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[[gelöst] Dateiauslesung scheitert mit unbekanntem Fehler]]></title><description><![CDATA[<p>Hi,<br />
ich habe folgenden Quelltext der am Ende eine Datenbank auslesen soll. Der erste Eintrag in der Datenbank beginnt mit dem Wort World. Davor kommen in etwa 80.000<br />
Byte mit Dingen, die ich nicht benötige. Die Datei kann mein Programm öffnen und auch das Auslesen der ersten Zeichen in das Array World[6] funktioniert fehlerfrei. Doch sobald das Programm versucht, Daten in One zu speichern, gibt es die selbst erzeugte Fehlermeldung:</p>
<blockquote>
<p>Fehler beim Lesen der Datei an Position:-1</p>
</blockquote>
<p>aus. Auch wenn ich One z.B. in One[6] umwandle, ändert dies nichts daran. Ich hatte schon einmal einen solchen Fehler, aber da hatte ich meinen gültigen Speicherbereich verlassen. Doch hier sehe ich irgendwie nicht, wo der Fehler liegt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

using namespace std;

//Funktionen global definieren
void SearchBeginning(ifstream* OrigData);

int main()
{
    //Arbeitsvariablen
    string Buffer;
    ifstream OrigData(&quot;Master.mwBase&quot;);
    int Step = 0;

    //Fehlerausgabe
    if(!OrigData)
        cout &lt;&lt; &quot;Master.mwBase nicht gefunden.\n&quot;;

    //Speichervariablen
    string Name;
    string Edition;
    string Color;
    string Cost;
    string Type;
    string Text;
    string Power;
    string Toughness;
    string Rarity;
    string Artist;
    string Flavor;

    //Beginn suchen und zu Beginn springen
    SearchBeginning(&amp;OrigData);

    //5 Zeichen auslesen
    char World[6];
    OrigData.read((char *)&amp;World, sizeof(World));

    cout &lt;&lt; World[0] &lt;&lt; World[1] &lt;&lt; World[2] &lt;&lt; World[3] &lt;&lt; World[4] &lt;&lt; endl;

    system(&quot;PAUSE&quot;);
    return 0;
}

    void SearchBeginning(ifstream* OrigData)
    {
        char One;
        char World[6];

        //5 Zeichen auslesen
        (*OrigData).read((char *)&amp;World, sizeof(World));
        if (!(*OrigData).good())
            {
                cerr &lt;&lt;&quot;(World) Fehler beim Lesen der Datei an Position:&quot; &lt;&lt; (*OrigData).tellg() &lt;&lt; endl;
                system(&quot;PAUSE&quot;);
            }

        //Ausleseschleife
        while(World[0] != 'W' || World[1] != 'o' || World[2] != 'r' ||
              World[3] != 'l' || World[4] != 'd')
        {
            //cout &lt;&lt; World[0] &lt;&lt; World[1] &lt;&lt; World[2] &lt;&lt; World[3] &lt;&lt; World[4] &lt;&lt; endl;
            //1 weiteres Zeichen auslesen
            (*OrigData).read((char *)&amp;One, sizeof(One));
            if (!(*OrigData).good())
            {
                cerr &lt;&lt;&quot;Fehler beim Lesen der Datei an Position:&quot; &lt;&lt; (*OrigData).tellg() &lt;&lt; endl;
                system(&quot;PAUSE&quot;);
            }

            //World ein Zeichen weiter durchrücken lassen
            World[0] = World[1];
            World[1] = World[2];
            World[2] = World[3];
            World[3] = World[4];
            World[4] = One;
        }
        //5 Zeichen vorrücken, damit Korrekt anfängt einzulesen
        (*OrigData).seekg (-5, ios::cur);
        //(*OrigData).seekg (81804, ios::beg);
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/263926/gelöst-dateiauslesung-scheitert-mit-unbekanntem-fehler</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 12:03:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263926.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Mar 2010 22:28:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] Dateiauslesung scheitert mit unbekanntem Fehler on Thu, 01 Apr 2010 18:07:08 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe folgenden Quelltext der am Ende eine Datenbank auslesen soll. Der erste Eintrag in der Datenbank beginnt mit dem Wort World. Davor kommen in etwa 80.000<br />
Byte mit Dingen, die ich nicht benötige. Die Datei kann mein Programm öffnen und auch das Auslesen der ersten Zeichen in das Array World[6] funktioniert fehlerfrei. Doch sobald das Programm versucht, Daten in One zu speichern, gibt es die selbst erzeugte Fehlermeldung:</p>
<blockquote>
<p>Fehler beim Lesen der Datei an Position:-1</p>
</blockquote>
<p>aus. Auch wenn ich One z.B. in One[6] umwandle, ändert dies nichts daran. Ich hatte schon einmal einen solchen Fehler, aber da hatte ich meinen gültigen Speicherbereich verlassen. Doch hier sehe ich irgendwie nicht, wo der Fehler liegt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;

using namespace std;

//Funktionen global definieren
void SearchBeginning(ifstream* OrigData);

int main()
{
    //Arbeitsvariablen
    string Buffer;
    ifstream OrigData(&quot;Master.mwBase&quot;);
    int Step = 0;

    //Fehlerausgabe
    if(!OrigData)
        cout &lt;&lt; &quot;Master.mwBase nicht gefunden.\n&quot;;

    //Speichervariablen
    string Name;
    string Edition;
    string Color;
    string Cost;
    string Type;
    string Text;
    string Power;
    string Toughness;
    string Rarity;
    string Artist;
    string Flavor;

    //Beginn suchen und zu Beginn springen
    SearchBeginning(&amp;OrigData);

    //5 Zeichen auslesen
    char World[6];
    OrigData.read((char *)&amp;World, sizeof(World));

    cout &lt;&lt; World[0] &lt;&lt; World[1] &lt;&lt; World[2] &lt;&lt; World[3] &lt;&lt; World[4] &lt;&lt; endl;

    system(&quot;PAUSE&quot;);
    return 0;
}

    void SearchBeginning(ifstream* OrigData)
    {
        char One;
        char World[6];

        //5 Zeichen auslesen
        (*OrigData).read((char *)&amp;World, sizeof(World));
        if (!(*OrigData).good())
            {
                cerr &lt;&lt;&quot;(World) Fehler beim Lesen der Datei an Position:&quot; &lt;&lt; (*OrigData).tellg() &lt;&lt; endl;
                system(&quot;PAUSE&quot;);
            }

        //Ausleseschleife
        while(World[0] != 'W' || World[1] != 'o' || World[2] != 'r' ||
              World[3] != 'l' || World[4] != 'd')
        {
            //cout &lt;&lt; World[0] &lt;&lt; World[1] &lt;&lt; World[2] &lt;&lt; World[3] &lt;&lt; World[4] &lt;&lt; endl;
            //1 weiteres Zeichen auslesen
            (*OrigData).read((char *)&amp;One, sizeof(One));
            if (!(*OrigData).good())
            {
                cerr &lt;&lt;&quot;Fehler beim Lesen der Datei an Position:&quot; &lt;&lt; (*OrigData).tellg() &lt;&lt; endl;
                system(&quot;PAUSE&quot;);
            }

            //World ein Zeichen weiter durchrücken lassen
            World[0] = World[1];
            World[1] = World[2];
            World[2] = World[3];
            World[3] = World[4];
            World[4] = One;
        }
        //5 Zeichen vorrücken, damit Korrekt anfängt einzulesen
        (*OrigData).seekg (-5, ios::cur);
        //(*OrigData).seekg (81804, ios::beg);
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1875264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875264</guid><dc:creator><![CDATA[Little Programmer]]></dc:creator><pubDate>Thu, 01 Apr 2010 18:07:08 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Dateiauslesung scheitert mit unbekanntem Fehler on Mon, 29 Mar 2010 22:41:41 GMT]]></title><description><![CDATA[<p>Klingt so, als würde er die gesuchte Zeichenkette nicht finden und du stößt irgendwann einfach ans Ende der Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875271</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 29 Mar 2010 22:41:41 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Dateiauslesung scheitert mit unbekanntem Fehler on Mon, 29 Mar 2010 22:51:00 GMT]]></title><description><![CDATA[<p>Nein nein, das hatte ich erst auch vermutet. Deshalb habe ich überall die:</p>
<pre><code class="language-cpp">system(&quot;PAUSE&quot;)
</code></pre>
<p>eingefügt.</p>
<p>Schon beim ersten Versuch tritt dieser Fehler auf. Und weil es sich scheinbar nicht in der Datei befindet, läuft das Programm dann natürlich in Endlosschleife, weil es nur Unsinn ausliest. (Zeile 65 nicht auskommentiert hat wilden Sonderzeichenunfug und wütendes Piepen des Rechners zu Folge. Nach einem kleinen Moment gibt es dann nur noch Whitespace-Zeichen aus, ka wo auf der Festplatte es dann gelandet ist.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875276</guid><dc:creator><![CDATA[Little Programmer]]></dc:creator><pubDate>Mon, 29 Mar 2010 22:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Dateiauslesung scheitert mit unbekanntem Fehler on Mon, 29 Mar 2010 23:06:19 GMT]]></title><description><![CDATA[<p>Du liest nicht zufällig Binärdaten ein? Schau dir mal ios::binary an.</p>
<p>Edit: Ach ja, und ein Debugger wär für dich was Tolles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875282</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 29 Mar 2010 23:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Dateiauslesung scheitert mit unbekanntem Fehler on Thu, 01 Apr 2010 12:26:43 GMT]]></title><description><![CDATA[<p>Ja ich habe ja ios:binary gesetzt. Ich benutze Code::Blocks und der Debugger von meinem Code::Blocks spinnt. Bringt aber auch in diesem Fall überhaupt gar nichts, ich ahbe meine Variablen ja schon alle ausgeben lassen und das Resultat davon im letzten Post beschrieben. In dem Moment, wo in den charakter One ausgelesen wird, rückt der Lesezeiger an eine ungültige Position und es wird Unfug von irgendwoher ausgelesen. Der Fehler, warum der Lesezeiger aber an eine ungültige Stelle rückt, müsste im Quelltext sein. Die Datenabnk die ich auslese ist 4,65 MB groß, also dauert es eine Weile, bis man dort am Ende angelangt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876371</guid><dc:creator><![CDATA[Little Programmer]]></dc:creator><pubDate>Thu, 01 Apr 2010 12:26:43 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Dateiauslesung scheitert mit unbekanntem Fehler on Thu, 01 Apr 2010 12:53:02 GMT]]></title><description><![CDATA[<blockquote>
<p>Klingt so, als würde er die gesuchte Zeichenkette nicht finden und du stößt irgendwann einfach ans Ende der Datei.</p>
</blockquote>
<p>Little Programmer schrieb:</p>
<blockquote>
<p>Nein nein, das hatte ich erst auch vermutet. Deshalb habe ich überall die:</p>
<pre><code class="language-cpp">system(&quot;PAUSE&quot;)
</code></pre>
<p>eingefügt.</p>
</blockquote>
<p>Und inwieweit helfen dir die zu erkennen, dass er nicht am Ende der Datei angekommen ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wie sieht's denn mit Gross/Kleinschreibung von 'world' aus?<br />
Sehr effektiv ist das Ganze übrigens auch nicht, pro gelesenem Zeichen 5 Zeichen zu kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876390</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 01 Apr 2010 12:53:02 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Dateiauslesung scheitert mit unbekanntem Fehler on Thu, 01 Apr 2010 18:05:53 GMT]]></title><description><![CDATA[<p>[Edit]Ganzer Post gelöscht. Oh man. Tretet mich. Ich hatte &quot;ios::binary&quot; gesetzt. Ka wieso und wann. Ich hatte gar nicht mitbekommen, dass ichs gelöscht hatte. Mit funktionierts natürlich einwandfrei. Jetzt frag ich mich nur, wann ich das gelöscht habe und wieso. Sorry für die Scherereien.[/Edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876541</guid><dc:creator><![CDATA[Little Programmer]]></dc:creator><pubDate>Thu, 01 Apr 2010 18:05:53 GMT</pubDate></item></channel></rss>