<?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[CFileDialog und fstream]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab da ein Problem:</p>
<p>Ich will eine Datei mit CFileDialog öffnen. GetPathname gibt einen CString zurück. Da ich die Datei auf eof untersuchen muss, muss ich mit fstream Arbeiten, da in CFile keine eof Methode gibt.</p>
<pre><code class="language-cpp">FILE* datei;
CFileDialog m_dlgFile(true);	 
	if( m_dlgFile.DoModal() == IDOK ) 
	{
       g_pathname = m_dlgFile.GetPathName();
	} 

       datei=fopen(reinterpret_cast&lt;const char*&gt;(LPCTSTR(g_pathname)), &quot;rb&quot;); 

	fseek(datei, 8, SEEK_SET);	//zu Byte 8 gehen
</code></pre>
<p>Nun wird das natürlich mit Warnung bei fopen Kompiliert und wird fseek ausgeführt kommt eine Fehlermeldung wie stream!=NULL</p>
<p>Hat jemand eine Lösung wie ich die Konvertierung zwischen CString un const char* besser mache bzw. was ich allgemein besser machen könnte?</p>
<p>Grüße<br />
Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210946/cfiledialog-und-fstream</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 18:40:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210946.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Apr 2008 05:39:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CFileDialog und fstream on Thu, 17 Apr 2008 05:42:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab da ein Problem:</p>
<p>Ich will eine Datei mit CFileDialog öffnen. GetPathname gibt einen CString zurück. Da ich die Datei auf eof untersuchen muss, muss ich mit fstream Arbeiten, da in CFile keine eof Methode gibt.</p>
<pre><code class="language-cpp">FILE* datei;
CFileDialog m_dlgFile(true);	 
	if( m_dlgFile.DoModal() == IDOK ) 
	{
       g_pathname = m_dlgFile.GetPathName();
	} 

       datei=fopen(reinterpret_cast&lt;const char*&gt;(LPCTSTR(g_pathname)), &quot;rb&quot;); 

	fseek(datei, 8, SEEK_SET);	//zu Byte 8 gehen
</code></pre>
<p>Nun wird das natürlich mit Warnung bei fopen Kompiliert und wird fseek ausgeführt kommt eine Fehlermeldung wie stream!=NULL</p>
<p>Hat jemand eine Lösung wie ich die Konvertierung zwischen CString un const char* besser mache bzw. was ich allgemein besser machen könnte?</p>
<p>Grüße<br />
Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1493310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1493310</guid><dc:creator><![CDATA[der_micha1981]]></dc:creator><pubDate>Thu, 17 Apr 2008 05:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to CFileDialog und fstream on Thu, 17 Apr 2008 05:59:25 GMT]]></title><description><![CDATA[<p>der_micha1981 schrieb:</p>
<blockquote>
<p>Da ich die Datei auf eof untersuchen muss, muss ich mit fstream Arbeiten, da in CFile keine eof Methode gibt.</p>
</blockquote>
<p>Das Ende der Datei erkennst du bei CFile daran, dass Read weniger Zeichen liefert, als du angefordert hast. Du benutzt übrigens <em>nicht</em> fstream, sondern die C File API (fopen usw.).</p>
<p>der_micha1981 schrieb:</p>
<blockquote>
<p>Nun wird das natürlich mit Warnung bei fopen Kompiliert</p>
</blockquote>
<p>Natürlich. Du hast dem Compiler mit dem Cast ja ausdrücklich verboten, sich zu beschweren. Wenn dein CString Unicode ist, ist dieser Cast schlicht und einfach falsch. Wenn nicht, ist er unnötig. Merke dir: Casts sind nur in den allerseltensten Fällen dazu geeignet, Compilezeitfehler zu beheben. Damit handelst du dir fast immer nur statt dessen einen Laufzeitfehler ein, was die schlechtere Alternative ist.</p>
<p>der_micha1981 schrieb:</p>
<blockquote>
<p>Hat jemand eine Lösung wie ich die Konvertierung zwischen CString un const char* besser mache</p>
</blockquote>
<p>Was heißt besser? Bisher machst du überhaupt keine Konvertierung.</p>
<p>Schau dir mal WideCharToMultiByte an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1493315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1493315</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 17 Apr 2008 05:59:25 GMT</pubDate></item></channel></rss>