<?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[ThrowIfOutOfRange(idx) AnsiString]]></title><description><![CDATA[<p>Hallo ich hoff mir kann man mir helfen komm einfach nicht weiter. Habe nach meinen Erkenntnissen schon alles mögliche probiert doch komme einfach nicht weiter.</p>
<p>Das hier ist mein Codeteil der mir Porbleme bereitet. Er soll einfach den AnsiString &quot;Wort&quot; zufällig sortieren. Das klappt auch problemlos aber nicht beliebig oft. d.h. nach dem 5 mal ausführen kommt bei mir eine fehlermeldung und ich fliege in die headerdatei dstring.h und dort zeigt er mir einen fehler bei:</p>
<p>char&amp; __fastcall operator [](const int idx)<br />
{<br />
ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead ??<br />
Unique(); // Ensure we're not ref-counted<br />
return Data[idx-1];<br />
}</p>
<p>Ich benutze den C++Builder5 von Borland. Kann mir jemand vll helfen. Hab schon alles mögliche gegoogelt bin aber auf keinen grünen Zweig gekommen. thx <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>Mein Code:</p>
<p>srand( time( NULL ) );</p>
<p>Wort = &quot;bla123&quot;;<br />
str = &quot;&quot;;</p>
<p>for( int i = 0; i &lt; anzahl; i++ )<br />
{<br />
str = str + Wort[rand() % Wort.Length()];<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306319/throwifoutofrange-idx-ansistring</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 05:25:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306319.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Jul 2012 21:54:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Tue, 24 Jul 2012 21:54:19 GMT]]></title><description><![CDATA[<p>Hallo ich hoff mir kann man mir helfen komm einfach nicht weiter. Habe nach meinen Erkenntnissen schon alles mögliche probiert doch komme einfach nicht weiter.</p>
<p>Das hier ist mein Codeteil der mir Porbleme bereitet. Er soll einfach den AnsiString &quot;Wort&quot; zufällig sortieren. Das klappt auch problemlos aber nicht beliebig oft. d.h. nach dem 5 mal ausführen kommt bei mir eine fehlermeldung und ich fliege in die headerdatei dstring.h und dort zeigt er mir einen fehler bei:</p>
<p>char&amp; __fastcall operator [](const int idx)<br />
{<br />
ThrowIfOutOfRange(idx); // Should Range-checking be optional to avoid overhead ??<br />
Unique(); // Ensure we're not ref-counted<br />
return Data[idx-1];<br />
}</p>
<p>Ich benutze den C++Builder5 von Borland. Kann mir jemand vll helfen. Hab schon alles mögliche gegoogelt bin aber auf keinen grünen Zweig gekommen. thx <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>Mein Code:</p>
<p>srand( time( NULL ) );</p>
<p>Wort = &quot;bla123&quot;;<br />
str = &quot;&quot;;</p>
<p>for( int i = 0; i &lt; anzahl; i++ )<br />
{<br />
str = str + Wort[rand() % Wort.Length()];<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235399</guid><dc:creator><![CDATA[Fremik]]></dc:creator><pubDate>Tue, 24 Jul 2012 21:54:19 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Tue, 24 Jul 2012 22:06:32 GMT]]></title><description><![CDATA[<p>das ist aber nicht dein kompletter code.</p>
<p>was sind denn str und Wort für typen? std::string? dann passt Length aber nicht, sondern nur length. aber gesetzt dem fall, wäre das eigentlich soweit richtiger code...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235403</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 24 Jul 2012 22:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Tue, 24 Jul 2012 22:28:25 GMT]]></title><description><![CDATA[<p>Sind beide vom Typ AnsiString. Bzw String. der Fehler kommt bei beiden <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2235410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235410</guid><dc:creator><![CDATA[Fremik]]></dc:creator><pubDate>Tue, 24 Jul 2012 22:28:25 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Tue, 24 Jul 2012 22:31:06 GMT]]></title><description><![CDATA[<p>Also wie gesagt der Code funktioniert aber je nach dem wie groß die variable &quot;anzahl&quot; ist flieg ich zu der dstring.h. Ist anzahl = 50 dann eg immer sofort bei. anzahl = 5 vll beim 5mal ausführen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235411</guid><dc:creator><![CDATA[Fremik]]></dc:creator><pubDate>Tue, 24 Jul 2012 22:31:06 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Tue, 24 Jul 2012 22:36:29 GMT]]></title><description><![CDATA[<p>Fremik schrieb:</p>
<blockquote>
<p>Ich benutze den C++Builder5 von Borland. Kann mir jemand vll helfen. Hab schon alles mögliche gegoogelt bin aber auf keinen grünen Zweig gekommen. thx <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>
</blockquote>
<p>Nimm bloß etwas anderes.</p>
<p>Anscheinend beginnt der Index-Operator bei 1 zu zählen ( <code>return Data[idx-1];</code> ). *schauder* (das müssen Mathematiker verzapft haben)<br />
Du verwendest ihn so als würde er bei 0 anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235412</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 24 Jul 2012 22:36:29 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Tue, 24 Jul 2012 22:50:33 GMT]]></title><description><![CDATA[<p>hm okay hab halt eg immer nur den benutzt und bin eg auch damit zurecht gekommen auch wenn er schon etwas alt ist <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=";D"
      alt="😉"
    /> zuwas sollte man dann tendieren Visual C++ 2010 Express?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235414</guid><dc:creator><![CDATA[Fremik]]></dc:creator><pubDate>Tue, 24 Jul 2012 22:50:33 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Wed, 25 Jul 2012 00:39:40 GMT]]></title><description><![CDATA[<p>Also angenommen du entwickelst für Windows (gibt es Borland für eine andere Plattform? Keine Ahnung...)...</p>
<p>Meine erste Wahl wäre Visual Studio Express 2012. Gibt erst den Release Candidate, aber ganz lange kann die RTM nicht mehr auf sich warten lassen (der Name legt ja wohl nahe dass es noch 2012 kommen soll).</p>
<p>Wenn du nicht warten kannst, weil du z.B. noch heuer releasen musst, dann halt Visual Studio 2010. Der Umstieg auf 2012 sollte auch relativ schmerzlos sein wenns dann heraussen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235420</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 25 Jul 2012 00:39:40 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Wed, 25 Jul 2012 07:36:07 GMT]]></title><description><![CDATA[<p>Borland Special zum Haareraufen:</p>
<p>Der Zugriff auf die Zeichen eines AnsiString sind 1-basiert, nicht wie in C/C++ üblich 0-basiert. Das heißt, deine Zugriffe müssen über das Intervall [1..size()] gehen. Wenn bei <code>[rand() % Wort.Length()</code> zufällig 0 rauskommt gibt´s in <code>operator[]</code> einen Unterlauf und deshalb wird eine Exception geworfen.</p>
<p>PS:<br />
Das soll wohl historische Gründe haben. Das VCL Framework ist in Delphi geschrieben, dessen Vorgänger Pascal die Stringlänge im Element 0 untergebracht hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235453</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 25 Jul 2012 07:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Wed, 25 Jul 2012 10:34:22 GMT]]></title><description><![CDATA[<p>Also danke schön an alle habs Regeln können <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="🙂"
    /> Ist jetzt warscheinlich noch unprofessioneller geworden aber es läuft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>int zufall;<br />
for( int i = 0; i &lt; numChars; i++ )<br />
{<br />
lable:</p>
<p>zufall = rand()% Wort.Length();</p>
<p>if (zufall == 0)<br />
{<br />
goto lable;<br />
}</p>
<p>str = str+Wort[zufall];</p>
<p>}<br />
und nochmal besonderes danke an DocShoe <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/2235505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235505</guid><dc:creator><![CDATA[Fremik]]></dc:creator><pubDate>Wed, 25 Jul 2012 10:34:22 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Wed, 25 Jul 2012 10:38:47 GMT]]></title><description><![CDATA[<p>da mache ich dir mal das hier draus...</p>
<pre><code class="language-cpp">int zufall;
for( int i = 0; i &lt; numChars; i++ )
{
	zufall = rand()% Wort.Length();
	if (zufall == 0)
	{
		continue;
	}
	str = str+Wort[zufall];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2235508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235508</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 25 Jul 2012 10:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Wed, 25 Jul 2012 10:40:24 GMT]]></title><description><![CDATA[<p>OMG!</p>
<p>richtig:</p>
<pre><code class="language-cpp">zufall = (rand()% Wort.Length()) + 1;
</code></pre>
<p>und kein if!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235509</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 25 Jul 2012 10:40:24 GMT</pubDate></item><item><title><![CDATA[Reply to ThrowIfOutOfRange(idx) AnsiString on Wed, 25 Jul 2012 15:40:23 GMT]]></title><description><![CDATA[<p>Unter Anbetracht des ersten Postings schlage ich das hier vor:</p>
<pre><code class="language-cpp">#include &lt;System.hpp&gt;
#include &lt;algorithm&gt;

int main()
{
   AnsiString Wort = &quot;Wort&quot;;
   std::random_shuffle( &amp;Wort[1], &amp;Wort[1] + Wort.Length() );
}
</code></pre>
<p>Edit:<br />
Code fixed</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235592</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 25 Jul 2012 15:40:23 GMT</pubDate></item></channel></rss>