<?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[Rekursive Funktion verlassen]]></title><description><![CDATA[<p>Hi,</p>
<p>ich verwende eine Rekursive Funktion um komplette Ordner mit allen Unterordner und Dateien zu kopieren. Dies dauert ja nach größe sehr lange und ich möchte in meiner Anwendung gerne eine Möglichkeit zum Abbruch anbieten.</p>
<p>Wie kann ich dies am besten machen? Mit return die Funktion beenden wird ja nicht gehen.</p>
<p>Jendrik</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/79798/rekursive-funktion-verlassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 03:28:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/79798.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Jul 2004 15:03:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 15:03:41 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich verwende eine Rekursive Funktion um komplette Ordner mit allen Unterordner und Dateien zu kopieren. Dies dauert ja nach größe sehr lange und ich möchte in meiner Anwendung gerne eine Möglichkeit zum Abbruch anbieten.</p>
<p>Wie kann ich dies am besten machen? Mit return die Funktion beenden wird ja nicht gehen.</p>
<p>Jendrik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560604</guid><dc:creator><![CDATA[Jendrik Kol]]></dc:creator><pubDate>Wed, 14 Jul 2004 15:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 16:02:53 GMT]]></title><description><![CDATA[<p>Hallo Jendrik,</p>
<p>und warum soll das nicht möglich sein? Wie hast Du das Kopieren denn implementiert?</p>
<p>Ich würde sowieso nur die zu kopierenden Dateien / Ordner in der rekursiven Funktion ermitteln (z.B. in eine TStringList). Diese Dateien würde ich dann in einer normalen Schleife abarbeiten.</p>
<p>Ach ja, zum Abbrechen: Ich weiß nicht, wie den Kopiervorgang durchführst. Möglicherweise ist es notwendig den Kopiervorgang als solches in einen Thread auszulagern, damit die Anwendung während des Kopierens bedienbar bleibt.<br />
Aber dann brauchst Du nur noch ein globale Variable, die Du beim Click auf den Abbrechen-Button setzt und die Du in der Schleife oder beim Aufruf der rekursiven Funktion auf ihren prüfst.</p>
<p>Grüße Joe_M.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560655</guid><dc:creator><![CDATA[zufaulzumeinloggen]]></dc:creator><pubDate>Wed, 14 Jul 2004 16:02:53 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 16:05:34 GMT]]></title><description><![CDATA[<p>Alternative: in der Schleife Application-&gt;ProcessMessages() aufrufen, dann werden die bis dahin angefallenen Ereignisse abgearbeitet.</p>
<p>@zufaulzumeinloggen: ist es nicht einfacher sich einzuloggen, als jedes mal diesen Namen zu tippen? <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/560657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560657</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Wed, 14 Jul 2004 16:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 16:07:29 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4916">@dasd</a>: Schlimmer ist, dass ich ein paar Wörter ausgelassen hab'. Und ich kann's nicht korrigieren... Das Einloggen ist so nervig, weil man die Maus dafür nehmen muß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560659</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 14 Jul 2004 16:07:29 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 17:38:38 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Das Einloggen ist so nervig, weil man die Maus dafür nehmen muß.</p>
</blockquote>
<p>Kann man die Edits nicht auch per TAB erreichen? Naja, was solls... :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560729</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Wed, 14 Jul 2004 17:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 18:31:20 GMT]]></title><description><![CDATA[<p>Dasd schrieb:</p>
<blockquote>
<p>Kann man die Edits nicht auch per TAB erreichen? Naja, was solls... :p</p>
</blockquote>
<p>Ja kann man, sind aber leider 35 (in Worten: FÜNFUNDDREISSIG) Tabs nötig... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Dasd schrieb:</p>
<blockquote>
<p>Alternative: in der Schleife Application-&gt;ProcessMessages() aufrufen, dann werden die bis dahin angefallenen Ereignisse abgearbeitet.</p>
</blockquote>
<p>Das sehe ich eigentlich nicht als Alternative, sondern als notwendiges Bestandteil, solange er keine Threads benutzt. Aber Du hast recht, ich hätte darauf hinweisen müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560778</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 14 Jul 2004 18:31:20 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 18:50:20 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>was ist denn das für eine idee, alles in ein array zu legen. stell dir vor du willst 80gb daten mit über 5 millionen dateien kopieren.</p>
<p>das läuft rekursiv perfekt.</p>
<p>hab jetzt in der rekursion nen flag drinnen welches bei bedarf return ausgibt.</p>
<p>jendrik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560797</guid><dc:creator><![CDATA[Jendrik Kol]]></dc:creator><pubDate>Wed, 14 Jul 2004 18:50:20 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 19:08:47 GMT]]></title><description><![CDATA[<p>Du sollst Die Dateinamen (inkl. relativem Pfad) in einer StringList speichern nicht die Daten. Oder ist es wieder nur ein Drauloskopiertool, dass nicht mal vorher prüft, ob der Platz reicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560822</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 14 Jul 2004 19:08:47 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 19:26:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich meine ja auch nicht die daten. nur ein array mit undendlich vielen einträgen wo 5 millionen einträge gerne mal benutzt werden, ist das auch nicht ne gute lösung.</p>
<p>was ist an dem array denn besser?</p>
<p>wozu gibst denn rekursion?</p>
<p>jendrik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560848</guid><dc:creator><![CDATA[Jendrik Kol]]></dc:creator><pubDate>Wed, 14 Jul 2004 19:26:18 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Wed, 14 Jul 2004 20:28:14 GMT]]></title><description><![CDATA[<p>Jendrik Kol schrieb:</p>
<blockquote>
<p>wozu gibst denn rekursion?</p>
</blockquote>
<p>Rekursion ist schon richtig, nur eben nicht sofort kopieren, sobald du eine Datei findest, sondern erst einmal in einer Liste speichern. Und ich wage mal zu bezweifeln, dass deine 5M Dateien alle in einem Verzeichnis liegen. Je nach Verschachtelung kann auch das sehr speicheraufwendig werden.</p>
<p>Und wie Joe_M bereits sagte, kannst du auf diese Weise erst einmal die Gesamtgröße ermitteln und feststellen, ob das Kopieren überhaupt möglich ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560902</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Wed, 14 Jul 2004 20:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion verlassen on Thu, 15 Jul 2004 05:24:04 GMT]]></title><description><![CDATA[<p>Auf was hast Du die Stackgröße eigentlich eingestellt?<br />
Mit der Standardstackeinstellung tritt bei knapp 65000 rekursiven Aufrufen ein Stacküberlauf auf...</p>
<p>Es geht ja auch nicht darum keine Rekursion zu verwenden, nur würde ich eben nur die Namen in der rekursiven Funktion ermitteln. Das hat eben den Vorteil, dass Prüfungen durchgeführt werden können, bevor der eigentliche Kopiervorgang gestartet wird. Außerdem kannst Du dann eine recht genaue Restzeitanzeige machen.</p>
<p>Kleine xxx-Bildchen Sammlung? Oder wie bekommst Du sonst 5000000 Dateien auf ein 80 GB Laufwerk?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/560991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/560991</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 15 Jul 2004 05:24:04 GMT</pubDate></item></channel></rss>