<?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[Sonderzeichen im AnsiString]]></title><description><![CDATA[<p>Hi, gibt es besondere Regeln für die Behandlung von Sonderzeichen in AnsiStrings? Problematik: Habe folgenden AnsiString aus einer Datei geladen</p>
<pre><code>1;10001;Kuhnsoft;Herr;Walter;Kuhn;Meisenweg 9;31274;Ockersdorf;05137 123485;05137 123490;0175 23255238;www.kuhnsoft.de;kuhni@soft.de;achwas;egal;
</code></pre>
<p>Die Einträge stellen Spalten dar und sind durch ein Semikolon getrennt. Nun gehe ich ran und trenne die einzelnen Spalten voneinander, damit ich auch einzelne Werte in ein StringGrid eintragen kann.</p>
<pre><code>AnsiString temp=&quot;&quot;, tempsave=&quot;&quot;;
int spalte, x;
      if(spalte==0){
      for(x=1;x&lt;=temp.Length();x++){
        if(temp.IsDelimiter(&quot;;&quot;,1)){
          spalte+=1;
          temp.Delete(1,1); 
          x=temp.Length()+1;
        }
        else{
          tempsave.Insert(temp[1],x);
          temp.Delete(1,1);
        }
      }
      myStringListKundenID-&gt;Add(tempsave);
      tempsave=&quot;&quot;;
    }

    if(spalte==1){
      for(x=1;x&lt;=temp.Length();x++){
        if(temp.IsDelimiter(&quot;;&quot;,1)){
          spalte+=1;
          temp.Delete(1,1); 
          x=temp.Length()+1;
        }
        else{
          tempsave.Insert(temp[1],x);
          temp.Delete(1,1);
        }
      }
      myStringListKundennummer-&gt;Add(tempsave);
      tempsave=&quot;&quot;;
    }
..und so weiter
</code></pre>
<p>Beim Starten des Programms kommt der EStringListFehler -Der Index der Liste überschreitet das Maximum(0) - Anschliessend verteile ich die Felder aufs StringGrid was keinerlei Probleme macht. Das Debuggen zeigt mir das der Builder meine for-Schleife ab Spalte 13 !!! zu früh verlässt, so dass ich sie zwar noch vollständig und richtig im StringGrid angezeigt bekomme, aber von Spalte 14 und 15 jede Spur fehlt, weil der Builder nach der Emailaddi gar nicht mehr auf das Semikolon prüft, da x schon größer temp.Length() ist <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=":confused:"
      alt="😕"
    /> Nun ist in Spalte 13 im AnsiString das @ Zeichen und das brachte mich auf die Idee das es damit evtl. etwas auf sich haben könnte?! Wenn ich es weglasse, wird komischerweise Spalte 14 auch angezeigt, von 15 fehlt jedoch immer noch jede Spur <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Irgendwo ist der Wurm drin.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170249/sonderzeichen-im-ansistring</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 23:59:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170249.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Jan 2007 13:31:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sonderzeichen im AnsiString on Sat, 13 Jan 2007 13:31:10 GMT]]></title><description><![CDATA[<p>Hi, gibt es besondere Regeln für die Behandlung von Sonderzeichen in AnsiStrings? Problematik: Habe folgenden AnsiString aus einer Datei geladen</p>
<pre><code>1;10001;Kuhnsoft;Herr;Walter;Kuhn;Meisenweg 9;31274;Ockersdorf;05137 123485;05137 123490;0175 23255238;www.kuhnsoft.de;kuhni@soft.de;achwas;egal;
</code></pre>
<p>Die Einträge stellen Spalten dar und sind durch ein Semikolon getrennt. Nun gehe ich ran und trenne die einzelnen Spalten voneinander, damit ich auch einzelne Werte in ein StringGrid eintragen kann.</p>
<pre><code>AnsiString temp=&quot;&quot;, tempsave=&quot;&quot;;
int spalte, x;
      if(spalte==0){
      for(x=1;x&lt;=temp.Length();x++){
        if(temp.IsDelimiter(&quot;;&quot;,1)){
          spalte+=1;
          temp.Delete(1,1); 
          x=temp.Length()+1;
        }
        else{
          tempsave.Insert(temp[1],x);
          temp.Delete(1,1);
        }
      }
      myStringListKundenID-&gt;Add(tempsave);
      tempsave=&quot;&quot;;
    }

    if(spalte==1){
      for(x=1;x&lt;=temp.Length();x++){
        if(temp.IsDelimiter(&quot;;&quot;,1)){
          spalte+=1;
          temp.Delete(1,1); 
          x=temp.Length()+1;
        }
        else{
          tempsave.Insert(temp[1],x);
          temp.Delete(1,1);
        }
      }
      myStringListKundennummer-&gt;Add(tempsave);
      tempsave=&quot;&quot;;
    }
..und so weiter
</code></pre>
<p>Beim Starten des Programms kommt der EStringListFehler -Der Index der Liste überschreitet das Maximum(0) - Anschliessend verteile ich die Felder aufs StringGrid was keinerlei Probleme macht. Das Debuggen zeigt mir das der Builder meine for-Schleife ab Spalte 13 !!! zu früh verlässt, so dass ich sie zwar noch vollständig und richtig im StringGrid angezeigt bekomme, aber von Spalte 14 und 15 jede Spur fehlt, weil der Builder nach der Emailaddi gar nicht mehr auf das Semikolon prüft, da x schon größer temp.Length() ist <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=":confused:"
      alt="😕"
    /> Nun ist in Spalte 13 im AnsiString das @ Zeichen und das brachte mich auf die Idee das es damit evtl. etwas auf sich haben könnte?! Wenn ich es weglasse, wird komischerweise Spalte 14 auch angezeigt, von 15 fehlt jedoch immer noch jede Spur <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Irgendwo ist der Wurm drin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209223</guid><dc:creator><![CDATA[steff90]]></dc:creator><pubDate>Sat, 13 Jan 2007 13:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Sonderzeichen im AnsiString on Sat, 13 Jan 2007 13:39:54 GMT]]></title><description><![CDATA[<p>du kannst mal versuchen mit <em>StringReplace</em> alle &quot;;&quot; durch &quot;\r\n&quot; zu ersetzen und dann kanst du die Zeile einfach dem <em>StringGrid</em> order einer <em>StringList</em> zuweisen:</p>
<pre><code class="language-cpp">StringGrid1-&gt;Rows[index]-&gt;Text = DeinText;
</code></pre>
<p>das mit dem StringReplace geht allerdings erst ab BCB6</p>
<p>das @ macht da eigentlich keine Probleme</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209227</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Sat, 13 Jan 2007 13:39:54 GMT</pubDate></item><item><title><![CDATA[Reply to Sonderzeichen im AnsiString on Sun, 14 Jan 2007 11:51:37 GMT]]></title><description><![CDATA[<p>Wieso eigentlich nicht gleich die geerbte Eigenschaft DelimitedText verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209597</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Sun, 14 Jan 2007 11:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to Sonderzeichen im AnsiString on Sun, 14 Jan 2007 14:46:22 GMT]]></title><description><![CDATA[<p>Danke für die Antworten. Werde mich gleich nach dem Kaffee nochmal an die Funktion machen. Konnte den Fehler bisher nicht reproduzieren und einfach umschreiben ist nicht meine Art. Es muss eine vernünftige Erklärung für dieses Verhalten geben. Achso arbeite mit der 5er Pro.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209721</guid><dc:creator><![CDATA[steff90]]></dc:creator><pubDate>Sun, 14 Jan 2007 14:46:22 GMT</pubDate></item><item><title><![CDATA[Reply to Sonderzeichen im AnsiString on Sun, 14 Jan 2007 15:17:11 GMT]]></title><description><![CDATA[<p>Das wäre ja nicht einfach ein Umschreiben sondern würde deinen doch recht recht umständlichen Code deutlich vereinfachen.</p>
<p>StringReplace gibt's übrigens auch im BCB5, DelimitedText hingegen erst ab BCB6. Statt letzterem kann ggf. TStringList::CommaText verwendet werden, das setzt aber Kommas als Trennzeichen voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209739</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 14 Jan 2007 15:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to Sonderzeichen im AnsiString on Sun, 14 Jan 2007 16:39:09 GMT]]></title><description><![CDATA[<p>Überzeugt! StringReplace mit den Umbrüchen ist wirklich elegant. DANKE <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209791</guid><dc:creator><![CDATA[steff90]]></dc:creator><pubDate>Sun, 14 Jan 2007 16:39:09 GMT</pubDate></item></channel></rss>