<?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[Wie funktionieren Arrays bei BCB?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich programmiere sehr viel in PHP und bin wahrscheinlich von der Vielseitigkeit der Funktionen verwöhnt.</p>
<p>Bei BCB ist dies eine ganz schön Umgewöhnung. Jedoch sollte es auch möglich sein, ein Array vom Typ AnsiString anzulegen und dann auf bestimmte Einträge abzufragen.</p>
<p>Hier mein Ansatz:</p>
<pre><code class="language-cpp">AnsiString aExt[] = { &quot;jpg&quot;, &quot;jpeg&quot;, &quot;gif&quot;, &quot;png&quot; } ;

//---------------------------------------------------------------------------
bool __fastcall TMainFrm::in_array( AnsiString sText, AnsiString sArray ) {
        for ( int i = 0 ; i &lt; sizeof(sArray) ; i++ ) {
                if ( sArray[i] == sText ) {
                        return true ;
                }
        }
        return false ;
}
</code></pre>
<p>In der Funktion <strong>in_array</strong> soll geprüft werden, ob sText in sArray vorhanden ist. Nur durch die Abfrage sArray[i] == sText sollte ich sicherlich nie eine Übereinstimmung bekommen, da sArray[i] bestimmt den Einzelnen Charakter zurück gibt und nicht &quot;jpg&quot;, &quot;gif&quot; und Co.</p>
<p>Daher meine Frage wie das ganze Funktionieren kann oder ob der ein oder andere eventuell ein Schnipsel für mich hat.</p>
<p>Vielen Dank für Eure Aufmerksamkeit,<br />
Heinz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192825/wie-funktionieren-arrays-bei-bcb</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 22:49:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192825.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Sep 2007 07:32:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie funktionieren Arrays bei BCB? on Wed, 19 Sep 2007 07:32:24 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich programmiere sehr viel in PHP und bin wahrscheinlich von der Vielseitigkeit der Funktionen verwöhnt.</p>
<p>Bei BCB ist dies eine ganz schön Umgewöhnung. Jedoch sollte es auch möglich sein, ein Array vom Typ AnsiString anzulegen und dann auf bestimmte Einträge abzufragen.</p>
<p>Hier mein Ansatz:</p>
<pre><code class="language-cpp">AnsiString aExt[] = { &quot;jpg&quot;, &quot;jpeg&quot;, &quot;gif&quot;, &quot;png&quot; } ;

//---------------------------------------------------------------------------
bool __fastcall TMainFrm::in_array( AnsiString sText, AnsiString sArray ) {
        for ( int i = 0 ; i &lt; sizeof(sArray) ; i++ ) {
                if ( sArray[i] == sText ) {
                        return true ;
                }
        }
        return false ;
}
</code></pre>
<p>In der Funktion <strong>in_array</strong> soll geprüft werden, ob sText in sArray vorhanden ist. Nur durch die Abfrage sArray[i] == sText sollte ich sicherlich nie eine Übereinstimmung bekommen, da sArray[i] bestimmt den Einzelnen Charakter zurück gibt und nicht &quot;jpg&quot;, &quot;gif&quot; und Co.</p>
<p>Daher meine Frage wie das ganze Funktionieren kann oder ob der ein oder andere eventuell ein Schnipsel für mich hat.</p>
<p>Vielen Dank für Eure Aufmerksamkeit,<br />
Heinz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368202</guid><dc:creator><![CDATA[Heinzelmännchen]]></dc:creator><pubDate>Wed, 19 Sep 2007 07:32:24 GMT</pubDate></item><item><title><![CDATA[Reply to Wie funktionieren Arrays bei BCB? on Wed, 19 Sep 2007 07:40:30 GMT]]></title><description><![CDATA[<p>Erstmal ist &quot;sArray&quot; nur ein einzelner String und <strong>kein</strong> Array. (ein Array würdest du per <code>AnsiString sArray[]</code> oder <code>AnsiString* sArray</code> (Zeiger-Syntax) übergeben)</p>
<p>Zweitens kann man in C++ nicht (portabel) herausfinden, wieviele Elemente ein übergebenes Array hat (im Hauptprogramm kannst du noch <code>sizeof(aExt)/sizeof(aExt[0]</code> verwenden, aber in der Funktion hast du nur einen Zeiger und sizeof liefert dessen Größe). Da mußt du im Ernstfall der Funktion verraten, wie groß das Array ist - oder Containerklassen ala std::vector verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368210</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 19 Sep 2007 07:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wie funktionieren Arrays bei BCB? on Wed, 19 Sep 2007 07:42:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du hast zwar das Array aExt[] angelegt, aber die Suche bezieht sich auf den Parameter sArray. Und dieser Parameter ist vom Typ AnsiString, deshalb liefert der []-Operator auch einen char. Auserdem liefert sizeof auf einen AnsiString nicht das Ergebnis was dir vorschwebt.<br />
Du must den Parameter eben auch als Array übergeben :</p>
<pre><code class="language-cpp">bool __fastcall TMainFrm::in_array( AnsiString sText, AnsiString* sArray, int Size ) {
        for ( int i = 0 ; i &lt; Size ; i++ ) {
                if ( sArray[i] == sText ) {
                        return true ;
                }
        }
        return false ;
}
...
in_array(&quot;jpeg&quot;, aExt, 4);
</code></pre>
<p>/Edit : Zu langsam aber mit Code <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>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368212</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 19 Sep 2007 07:42:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wie funktionieren Arrays bei BCB? on Wed, 19 Sep 2007 08:34:54 GMT]]></title><description><![CDATA[<p>Okay, das mit der Übergabe verstehe ich schon.<br />
Doch wie bekomme ich jetzt die Anzahl der Elemente von aExt heraus und kann ich aExt auch dynamisch erweitern?</p>
<pre><code class="language-cpp">aExt[] = { &quot;bmp&quot; } ;
// aExt würde dann aus 5 Elementen bestehen
// &quot;jpg&quot;, &quot;jpeg&quot;, &quot;gif&quot;, &quot;png&quot;, &quot;bmp&quot;
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a>: Code ist immer gut. <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/1368240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368240</guid><dc:creator><![CDATA[Heinzelmännchen]]></dc:creator><pubDate>Wed, 19 Sep 2007 08:34:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie funktionieren Arrays bei BCB? on Wed, 19 Sep 2007 09:08:23 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Die Berechnung der Elemente eines <strong>statisches</strong> Array hat CStoll ja schon gezeigt</p>
<pre><code class="language-cpp">int Size = sizeof(aExt)/sizeof(aExt[0]);
</code></pre>
<p>Achtung das geht nicht bei dynamischen Arrays, also wenn du einen Pointer auf das erste Element hast! Da must du die Größe manuell mitspeichern.<br />
Deshalb ist es in C++ üblich für solche dynamischen Arrays das ebenfalls angesprochene <em>std::vector</em> zu verwenden. Das verwaltet den Speicher seiner Elemente selber und kennt auch deren Anzahl. Siehe den Magazin-Artikel &quot;STL-Container&quot; hier im Forum.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368244</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 19 Sep 2007 09:08:23 GMT</pubDate></item></channel></rss>