<?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[Frage zu Contains()]]></title><description><![CDATA[<p>Hi.</p>
<pre><code class="language-cpp">void __fastcall TForm1::RichEdit1KeyPress(TObject *Sender, char &amp;Key)
{
  typedef Set&lt;char,'0','1','2','3','4','5','6','7','8','9','-','.',':'&gt; Input;
  Input text;
  if (!text.Contains(Key))
  {
    // Falsches Zeichen, löschen!
    Key = 0;
  }
}
</code></pre>
<p>Hier ist die typedef Zeile falsch .. aber wie kann ich eine Solche Liste anlegen und dann so prüfen wie ich es möchte? Auf eine if oder switch habe ich eigentlich keine Lust. Alternativ könnte man nen Array Anlegen und dieses per Schleife durchgehen, es gibt doch da bestimmt eine schönere vorhandene Lösung, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/121307/frage-zu-contains</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 00:59:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/121307.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Sep 2005 07:05:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 07:05:06 GMT]]></title><description><![CDATA[<p>Hi.</p>
<pre><code class="language-cpp">void __fastcall TForm1::RichEdit1KeyPress(TObject *Sender, char &amp;Key)
{
  typedef Set&lt;char,'0','1','2','3','4','5','6','7','8','9','-','.',':'&gt; Input;
  Input text;
  if (!text.Contains(Key))
  {
    // Falsches Zeichen, löschen!
    Key = 0;
  }
}
</code></pre>
<p>Hier ist die typedef Zeile falsch .. aber wie kann ich eine Solche Liste anlegen und dann so prüfen wie ich es möchte? Auf eine if oder switch habe ich eigentlich keine Lust. Alternativ könnte man nen Array Anlegen und dieses per Schleife durchgehen, es gibt doch da bestimmt eine schönere vorhandene Lösung, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877536</guid><dc:creator><![CDATA[liony]]></dc:creator><pubDate>Thu, 22 Sep 2005 07:05:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 07:23:40 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>mit dem VCL-Set ist das so nicht möglich, da du nicht einzelne Symbole, sondern nur einen Bereich angeben kannst.</p>
<pre><code class="language-cpp">Set &lt;char, 'A', 'C'&gt; s1;
Set &lt;char, 'X', 'Z'&gt; s2;
</code></pre>
<p>Du kannst aber std::set nehmen, damit kannst du selber jeden einzelnen Wert in dem set festlegen. Sieht in deinem Fall aber auch nicht eleganter aus als ein C-Array mit einer Schleife.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877555</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 22 Sep 2005 07:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 07:34:43 GMT]]></title><description><![CDATA[<p>Schade <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="😞"
    /></p>
<p>Aber was mach ich denn jetzt falsch?</p>
<pre><code class="language-cpp">bool __fastcall TForm1::Contains(char *array, char chr)
{
Caption = IntToStr(sizeof(array)); // &lt;&lt;&lt; gibt 4 aus
    for (int i=0;i&lt;sizeof(array);i++)
    {
    	if (chr==array[i]) return true;
    }
	return false;
}
void __fastcall TForm1::TeRichEdit1KeyPress(TObject *Sender, char &amp;Key)
{
    char array [] = {'0','1','2','3','4','5','6','7','8','9','-','.',':'};
    if (!Contains(array,Key))
    {
    	Key = 0;
    }
}
</code></pre>
<p>warum ist das array in der Contains Funktion nur noch 4bytes bzw was muss ich anders machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877563</guid><dc:creator><![CDATA[liony]]></dc:creator><pubDate>Thu, 22 Sep 2005 07:34:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 07:36:55 GMT]]></title><description><![CDATA[<p>liony schrieb:</p>
<blockquote>
<p>Hi.</p>
<pre><code class="language-cpp">void __fastcall TForm1::RichEdit1KeyPress(TObject *Sender, char &amp;Key)
{
</code></pre>
</blockquote>
<p>na, in dem falle des reagierens auf tastendrücke, muß es ja nicht die star-performance sein.<br />
also</p>
<pre><code class="language-cpp">if (!strchr(&quot;0123456789,.-&quot;,Key))
  {
    // Falsches Zeichen, löschen!
    Key = 0;
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/877567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877567</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 22 Sep 2005 07:36:55 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 07:48:52 GMT]]></title><description><![CDATA[<p>probier mal,</p>
<pre><code class="language-cpp">int arraysize = sizeof(array) / sizeof(array[0]);
</code></pre>
<p>funktioniert aber nicht bei dynamisch angelegten array!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877577</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Thu, 22 Sep 2005 07:48:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 07:52:07 GMT]]></title><description><![CDATA[<p>Danke klappt super! Könnte mir trotzdem jemand den Fehler in meinem Funktionskopf sagen? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/877578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877578</guid><dc:creator><![CDATA[liony]]></dc:creator><pubDate>Thu, 22 Sep 2005 07:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 07:53:52 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/588">@Sunday</a><br />
Da kommt auch 4 raus <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/877581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877581</guid><dc:creator><![CDATA[liony]]></dc:creator><pubDate>Thu, 22 Sep 2005 07:53:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 08:08:16 GMT]]></title><description><![CDATA[<p>ja na klar,</p>
<p>du uebergibst ja das array der funktion und der zeiger wird als 32bit (4byte) geführt -&gt; daher 4byte. du musst die groesse vorher berechnen...</p>
<pre><code class="language-cpp">char array[]   = {'0','1','2','3','4','5','6','7','8','9','-','.',':'};
int  arraysize = sizeof(array) / sizeof(array[0]); 

// aufruf
bool __fastcall TForm1::Contains(char *array, int arraysize, char chr)
{
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/877588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877588</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Thu, 22 Sep 2005 08:08:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 08:11:57 GMT]]></title><description><![CDATA[<p>Sunday schrieb:</p>
<blockquote>
<p>du uebergibst ja das array der funktion und der zeiger wird als 32bit (4byte) geführt -&gt; daher 4byte. du musst die groesse vorher berechnen...</p>
<pre><code class="language-cpp">bool __fastcall TForm1::Contains(char *array, int arraysize, char chr)
{
}
</code></pre>
</blockquote>
<p>oder cooler übergeben</p>
<pre><code class="language-cpp">template&lt;int arraysize&gt;
bool __fastcall TForm1::Contains(char (&amp;array)[arraysize], char chr)
{
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/877591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877591</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 22 Sep 2005 08:11:57 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Contains() on Thu, 22 Sep 2005 08:42:49 GMT]]></title><description><![CDATA[<p>Oder, unter Verwendung der VCL-Klasse AnisString:</p>
<pre><code class="language-cpp">AnsiString ValidKeys = &quot;0123456789-.:&quot;;
if (ValidKeys.AnsiPos(Key) == 0) // ist gedrückte Taste in ValidKeys enthalten?
    Key = 0; // Nein -&gt; Eingabe löschen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/877619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877619</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 Sep 2005 08:42:49 GMT</pubDate></item></channel></rss>