<?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[Problem mit der Verknüpfung 2er Funktionen]]></title><description><![CDATA[<p>Hallo mal wieder,<br />
ich bin mir nicht ganz sicher ob ich mit meiner Frage im richtigen Forum bin, da ich meinen Code ein bisschen mische, aber da die betroffenen Funktionen einiges aus der WinAPI enthalten versuch ich mal mein Glück. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Meine erste Funktion listet mir alle test*.xyz Dateien aus einem bestimmten Win Verzeichnis auf.<br />
Meine zweite Funktion liest die erste Zeile einer Textdatei aus und speichert diese in eine Variable zur weiteren Verwendung.</p>
<p><strong>Problem:</strong> Ich würde gerne auf jedes einzelne Ergebnis der ersten Funktion zugreifen können, um jede Datei/ergebnis mit der zweiten Funktion auslesen zu können.</p>
<p>Wäre echt super wenn mir jemand weiterhelfen könnte.</p>
<p>Hier die Funktionen wie sie imo aussehen:</p>
<p>1. Aufrufe in main mit Übergabeparametern:</p>
<pre><code class="language-cpp">string line;
char root[MAX_PATH];

dirsearch(root, &quot;\\beispiel&quot;, &quot;\\test*.xyz&quot;);  //Übergabe des Root Verzeichnisses(C:\Winnt), Beispielordner, zu suchende Dateien 

read_line(&quot;c:\\test.txt&quot;, line); // bisher: konstanter String wird übergeben
</code></pre>
<p>2. Funktionen</p>
<pre><code class="language-cpp">void dirsearch(char path[MAX_PATH], const string&amp; folder, const string&amp; filter) 
{ 
  HANDLE hFindFile; 
  WIN32_FIND_DATA wfd; 

  string buf; 

  buf = path + folder + filter;
  cout &lt;&lt; &quot;Es wird gesucht nach: &quot; &lt;&lt; buf &lt;&lt; endl &lt;&lt; endl;
  cout &lt;&lt; &quot;Suchergebnisse:\n&quot; &lt;&lt; endl;
 	hFindFile = FindFirstFile(buf.c_str(), &amp;wfd);   
	if (hFindFile != INVALID_HANDLE_VALUE) 
	{ 
	  do
	  {
		if ((wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) == 0) 
		  { 
			cout &lt;&lt; wfd.cFileName &lt;&lt; endl;
		  }
	  }while(FindNextFile(hFindFile, &amp;wfd) != 0); 

      FindClose(hFindFile); 
	} 
} 

bool read_line(const string&amp; filename, string&amp; line) 
{ 
	ifstream file_stream; 
	file_stream.open(filename.c_str(), ios::in); 

	if (file_stream.is_open() == false)   
	{ 
	  return false; 
	}
	if (file_stream.is_open() == true &amp;&amp; file_stream.good() == false)
	{ 
	  cout &lt;&lt; &quot;Dateiinhalt ist nicht lesbar!&quot; &lt;&lt; endl;  
	  file_stream.close(); 
	} 

	else
	{
	  getline(file_stream, line); 
  	  file_stream.close(); 
	  return true;
	}

	return false;
}
</code></pre>
<p>kurz noch als Anmerkung: der Code an sich läuft ohne Probleme, ich verwende VS 2005 Prof unter W2K</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180858/problem-mit-der-verknüpfung-2er-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 19:31:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180858.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 May 2007 12:53:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Mon, 07 May 2007 12:53:41 GMT]]></title><description><![CDATA[<p>Hallo mal wieder,<br />
ich bin mir nicht ganz sicher ob ich mit meiner Frage im richtigen Forum bin, da ich meinen Code ein bisschen mische, aber da die betroffenen Funktionen einiges aus der WinAPI enthalten versuch ich mal mein Glück. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Meine erste Funktion listet mir alle test*.xyz Dateien aus einem bestimmten Win Verzeichnis auf.<br />
Meine zweite Funktion liest die erste Zeile einer Textdatei aus und speichert diese in eine Variable zur weiteren Verwendung.</p>
<p><strong>Problem:</strong> Ich würde gerne auf jedes einzelne Ergebnis der ersten Funktion zugreifen können, um jede Datei/ergebnis mit der zweiten Funktion auslesen zu können.</p>
<p>Wäre echt super wenn mir jemand weiterhelfen könnte.</p>
<p>Hier die Funktionen wie sie imo aussehen:</p>
<p>1. Aufrufe in main mit Übergabeparametern:</p>
<pre><code class="language-cpp">string line;
char root[MAX_PATH];

dirsearch(root, &quot;\\beispiel&quot;, &quot;\\test*.xyz&quot;);  //Übergabe des Root Verzeichnisses(C:\Winnt), Beispielordner, zu suchende Dateien 

read_line(&quot;c:\\test.txt&quot;, line); // bisher: konstanter String wird übergeben
</code></pre>
<p>2. Funktionen</p>
<pre><code class="language-cpp">void dirsearch(char path[MAX_PATH], const string&amp; folder, const string&amp; filter) 
{ 
  HANDLE hFindFile; 
  WIN32_FIND_DATA wfd; 

  string buf; 

  buf = path + folder + filter;
  cout &lt;&lt; &quot;Es wird gesucht nach: &quot; &lt;&lt; buf &lt;&lt; endl &lt;&lt; endl;
  cout &lt;&lt; &quot;Suchergebnisse:\n&quot; &lt;&lt; endl;
 	hFindFile = FindFirstFile(buf.c_str(), &amp;wfd);   
	if (hFindFile != INVALID_HANDLE_VALUE) 
	{ 
	  do
	  {
		if ((wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) == 0) 
		  { 
			cout &lt;&lt; wfd.cFileName &lt;&lt; endl;
		  }
	  }while(FindNextFile(hFindFile, &amp;wfd) != 0); 

      FindClose(hFindFile); 
	} 
} 

bool read_line(const string&amp; filename, string&amp; line) 
{ 
	ifstream file_stream; 
	file_stream.open(filename.c_str(), ios::in); 

	if (file_stream.is_open() == false)   
	{ 
	  return false; 
	}
	if (file_stream.is_open() == true &amp;&amp; file_stream.good() == false)
	{ 
	  cout &lt;&lt; &quot;Dateiinhalt ist nicht lesbar!&quot; &lt;&lt; endl;  
	  file_stream.close(); 
	} 

	else
	{
	  getline(file_stream, line); 
  	  file_stream.close(); 
	  return true;
	}

	return false;
}
</code></pre>
<p>kurz noch als Anmerkung: der Code an sich läuft ohne Probleme, ich verwende VS 2005 Prof unter W2K</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280285</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Mon, 07 May 2007 12:53:41 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Mon, 07 May 2007 13:00:05 GMT]]></title><description><![CDATA[<p>Die einfachste Möglichkeit ist es, anstelle des &quot;cout &lt;&lt; wfd.cFileName &lt;&lt; endl;&quot; den Aufruf der zweiten Funktion reinzuschreiben. Wenn du erst päter entscheiden willst, was du mit den gefundenen Dateien machen willst, kannst du sie in einem vector&lt;string&gt; sammeln und zurückgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280289</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 07 May 2007 13:00:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Mon, 07 May 2007 14:27:39 GMT]]></title><description><![CDATA[<p>Mit Vektoren kenn ich mich noch nicht so gut aus, ich bastel aber mal ein bisschen rum und schau ob ichs vielleicht hinbekomm...<br />
Trotzdem vielen Dank für die schnelle Hilfe.</p>
<p>Könntest du mir vielleicht zeigen wie du die readline Funktion in die erste Funktion integrieren würdest, v.a. in Bezug auf die zu übergebenden Parameter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280298</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Mon, 07 May 2007 14:27:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Tue, 08 May 2007 06:39:47 GMT]]></title><description><![CDATA[<p>Hat vielleicht irgendjemand ein Code Beispiel für mich. Ich bin leider nicht weitergekommen.<br />
Vielen Dank schonmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280643</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Tue, 08 May 2007 06:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Tue, 08 May 2007 07:45:54 GMT]]></title><description><![CDATA[<p>Wenn du die readline()-Funktion direkt einbauen willst, kannst du die cout&lt;&lt;... Zeile einfach ersetzen durch</p>
<pre><code class="language-cpp">string line;
if(readline(wfd.cFileName,line);
{
  ...//mach was mit der eingelesenen Zeile
}
</code></pre>
<p>der allgemeinere Ansatz sieht etwa so aus:</p>
<pre><code class="language-cpp">void dirsearch(const string&amp; path, const string&amp; folder, const string&amp; filter, vector&lt;string&gt;&amp; namelist) 
{ 
  HANDLE hFindFile; 
  WIN32_FIND_DATA wfd; 

  string buf = path + folder + filter;
  cout &lt;&lt; &quot;Es wird gesucht nach: &quot; &lt;&lt; buf &lt;&lt; endl &lt;&lt; endl;
  hFindFile = FindFirstFile(buf.c_str(), &amp;wfd);   
  if (hFindFile != INVALID_HANDLE_VALUE) 
  { 
    do
    {
      if ((wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) == 0) 
      { 
         namelist.push_back(wfd,cFileName);
      }
    }while(FindNextFile(hFindFile, &amp;wfd) != 0); 
    FindClose(hFindFile); 
  } 
}

...
vector&lt;string&gt; files;
dirsearch(root,&quot;\\beispiel&quot;,&quot;\\test*.xyz&quot;,files);
for(vector&lt;string&gt;::iterator p=files.begin();p!=files.end();++p)
{
  string zeile;
  if(read_line(*p,zeile))
    ...//mach was
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1280684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280684</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 08 May 2007 07:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Tue, 08 May 2007 09:48:17 GMT]]></title><description><![CDATA[<p>Vielen Dank CStoll.<br />
ich hab mich jetzt für die &quot;einfachere&quot; Lösung entschieden, da beim experimentieren mit dem vector nix gescheites rausgekommen ist. Der Code lässt sich auch ohne Probs compilieren...<br />
<strong>Aber:</strong> leider öffnet er mir jetzt nicht mehr meine Dateien bzw. springt mir in der read_line Funktion bei der ersten Fehlerabfrage raus <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="😞"
    /><br />
Liegt wohl an den Parametern, aber ich finde einfach nicht den richtigen Typ, damit mir die Funktion True zurückliefert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Hier der angepasste Code:</p>
<pre><code class="language-cpp">//Prototypen
void dirsearch(char[], const string&amp;, const string&amp;);
bool read_line(string, string&amp;);
...
//Aufruf in main
char root[MAX_PATH];
...
dirsearch(root, &quot;\\Beispiel&quot;, &quot;\\test*.txt&quot;);
...
//angepasste Funktionen
void dirsearch(char path[MAX_PATH], const string&amp; folder, const string&amp; filter) 
{ 
  HANDLE hFindFile; 
  WIN32_FIND_DATA wfd; 
  string buf; 
  string line;
...
if ((wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) == 0) 
{ 
  if(read_line(wfd.cFileName,line) == 0) 
    {	
     cout &lt;&lt; &quot;An error occured reading&quot; &lt;&lt;wfd.cFileName &lt;&lt; endl;
    }
  else
    {
     cout &lt;&lt; &quot;lässt sich oeffnen&quot; &lt;&lt; endl;
    }			 
}

bool read_line(string filename, string&amp; line)  // &lt;--hier liegt mein Problem, 
{ 
  ifstream file_stream; 
  file_stream.open(filename.c_str(), ios::in); // ...denn das scheitert

    if (file_stream.is_open() == false)				
    { 
      cout &lt;&lt; &quot;oeffnen der Datei ist gescheitert\n&quot;;
      return false; 
    }
...
    else
      return true;
</code></pre>
<p>Wär super wenn mir nochmal geholfen werden könnte <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/1280737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280737</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Tue, 08 May 2007 09:48:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Tue, 08 May 2007 14:38:53 GMT]]></title><description><![CDATA[<p>So habs jetzt alleine hinbekommen, zwar nicht gerade elegant(mit bösen globalen Variablen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ) aber egal, Hauptsache es funzt.<br />
Ich wär trotzdem nicht böse, wenn mir noch einer einen eleganteren Weg sagen/posten könnte.<br />
Danke nochmal an Dich CStoll</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280957</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Tue, 08 May 2007 14:38:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Wed, 09 May 2007 06:49:51 GMT]]></title><description><![CDATA[<p>ITAzubi23 schrieb:</p>
<blockquote>
<p>Ich wär trotzdem nicht böse, wenn mir noch einer einen eleganteren Weg sagen/posten könnte.</p>
</blockquote>
<p>Schau mal ein Stück nach oben - der Code in meinem letzten Beitrag IST der elegantere Weg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281310</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 09 May 2007 06:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Wed, 09 May 2007 07:12:37 GMT]]></title><description><![CDATA[<p>Mag sein, aber da gibt mir der Compiler 18 Fehler aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Da müsstest du einem Noob wie mir schon noch ein bissel mehr erklären (welche defines, includes etc.) um das zum laufen zu bekommen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281323</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Wed, 09 May 2007 07:12:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Wed, 09 May 2007 07:18:07 GMT]]></title><description><![CDATA[<p>ITAzubi23 schrieb:</p>
<blockquote>
<p>Mag sein, aber da gibt mir der Compiler 18 Fehler aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Wird das jetzt zu einem lustigen Ratespiel ala &quot;was könnte dem Compiler Probleme bereiten&quot;? Wenn du Hilfe erwartest, mußt du die Fehlermeldungen schon angeben.</p>
<blockquote>
<p>Da müsstest du einem Noob wie mir schon noch ein bissel mehr erklären (welche defines, includes etc.) um das zum laufen zu bekommen...</p>
</blockquote>
<p>Du brauchst die Header &lt;string&gt; (für std::string) und &lt;vector&gt; (für std::vector&lt;&gt;) und eventuell die passenden using-Direktiven, wenn du zu faul bist, vor alle Bezeichner std:: zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281328</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 09 May 2007 07:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Wed, 09 May 2007 08:11:52 GMT]]></title><description><![CDATA[<p>Ich hab mir schon gedacht, dass der Spruch mit dem Ratespiel kommt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Aber du hast mir die Antwort trotzdem geliefert, ich hab &lt;vector&gt; nicht inkludiert, ich versuch jetzt mal mein Programm umzubauen und meld mich nochmal bei Problemen. Danke nochmal.<br />
Bis dann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281367</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Wed, 09 May 2007 08:11:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Wed, 09 May 2007 09:59:45 GMT]]></title><description><![CDATA[<p>Uff-geschafft-läuft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Hattest Recht ist eleganter, ich danke dir für deine super Hilfe.<br />
Bis zum nächsten Mal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281423</guid><dc:creator><![CDATA[ITAzubi23]]></dc:creator><pubDate>Wed, 09 May 2007 09:59:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Verknüpfung 2er Funktionen on Wed, 09 May 2007 11:21:51 GMT]]></title><description><![CDATA[<p>ITAzubi23 schrieb:</p>
<blockquote>
<p>Ich hab mir schon gedacht, dass der Spruch mit dem Ratespiel kommt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Ja, der Spruch mit der Kristallkugel wirkt nicht mehr <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/1281499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281499</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 09 May 2007 11:21:51 GMT</pubDate></item></channel></rss>