<?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[IntToStr() Exeption mit Try Catch richtig abfangen]]></title><description><![CDATA[<p>hi,</p>
<p>wie kann ich eine Expetion die von IntToStr() ausgelößt wird, richtig abfangen.</p>
<p>Ziel ist es, wenn im stringgrid eine zahl steht, soll dort das vorzeichen (wenns minus ist) entfernd werden.</p>
<p>also</p>
<pre><code class="language-cpp">Wenn Umwandlung von String nach Int keine Exeption auslößt
      String = Wuzrel aus (String*String)
</code></pre>
<p>so wird das vorzeichen immer + und damit nicht angzeigt.</p>
<p>Aber wie programmiere ich das?</p>
<pre><code class="language-cpp">try
   {
      //Konvertieren von String nach Double
      double Zahl = StringGrid-&gt;Cells[ACol][ARow].ToDouble();

      Zahl = sqrt(Zahl*Zahl);

      StringGrid-&gt;Cells[ACol][ARow] = FloatToStr(Zahl);
   }
   catch (Exception &amp;exception)
   {
      // StringGrid wird nich geändert.
   }
</code></pre>
<p>Edit:</p>
<p>Ich hab gerade das hier gefunden:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-96164-and-highlight-is-%2Acatch%2A.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-96164-and-highlight-is-*catch*.html</a></p>
<p>Ich wüsste nun gerne, wie ich das anständig programmiere? Meint er damit, dass ich die eingabe direkt prüfen soll? Oder die Zeichen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158855/inttostr-exeption-mit-try-catch-richtig-abfangen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 22:08:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158855.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 Sep 2006 23:59:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 00:22:54 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>wie kann ich eine Expetion die von IntToStr() ausgelößt wird, richtig abfangen.</p>
<p>Ziel ist es, wenn im stringgrid eine zahl steht, soll dort das vorzeichen (wenns minus ist) entfernd werden.</p>
<p>also</p>
<pre><code class="language-cpp">Wenn Umwandlung von String nach Int keine Exeption auslößt
      String = Wuzrel aus (String*String)
</code></pre>
<p>so wird das vorzeichen immer + und damit nicht angzeigt.</p>
<p>Aber wie programmiere ich das?</p>
<pre><code class="language-cpp">try
   {
      //Konvertieren von String nach Double
      double Zahl = StringGrid-&gt;Cells[ACol][ARow].ToDouble();

      Zahl = sqrt(Zahl*Zahl);

      StringGrid-&gt;Cells[ACol][ARow] = FloatToStr(Zahl);
   }
   catch (Exception &amp;exception)
   {
      // StringGrid wird nich geändert.
   }
</code></pre>
<p>Edit:</p>
<p>Ich hab gerade das hier gefunden:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-96164-and-highlight-is-%2Acatch%2A.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-96164-and-highlight-is-*catch*.html</a></p>
<p>Ich wüsste nun gerne, wie ich das anständig programmiere? Meint er damit, dass ich die eingabe direkt prüfen soll? Oder die Zeichen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134063</guid><dc:creator><![CDATA[d0x]]></dc:creator><pubDate>Sat, 09 Sep 2006 00:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 07:51:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Dein Code ist korrekt, warum probierst du den nicht einfach mal aus?</p>
<blockquote>
<p>Meint er damit, dass ich die eingabe direkt prüfen soll?</p>
</blockquote>
<p>Wer meint was?</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134093</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 09 Sep 2006 07:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 10:07:20 GMT]]></title><description><![CDATA[<p>Geht das vielleicht auch so</p>
<pre><code>if(StringGrid-&gt;Cells[ACol][ARow].c_str()[0] == '-')
{ StringGrid-&gt;Cells[ACol][ARow].c_str()[0] == ' '; //mit Leerzeichen ersetzen
  StringGrid-&gt;Cells[ACol][ARow].Trim(); //TrimLeft(); //Leerzeichen entfernen
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1134140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134140</guid><dc:creator><![CDATA[dlonra]]></dc:creator><pubDate>Sat, 09 Sep 2006 10:07:20 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 10:17:38 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>@ dlonra :<br />
Zum einen überprüfst du nicht, ob überhaupt etwas in der Zelle steht. Desweiteren wird auch nicht überprüft, ob nach dem Vorzeichen eine gültige Zahl steht.</p>
<p>Wenn es wirklich nur um den absoluten Wert einer Zahl geht, dann sollte statt dem quadrieren und Wurzel ziehen besser <a href="http://www.cppreference.com/stdmath/abs.html" rel="nofollow">abs</a> verwendet werden. Aber an den try-catch kommt man nicht vorbei.</p>
<p>Ab Builder 6 kann man stattdessen noch StrToFloatDef nehmen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134143</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 09 Sep 2006 10:17:38 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 10:54:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a><br />
Bei jedem AnsiString steht bei [0] garanitiert ein Zeichen auch wenn es nur \0 ist.<br />
Wenn er die Benutzereingabe abfangen will, glaub ich das er das Event<br />
OnSetEditText abfangen kann. (hab ich noch nicht propiert und zudem hab ich nur Bcb5)<br />
In diesem Event sollte er den Try-Catch einbauen um Müll-eingabe ab zu fangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134158</guid><dc:creator><![CDATA[dlonra]]></dc:creator><pubDate>Sat, 09 Sep 2006 10:54:10 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 11:04:14 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Nein, AnsiString[0] ist nämlich ungültig. Die Zählung der Zeichen beginnt bei 1, wie es auch in der BCB-Hilfe steht.<br />
Desweiteren wird sowohl bei AnsiString::Length() als auch bei dem Array-Operator das abschließende '\0' nicht mitgezählt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134163</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 09 Sep 2006 11:04:14 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 11:12:26 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a><br />
Beispiel:<br />
AnsiString hallo; //ist ein AnsiString-Klasse<br />
hallo.c_str()[0]; //zeigt auf den eigentlichen String<br />
//das bedeutet soviel wie: string *hallo;<br />
hallo.c_str()[0]; //ist deshalb \0.</p>
<p>Wenn das nicht so währe würde ein bestimmtes Programm nicht<br />
tadellos funktionieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134170</guid><dc:creator><![CDATA[dlonra]]></dc:creator><pubDate>Sat, 09 Sep 2006 11:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sat, 09 Sep 2006 11:32:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>aus der Builder-Hilfe</p>
<p>BCB-Hilfe zu AnsiString[] schrieb:</p>
<blockquote>
<p>Der Operator gibt das Zeichen zurück, das sich im String an der angegebenen Indexposition befindet.</p>
<p>char&amp; __fastcall operator [](const int idx);</p>
<p>Beschreibung</p>
<p>Es wird das Zeichen an der im Indexwert idx angegebenen Position im String zurückgegeben. Die Indexnumerierung beginnt mit 1. Bei dem String &quot;Hallo&quot; und einem Indexwert von 2 würde beispielsweise das Zeichen 'a' zurückgegeben.</p>
</blockquote>
<p>Soweit zum AnsiString-eigenen []-OP. Um Gegensatz dazu wird beim []-Op eines C-Strings wirklich bei 0 angefangen zu zählen.<br />
Allerdings darfst du auf den Rückgabewert von c_str() nicht schreibend zugreifen</p>
<p>BCB-Hilfe zu c_str() schrieb:</p>
<blockquote>
<p>Die Methode c_str dient in erster Linie dazu, den Wert von AnsiString zu lesen. Wenn Sie den Wert des Strings ändern möchten, verwenden Sie den []-Operator oder AnsiString-Methoden, wie z.B. Insert und Delete.</p>
</blockquote>
<p>Damit ist bewiesen das dein Code undefiniertes Verhalten verursacht. Es kann gutgehen, muß aber nicht.</p>
<p>So ich hoffe nun habe ich nichts mehr übersehen...</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134177</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 09 Sep 2006 11:32:53 GMT</pubDate></item><item><title><![CDATA[Reply to IntToStr() Exeption mit Try Catch richtig abfangen on Sun, 10 Sep 2006 16:11:23 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>wenn ich das richtig verstehe willst du nur das &quot;-&quot; los werden oder ?</p>
<p>StringReplace sollte das doch machen</p>
<p>kein try/catch und auch keine anderen Umwandlungen</p>
<p>Mfg<br />
Klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134701</guid><dc:creator><![CDATA[KlausB]]></dc:creator><pubDate>Sun, 10 Sep 2006 16:11:23 GMT</pubDate></item></channel></rss>