<?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[Völlig simpler CString]]></title><description><![CDATA[<p>Grüße @ALL</p>
<p>Möchte jedes Zeichen des CString überprüfen:</p>
<pre><code>BOOL CKundenInfo::ZahlenCheck()
{   
    UpdateData(TRUE);
    int z;
    for (z=1; z&lt;m_Kdnr.GetLength(); z++)
    {          
        if (   m_Kdnr.Left(z) == &quot;0&quot; || m_Kdnr.Left(z) == &quot;1&quot; || m_Kdnr.Left(z) == &quot;2&quot;
            || m_Kdnr.Left(z) == &quot;3&quot; || m_Kdnr.Left(z) == &quot;4&quot; || m_Kdnr.Left(z) == &quot;5&quot;
            || m_Kdnr.Left(z) == &quot;6&quot; || m_Kdnr.Left(z) == &quot;7&quot; || m_Kdnr.Left(z) = &quot;8&quot; 
            || m_Kdnr.Left(z) == &quot;9&quot; || m_Kdnr.Left(z) == &quot; &quot;)
            {
                return false;
            } 
    }
    return true;
}
</code></pre>
<p>Wenn der String aus Zahlen '0...9' oder 'Space' besteht soll einfach false zurückgegeben werden. Ist irgendein Buchstabe oder Sonderzeichen enthalten dann sofort True, egal an welcher Stelle.<br />
Im größten Fall isser eh nur 5 Stellen lang, also nichts besonderes.<br />
Bei mir checkt er aber immer nur das erste Zeichen.<br />
Ich blicks einfach heut nich mehr. Was für ein Tag.<br />
Wer kann mir auf die Sprünge helfen?<br />
Ist denn die Funktion .Left() überhaupt geeignet?</p>
<p>Vielen Dank<br />
MfG<br />
RunSeb</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/73751/völlig-simpler-cstring</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 20:40:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/73751.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 May 2004 13:47:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 13:47:17 GMT]]></title><description><![CDATA[<p>Grüße @ALL</p>
<p>Möchte jedes Zeichen des CString überprüfen:</p>
<pre><code>BOOL CKundenInfo::ZahlenCheck()
{   
    UpdateData(TRUE);
    int z;
    for (z=1; z&lt;m_Kdnr.GetLength(); z++)
    {          
        if (   m_Kdnr.Left(z) == &quot;0&quot; || m_Kdnr.Left(z) == &quot;1&quot; || m_Kdnr.Left(z) == &quot;2&quot;
            || m_Kdnr.Left(z) == &quot;3&quot; || m_Kdnr.Left(z) == &quot;4&quot; || m_Kdnr.Left(z) == &quot;5&quot;
            || m_Kdnr.Left(z) == &quot;6&quot; || m_Kdnr.Left(z) == &quot;7&quot; || m_Kdnr.Left(z) = &quot;8&quot; 
            || m_Kdnr.Left(z) == &quot;9&quot; || m_Kdnr.Left(z) == &quot; &quot;)
            {
                return false;
            } 
    }
    return true;
}
</code></pre>
<p>Wenn der String aus Zahlen '0...9' oder 'Space' besteht soll einfach false zurückgegeben werden. Ist irgendein Buchstabe oder Sonderzeichen enthalten dann sofort True, egal an welcher Stelle.<br />
Im größten Fall isser eh nur 5 Stellen lang, also nichts besonderes.<br />
Bei mir checkt er aber immer nur das erste Zeichen.<br />
Ich blicks einfach heut nich mehr. Was für ein Tag.<br />
Wer kann mir auf die Sprünge helfen?<br />
Ist denn die Funktion .Left() überhaupt geeignet?</p>
<p>Vielen Dank<br />
MfG<br />
RunSeb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519708</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Thu, 13 May 2004 13:47:17 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 13:51:38 GMT]]></title><description><![CDATA[<p>na ich denk mal, mit .mid(von,bis) biste besser dran?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519710</guid><dc:creator><![CDATA[zugucker]]></dc:creator><pubDate>Thu, 13 May 2004 13:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:03:49 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>oder regulärer Ausdruck.</p>
<p>Hier die Installationsanleitung für <strong>boost::regex</strong><br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=72284&amp;highlight=regex+boost" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=72284&amp;highlight=regex+boost</a></p>
<p>z.B.:</p>
<pre><code class="language-cpp">//   \ wird als \\ notiert!	
static const boost::regex e(&quot;[0-9][0-9]\\:[0-9][0-9]\\.[0-9][A|B]&quot;);
return regex_match(s,e);
</code></pre>
<p>Muss nur ein bißchen geändert werden..</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519713</guid><dc:creator><![CDATA[EdiRitter]]></dc:creator><pubDate>Thu, 13 May 2004 14:03:49 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:03:27 GMT]]></title><description><![CDATA[<p>Mid(von,bis), und dann? Er soll ja jedes Zeichen prüfen, und ich weiß vorher nicht genau wie groß der String ist!</p>
<p>an EdiRitter:</p>
<p>Was ist Boost::regex??<br />
Was kann ich dann damit besser machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519718</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Thu, 13 May 2004 14:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:12:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>eine sinnvolle Erklärung habe ich leider nicht. Vielleicht kann's jemand besser erklären. Reguläre Ausdrücke sind sehr mächtig. Damit kann man z.B. Strings analysieren. Wir haben unter Linux mit (sed, grep) gearbeitet. Unter VC++ musst du zusätzlich boost::regex installieren.</p>
<p>Hier noch ein Beitrag aus dem C++ Forum:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=61159&amp;highlight=regex" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=61159&amp;highlight=regex</a></p>
<p>Wie sehen deine Strings genau aus? Poste mal ein paar..</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519735</guid><dc:creator><![CDATA[EdiRitter]]></dc:creator><pubDate>Thu, 13 May 2004 14:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:18:49 GMT]]></title><description><![CDATA[<p>[edit] [/edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519737</guid><dc:creator><![CDATA[EdiRitter]]></dc:creator><pubDate>Thu, 13 May 2004 14:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:16:14 GMT]]></title><description><![CDATA[<p>[edit] [/edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519736</guid><dc:creator><![CDATA[EdiRitter]]></dc:creator><pubDate>Thu, 13 May 2004 14:16:14 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:20:12 GMT]]></title><description><![CDATA[<p>Mid(1) durchsucht erstes bis ( einschl. ) letztes zeichen. dann kannst dir die for schleife sparen</p>
<pre><code class="language-cpp">if( mystring.Mid(1) == &quot;0&quot; ||.... ||&quot;9&quot;||&quot;0&quot;)  // .... mathematisch ausgedruckt ;) also nicht so uebernehmen :)
return FALSE;
</code></pre>
<p>oder du benutzt boost::regex ( muesste auch gehen ) oder halt oldschool s.o.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519742</guid><dc:creator><![CDATA[newkid]]></dc:creator><pubDate>Thu, 13 May 2004 14:20:12 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:40:17 GMT]]></title><description><![CDATA[<p>Meine CStrings müssen vom Benutzer in ein Eingabefeld eingegeben werden. Wenn er dann auf Button &quot;Datensatz hinzufügen&quot; klickt( dazu muss ich sagen dass eine ODBC Datenbankanbindung besteht, in die ich wunderbar lesen und schreiben kann ), ruft dieser dann DieseJeneWelche Funktion auf, die nur überprüfen soll ob sich Zahlen oder Buchstaben im Eingabefeld befinden.<br />
Oder anders gesagt: Es handelt sich um die Spalte Projektnummer. Da isses ja nicht sinnvoll irgendwelche Buchstaben einzutippen und in die Datenbank zu speichern.<br />
Darum soll vorher überprüft werden ob sich auch wirklich nur Ziffern oder Leerzeichen im String befinden.<br />
Natürlich ist es für den Benutzer später logisch nur Ziffern einzugeben aber es kann ja trotzdem mal passieren ( typ. Dummy-User-Probl) das ein Buchstabe dazwischenrutscht. Und das wiederum wäre sehr fatal weil es dann nicht ausgeschlossen ist das die ganze Datenbank abkackt. Deshalb meine Intuition: ZahlenCheck().</p>
<p>Also um auf die Frage zu antworten, die Strings bestehen aus bis zu 5 Zeichen, hoffentlich alles Ziffern!!!</p>
<p>Ach alles Mist.<br />
Da war ja die Kontrolle der Projektnummer einfacher also das keine doppelten Werte in die Datenbank kommen, das funzt super.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519747</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Thu, 13 May 2004 14:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:44:29 GMT]]></title><description><![CDATA[<p>Das mit dem .Mid klingt ziemlich sinnvoll. Habe vorhin damit rumgespielt, vergebens. Aber mir steht schon im Sinn was ich falsch hatte. Naja, ich glaub es ist Zeit Feierabend zu machen.</p>
<p>Dank geht an NewKid, EdiRitter, Zugucker!! <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>
<p>Morgen mal weitersehn<br />
MfG<br />
RunSeb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519751</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Thu, 13 May 2004 14:44:29 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 14:53:44 GMT]]></title><description><![CDATA[<p>also hier noch was</p>
<p>FindOneOf liefert dir dann &gt; -1 wenn er einen buchstaben findet</p>
<p>musst halt ne for schleife machen und abfragen mit</p>
<pre><code class="language-cpp">CString array[] // alle zahlen + leer reinfuellen
for ( int i = 0; i &lt; 11 &amp;&amp; flag == FALSE; i++)

if( mystring.FindOneOf( array[i]  ) &gt; -1 )  // array[i] == &quot;0&quot; z.b. d.h. er schlaegt alarm dann musst noch ein stopflag machen das dann abbricht
flag = TRUE;
</code></pre>
<p>ich sehe du bracusht es ja umgekehrt also nur ziffern und leer darf vorkommen<br />
jetzt musst es halt andersrum machen. aber bitte nicht das array jetzt mit allen zeichen fuellen bis auf die 10. hmm checks ab geht auf jedenfall</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519759</guid><dc:creator><![CDATA[newkid]]></dc:creator><pubDate>Thu, 13 May 2004 14:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 15:01:16 GMT]]></title><description><![CDATA[<p>also kruz nochmals nachgedacht</p>
<p>1. 1ste schleife muss 5 mal durchlaufen ( da 5 werte lang die nr. )<br />
2. 2te schleife muss 10 mal durchlaufen ( da 10 gueltige zeichen )</p>
<p>dann suchste nach denn 11 zeichen die vorkommen koennen</p>
<p>in 2ter schleife<br />
sobald != array[i] ( also kommt -1 raus, weil wenn gueltiges zeichen muss ja groesser -1 rauskommen ) in der 2ten schleife, dann das flag setzen damit er sofort abbricht</p>
<p>und dieses flag in beiden forschleifen mitabfragen. da du ja nur BADCASE 5*11 durchmachst ist dieser algor. nicht mal so schlecht ( ausser du arbeitest auf einem pocketpc mit 0.5 mhz oder so LOL SCHERZ )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519767</guid><dc:creator><![CDATA[newkid]]></dc:creator><pubDate>Thu, 13 May 2004 15:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 16:38:22 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool Keywordverwaltung::checkisnummeric(CString checkstring)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

for( int i=0; i&lt;=checkstring.GetLength()-1; i++)
{

  TCHAR z = checkstring[i];
  if( isdigit(z))
  {
  }
  else
	  return false;
} 

return true;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/519854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519854</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Thu, 13 May 2004 16:38:22 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 16:38:58 GMT]]></title><description><![CDATA[<p>tom du bist der dude!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519856</guid><dc:creator><![CDATA[newkid]]></dc:creator><pubDate>Thu, 13 May 2004 16:38:58 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Thu, 13 May 2004 16:55:24 GMT]]></title><description><![CDATA[<p>Was ist ein dude ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519869</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Thu, 13 May 2004 16:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Fri, 14 May 2004 06:24:36 GMT]]></title><description><![CDATA[<p>Guten Morchen</p>
<p>Hey Dude....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/520065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/520065</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Fri, 14 May 2004 06:24:36 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Fri, 14 May 2004 06:57:58 GMT]]></title><description><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Dude" rel="nofollow">http://en.wikipedia.org/wiki/Dude</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/520084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/520084</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Fri, 14 May 2004 06:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Fri, 14 May 2004 07:04:18 GMT]]></title><description><![CDATA[<p>Also vielen Dank an Tom. Erfüllt seinen Zweck funz gut!!<br />
( Was es nicht alles gibt ) <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="😮"
    /> <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="😃"
    /><br />
Folgendes:<br />
Zitat aus der MSDN zu AFX_MANAGE_STATE(AfxGetStaticModuleState());:</p>
<p>&quot;Call this macro to protect an exported function in a DLL. When this macro is invoked, pModuleState is the effective module state for the remainder of the immediate containing scope. Upon leaving the scope, the previous effective module state will be automatically restored.&quot;</p>
<p>Wieso wird die Funktion geschützt, ich werd später das ganze als statische DLL versuchen in eine große Anwendung einzubauen. Habe dann hoffentlich keine Nachteile oder Funktionsstörungen zu befürchten!?<br />
Was macht das AFX_MANAGE_STATE(AfxGetStaticModuleState()); wirklich? <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="😕"
    /></p>
<p>newkid schrieb:</p>
<blockquote>
<p>also kruz nochmals nachgedacht</p>
<p>1. 1ste schleife muss 5 mal durchlaufen ( da 5 werte lang die nr. )<br />
2. 2te schleife muss 10 mal durchlaufen ( da 10 gueltige zeichen )</p>
<p>dann suchste nach denn 11 zeichen die vorkommen koennen</p>
<p>in 2ter schleife<br />
sobald != array[i] ( also kommt -1 raus, weil wenn gueltiges zeichen muss ja groesser -1 rauskommen ) in der 2ten schleife, dann das flag setzen damit er sofort abbricht</p>
<p>und dieses flag in beiden forschleifen mitabfragen. da du ja nur BADCASE 5*11 durchmachst ist dieser algor. nicht mal so schlecht ( ausser du arbeitest auf einem pocketpc mit 0.5 mhz oder so LOL SCHERZ )</p>
</blockquote>
<p><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="🙄"
    /> <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>Genau so oder nur geringfügig ähnlich hatte ich das vorher auch im Kopp. Werde mich im Laufe des Tages noch mal ran machen. Das muss gehn. PS: Is zwar keine PowerStation (... und auch kein PocketPC ) aber für die Arbeit reicht das Gerät wo ich hier vor sitz! <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>MfG<br />
RunSeb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/520088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/520088</guid><dc:creator><![CDATA[RunSeb]]></dc:creator><pubDate>Fri, 14 May 2004 07:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to Völlig simpler CString on Fri, 14 May 2004 08:56:03 GMT]]></title><description><![CDATA[<p>Das musst du rausnehmen., Ich habe es nur aus meiner DLL kopiert.</p>
<p>Mit dem Macro werden nur die aktuellen Resource auf die der DLL gesetzt und nach verlassen wieder zurück. z.B. der Filename.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/520153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/520153</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Fri, 14 May 2004 08:56:03 GMT</pubDate></item></channel></rss>