<?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[Alternative für TStringList um einen String in 2er schritten zu addressieren]]></title><description><![CDATA[<p>Hi,</p>
<p>momentan benutze ich eine TStringList um einen String in 2er schritten zu addressieren, bsp:</p>
<pre><code class="language-cpp">AnsiString tmp = &quot;1122334455&quot;;
AnsiString neu;

TStringList *list = new TStringList();

for(int i = 1; i &lt;= tmp.Length(); i += 2)
{
	neu = &quot;&quot;;
	neu += tmp[i];
	neu += tmp[i + 1];
	list-&gt;Add(neu);
}

Label5-&gt;Caption = list-&gt;Strings[4];  //Gibt &quot;55&quot; aus
</code></pre>
<p>Gibt es eine Alternative um den Code zu verkürzen? Wenn ja, wie?</p>
<p>Bisher fahre ich damit eigentlich ganz gut, wobei ich das ganz gern ohne die Stringliste machen möchte. Ich habe mehrere Funktionen die das benutzen und möchte mir es so ersparen, immer wieder eine StringList machen zu müssen, alleine deshalb um den Source &quot;sauberer&quot; zu halten.</p>
<p>Wenn jemand einen Vorschlag hat der etwas eleganter ist wäre das gut. Notfalls bleib ich bei dieser Methode da sie ja funktioniert.</p>
<p>Danke im voraus!</p>
<p>PS: Da mir leider kein anderer (besser passender) Threadtitel eingefallen ist hat das die Boardsuche mehr als erschwert <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/topic/206463/alternative-für-tstringlist-um-einen-string-in-2er-schritten-zu-addressieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 03:38:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206463.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Feb 2008 14:07:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Mon, 25 Feb 2008 14:43:23 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>momentan benutze ich eine TStringList um einen String in 2er schritten zu addressieren, bsp:</p>
<pre><code class="language-cpp">AnsiString tmp = &quot;1122334455&quot;;
AnsiString neu;

TStringList *list = new TStringList();

for(int i = 1; i &lt;= tmp.Length(); i += 2)
{
	neu = &quot;&quot;;
	neu += tmp[i];
	neu += tmp[i + 1];
	list-&gt;Add(neu);
}

Label5-&gt;Caption = list-&gt;Strings[4];  //Gibt &quot;55&quot; aus
</code></pre>
<p>Gibt es eine Alternative um den Code zu verkürzen? Wenn ja, wie?</p>
<p>Bisher fahre ich damit eigentlich ganz gut, wobei ich das ganz gern ohne die Stringliste machen möchte. Ich habe mehrere Funktionen die das benutzen und möchte mir es so ersparen, immer wieder eine StringList machen zu müssen, alleine deshalb um den Source &quot;sauberer&quot; zu halten.</p>
<p>Wenn jemand einen Vorschlag hat der etwas eleganter ist wäre das gut. Notfalls bleib ich bei dieser Methode da sie ja funktioniert.</p>
<p>Danke im voraus!</p>
<p>PS: Da mir leider kein anderer (besser passender) Threadtitel eingefallen ist hat das die Boardsuche mehr als erschwert <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/1462497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462497</guid><dc:creator><![CDATA[Maverick3k]]></dc:creator><pubDate>Mon, 25 Feb 2008 14:43:23 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Mon, 25 Feb 2008 14:18:55 GMT]]></title><description><![CDATA[<p>list-&gt;Add( tmp.SubString(i,2) );</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462506</guid><dc:creator><![CDATA[thomas69]]></dc:creator><pubDate>Mon, 25 Feb 2008 14:18:55 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Mon, 25 Feb 2008 14:35:27 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Oder auf std::stringstream umsteigen, dort kannst du wie der Name schon sagt aus einem &quot;laufenden Band&quot; immer genau 2 zeichen auslesen. Dann must du allergings darauf achten in diesem Bereich möglichst viel mit std::string zu arbeiten und möglichst wenig in AnsiString umzuwandeln.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462523</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 25 Feb 2008 14:35:27 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Sat, 01 Mar 2008 19:41:38 GMT]]></title><description><![CDATA[<p>thomas69 schrieb:</p>
<blockquote>
<p>list-&gt;Add( tmp.SubString(i,2) );</p>
</blockquote>
<p>Danke, dass ist wirklich etwas kürzer <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>akari schrieb:</p>
<blockquote>
<p>Oder auf std::stringstream umsteigen, dort kannst du wie der Name schon sagt aus einem &quot;laufenden Band&quot; immer genau 2 zeichen auslesen.</p>
</blockquote>
<p>Und wie funktioniert das im Bezug auf mein vorhaben?<br />
So richtig schlau werde ich aus der Onlinehilfe nämlich nicht <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/1462556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462556</guid><dc:creator><![CDATA[Maverick3k]]></dc:creator><pubDate>Sat, 01 Mar 2008 19:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Mon, 25 Feb 2008 15:58:18 GMT]]></title><description><![CDATA[<p>Um die TStringList zu umgehen, könntest Du doch einfach sowas schreiben:</p>
<pre><code class="language-cpp">AnsiString tmp = &quot;1122334455&quot;;
int i = 4;
Label5-&gt;Caption = tmp.SubStr(2 * i + 1, 2);
</code></pre>
<p>Oder spricht irgendwas dagegen?</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462599</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Mon, 25 Feb 2008 16:13:21 GMT]]></title><description><![CDATA[<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Um die TStringList zu umgehen, könntest Du doch einfach sowas schreiben:</p>
<p>der spricht irgendwas dagegen?</p>
</blockquote>
<p>Momentan nichts, gefällt mir sehr gut <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>Die Zahlen vom resten Posting waren nur dazu da um zu veranschaulichen was ich meinte, da mir kein vernünftiger Threadtitel eingefallen ist. (der String ansich hat eine variable länge)</p>
<p>Mit deiner Methode geht es auch, sehr gut sogar. Nur wenn ich später mal was ändere weiss ich nicht mehr was das genau macht ohne probieren zu müssen. Da ich normal nur Private was mache, gibts auch keine Sourcedoku oder Pflichtenheft <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>Aber ich denke, ich bleibe bei meiner bestehenden Methode, einfach, schnell und macht genau das was ich will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462613</guid><dc:creator><![CDATA[Maverick3k]]></dc:creator><pubDate>Mon, 25 Feb 2008 16:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Mon, 25 Feb 2008 16:25:04 GMT]]></title><description><![CDATA[<p>Maverick3k schrieb:</p>
<blockquote>
<p>Nur wenn ich später mal was ändere weiss ich nicht mehr was das genau macht ohne probieren zu müssen.</p>
</blockquote>
<p>Dafür würde ich empfehlen diese Routine in eine Funktion zu verlagern, der Du dann einen aussagekräftigen<br />
Namen geben kannst, z.B.:</p>
<pre><code class="language-cpp">AnsiString holeZweierBlock(AnsiString Str, int ZweierIndex) {
   return Str.SubStr(ZweierIndex * 2 + 1, 2);
}
</code></pre>
<p>Ich finde meinen Einzeiler deutlich einfacher zu verstehen als Deine Version mit TStringList und for-Schleife.<br />
Das ist aber nicht allgemeingültig für Einzeiler.</p>
<p>Ehrlich gesagt habe ich bestimmt eine Minute gebraucht, um zu verstehen, was Du da eigentlich machst - und<br />
das trotz (oder wegen?) Deiner Erklärungen. Aber vielleicht bin ich ja auch einfach zu doof...</p>
<p>Gruß</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462620</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Mon, 25 Feb 2008 16:25:04 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Mon, 25 Feb 2008 16:55:43 GMT]]></title><description><![CDATA[<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Maverick3k schrieb:</p>
<blockquote>
<p>Nur wenn ich später mal was ändere weiss ich nicht mehr was das genau macht ohne probieren zu müssen.</p>
</blockquote>
<p>Dafür würde ich empfehlen diese Routine in eine Funktion zu verlagern, der Du dann einen aussagekräftigen Namen geben kannst</p>
</blockquote>
<p>Da hast du recht, kürzer gehts eigentlich nicht. Werde das wohl so machen.<br />
Wäre für die einzelnen Funktionen die das aufrufen sogar sinnvoller da ich mir paar Zeilen Code sparen kann und somit den Focus auf die eigentliche Funktion verlagern kann.</p>
<p>Danke!</p>
<p>Alexander Kempf schrieb:</p>
<blockquote>
<p>Ich finde meinen Einzeiler deutlich einfacher zu verstehen als Deine Version mit TStringList und for-Schleife. Das ist aber nicht allgemeingültig für Einzeiler.</p>
</blockquote>
<p>Ich hab bei deinem etwas länger gebraucht, aber im nachhinein war es mehr als logisch. Kommt aber wohl auch auf den Programmierstil sowie Erfahrung an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462646</guid><dc:creator><![CDATA[Maverick3k]]></dc:creator><pubDate>Mon, 25 Feb 2008 16:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative für TStringList um einen String in 2er schritten zu addressieren on Sat, 01 Mar 2008 19:41:22 GMT]]></title><description><![CDATA[<p>Wollte nur anmerken das der kurze Code von Alex erste Sahne ist, benutze das inzwischen nur noch <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/1466291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466291</guid><dc:creator><![CDATA[Maverick3k]]></dc:creator><pubDate>Sat, 01 Mar 2008 19:41:22 GMT</pubDate></item></channel></rss>