<?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[OPENFILENAME + Filter]]></title><description><![CDATA[<p>Hi,</p>
<h1></h1>
<p>ich habe in meiner Openfilename-Struktur eine Filter, den ich zur Laufzeit ändern möchte.</p>
<p>Ich mache das so:</p>
<p>sprintf(acText[0], &quot;<em>.%s-Dateien\0</em>.%s\0Alle Dateien\0*.*\0&quot;, m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix.c_str(), m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix.c_str());</p>
<p>acText[0] ist dann der lpstrFilter. Leider Sehe ich nur (bei dem OpenfileDialog) *.TXT-Dateien als Filter ([LOWORD(WParam)].m_sFilePostfix.c_str() ist TXT). Das &quot;Alle Dateien&quot; wurde verschluckt. Wenn ich für \0 \\0 einsetzte, funktioniert es auch nicht.</p>
<p>Was kann ich dagegen tun,</p>
<p>danke,</p>
<p>Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/78441/openfilename-filter</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 11:18:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/78441.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Jul 2004 13:23:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OPENFILENAME + Filter on Thu, 01 Jul 2004 13:23:22 GMT]]></title><description><![CDATA[<p>Hi,</p>
<h1></h1>
<p>ich habe in meiner Openfilename-Struktur eine Filter, den ich zur Laufzeit ändern möchte.</p>
<p>Ich mache das so:</p>
<p>sprintf(acText[0], &quot;<em>.%s-Dateien\0</em>.%s\0Alle Dateien\0*.*\0&quot;, m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix.c_str(), m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix.c_str());</p>
<p>acText[0] ist dann der lpstrFilter. Leider Sehe ich nur (bei dem OpenfileDialog) *.TXT-Dateien als Filter ([LOWORD(WParam)].m_sFilePostfix.c_str() ist TXT). Das &quot;Alle Dateien&quot; wurde verschluckt. Wenn ich für \0 \\0 einsetzte, funktioniert es auch nicht.</p>
<p>Was kann ich dagegen tun,</p>
<p>danke,</p>
<p>Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550961</guid><dc:creator><![CDATA[~chrissi uneingeloggt]]></dc:creator><pubDate>Thu, 01 Jul 2004 13:23:22 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME + Filter on Fri, 02 Jul 2004 14:04:49 GMT]]></title><description><![CDATA[<p>Na gut, geht anscheinend nicht. Aber mal was anderes. Gibt es alternativen für das \0-Zeichen?</p>
<p>Danke,</p>
<p>Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/551756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551756</guid><dc:creator><![CDATA[*chrissi]]></dc:creator><pubDate>Fri, 02 Jul 2004 14:04:49 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME + Filter on Fri, 02 Jul 2004 15:17:31 GMT]]></title><description><![CDATA[<p>Nein, aber du könntest memcpy + Längenangabe benutzen. strcpy hört ja bekanntlich beim ersten \0 auf, zu kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/551827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551827</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Fri, 02 Jul 2004 15:17:31 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME + Filter on Fri, 02 Jul 2004 20:29:39 GMT]]></title><description><![CDATA[<p>Aha, das mit dem sprintf wusste ich nicht. Aber, wie kann ich bei memcpy das m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix.c_str() reinkriegen? Gibt es da bessere Möglichkeiten als mit Streams?</p>
<p>Danke,</p>
<p>Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/552024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/552024</guid><dc:creator><![CDATA[*chrissi]]></dc:creator><pubDate>Fri, 02 Jul 2004 20:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME + Filter on Sat, 03 Jul 2004 15:51:39 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab jetzt alles versucht (strings + memcpy, streams + memcpy...); nicht klappt.</p>
<p>Wenn jemand eine andere Idee hat, sollte er/sie sich bitte melden.</p>
<p>Vielen Dank,</p>
<p>Chrissi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/552499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/552499</guid><dc:creator><![CDATA[*chrissi]]></dc:creator><pubDate>Sat, 03 Jul 2004 15:51:39 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME + Filter on Sun, 04 Jul 2004 11:25:28 GMT]]></title><description><![CDATA[<p>Mal davon abgesehen, dass Du m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix.c_str() in deinem sprintf() zweimal verwendest (ich weiss nicht, ob das so sein soll): Du verwendest ja eh schon die STL mit dem string. Pack dir das Ganze als string zusammen, allerdings mit einem beliebigen ansonsten nicht verwendeten ASCII-Zeichen statt des '\0' (Mein Vorschlag wäre '\t'). Dann holst Du dir den Zeiger auf das eigentliche char-Array und gehst mit ner Schleife durch und ersetzt manuell jedes '\t' durch '\0'. Nicht die sauberste Lösung, aber funktioniert.</p>
<pre><code class="language-cpp">string filter = &quot;*.&quot;;
filter += m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix + &quot;-Dateien\t*.&quot; +
          m_ImportDLLs[LOWORD(WParam)].m_sFilePostfix + &quot;\tAlle Dateien\t*.*\t&quot;;
char *szFilter;
szFilter = const_cast&lt;char*&gt;(filter.c_str());
for (int i = filter.length();i &gt;= 0;i--)
{
    if (szFilter[i] == '\t')
    {
        szFilter[i] = '\0';
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/552822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/552822</guid><dc:creator><![CDATA[Deadlef]]></dc:creator><pubDate>Sun, 04 Jul 2004 11:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME + Filter on Sun, 04 Jul 2004 13:48:52 GMT]]></title><description><![CDATA[<p>Üblich ist für diesen Zweck das | Zeichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/552918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/552918</guid><dc:creator><![CDATA[Ringding]]></dc:creator><pubDate>Sun, 04 Jul 2004 13:48:52 GMT</pubDate></item><item><title><![CDATA[Reply to OPENFILENAME + Filter on Sun, 04 Jul 2004 14:04:30 GMT]]></title><description><![CDATA[<p>Ringding schrieb:</p>
<blockquote>
<p>Üblich ist für diesen Zweck das | Zeichen.</p>
</blockquote>
<p>Oder halt so. habs halt bisher noch nie versucht und mir so händisch eine Lösung gebastelt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/552929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/552929</guid><dc:creator><![CDATA[Deadlef]]></dc:creator><pubDate>Sun, 04 Jul 2004 14:04:30 GMT</pubDate></item></channel></rss>