<?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[Neue Textfiles automatisch erkennen &amp;amp; verarbeiten]]></title><description><![CDATA[<p>Hallo zusammen <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>
<p>mir ist hier schon mal so super geholfen, dass ich direkt noch mal Rat suchen muss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich hab ein Programm, dass Dateien konvertiert. Jetzt ist es so, dass ca. jede Minute eine neue Ursprungsdatei generiert wird. Ist es möglich, dass mein Programm automatisch erkennt, dass eine neue Datei in dem angegebenen Order hinzugekommen ist?<br />
Also dass ich den Ordner angebe, dass Programm schläft bis eine neue Datei im Ordner erscheint, Programm konvertiert die Daten und schläft bis zur nächsten neuen Datei.</p>
<p>Irgendwie konnte ne Googlesuche mir dabei nicht weiterhelfen... Hab leider keine Ahnung ob und wie das wenn überhaupt möglich ist...</p>
<p>Bin für jeden Tipp und Ratschlag super dankbar! <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/topic/327536/neue-textfiles-automatisch-erkennen-amp-verarbeiten</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 01:03:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327536.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Aug 2014 10:11:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 10:11:48 GMT]]></title><description><![CDATA[<p>Hallo zusammen <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>
<p>mir ist hier schon mal so super geholfen, dass ich direkt noch mal Rat suchen muss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich hab ein Programm, dass Dateien konvertiert. Jetzt ist es so, dass ca. jede Minute eine neue Ursprungsdatei generiert wird. Ist es möglich, dass mein Programm automatisch erkennt, dass eine neue Datei in dem angegebenen Order hinzugekommen ist?<br />
Also dass ich den Ordner angebe, dass Programm schläft bis eine neue Datei im Ordner erscheint, Programm konvertiert die Daten und schläft bis zur nächsten neuen Datei.</p>
<p>Irgendwie konnte ne Googlesuche mir dabei nicht weiterhelfen... Hab leider keine Ahnung ob und wie das wenn überhaupt möglich ist...</p>
<p>Bin für jeden Tipp und Ratschlag super dankbar! <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/2413894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413894</guid><dc:creator><![CDATA[antje]]></dc:creator><pubDate>Mon, 18 Aug 2014 10:11:48 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 10:17:31 GMT]]></title><description><![CDATA[<blockquote>
<p>Ist es möglich, dass mein Programm automatisch erkennt, dass eine neue Datei in dem angegebenen Order hinzugekommen ist?</p>
</blockquote>
<p>Ja, aber nicht mit der C++-Standardbibliothek. Dafür kannst du die WinAPI verwenden, oder aber auch Boost.Filesystem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413895</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 18 Aug 2014 10:17:31 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 10:18:36 GMT]]></title><description><![CDATA[<p>Ist betriebssystemabhämgig und geht vermutlich. Welches haste? Linux, Windows, .NET?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413896</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 18 Aug 2014 10:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 10:23:37 GMT]]></title><description><![CDATA[<p>Da gibt´s zwei Ansätze:</p>
<ol>
<li>
<p>du benutzt OS-spezifische Funktionen, unter Win32 gibt es z.b. ReadDirectoryChangesW, das u.A. Verzeichnisse überwachen kann.</p>
</li>
<li>
<p>du liest zu Programmstart alle Dateinamen in einen vektor und prüfst zyklisch, ob eine neue Datei hinzugekommen ist. Könnte mit der Zeit etwas träge werden, wenn sich sehr viele Dateien im Ordner sammeln.</p>
</li>
</ol>
<p>Wie merkst du dir, ob eine Datei schon bearbeitet wurde? Darfst du sie löschen/verschieben oder setzt du ein Dateiflag?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413897</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 18 Aug 2014 10:23:37 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 14:38:38 GMT]]></title><description><![CDATA[<p>Vielen Dank für die schnellen Antworten! <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>
<p>Also ich arbeite mit Visual Studio 2010 auf nem Windows 7 Rechner. Was käme dann noch in Frage? Also für Windows <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Es werden immer nur ca. 50 Dateien im Ordner behalten. Also wenn ne neue Datei kommt fliegt die Älteste raus. Der Name der Datei ist einfach durchnummeriert, also wollte ich mir die Nr. der letzen Datei merken, die ich gelesen hab und anhand dessen Testen ob ne neue, mit größerer Nr. vorhanden ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413939</guid><dc:creator><![CDATA[antje]]></dc:creator><pubDate>Mon, 18 Aug 2014 14:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 15:10:27 GMT]]></title><description><![CDATA[<p>Und was passiert, wenn dein Programm einige Zeit nicht läuft und in dieser Zeit neue Dateien hinzukommen? Wie unterscheidest du dann zu Programmstart, welche Dateien bereits behandelt worden sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413947</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 18 Aug 2014 15:10:27 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 15:42:23 GMT]]></title><description><![CDATA[<p>Mit &quot;Nr. der letzen Datei merken&quot; ist ja vielleicht persistent merken gemeint.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413955</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 18 Aug 2014 15:42:23 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 16:00:49 GMT]]></title><description><![CDATA[<p>Ich hatte gerade langeweile und habe mal schnell ein Beispiel abgetippt. Das einzige was du hier speichern musst ist die letzte ausführung deines Programms in time_t.</p>
<pre><code>#include &lt;boost/filesystem.hpp&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;ctime&gt;
#include &lt;chrono&gt;

std::vector&lt; boost::filesystem::path &gt; getFilesFromDirectory( const std::string&amp; path )
{
    boost::filesystem::path dir( path );
    std::vector&lt; boost::filesystem::path &gt; files;

    if( !boost::filesystem::is_directory( dir ) )
    {
        return files;
    }

    boost::filesystem::directory_iterator end;
    for( boost::filesystem::directory_iterator iter( path ); iter != end; ++iter )
    {
        if( boost::filesystem::is_regular_file( *iter ) )
        {
            files.push_back( *iter );
        }
    }
    return files;
}

bool isFileModifiedAfter( const boost::filesystem::path&amp; path, const std::time_t&amp; time )
{
    std::time_t lastModified = boost::filesystem::last_write_time( path );
    return lastModified &gt; time;
}

int main() try
{
    auto files = getFilesFromDirectory( &quot;/home/user/Pictures&quot; );

    //beispeil: Programm wurde vor 24 Stunden das letzte mal ausgeführt
    std::chrono::time_point&lt;std::chrono::system_clock&gt; currentTime( std::chrono::system_clock::now() );
    std::time_t lastRuntime = std::chrono::system_clock::to_time_t( currentTime - std::chrono::hours(24) );

    for( auto iter : files )
    {
        if( isFileModifiedAfter( iter, lastRuntime ) )
        {
            std::cout &lt;&lt; iter.string() &lt;&lt; &quot;\n&quot;;
        }
    }
}
catch(...)
{
    std::cerr &lt;&lt; &quot;AUA!!!\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2413956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413956</guid><dc:creator><![CDATA[DerNoob]]></dc:creator><pubDate>Mon, 18 Aug 2014 16:00:49 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 16:16:49 GMT]]></title><description><![CDATA[<p>Danke für das Beispiel! Ich werd es mal einbauen und ausprobieren <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>
<p>Also wenn mein Programm länger als eine Stunde nicht gelaufen hat weiß ich sicher, dass alle Dateien, die sich zur Zeit im Ordner befinden noch nicht konvertiert wurden. Es ist so, dass die Dateien innerhalb einer Stunde alle ausgetauscht werden. Jede Minute kommt ja eine Neue, die eine Alte verdrängt und da nur ca. 50 im Ordner sein dürfen wird altes Zeug ruck zuck gelöscht. Nachdem die Dateien im Ordner erschienen sind werden die auch nicht mehr bearbeitet. Wenn die einmal konvertiert sind, sind die absolut nutzlos <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413959</guid><dc:creator><![CDATA[antje]]></dc:creator><pubDate>Mon, 18 Aug 2014 16:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 17:02:17 GMT]]></title><description><![CDATA[<pre><code>boost::filesystem::directory_iterator end;
    for( boost::filesystem::directory_iterator iter( path ); iter != end; ++iter )
    {
        if( boost::filesystem::is_regular_file( *iter ) )
        {
            files.push_back( *iter );
        }
    }
</code></pre>
<p>Wie wärs mit</p>
<pre><code>std::copy_if( boost::filesystem::directory_iterator(path), {}, std::back_inserter(files), boost::filesystem::is_regular_file);
</code></pre>
<p>(ungetestet)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413972</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 18 Aug 2014 17:02:17 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 17:16:53 GMT]]></title><description><![CDATA[<p>Wie wär's mit?</p>
<pre><code>template &lt;typename OutputIterator&gt;
void getFilesFromDirectory( boost::filesystem::path path, OutputIterator out )
{
    if( !boost::filesystem::is_directory( dir ) )
        throw std::domain_error{};

    std::copy_if( boost::filesystem::directory_iterator(path), {}, out, boost::filesystem::is_regular_file);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2413975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413975</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 18 Aug 2014 17:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 18:19:42 GMT]]></title><description><![CDATA[<p>Ich würde dabei auf #2 des Doktors setzen, leicht modifiziert</p>
<p>DocShoe schrieb:</p>
<blockquote>
<ol start="2">
<li>du liest zu Programmstart alle Dateinamen in einen vektor und prüfst zyklisch, ob eine neue Datei hinzugekommen ist. Könnte mit der Zeit etwas träge werden, wenn sich sehr viele Dateien im Ordner sammeln.</li>
</ol>
</blockquote>
<p>Modifikation: du holst dir eine Liste der Filenamen in dem Verzeichnis inklusive dem &quot;last write&quot; Datum zu jedem File.<br />
Dann holst du dir die selbe Liste für das Ausgabeverzeichnis, also das wo du die konvertierten Files reinlegst.<br />
Und dann suchst du in der ersten Liste nach (name, datum) Paaren die in der 2. Liste nicht vorkommen.</p>
<p>Dadurch erkennst du wenn neue Files dazukommen, und auch wenn alte Files geändert werden.</p>
<p>Die neuen bzw. geänderten Files konvertierst du dann, und nach dem Konvertieren setzt du das &quot;last write&quot; Datum des konvertierten Files auf das des Original-Files. Dadurch wird das File dann beim nächsten Durchlauf nicht als &quot;geändert&quot; erkannt.</p>
<p>Bzw. falls du die Original-Files nach dem Konvertieren löscht oder in ein anderes Verzeichnis verschiebst, kannst du dir den Aufwand natürlich auch sparen <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 />
Dann müsstest du allerdings sowieso nur prüfen ob in dem Verzeichnis überhaupt irgendwelche Dateien drin sind, weil eh alles was da ist noch konvertiert werden muss.<br />
Was übrigens auch eine recht elegante Lösung wäre. Falls sich damit alle deine Anforderungen erfüllen lassen, würde ich darüber nachdenken ob es nicht besser wäre es so zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413991</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 18 Aug 2014 18:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Mon, 18 Aug 2014 20:14:09 GMT]]></title><description><![CDATA[<p>antje schrieb:</p>
<blockquote>
<p>schläft</p>
</blockquote>
<p><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa365261%28v=vs.85%29.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/windows/desktop/aa365261(v=vs.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2414028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2414028</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 18 Aug 2014 20:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Tue, 19 Aug 2014 05:53:15 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><strong>Bzw. falls du die Original-Files nach dem Konvertieren löscht</strong> oder in ein anderes Verzeichnis verschiebst, kannst du dir den Aufwand natürlich auch sparen <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 />
Dann müsstest du allerdings sowieso nur prüfen ob in dem Verzeichnis überhaupt irgendwelche Dateien drin sind, weil eh alles was da ist noch konvertiert werden muss.<br />
Was übrigens auch eine recht elegante Lösung wäre. Falls sich damit alle deine Anforderungen erfüllen lassen, würde ich darüber nachdenken ob es nicht besser wäre es so zu machen.</p>
</blockquote>
<p>Da die Dateien nach der Konvertierung</p>
<p>antje schrieb:</p>
<blockquote>
<p>absolut nutzlos</p>
</blockquote>
<p>sind, würde ich es genau so machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2414086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2414086</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Tue, 19 Aug 2014 05:53:15 GMT</pubDate></item><item><title><![CDATA[Reply to Neue Textfiles automatisch erkennen &amp;amp; verarbeiten on Tue, 19 Aug 2014 10:38:54 GMT]]></title><description><![CDATA[<p>Dann ist die Aufgabe ja echt trivial.<br />
Lässt sich mit einem Batch-File umsetzen.<br />
Been there, done that, got the T-shirt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2414111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2414111</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 19 Aug 2014 10:38:54 GMT</pubDate></item></channel></rss>