<?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[CFile bzw. CStdioFile lest falsche Daten ein]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich lerne seit ca. einem Monat VC++ (MFC) (und ihr habt mich schön öfter aus der Patsche geholfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ), aber jetzt hab ich ein Problem, bei dem ich einfach nicht auf die Lösung draufkomme.</p>
<p>Ziel ist, eine txt-Datei einzulesen, die Daten bearbeiten und wieder zurückschreiben.</p>
<p>die txt sieht etwa so aus:</p>
<p>0.900 0.900 5.00 5.00 0.850 0.850 4.70 4.70 0.82 0.82 4.50 4.50</p>
<p>etc etc.</p>
<p>ich versuchte mit</p>
<pre><code>CStdioFile reader;
CString buffer;
CString filename = &quot;c:\beispiel.txt&quot;;

if(reader.Open(filename, CFile::modeRead))
{
   while(reader.ReadString(buffer))
   {
      // jede menge code
   }
}
</code></pre>
<p>aber auch mit</p>
<pre><code>CFile reader;
char test[256];

if(reader.Open(filename, CFile::modeRead))
{
   while(reader.Read(test, 256) &gt; 0)
   {
      // wieder jede menge code
   }
}
</code></pre>
<p>die Daten einzulesen. Es wird auch etwas eingelesen, aber das schaut dann so aus:</p>
<p>1.00 1.00 0.10 0.10 1.00 1.00 1.00 1.00 etc.</p>
<p>In der Textdatei sind zwischen den Daten immer Tabstopps, aber das sollte normal nicht das Problem sein. Natürliche Zahlen (int), Text etc. wird richtig eingelesen. Ich verwende Visual Studio 2005.</p>
<p>Kann mir da jemand helfen? Würde mich über jeden Denkanstoss freuen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Vielen Dank und lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202782/cfile-bzw-cstdiofile-lest-falsche-daten-ein</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 04:08:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202782.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Jan 2008 12:21:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 12:21:22 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich lerne seit ca. einem Monat VC++ (MFC) (und ihr habt mich schön öfter aus der Patsche geholfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ), aber jetzt hab ich ein Problem, bei dem ich einfach nicht auf die Lösung draufkomme.</p>
<p>Ziel ist, eine txt-Datei einzulesen, die Daten bearbeiten und wieder zurückschreiben.</p>
<p>die txt sieht etwa so aus:</p>
<p>0.900 0.900 5.00 5.00 0.850 0.850 4.70 4.70 0.82 0.82 4.50 4.50</p>
<p>etc etc.</p>
<p>ich versuchte mit</p>
<pre><code>CStdioFile reader;
CString buffer;
CString filename = &quot;c:\beispiel.txt&quot;;

if(reader.Open(filename, CFile::modeRead))
{
   while(reader.ReadString(buffer))
   {
      // jede menge code
   }
}
</code></pre>
<p>aber auch mit</p>
<pre><code>CFile reader;
char test[256];

