<?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[Problem beim mehrfachem Datei öffnen&#x2F;lesen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgendes Problem:</p>
<p>Ich schreibe ein kleines Vokabelabfrage Programm. Nun will ich, das der Benutzer mehrere Dateien aufeinmal üben kann (alle durcheinander). Dazu habe ich folgenden Code (Funktion) geschrieben:</p>
<p>Die Aufgabe der Funktion ist es die Vokabeldatei(en) einzulesen und in einer deque Struktur abzulegen.<br />
Ihr wird ein deque Objekt mit den Dateinamen übergeben.</p>
<pre><code class="language-cpp">bool ParseMultiVokFiles(deque&lt;string&gt; files, deque&lt;VOKABEL_DATEN&gt;* vok, VOKABEL_STATS* stats)
{
	ifstream dat_ein;
	char zeichen[1];
	string deutsch, fremdsprache, zusatz;
	VOKABEL_DATEN voctemp;
	int unsigned counter = 0;

	for(deque&lt;string&gt;::iterator i=files.begin();i != files.end();i++)
	{	
	 	dat_ein.open(i-&gt;c_str(), ios_base::in);
		MessageBox(0,i-&gt;c_str(),0,0);		
		if(!dat_ein.is_open())
		{			
			return false;
		}		 
		while(!dat_ein.eof())
		{
	 		getline(dat_ein, deutsch, '|');
	 		getline(dat_ein, fremdsprache, '|');
	 		getline(dat_ein, zusatz, '|');
	   	counter++;
	   	fablib2::IntMessageBox(&quot;Counter:&quot;, counter);
	   	if(options.richtung == 0)
	   	{
	     	voctemp.heimatsprache = deutsch;
	     	voctemp.fremdsprache = fremdsprache;
	    }
	   	else
	   	{
	   		voctemp.heimatsprache = fremdsprache;
	   		voctemp.fremdsprache = deutsch;
	   	}
	    voctemp.bemmerkungen = zusatz;
			voctemp.fach = 1;
			vok-&gt;push_back(voctemp);
		}
		MessageBox(0,&quot;Test&quot;,0,0);
		dat_ein.close();
	}
	fablib2::IntMessageBox(&quot;Endcounter:&quot;,counter);
	stats-&gt;gesamt = counter;
	stats-&gt;fach1 = counter;
	stats-&gt;fach2 = 0;
	stats-&gt;fach3 = 0;
	stats-&gt;fach4 = 0;	
	return true;
}
</code></pre>
<p>Das ist Problem besteht nun darin, das immer nur ein Vokabeldatei eingelesen wird. Es scheint als würde while(!dat_ein.eof()), nachdem einlesen der ersten Datei immer true ergeben. Woran kann das liegen ????</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/124233/problem-beim-mehrfachem-datei-öffnen-lesen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 21:55:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/124233.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Oct 2005 19:06:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Tue, 25 Oct 2005 19:06:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgendes Problem:</p>
<p>Ich schreibe ein kleines Vokabelabfrage Programm. Nun will ich, das der Benutzer mehrere Dateien aufeinmal üben kann (alle durcheinander). Dazu habe ich folgenden Code (Funktion) geschrieben:</p>
<p>Die Aufgabe der Funktion ist es die Vokabeldatei(en) einzulesen und in einer deque Struktur abzulegen.<br />
Ihr wird ein deque Objekt mit den Dateinamen übergeben.</p>
<pre><code class="language-cpp">bool ParseMultiVokFiles(deque&lt;string&gt; files, deque&lt;VOKABEL_DATEN&gt;* vok, VOKABEL_STATS* stats)
{
	ifstream dat_ein;
	char zeichen[1];
	string deutsch, fremdsprache, zusatz;
	VOKABEL_DATEN voctemp;
	int unsigned counter = 0;

	for(deque&lt;string&gt;::iterator i=files.begin();i != files.end();i++)
	{	
	 	dat_ein.open(i-&gt;c_str(), ios_base::in);
		MessageBox(0,i-&gt;c_str(),0,0);		
		if(!dat_ein.is_open())
		{			
			return false;
		}		 
		while(!dat_ein.eof())
		{
	 		getline(dat_ein, deutsch, '|');
	 		getline(dat_ein, fremdsprache, '|');
	 		getline(dat_ein, zusatz, '|');
	   	counter++;
	   	fablib2::IntMessageBox(&quot;Counter:&quot;, counter);
	   	if(options.richtung == 0)
	   	{
	     	voctemp.heimatsprache = deutsch;
	     	voctemp.fremdsprache = fremdsprache;
	    }
	   	else
	   	{
	   		voctemp.heimatsprache = fremdsprache;
	   		voctemp.fremdsprache = deutsch;
	   	}
	    voctemp.bemmerkungen = zusatz;
			voctemp.fach = 1;
			vok-&gt;push_back(voctemp);
		}
		MessageBox(0,&quot;Test&quot;,0,0);
		dat_ein.close();
	}
	fablib2::IntMessageBox(&quot;Endcounter:&quot;,counter);
	stats-&gt;gesamt = counter;
	stats-&gt;fach1 = counter;
	stats-&gt;fach2 = 0;
	stats-&gt;fach3 = 0;
	stats-&gt;fach4 = 0;	
	return true;
}
</code></pre>
<p>Das ist Problem besteht nun darin, das immer nur ein Vokabeldatei eingelesen wird. Es scheint als würde while(!dat_ein.eof()), nachdem einlesen der ersten Datei immer true ergeben. Woran kann das liegen ????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900637</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Tue, 25 Oct 2005 19:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Tue, 25 Oct 2005 23:14:04 GMT]]></title><description><![CDATA[<p>Kann einer sich sonst meinen Code nochmal durchlesen? Ich finde den Fehler einfach nicht (in dem was ich programmiert habe). Da die Funktion in einem WinApi Programm vorkommt, habe ich die Funktion Messagebox drin. Die dient nur dazu den Variabelwert auszugeben, lasst euch durch diese Funktion nicht stören...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900780</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Tue, 25 Oct 2005 23:14:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Tue, 25 Oct 2005 23:21:52 GMT]]></title><description><![CDATA[<p>Hast du mal versucht, wenn du den ifstream mit dem Zusatz öffnest, dass er zum Dateianfang springen soll oder nach dem öffnen das machst.<br />
Interessant wär mal zu testen, was dein Code macht, wenn die erste Datei kleiner als die zweite ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900781</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Tue, 25 Oct 2005 23:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Tue, 25 Oct 2005 23:47:47 GMT]]></title><description><![CDATA[<p>Ich habe den Code jetzt mal ein bisschen verändert:</p>
<pre><code class="language-cpp">for(deque&lt;string&gt;::iterator i=files.begin();i != files.end();i++)
	{			
	 	dat_ein.open(i-&gt;c_str(), ios_base::in);
		MessageBox(0,i-&gt;c_str(),0,0);		
		if(!dat_ein)
		{			
			MessageBox(0,&quot;Test&quot;,0,0);
			dat_ein.close();
			return false;
		}		 
		if(dat_ein.eof())
		{
			MessageBox(0,&quot;eof, Fatal Error&quot;,0,0);
		}
		while(!dat_ein.eof())
		{
	 		getline(dat_ein, deutsch, '|');
	 		getline(dat_ein, fremdsprache, '|');
	 		getline(dat_ein, zusatz, '|');
	   	counter++;
	   	if(options.richtung == 0)
	   	{
	     	voctemp.heimatsprache = deutsch;
	     	voctemp.fremdsprache = fremdsprache;
	    }
	   	else
	   	{
	   		voctemp.heimatsprache = fremdsprache;
	   		voctemp.fremdsprache = deutsch;
	   	}
	    voctemp.bemmerkungen = zusatz;
			voctemp.fach = 1;
			vok-&gt;push_back(voctemp);
		}
		dat_ein.close();
	}
</code></pre>
<p>Ich kriege jetzt auch manchmal die Test MessageBox, was bedeuten würde das er die Datei manchmal nicht richtig öffnen kann, ich versteh langsam gar nichts mehr. Ich habe mal probiert eine kurze dann eine lange Datei zu öffnen mit dem Fehler das auch ein eof Auftritt. (Die If-Abfrage mit dem eof wird auch manchmal ausgeführt. Kann jemmand sonst das mal bei sich compeliern und mir sagen ob es läuft. Langsam glaube ich nämlich das mein Compiler spinnt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900786</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Tue, 25 Oct 2005 23:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Tue, 25 Oct 2005 23:56:52 GMT]]></title><description><![CDATA[<p>Um an den Anfang zu springen.</p>
<pre><code class="language-cpp">dat_ein.open(i-&gt;c_str(), ios_base::in);
dat_ein.seekq(0,ios::beg); //oder nur dat_ein.seekq(0);
MessageBox(0,i-&gt;c_str(),0,0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/900787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900787</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Tue, 25 Oct 2005 23:56:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Wed, 26 Oct 2005 06:19:14 GMT]]></title><description><![CDATA[<p>Was mir noch einfällt - ich bin nicht sicher, ob close() bzw. open() die Dateiflags wieder zurücksetzen. Also würde ich das sicherheitshalber noch manuell erledigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900830</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 26 Oct 2005 06:19:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Wed, 26 Oct 2005 06:31:39 GMT]]></title><description><![CDATA[<p>clear() haste vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900840</guid><dc:creator><![CDATA[wisser]]></dc:creator><pubDate>Wed, 26 Oct 2005 06:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Wed, 26 Oct 2005 09:06:03 GMT]]></title><description><![CDATA[<p>wisser schrieb:</p>
<blockquote>
<p>clear() haste vergessen.</p>
</blockquote>
<p>genau, das wars man muss scheinbar hinter close noch .clear() aufrufen. Jetzt gehts</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900932</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Wed, 26 Oct 2005 09:06:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Wed, 26 Oct 2005 09:30:45 GMT]]></title><description><![CDATA[<p>Alternativ kann man auch guten Code schreiben. (Für jede Datei ein neues ifstream Objekt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/900953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/900953</guid><dc:creator><![CDATA[altern.]]></dc:creator><pubDate>Wed, 26 Oct 2005 09:30:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Wed, 26 Oct 2005 10:19:11 GMT]]></title><description><![CDATA[<p>altern. schrieb:</p>
<blockquote>
<p>Alternativ kann man auch guten Code schreiben. (Für jede Datei ein neues ifstream Objekt)</p>
</blockquote>
<p>das ist eher schlechter code, da du unnötig speicher verschwendest. Da du ja sowieso zur Zeit nur eine Datei brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901014</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Wed, 26 Oct 2005 10:19:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Wed, 26 Oct 2005 12:49:24 GMT]]></title><description><![CDATA[<p>ne, wird doch dann bei jedem schleifendurchgang zerstört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901152</guid><dc:creator><![CDATA[altern.]]></dc:creator><pubDate>Wed, 26 Oct 2005 12:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim mehrfachem Datei öffnen&#x2F;lesen on Wed, 26 Oct 2005 13:14:24 GMT]]></title><description><![CDATA[<p>So meinst du das also, ja das geht natürlich, obwohl ich glaube das die Methode mit dem clear schneller ist. Müsste man mal überprüfen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/901172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/901172</guid><dc:creator><![CDATA[flammenvogel]]></dc:creator><pubDate>Wed, 26 Oct 2005 13:14:24 GMT</pubDate></item></channel></rss>