<?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[AnsiString nach enum]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meiner Anwendung ein enum und möchte gerne einen String zu diesem enum konvertieren, da ich nicht 50 if / else in meinen Code einbauen will, da dies bei 500k Datensätzen sehr auf die Performance geht.</p>
<p>Hier mein bisheriger Code:</p>
<pre><code class="language-cpp">String tag;
String content;
enum Tags { Title, Product };
Tags tags;

switch (XmlScanner1-&gt;XmlParser-&gt;CurPartType)
{
      case ptStartTag :
           tag = XmlScanner1-&gt;XmlParser-&gt;CurName;
           tags = (TAGS)tag;
      break;

      case  ptContent :
          content = XmlScanner1-&gt;XmlParser-&gt;CurContent;
          switch()
         {
             case Title:
             break;

             case Product:
             break;

             default:
             break;
          }
      break;
}
</code></pre>
<p>Hat jemand eine Idee wie die Konvertierung zu schaffen ist?</p>
<p>jens</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/94850/ansistring-nach-enum</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 02:46:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/94850.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Dec 2004 15:51:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to AnsiString nach enum on Mon, 13 Dec 2004 15:51:27 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meiner Anwendung ein enum und möchte gerne einen String zu diesem enum konvertieren, da ich nicht 50 if / else in meinen Code einbauen will, da dies bei 500k Datensätzen sehr auf die Performance geht.</p>
<p>Hier mein bisheriger Code:</p>
<pre><code class="language-cpp">String tag;
String content;
enum Tags { Title, Product };
Tags tags;

switch (XmlScanner1-&gt;XmlParser-&gt;CurPartType)
{
      case ptStartTag :
           tag = XmlScanner1-&gt;XmlParser-&gt;CurName;
           tags = (TAGS)tag;
      break;

      case  ptContent :
          content = XmlScanner1-&gt;XmlParser-&gt;CurContent;
          switch()
         {
             case Title:
             break;

             case Product:
             break;

             default:
             break;
          }
      break;
}
</code></pre>
<p>Hat jemand eine Idee wie die Konvertierung zu schaffen ist?</p>
<p>jens</p>
]]></description><link>https://www.c-plusplus.net/forum/post/672416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/672416</guid><dc:creator><![CDATA[Jens H.]]></dc:creator><pubDate>Mon, 13 Dec 2004 15:51:27 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString nach enum on Mon, 13 Dec 2004 15:58:38 GMT]]></title><description><![CDATA[<p>Ähm,</p>
<p>in dem switch steht ein switch(tags) drinnen <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>jens</p>
]]></description><link>https://www.c-plusplus.net/forum/post/672427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/672427</guid><dc:creator><![CDATA[Jens H.]]></dc:creator><pubDate>Mon, 13 Dec 2004 15:58:38 GMT</pubDate></item><item><title><![CDATA[Reply to AnsiString nach enum on Mon, 13 Dec 2004 16:27:49 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du kannst einen String nicht in ein enum casten, da ein enum intern eigentlich nur ein int ist.<br />
Du musst dir eine Liste halten, wo die Strings mit dem entsprechenden enum (oder dem entsprechenden int) verknüpft werden.<br />
Dann musst du nur noch schauen ob der übergebene String in der Liste ist und das entsprechende enum zurückgeben. Das lässt sich z. Bsp. auch einfach über eine std::map lösen.<br />
z. Bsp. so etwa</p>
<pre><code class="language-cpp">std::map&lt;String,Tags&gt; TagsListe;
</code></pre>
<p>Diese map musst du natürlich vorher füllen.<br />
Zugreifen kannst du dann z.Bsp. so</p>
<pre><code class="language-cpp">String test(&quot;Titel&quot;);
Tags temp = TagsListe[test];
</code></pre>
<p>Wobei hier das Problem besteht, dass wenn der String nicht in der Liste steht, ein neuer Eintrag erzeugt wird.<br />
andere Variante</p>
<pre><code class="language-cpp">Tags temp;
String test(&quot;Titel&quot;);
std::map&lt;String,Tags&gt;::iterator it = TagsListe.find(test);
if( it != TagsListe.end() ) Tags = it-&gt;second();
</code></pre>
<p>Das ist aber nur ein Vorschlag, es gibt noch mehr Möglichkeiten (z.Bsp. über ein StringArray).</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/672478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/672478</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 13 Dec 2004 16:27:49 GMT</pubDate></item></channel></rss>