if(reader.Open(filename, CFile::modeRead))
{
   while(reader.Read(test, 256) &gt; 0)
   {
      // wieder jede menge code
   }
}
</code></pre>
<p>die Daten einzulesen. Es wird auch etwas eingelesen, aber das schaut dann so aus:</p>
<p>1.00 1.00 0.10 0.10 1.00 1.00 1.00 1.00 etc.</p>
<p>In der Textdatei sind zwischen den Daten immer Tabstopps, aber das sollte normal nicht das Problem sein. Natürliche Zahlen (int), Text etc. wird richtig eingelesen. Ich verwende Visual Studio 2005.</p>
<p>Kann mir da jemand helfen? Würde mich über jeden Denkanstoss freuen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Vielen Dank und lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1436992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436992</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Tue, 15 Jan 2008 12:21:22 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 12:51:18 GMT]]></title><description><![CDATA[<p>Wenn du aus:</p>
<p>CString filename = &quot;c:\beispiel.txt&quot;;</p>
<p>ein</p>
<p>CString filename = &quot;c:\\beispiel.txt&quot;;</p>
<p>machst wird er auch die Datei öffnen können. Oder anders gesagt hättest Du mal mit dem Debuger geschaut hätte dir auffallen müssen, das er die Datei nicht öffnen kann. Oder is das beim Einkopieren in das Forum verloren gegangen?</p>
<p>Noch eine Sache warum ließt du die Datei mit while ein, wenn du eh einen CString benutzt und er so und so die gesammte Datei einließt, das könnte zu ungewünschten Effekten führen, ein if an der stelle sollte es auch tun.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437015</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Tue, 15 Jan 2008 12:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 12:51:37 GMT]]></title><description><![CDATA[<p>Versuche es mal mit</p>
<pre><code class="language-cpp">if(reader.Open(filename, CFile::typeText | CFile::modeRead))
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1437016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437016</guid><dc:creator><![CDATA[sri]]></dc:creator><pubDate>Tue, 15 Jan 2008 12:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 13:07:19 GMT]]></title><description><![CDATA[<p>CTecS: das ganze war nur das Gerüst, der Dateiname wird als Parameter übergeben und das passt auch. Wie bereits oben steht, werden andere Daten (keine floats, bzw. doubles) ordnungsgemäß eingelesen und somit auch die Datei richtig geöffnet. Hätte ich nicht mit dem Debugger geschaut, wüsste ich nicht, dass &quot;1.00 1.00 0.10 0.10 1.00 1.00&quot; usw. eingelesen wird</p>
<p>sri: Danke für den Tipp, aber da stürzt er beim Öffnen der Datei gleich ab *g*<br />
-&gt; Debug Assertion Failed!<br />
filecore.cpp<br />
line 140</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437027</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Tue, 15 Jan 2008 13:07:19 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 13:13:16 GMT]]></title><description><![CDATA[<p>Hmm, ich habe auch gerade ein Projekt, an dem das in Verbindung mit CStdioFile problemlos funktioniert.</p>
<p>Ups, sorry. Ich verwende das CFile::typeText im Konstruktor:</p>
<pre><code class="language-cpp">CStdioFile inlFile(szInlineFile, CFile::typeText | CFile::modeRead);
while (inlFile.ReadString(strLine))
{
    //
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1437029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437029</guid><dc:creator><![CDATA[sri]]></dc:creator><pubDate>Tue, 15 Jan 2008 13:13:16 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 13:15:08 GMT]]></title><description><![CDATA[<p>139: ASSERT(pException == NULL || AfxIsValidAddress(pException, sizeof(CFileException)))</p>
<p>140: ASSERT((nOpenFlags &amp; typeText) == 0);</p>
<p>141: ASSERT(m_hFile == INVALID_HANDLE_VALUE);</p>
<p>spätestens hier steig ich komplett aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437033</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Tue, 15 Jan 2008 13:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 13:18:19 GMT]]></title><description><![CDATA[<p>selbes Problem...lest falsche Daten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437037</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Tue, 15 Jan 2008 13:18:19 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 13:24:05 GMT]]></title><description><![CDATA[<p>Also ich hab am Anfang auch probs mit dem Einlesen einer Textdatei gehabt. Habs aber hinbekommen.</p>
<p>Ich musste</p>
<pre><code class="language-cpp">File.Open(cDialog.GetPathName(), CFile::modeRead | CFile::typeBinary);
</code></pre>
<p>nehmen, um die Datei gescheit auszulesen. Ohne typeBinary bekam ich nur müll raus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437041</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Tue, 15 Jan 2008 13:24:05 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 13:30:53 GMT]]></title><description><![CDATA[<p>danke, aber das hab ich vorher auch schon probiert, nachdem sri das mit CFile::typeText gesagt hatte..<br />
funktioniert auch nicht.</p>
<p>nochmal das Problem: wenn in der txt-Datei eine float-zahl steht, wird die falsch eingelesen... aus 5.4 wird 1.0 oder 0.1<br />
alles andere (es steht auch Text und Integers in der datei) wird richtig eingelesen...</p>
<p>es is zum verzweifeln.... ich hab mich gerade nochmal versichert, dass ich keine falsche Datei einlese</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437045</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Tue, 15 Jan 2008 13:30:53 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 14:31:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CStdioFile reader;
CString buffer;
CString filename = &quot;c:\beispiel.txt&quot;;

if(reader.Open(filename, CFile::modeRead))
{
   while(reader.ReadString(buffer))
   {
      // jede menge code
   }
}
</code></pre>
<p>liest ja alles als CString ein. Werden denn die Daten im CString schon falsch eingelesen oder sind die da noch in ordnung? Nicht, dass etwas bei einer nachfolgenden Konvertierung verloren geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437082</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Tue, 15 Jan 2008 14:31:01 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 14:37:07 GMT]]></title><description><![CDATA[<p>da kommen sie schon falsch an. aber auch wenn ich ein char [] hernehm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437093</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Tue, 15 Jan 2008 14:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Tue, 15 Jan 2008 15:36:27 GMT]]></title><description><![CDATA[<p>Kannst du evtl die Komplette Funktion mal Posten, damit man sich mal nen Bild machen kann? Weil eigentlich ist den CString egal ob da nen int, string oder float ist. Und wie kommen die Daten denn aus dem .txt-File? jeder Wert in einer neuen Zeile oder alles hintereinander?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437138</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Tue, 15 Jan 2008 15:36:27 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Wed, 16 Jan 2008 06:28:13 GMT]]></title><description><![CDATA[<pre><code>int File_Open() 
{
	CStdioFile reader;// (filename, CFile::typeText | CFile::modeRead);
	CString buffer;
	//char buffer[256];
	CString hlp;

	//float helper;
	int i = 0;
	//int gesamtlänge = 0;
	//DWORD buff;
	//char buffaa[256];
	//LPTSTR lpszBuffer;

	if(reader.Open(m_ConfigFile, CFile::modeRead))
	{
		while(reader.ReadString(buffer)) //.ReadString(buffer))
		{
			if((i == 2) || (i == 1)) { } // unbrauchbare zeilen
			else
			{
				// Zerteilen des CString's und einfügen in die GUI
				WriteLineFlexGrid(buffer);
			}
			i++;
		}
	}

	/*CFile reader;
	CString buffer;
	char test[256];

	if(reader.Open(filename, CFile::typeText | CFile::modeRead))
	{
		while(reader.Read(test, 256) &gt; 0)
		{

		}
	}*/

	reader.Close();
	return 1;
}
</code></pre>
<p>Eben das is ja so seltsam, weil in einen CString kann man ja alles reinpacken..<br />
Die Daten kommen Zeilenweise daher und in einer Zeile stehen ca. 15 Werte, getrennt mit einem Tabstopp (genau wie im txt-File)..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437384</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Wed, 16 Jan 2008 06:28:13 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Wed, 16 Jan 2008 08:06:22 GMT]]></title><description><![CDATA[<p>also mit einer selbst geschiebenen txt-Datei (strings, int, fload mit tab getrennt) und mit deiner Funktion klappts bei mir. Ich trenn die daten allerdings nicht sondern schmeiß die in eine MSG-Box aus.</p>
<pre><code class="language-cpp">void Cproj_3Dlg::OnBnClickedButton1()
{
	CFileDialog cDialog(TRUE, 0, 0, 4|2, _T(&quot;txt (*.txt) |*.txt||&quot;), 0 ,0);
	CString Buffer;

	if(cDialog.DoModal() == IDOK)
	{
		CStdioFile File;
		File.Open(cDialog.GetPathName(), CFile::modeRead);
		File.SeekToBegin();

		while(File.ReadString(Buffer))
		{
			MessageBox(Buffer, _T(&quot;test&quot;), MB_OK);
		}

		File.Close();

	}
}
</code></pre>
<p>Woher hast du denn die Text-datei? Ich hab nämlich mal ein problem gehabt, dass ich für txt-files, die von einem Tool erstellt wurden halt den Zusatz &quot;typeBinary&quot; im Open brauchte. Ohne gings dann net. mit &quot;typeText&quot; gibts da keinen unterschied bei mir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437407</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Wed, 16 Jan 2008 08:06:22 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Wed, 16 Jan 2008 08:25:24 GMT]]></title><description><![CDATA[<p>Ist das so gewollt, dass er beim 1. Durchlauf in den else Zweig rennt?<br />
(Da ist i ja noch auf 0).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437423</guid><dc:creator><![CDATA[isabeau]]></dc:creator><pubDate>Wed, 16 Jan 2008 08:25:24 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Wed, 16 Jan 2008 08:42:50 GMT]]></title><description><![CDATA[<p>die Textdatei ist händisch erstellt worden und soll jetzt eben mit einem Programm editierbar sein und sollte auch nicht all zu sehr verändert werden, da sie von einem andern Programm eingelesen wird und als Steuerung verwendet wird.</p>
<p>isabeau: Ja, es sind nur die die zweite und dritte Zeile unbrauchbar (man kann ja noch ein ! einfügen, dass es lesbarer wird, aber zuerst sollten mal die richtigen Daten eingelesen werden *g*)</p>
<p>PS.: Danke für deine Mühen, Uruk <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437435</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Wed, 16 Jan 2008 08:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to CFile bzw. CStdioFile lest falsche Daten ein on Wed, 16 Jan 2008 08:55:24 GMT]]></title><description><![CDATA[<p>HA!...Ich hab eine ähnliche Textdatei jetzt händisch neu geschrieben... Es funktioniert. Naja wenigstens weiss ich nun wo der Hund begraben liegt. Ich muss schauen, ob das andre Programm damit klar kommt und dann kanns weiter gehn.</p>
<p>Danke für deine Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1437446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1437446</guid><dc:creator><![CDATA[WillieMacMoran]]></dc:creator><pubDate>Wed, 16 Jan 2008 08:55:24 GMT</pubDate></item></channel></rss>