<?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[Einen String zerlegen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein kleines Programm geschrieben, dass einen 4*4 stelligen Registry eintrag aendert.</p>
<p>Den original serial, der geaendert werden soll, möchte ich beim Programmstart in 4 Tedit fenstern mit jeweils vier Stellen einzeln anzeigen.<br />
Ich muss also den AnsiString ( bei Borland sind alle String AnsiStrings? ) zerlegen oder einzelne Zeichen auslesen</p>
<p>So lese ich den Registry eintrag aus:</p>
<pre><code>AnsiString aktuellerkey; 
aktuellerkey = regKey-&gt;ReadString(&quot;UID&quot;);
</code></pre>
<p>aktuellerkey sieht z.B. so aus : 2A72-6O66-929W-4QC6<br />
Da TRegistry anscheinend nur mit AnsiStrings arbeitet, ist aktueller Key auch einer...</p>
<p>Um mein Vorhaben nun zu realisieren, muss ich ja praktisch den string auseinander nehmen, bzw. die ersten 4 Zeichen auslesen und in Tedit oder eine Veriable schreiben.</p>
<pre><code>char* charPointer; 
int len=10; 
char* chstr =&quot;bullo&quot;; 

charPointer= new char[len*sizeof(char)]; //hole speicher 

strcpy(charPointer, chstr);   //kopiere die adresse von chstring zu charPointer 

Memo1-&gt;Lines-&gt;Add (charPointer); //lese Char Pointer aus  
Code: 
char* charPointer; 
int len=10; 
char* chstr =&quot;bullo&quot;; 

charPointer= new char[len*sizeof(char)]; //hole speicher 

strcpy(charPointer, chstr); //kopiere die adresse von chstring zu charPointer 

Memo1-&gt;Lines-&gt;Add (charPointer); //lese Char Pointer aus  
Code: 
char* charPointer; 
int len=10; 
char* chstr =&quot;bullo&quot;; 

charPointer= new char[len*sizeof(char)]; //hole speicher 

strcpy(charPointer, chstr);   //kopiere die adresse von chstring zu charPointer 

Memo1-&gt;Lines-&gt;Add (charPointer); //lese Char Pointer aus
</code></pre>
<p>So funktioniert es aber nur mit char*</p>
<p>Hat jemand vielleicht eine Idee?</p>
<p>Danke schonmal<br />
mfg<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/106895/einen-string-zerlegen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 08:11:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/106895.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Apr 2005 12:32:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:33:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein kleines Programm geschrieben, dass einen 4*4 stelligen Registry eintrag aendert.</p>
<p>Den original serial, der geaendert werden soll, möchte ich beim Programmstart in 4 Tedit fenstern mit jeweils vier Stellen einzeln anzeigen.<br />
Ich muss also den AnsiString ( bei Borland sind alle String AnsiStrings? ) zerlegen oder einzelne Zeichen auslesen</p>
<p>So lese ich den Registry eintrag aus:</p>
<pre><code>AnsiString aktuellerkey; 
aktuellerkey = regKey-&gt;ReadString(&quot;UID&quot;);
</code></pre>
<p>aktuellerkey sieht z.B. so aus : 2A72-6O66-929W-4QC6<br />
Da TRegistry anscheinend nur mit AnsiStrings arbeitet, ist aktueller Key auch einer...</p>
<p>Um mein Vorhaben nun zu realisieren, muss ich ja praktisch den string auseinander nehmen, bzw. die ersten 4 Zeichen auslesen und in Tedit oder eine Veriable schreiben.</p>
<pre><code>char* charPointer; 
int len=10; 
char* chstr =&quot;bullo&quot;; 

charPointer= new char[len*sizeof(char)]; //hole speicher 

strcpy(charPointer, chstr);   //kopiere die adresse von chstring zu charPointer 

Memo1-&gt;Lines-&gt;Add (charPointer); //lese Char Pointer aus  
Code: 
char* charPointer; 
int len=10; 
char* chstr =&quot;bullo&quot;; 

charPointer= new char[len*sizeof(char)]; //hole speicher 

strcpy(charPointer, chstr); //kopiere die adresse von chstring zu charPointer 

Memo1-&gt;Lines-&gt;Add (charPointer); //lese Char Pointer aus  
Code: 
char* charPointer; 
int len=10; 
char* chstr =&quot;bullo&quot;; 

charPointer= new char[len*sizeof(char)]; //hole speicher 

strcpy(charPointer, chstr);   //kopiere die adresse von chstring zu charPointer 

Memo1-&gt;Lines-&gt;Add (charPointer); //lese Char Pointer aus
</code></pre>
<p>So funktioniert es aber nur mit char*</p>
<p>Hat jemand vielleicht eine Idee?</p>
<p>Danke schonmal<br />
mfg<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766546</guid><dc:creator><![CDATA[s0h0]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:44:49 GMT]]></title><description><![CDATA[<p>Sieh dir in der Hilfe mal die Klasse AnsiString an, besonders die Methoden Pos() und SubString(). Dann kannst du auch auf den Umweg über char-Arrays lassen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/766555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766555</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:45:34 GMT]]></title><description><![CDATA[<p>Welche Version vom Builder hast du? Wenn du Version 6 hast, schau dir doch mal TStringList (speziell DelimitedText) an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766556</guid><dc:creator><![CDATA[HEZ]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:45:34 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:46:06 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wir haben doch bereits gesagt, das du auf char * verzichten kannst.<br />
Hier mal ein Beispiel für die ersten vier Buchstaben</p>
<pre><code class="language-cpp">AnsiString aktuellerkey;
aktuellerkey = regKey-&gt;ReadString(&quot;UID&quot;);
AnsiString Part = aktuellerkey.SubString(1, 4); // ersten 4 Zeichen kopieren
aktuellerkey.Delete(1, 5); // ersten 5 Zeichen (inklusive des Bindestriches) löschen
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766557</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:46:06 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:48:01 GMT]]></title><description><![CDATA[<p>Danke fuer die schnelle Antwort...</p>
<p>Hab mir des angeschaut und versucht die funktionen einzubinden mit SubStr(), aber dann sagt er dass ansistring nicht in char* int AnsiString gewandelt wird... Ich versteh des net ganz die hilfe im builder dazu ist auch bissi knapp...</p>
<p>Könnte es doch eigentlich so in einen char schreiben?</p>
<p>Hab es so auch aus der faq hier gezogen, doch dann stuerzt mein Programm ab, weisst du warum dass nicht geht?</p>
<p>char einbuchstabe = aktuellerkey[2];</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766559</guid><dc:creator><![CDATA[s0h0]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:48:01 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:51:10 GMT]]></title><description><![CDATA[<p>Ach genau, wenn er abstuerzt, öffnet er die Seite dstring.h und<br />
makiert diese Zeile:</p>
<p>ThrowIfOutOfRange(idx); // Should Range-checking be optional</p>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766564</guid><dc:creator><![CDATA[s0h0]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:52:32 GMT]]></title><description><![CDATA[<p>s0h0 schrieb:</p>
<blockquote>
<p>ansistring nicht in char* (...) Könnte es doch eigentlich so in einen char schreiben?</p>
</blockquote>
<p>Wo kommen denn die Chars schon wieder her?</p>
<blockquote>
<p>char einbuchstabe = aktuellerkey[2];</p>
</blockquote>
<p>Warum das denn? Was soll das werden? Jedenfalls kannst du nicht auf Zeichen 2 Zugreifen, wenn dein String (?) z.B. leer ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766565</guid><dc:creator><![CDATA[HEZ]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:52:32 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:52:04 GMT]]></title><description><![CDATA[<p>Hallo</p>
<pre><code class="language-cpp">char einbuchstabe = aktuellerkey[2];
</code></pre>
<p>sollte funktionieren, solange in aktuellerkey 3 oder mehr Zeichen stehen.<br />
Las dir vorher mal den Wert anzeigen (Debuggen, siehe FAQ)</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766566</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 12:54:04 GMT]]></title><description><![CDATA[<p>2 oder mehr Zeichen.<br />
Bei AnsiString beginnt die Zählung bei 1 und nicht bei 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766568</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 14 Apr 2005 12:54:04 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 13:18:49 GMT]]></title><description><![CDATA[<p>PuppetMaster2k schrieb:</p>
<blockquote>
<p>Sieh dir in der Hilfe mal die Klasse AnsiString an, besonders die Methoden Pos() und SubString(). Dann kannst du auch auf den Umweg über char-Arrays lassen. <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>
</blockquote>
<p>Mehr gibt es dazu nicht zu sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766607</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 14 Apr 2005 13:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 13:21:15 GMT]]></title><description><![CDATA[<p>Hallo Joe,</p>
<p>Das haben akari und ich ihm auch schon ein paar mal gesagt (im hierher verschobenen Thread).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766610</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 14 Apr 2005 13:21:15 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 13:29:31 GMT]]></title><description><![CDATA[<p>ok. danke...</p>
<p>ich habs ja auch schon durchgelesen aber habs halt (noch) nicht hinbekommen... weil er wie gesagt den datentyp nicht aktzeptiert den ich dazu ubergebe bzw. ich es anscheinend noch nicht ganz verstehe.</p>
<p>vielleicht noch ein tip, wonach ich suchen soll,<br />
wenn ich will, dass der cursor ins 2te edit fenster springt wenn ich die maximal zeichen in edit1 eingegeben hab?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766621</guid><dc:creator><![CDATA[s0h0]]></dc:creator><pubDate>Thu, 14 Apr 2005 13:29:31 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 13:29:11 GMT]]></title><description><![CDATA[<p>überleg doch, welche Events du abfangen musst und was du überprüfen würdest, wenn du selber entscheiden müsstest, ob der cursor weiter springen soll.<br />
ich empfehle dir auch mal da reinzuschauen: <a href="http://bcb-tutorial.c-plusplus.net/inhalt.html" rel="nofollow">http://bcb-tutorial.c-plusplus.net/inhalt.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/766628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766628</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Thu, 14 Apr 2005 13:29:11 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 14:27:29 GMT]]></title><description><![CDATA[<p>Habs jetzt so gemacht... <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="🙂"
    /><br />
auf jeden fall funzt es</p>
<pre><code>char *bVar = aktuellerkey.c_str();  // string in array umwandeln
//int stringlaenge = aktuellerkey.Length();

AnsiString key1 = bVar[0];
AnsiString key2 = bVar[1];
AnsiString key3 = bVar[2];
AnsiString key4 = bVar[3];
AnsiString key5 = bVar[4];
AnsiString key6 = bVar[5];
AnsiString key7 = bVar[6];
AnsiString key8 = bVar[7];
AnsiString key9 = bVar[8];
AnsiString key10 = bVar[9];
AnsiString key11 = bVar[10];
AnsiString key12 = bVar[11];
AnsiString key13 = bVar[12];
AnsiString key14 = bVar[13];
AnsiString key15 = bVar[14];
AnsiString key16 = bVar[15];
AnsiString key17 = bVar[16];
AnsiString key18 = bVar[17];
AnsiString key19 = bVar[18];

AnsiString keyA = key1 + key2 + key3 + key4;
AnsiString keyB = key6 + key7 + key8 + key9;
AnsiString keyC = key11 + key12 + key13 + key14;
AnsiString keyD = key16 + key17 + key18 + key19;

Edit1-&gt;Text = keyA;
Edit2-&gt;Text = keyB;
Edit3-&gt;Text = keyC;
Edit4-&gt;Text = keyD;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/766675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766675</guid><dc:creator><![CDATA[s0h0]]></dc:creator><pubDate>Thu, 14 Apr 2005 14:27:29 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 15:09:12 GMT]]></title><description><![CDATA[<p>Viel umständlicher ging es wohl nicht mehr. Was gefällt dir an akaris Lösung mit SubString nicht.</p>
<pre><code class="language-cpp">AnsiString keyA = aktuellerkey.SubString(1,4);
AnsiString keyB = aktuellerkey.SubString(6,4);
AnsiString keyC = aktuellerkey.SubString(11,4);
AnsiString keyD = aktuellerkey.SubString(16,4);
</code></pre>
<p>Diese Hilfsstrings kann man auch noch weglassen und direkt auf edit-&gt;Text schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766731</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 14 Apr 2005 15:09:12 GMT</pubDate></item><item><title><![CDATA[Reply to Einen String zerlegen? on Thu, 14 Apr 2005 15:33:10 GMT]]></title><description><![CDATA[<p>AHHHH! Jetzt check ich es! und es funktioniert auch genauso!<br />
is ja wirklich viel viel einfacher...</p>
<p>man man man, naja uebung macht den meister...</p>
<p>DANKE!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766781</guid><dc:creator><![CDATA[s0h0]]></dc:creator><pubDate>Thu, 14 Apr 2005 15:33:10 GMT</pubDate></item></channel></rss>