<?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[String in Hex ;-)]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>viele werden schon garnicht mehr hier reinschauen, von daher ist der Titel eigentl. doof gewählt... Aber ich fand's jetzt irgendwie lustig. Ich will hier nur mal ein paar Meinungen einholen, nicht fragen wie ich aus nem String-Element einen Hex-Wert mache (denn es ist ja eigentl schon ein Hex-Wert). Und darum geht es:<br />
Der Benutzer gibt in einem Edit-Feld einen Minuten-Wert ein (1-60). Es wird mit Hilfe der Methoden IsDelimiter und Length die Gültigkeit der Eingabe geprüft. Ist die Eingabe gültig, wird der Wert in ein unsigned char - Array geschrieben:</p>
<pre><code class="language-cpp">unsigned short Index= (Edit-&gt;Tag-1001);
TmpStr= Edit-&gt;Text;
usLength= (unsigned int)TmpStr.Length();

switch(usLength)
{
	case 0:
			bFehler= 1;
			Edit-&gt;Color= clRed;
			break;
	case 1:
			if(TmpStr.IsDelimiter(&quot;123456789&quot;, 1))
			    ucArray[Index]= StrToInt(TmpStr);
			else
			{	bFehler=1;	Edit-&gt;Font-&gt;Color= clRed;	}
			break;
	case 2: 
            if(TmpStr.IsDelimiter(&quot;123456&quot;, 1) &amp;&amp; TmpStr.IsDelimiter(&quot;0123456789&quot;, 2))
			{
				if((TmpStr.IsDelimiter(&quot;6&quot;, 1)) &amp;&amp; (!TmpStr.IsDelimiter(&quot;0&quot;, 2)))	// Fehlererkenng. 61-69
					{	bFehler= 1;	Edit-&gt;Font-&gt;Color= clRed;	break;	}
				ucArray[Index]= (StrToInt(TmpStr[1])*10);
				ucArray[Index]+= StrToInt(TmpStr[2]);
			}
			else
			{	bFehler=1; Edit-&gt;Font-&gt;Color= clRed;	}
			break;
	default: 
            bFehler= 1;
		    Edit-&gt;Font-&gt;Color= clRed;
}
</code></pre>
<p>Da ich dazu neige Dinge unnötig kompliziert zu machen, möchte ich gern eure Meinung zu dieser Lösung wissen.</p>
<p>Edit: Kleine Schönheits-OP</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198174/string-in-hex</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 16:44:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198174.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Nov 2007 10:41:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String in Hex ;-) on Mon, 19 Nov 2007 10:42:44 GMT]]></title><description><![CDATA[<p>Guten Morgen,</p>
<p>viele werden schon garnicht mehr hier reinschauen, von daher ist der Titel eigentl. doof gewählt... Aber ich fand's jetzt irgendwie lustig. Ich will hier nur mal ein paar Meinungen einholen, nicht fragen wie ich aus nem String-Element einen Hex-Wert mache (denn es ist ja eigentl schon ein Hex-Wert). Und darum geht es:<br />
Der Benutzer gibt in einem Edit-Feld einen Minuten-Wert ein (1-60). Es wird mit Hilfe der Methoden IsDelimiter und Length die Gültigkeit der Eingabe geprüft. Ist die Eingabe gültig, wird der Wert in ein unsigned char - Array geschrieben:</p>
<pre><code class="language-cpp">unsigned short Index= (Edit-&gt;Tag-1001);
TmpStr= Edit-&gt;Text;
usLength= (unsigned int)TmpStr.Length();

switch(usLength)
{
	case 0:
			bFehler= 1;
			Edit-&gt;Color= clRed;
			break;
	case 1:
			if(TmpStr.IsDelimiter(&quot;123456789&quot;, 1))
			    ucArray[Index]= StrToInt(TmpStr);
			else
			{	bFehler=1;	Edit-&gt;Font-&gt;Color= clRed;	}
			break;
	case 2: 
            if(TmpStr.IsDelimiter(&quot;123456&quot;, 1) &amp;&amp; TmpStr.IsDelimiter(&quot;0123456789&quot;, 2))
			{
				if((TmpStr.IsDelimiter(&quot;6&quot;, 1)) &amp;&amp; (!TmpStr.IsDelimiter(&quot;0&quot;, 2)))	// Fehlererkenng. 61-69
					{	bFehler= 1;	Edit-&gt;Font-&gt;Color= clRed;	break;	}
				ucArray[Index]= (StrToInt(TmpStr[1])*10);
				ucArray[Index]+= StrToInt(TmpStr[2]);
			}
			else
			{	bFehler=1; Edit-&gt;Font-&gt;Color= clRed;	}
			break;
	default: 
            bFehler= 1;
		    Edit-&gt;Font-&gt;Color= clRed;
}
</code></pre>
<p>Da ich dazu neige Dinge unnötig kompliziert zu machen, möchte ich gern eure Meinung zu dieser Lösung wissen.</p>
<p>Edit: Kleine Schönheits-OP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405771</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Mon, 19 Nov 2007 10:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to String in Hex ;-) on Mon, 19 Nov 2007 10:55:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int TmpInt=StrToIntDef(Edit-&gt;Text,0);
if (TmpInt&lt;1 || TmpInt&gt;60)
{
 bFehler=1;
 Edit-&gt;Font-&gt;Color=clRed;
}
else ucArray[Edit-&gt;Tag-1001]=static_cast&lt;unsigned char&gt;(TmpInt);
</code></pre>
<p>Soweit ich das überblicke, müsste der Code eigentlich genau dasselbe machen.<br />
Was das aber mit Hexwerten zu tun hat, will mir nicht ganz einleuchten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405784</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Mon, 19 Nov 2007 10:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to String in Hex ;-) on Mon, 19 Nov 2007 11:00:24 GMT]]></title><description><![CDATA[<p>Nur kurz zu den Hex-Werten. Wenn ich etwas per serieller Schnittstelle übertragen will, muss ich zB. aus AnsiString &quot;55&quot; (0x05,0x05) sowas machen: unsigned char 0x37.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405787</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Mon, 19 Nov 2007 11:00:24 GMT</pubDate></item><item><title><![CDATA[Reply to String in Hex ;-) on Mon, 19 Nov 2007 11:10:03 GMT]]></title><description><![CDATA[<p>Allerdings sind Hexadezimalzahlen ja nur eine von vielen Darstellungsmöglichkeiten einer Zahl im Speicher, genauso kann man statt 0x37 ja auch 55 oder 00110111[2] sagen.<br />
Ich ging zuerst davon aus, dass du wieder einen String mit Hex-Darstellung erstellen wolltest (also z.B. &quot;A&quot; zu &quot;41&quot;), deswegen war es mir nicht ganz klar.<br />
Edit: Also, AnsiString &quot;55&quot; wäre auch 0x35 0x35, nicht 0x05 0x05!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405792</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Mon, 19 Nov 2007 11:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to String in Hex ;-) on Mon, 19 Nov 2007 11:41:09 GMT]]></title><description><![CDATA[<p>Ok, stimmt (&quot;5&quot; = 0x35). Also ums nochmal korrekt auszudrücken: Ich muss aus einem String mit einem oder zwei Elementen ein char machen. <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>Edit: StrToIntDef ist natürlich besser, habs mir mal angeschaut. Da fällt mir so eine nervige Verbraucherinformation ein: ...entdecke die Möglichkeiten! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1405808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405808</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Mon, 19 Nov 2007 11:41:09 GMT</pubDate></item></channel></rss>