<?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[FindFirst &#x2F; findNext und Dateiattribut A]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Versuche mit FindFirst / FindNext alle JPG dateien in einem bestimmten Verzeichnis in einer Stringlist zu speichern. Funktioniert soweit auch ganz gut. Jedoch wenn dem JPG das Dateiattribut A fehlt wird die Datei nicht gefunden. Hier mal der Quelltext:</p>
<pre><code class="language-cpp">TSearchRec sr;
        if(FindFirst(sPath + &quot;\\*.jpg&quot;, 0x02F, sr) == 0)
        {
                do
                {
                        if ((sr.Attr &amp; 0x02F) != 0)
                        {
                                slFiles-&gt;Add(sPath + &quot;\\&quot; + sr.Name);
                        }
                } while (FindNext(sr) == 0);
                FindClose(sr);
        }
</code></pre>
<p>Das Attribut 0x2f bedeutet ja alles auser Verzeichnisse.<br />
Wenn jedoch das Dateiattribut A fehlt, wird bei sr.Attr 0x80 oder 0x200 angezeigt. Diese Bedeutung kann ich allerdings nicht in der Hilfe finden.<br />
Hat hierfür irgendjemand eine Erklärung?</p>
<p>MfG Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158591/findfirst-findnext-und-dateiattribut-a</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 22:04:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158591.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Sep 2006 17:07:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Wed, 06 Sep 2006 17:07:07 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Versuche mit FindFirst / FindNext alle JPG dateien in einem bestimmten Verzeichnis in einer Stringlist zu speichern. Funktioniert soweit auch ganz gut. Jedoch wenn dem JPG das Dateiattribut A fehlt wird die Datei nicht gefunden. Hier mal der Quelltext:</p>
<pre><code class="language-cpp">TSearchRec sr;
        if(FindFirst(sPath + &quot;\\*.jpg&quot;, 0x02F, sr) == 0)
        {
                do
                {
                        if ((sr.Attr &amp; 0x02F) != 0)
                        {
                                slFiles-&gt;Add(sPath + &quot;\\&quot; + sr.Name);
                        }
                } while (FindNext(sr) == 0);
                FindClose(sr);
        }
</code></pre>
<p>Das Attribut 0x2f bedeutet ja alles auser Verzeichnisse.<br />
Wenn jedoch das Dateiattribut A fehlt, wird bei sr.Attr 0x80 oder 0x200 angezeigt. Diese Bedeutung kann ich allerdings nicht in der Hilfe finden.<br />
Hat hierfür irgendjemand eine Erklärung?</p>
<p>MfG Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132532</guid><dc:creator><![CDATA[Stephan_]]></dc:creator><pubDate>Wed, 06 Sep 2006 17:07:07 GMT</pubDate></item><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Wed, 06 Sep 2006 19:13:18 GMT]]></title><description><![CDATA[<p>1. Warum nimmst du nicht einen der folgenden Ausdrücke aus der Hilfe:</p>
<pre><code>Konstante       Wert            Beschreibung

faReadOnly      $00000001       Schreibgeschützte Datei
faHidden        $00000002       Versteckte Datei
faSysFile       $00000004       Systemdatei
faVolumeID      $00000008       Laufwerks-ID-Datei
faDirectory     $00000010       Verzeichnis
faArchive       $00000020       Archivdatei
faAnyFile       $0000003F       Beliebige Datei
</code></pre>
<p>Und da siehst du auch, dass du nach versteckten Dateien suchst.</p>
<pre><code class="language-cpp">TSearchRec sr;
if(FindFirst(sPath + &quot;*&quot;, faAny, sr) == 0)
{
 while(FindNext(sr))
 { if(ExtractFileExt(sr.Name)==&quot;.jpg&quot;) slFiles-&gt;Add(sPath + &quot;\\&quot; + sr.Name); }
 FindClose(sr);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1132597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132597</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Wed, 06 Sep 2006 19:13:18 GMT</pubDate></item><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Thu, 07 Sep 2006 05:25:53 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13869">@rean</a><br />
Also mit der Konstante 0x3f hab ich es auch schon ausprobiert und es hat genausowenig funktioniert. Ob ich nun 0x3f oder faAnyFile verwende, macht doch hoffentlich keinen Unterschied.<br />
Werde ich jedoch auf jeden Fall noch ausprobieren.</p>
<p>MfG Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132700</guid><dc:creator><![CDATA[Stephan_]]></dc:creator><pubDate>Thu, 07 Sep 2006 05:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Thu, 07 Sep 2006 07:35:07 GMT]]></title><description><![CDATA[<p>Warum verwendest Du überhaupt unlesbare Konstanten? Mit 3F kann kein Mensch was anfangen. Mit faAnyFile schon...<br />
Hast Du es ausprobiert. Mit den Konstanenten hab ich es noch nicht probiert, aber faAnyFile funktioniert einwandfrei.</p>
<p>Haben vielleicht einige Dateien die Endung JPG? Du prüfst ja nur auf jpg...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1132738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1132738</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 Sep 2006 07:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Thu, 07 Sep 2006 14:48:39 GMT]]></title><description><![CDATA[<p>Dann debug das Teil doch mal.</p>
<p>Mir sind in meinem Code aber schon ein paar Fehlerquellen aufgefallen.<br />
1. Habe ich das \\ vor dem Sternchen vergessen.<br />
2. Um auch Dateien zu überprüfen deren Endung groß geschrieben ist bietet sich AnsiCompareIC an.<br />
3. faAny gibts garnicht. Muss natürlich faAnyFile heißen<br />
4. FindNext gibt im Erfolgsfall 0. Also muss es !FindFirst oder FindFirst()==0 heißen.<br />
Ja man sollte seinen eigenen Text doch mal ausprobieren :p</p>
<p>Das müsste jetzt aber wirklich funktionieren:</p>
<pre><code class="language-cpp">TSearchRec sr;
if(FindFirst(sPath + &quot;\\*&quot;, faAnyFile, sr) == 0)
{
 while(FindNext(sr)==0)
 { if(ExtractFileExt(sr.Name).AnsiCompareIC(&quot;.jpg&quot;)==0) rich-&gt;Lines-&gt;Add(sPath + &quot;\\&quot; + sr.Name); }
 FindClose(sr);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1133109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133109</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Thu, 07 Sep 2006 14:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Thu, 07 Sep 2006 17:33:07 GMT]]></title><description><![CDATA[<p>Hallo rean</p>
<p>Die Fehler in deinem Code hab ich mal übersehen, es geht ja ums Prinzip ;-))<br />
Wenn ich bei FindFirst auf *.jpg prüfen werden auch Dateien mit *.JPG gefunden.<br />
Ob 3f oder faAnyFile macht keinen Unterschied.<br />
Allerdings die Verundung der Attribute der gefundenen Datei mit den erwarteten geht immer noch schief.<br />
Jedoch wenn ich es mir genau überlege, brauch ich dies ja gar nicht. Es sollte dann folgender Code ausreichend sein:</p>
<pre><code class="language-cpp">if(FindFirst(sPath + &quot;\\*.jpg&quot;, faAnyFile, sr) == 0)
        {
                do
                {
                        slFiles-&gt;Add(sPath + &quot;\\&quot; + sr.Name);
                } while (FindNext(sr) == 0);
                FindClose(sr);
        }
</code></pre>
<p>Bei deiner Schleife fällt mir noch auf, das die erste gefundene Datei nicht in die Liste eingetragen werden müßte. Jedoch nicht ausprobiert.</p>
<p>Vielen Dank<br />
MfG Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133221</guid><dc:creator><![CDATA[Stephan_]]></dc:creator><pubDate>Thu, 07 Sep 2006 17:33:07 GMT</pubDate></item><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Thu, 07 Sep 2006 20:13:05 GMT]]></title><description><![CDATA[<p>1. Würde ich trotzdem die defines nehmen wenn sie schon mal da sind <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="🙄"
    /><br />
Wenn du mal in einem Team programmieren solltest ist sowas völlig inakzeptabel weil deine Kollegen dann erst ewig die Hilfe durchsuchen müssen damit sie wissen was du jetzt genau machen willst. Deshalb lieber gleich einen ordentlichen Stil angewöhnen.<br />
2. Liefert FindFirst beim Ausführen mit einem Stern grundsätzlich als erstes das Objekt zum angegeben Verzeichnis zurück.<br />
Heißt also, dass bei meinem Code auch die erste Datei gefunden wird. Macht also keinen großen Unterschied ob man eine kopf- oder fußgesteuerte Schleife verwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133306</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Thu, 07 Sep 2006 20:13:05 GMT</pubDate></item><item><title><![CDATA[Reply to FindFirst &#x2F; findNext und Dateiattribut A on Fri, 08 Sep 2006 07:36:20 GMT]]></title><description><![CDATA[<p>Hallo rean</p>
<p>1. Du hast natürlich Recht, jedoch um die 0x2f zu erreichen müßten fast alle Attribute einzeln angegeben werden. da war ich etwas schreibfaul, dies ist jedoch keine Entschuldigung.</p>
<p>2. Da hast du wohl auch Recht. Denn an das Verzeichniss hab ich gar nicht gedacht. war eben nur eine rein theoretische Überlegung.</p>
<p>Danke für deine Hilfe.<br />
MfG Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133451</guid><dc:creator><![CDATA[Stephan_]]></dc:creator><pubDate>Fri, 08 Sep 2006 07:36:20 GMT</pubDate></item></channel></rss>