<?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[Settings in Datei schreiben]]></title><description><![CDATA[<p>Ich habe aus einem Tutorial folgenden Code:</p>
<pre><code class="language-cpp">void CPMDToolboxDlg::SaveSettings()
{
	CFile dataFile;
	char strFilter[] = { &quot;Textfiles (*.txt)|*.txt|All Files (*.*)|*.*||&quot;};
	CFileDialog FileDlg(FALSE, &quot;.txt&quot;, NULL, 0, strFilter);

	if (FileDlg.DoModal()==IDOK)
	{
		if (dataFile.Open(FileDlg.GetFileName(), CFile::modeCreate| CFile::modeWrite)==FALSE)
			return;
		CArchive ar(&amp;dataFile, CArchive::store);

		ar &lt;&lt; m_iPort;
		ar &lt;&lt; m_iDataMode;
		ar &lt;&lt; m_iDistMin;
		ar &lt;&lt; m_iDistMax;
		ar &lt;&lt; m_iExposure;
		ar &lt;&lt; m_iFPS;
	}
		return;
	dataFile.Close();
}
</code></pre>
<p>Da ich nicht jedesmal den Dialog sehen will, habe ich es geändert:</p>
<pre><code class="language-cpp">void CPMDToolboxDlg::SaveSettings()
{
	CFile dataFile;

	if (dataFile.Open(&quot;settings.dat&quot;, CFile::modeCreate| CFile::modeWrite)==FALSE)
		return;
	CArchive ar(&amp;dataFile, CArchive::store);

	ar &lt;&lt; m_iPort;
	ar &lt;&lt; m_iDataMode;
	ar &lt;&lt; m_iDistMin;
	ar &lt;&lt; m_iDistMax;
	ar &lt;&lt; m_iExposure;
	ar &lt;&lt; m_iFPS;

	dataFile.Close();
}
</code></pre>
<p>Im dataFile.Close bekomme ich nun aber eine Exception. Oben fällt mir dieses alleinstehende return am Ende auf. Kann man da das &quot;else&quot; etwa weglassen (wohl eher nicht, wenn ich genau überlege, muss ein Fehler im Tutorial sein)? Schreibe ich das return vor mein dataFile.Close (im geänderten Code), dann kommt die Exception nicht mehr, aber die Datei wird nicht geschlossen. Ich verstehe grad nicht was da genau passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154354/settings-in-datei-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 12:35:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154354.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Jul 2006 13:37:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Settings in Datei schreiben on Wed, 26 Jul 2006 13:39:23 GMT]]></title><description><![CDATA[<p>Ich habe aus einem Tutorial folgenden Code:</p>
<pre><code class="language-cpp">void CPMDToolboxDlg::SaveSettings()
{
	CFile dataFile;
	char strFilter[] = { &quot;Textfiles (*.txt)|*.txt|All Files (*.*)|*.*||&quot;};
	CFileDialog FileDlg(FALSE, &quot;.txt&quot;, NULL, 0, strFilter);

	if (FileDlg.DoModal()==IDOK)
	{
		if (dataFile.Open(FileDlg.GetFileName(), CFile::modeCreate| CFile::modeWrite)==FALSE)
			return;
		CArchive ar(&amp;dataFile, CArchive::store);

		ar &lt;&lt; m_iPort;
		ar &lt;&lt; m_iDataMode;
		ar &lt;&lt; m_iDistMin;
		ar &lt;&lt; m_iDistMax;
		ar &lt;&lt; m_iExposure;
		ar &lt;&lt; m_iFPS;
	}
		return;
	dataFile.Close();
}
</code></pre>
<p>Da ich nicht jedesmal den Dialog sehen will, habe ich es geändert:</p>
<pre><code class="language-cpp">void CPMDToolboxDlg::SaveSettings()
{
	CFile dataFile;

	if (dataFile.Open(&quot;settings.dat&quot;, CFile::modeCreate| CFile::modeWrite)==FALSE)
		return;
	CArchive ar(&amp;dataFile, CArchive::store);

	ar &lt;&lt; m_iPort;
	ar &lt;&lt; m_iDataMode;
	ar &lt;&lt; m_iDistMin;
	ar &lt;&lt; m_iDistMax;
	ar &lt;&lt; m_iExposure;
	ar &lt;&lt; m_iFPS;

	dataFile.Close();
}
</code></pre>
<p>Im dataFile.Close bekomme ich nun aber eine Exception. Oben fällt mir dieses alleinstehende return am Ende auf. Kann man da das &quot;else&quot; etwa weglassen (wohl eher nicht, wenn ich genau überlege, muss ein Fehler im Tutorial sein)? Schreibe ich das return vor mein dataFile.Close (im geänderten Code), dann kommt die Exception nicht mehr, aber die Datei wird nicht geschlossen. Ich verstehe grad nicht was da genau passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1104630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1104630</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Wed, 26 Jul 2006 13:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to Settings in Datei schreiben on Wed, 26 Jul 2006 13:45:03 GMT]]></title><description><![CDATA[<p>Hmmm würde ich sowieso alles ein wenig anderst schreiben:</p>
<pre><code class="language-cpp">void CPMDToolboxDlg::SaveSettings()
{
    CFile dataFile;

    if(dataFile.Open(&quot;settings.dat&quot;, CFile::modeCreate | CFile::modeWrite))
    {
        CArchive ar(&amp;dataFile, CArchive::store);

        ar &lt;&lt; m_iPort &lt;&lt; m_iDataMode &lt;&lt; m_iDistMin &lt;&lt; m_iDistMax &lt;&lt; m_iExposure &lt;&lt; m_iFPS;

        ar.Close();
        dataFile.Close();
    }
}
</code></pre>
<p>So sollte des eigentlich funktionieren.<br />
Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1104641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1104641</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 26 Jul 2006 13:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to Settings in Datei schreiben on Wed, 26 Jul 2006 14:05:14 GMT]]></title><description><![CDATA[<p>Vielen Dank! Dann fehlte das ar.Close() und das serielle Schreiben sieht auch besser aus <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/1104655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1104655</guid><dc:creator><![CDATA[JPSelter]]></dc:creator><pubDate>Wed, 26 Jul 2006 14:05:14 GMT</pubDate></item></channel></rss>