<?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[Suchfunktion optimieren]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich nähere mich dem Ende eines Projekts und wie so üblich stolpert man da noch über einige Sachen.<br />
Ich habe eine nicht rekursive Suchfunktion die einfach nicht laufen will <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    />...</p>
<pre><code class="language-cpp">void dirsearch(char *path, char *filter) 
{ 
  HANDLE hFindFile; 
  WIN32_FIND_DATA wfd; 

  hFindFile = FindFirstFile(fbprint(&quot;%s\\%s&quot;, path, filter), &amp;wfd); 
	if (hFindFile != INVALID_HANDLE_VALUE) 
	{ 
	  do
	  {
		if ((wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) == 0) 
              cout &lt;&lt; path &lt;&lt;&quot;\\&quot;&lt;&lt; wfd.cFileName &lt;&lt; endl;   // Alternativ:  printf (&quot;%s\\%s\n&quot;, path, wfd.cFileName);

	  }while(FindNextFile(hFindFile, &amp;wfd) != 0); 

      FindClose(hFindFile); 
	} 
}
</code></pre>
<p>...weil ich es leider nicht schaffe die fbprint() Funktion gescheit einzubinden</p>
<pre><code class="language-cpp">char *fbprint(char *format, ...) // &lt;-- hier liegt das Problem, was setz ich da am Besten ein?
{ 
  static char buf[1000]; 

  vsnprintf(buf, sizeof(buf), format, (&amp;format)+1);    //bei Fehler casten: vsnprintf(buf, sizeof(buf), format, (char *)((&amp;format)+1));
  return (char *)buf; 
}
</code></pre>
<p>Header sind</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
</code></pre>
<p>main ist</p>
<pre><code class="language-cpp">int main()
{
.
.
  dirsearch(&quot;c:\\&quot;, &quot;*.txt*&quot;);

  return 0;
}
</code></pre>
<p>Wäre wirklich für jede Hilfe dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175351/suchfunktion-optimieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 03:13:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175351.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Mar 2007 13:52:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suchfunktion optimieren on Fri, 09 Mar 2007 13:58:55 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich nähere mich dem Ende eines Projekts und wie so üblich stolpert man da noch über einige Sachen.<br />
Ich habe eine nicht rekursive Suchfunktion die einfach nicht laufen will <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    />...</p>
<pre><code class="language-cpp">void dirsearch(char *path, char *filter) 
{ 
  HANDLE hFindFile; 
  WIN32_FIND_DATA wfd; 

  hFindFile = FindFirstFile(fbprint(&quot;%s\\%s&quot;, path, filter), &amp;wfd); 
	if (hFindFile != INVALID_HANDLE_VALUE) 
	{ 
	  do
	  {
		if ((wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) == 0) 
              cout &lt;&lt; path &lt;&lt;&quot;\\&quot;&lt;&lt; wfd.cFileName &lt;&lt; endl;   // Alternativ:  printf (&quot;%s\\%s\n&quot;, path, wfd.cFileName);

	  }while(FindNextFile(hFindFile, &amp;wfd) != 0); 

      FindClose(hFindFile); 
	} 
}
</code></pre>
<p>...weil ich es leider nicht schaffe die fbprint() Funktion gescheit einzubinden</p>
<pre><code class="language-cpp">char *fbprint(char *format, ...) // &lt;-- hier liegt das Problem, was setz ich da am Besten ein?
{ 
  static char buf[1000]; 

  vsnprintf(buf, sizeof(buf), format, (&amp;format)+1);    //bei Fehler casten: vsnprintf(buf, sizeof(buf), format, (char *)((&amp;format)+1));
  return (char *)buf; 
}
</code></pre>
<p>Header sind</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
</code></pre>
<p>main ist</p>
<pre><code class="language-cpp">int main()
{
.
.
  dirsearch(&quot;c:\\&quot;, &quot;*.txt*&quot;);

  return 0;
}
</code></pre>
<p>Wäre wirklich für jede Hilfe dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242317</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Fri, 09 Mar 2007 13:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to Suchfunktion optimieren on Fri, 09 Mar 2007 14:23:31 GMT]]></title><description><![CDATA[<p>Warum machst du es dir so umständlich? Schreib doch alles in die eine Funktion:</p>
<pre><code class="language-cpp">char buf[1000];

sprintf(buf, &quot;%s\\%s&quot;, path, filter);

hFindFile = FindFirstFile(buf, &amp;wfd);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1242339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242339</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 09 Mar 2007 14:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to Suchfunktion optimieren on Fri, 09 Mar 2007 14:53:45 GMT]]></title><description><![CDATA[<p>Hey, das wär natürlich die leichteste lösung, habs mal angepasst, aber der Compiler meckert und ich kann nicht viel damit anfangen:</p>
<blockquote>
<p>error C2664: 'FindFirstFileW' : cannot convert parameter 1 from 'char [1000]' to 'LPCWSTR'<br />
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
</blockquote>
<p>Hier nochmal mein jetzt angepasster Code:</p>
<p>Prototyp</p>
<pre><code class="language-cpp">void dirsearch(char *, char *);
</code></pre>
<p>Aufruf in main</p>
<pre><code class="language-cpp">dirsearch(&quot;c:\\&quot;, &quot;*.txt*&quot;);
</code></pre>
<p>Funktion</p>
<pre><code class="language-cpp">void dirsearch(char *path, char *filter) 
{ 
  HANDLE hFindFile; 
  WIN32_FIND_DATA wfd; 

  char buf[1000];

  sprintf(buf, &quot;%s\\%s&quot;, path, filter); 

  hFindFile = FindFirstFile(buf, &amp;wfd); 
	if (hFindFile != INVALID_HANDLE_VALUE) 
	{ 
	  do
	  {
		if ((wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) == 0) 
              cout &lt;&lt; path &lt;&lt;&quot;\\&quot;&lt;&lt; wfd.cFileName &lt;&lt; endl;   // Original:  printf (&quot;%s\\%s\n&quot;, path, wfd.cFileName);

	  }while(FindNextFile(hFindFile, &amp;wfd) != 0); 

      FindClose(hFindFile); 
	} 
}
</code></pre>
<p>Was mach ich falsch???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242352</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Fri, 09 Mar 2007 14:53:45 GMT</pubDate></item><item><title><![CDATA[Reply to Suchfunktion optimieren on Fri, 09 Mar 2007 16:32:22 GMT]]></title><description><![CDATA[<p>Probier mal statt char TCHAR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1242425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1242425</guid><dc:creator><![CDATA[XCooperation]]></dc:creator><pubDate>Fri, 09 Mar 2007 16:32:22 GMT</pubDate></item><item><title><![CDATA[Reply to Suchfunktion optimieren on Mon, 12 Mar 2007 07:57:59 GMT]]></title><description><![CDATA[<p>Danke für den Tip, funktioniert leider trotzdem nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hab das Prog jetzt mal mit dem Borland Builder compiliert und siehe da, es funktioniert ohne Warnungen oder Fehlermeldungen!</p>
<p>Scheint also ein reines VS 2005 Problem zu sein. Vielleicht hat jemand noch einen Ratschlag, was man vielleicht in den Einstellungen überprüfen kann, damit das Ding endlich auch mit VS durchläuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243756</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Mon, 12 Mar 2007 07:57:59 GMT</pubDate></item><item><title><![CDATA[Reply to Suchfunktion optimieren on Mon, 12 Mar 2007 08:15:41 GMT]]></title><description><![CDATA[<p>ITAzubi23 schrieb:</p>
<blockquote>
<p>Vielleicht hat jemand noch einen Ratschlag, was man vielleicht in den Einstellungen überprüfen kann, damit das Ding endlich auch mit VS durchläuft.</p>
</blockquote>
<p>ANSI statt Unicode?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1243762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1243762</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Mon, 12 Mar 2007 08:15:41 GMT</pubDate></item></channel></rss>