<?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[brauch hilfe zu einem program]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich muss für die schule ein C++ Programm schreiben und da ich noch nicht soviel mit c\c++ gemacht habe würde ich mich freuen wenn ihr mir ein paar Tipps geben könntet wie ich irgendwas besser machen kann.</p>
<p>Nun zu meinem Programm:<br />
Das Programm soll die Tasteneingaben über eine (Hook).dll - Datei abfangen und die Anzahl der anschläge in eine Log-Testdatei erhöhen und abspeichern. Die dll Datei habe ich schon mit hilfe des Internets realisiert und es funktioniert mehr oder weniger schon. (Funkitioniert nicht wenn man das Fenster minimiert)</p>
<p>Nun kommen wir zu dem Punkt wo ich auf eine Tasteneigabe reagieren will.<br />
Die Logfile habe ich so vorbereitet das ich jede Taste schon mal mit dem Wert definiert haben:</p>
<p>&quot;ECS/0&quot;F1/0&quot;F2/0&quot;F3/0&quot;...... (In dem Format als String abgespeichert)</p>
<p>Nun bekomme ich z.B die Eingabe &quot;F1&quot;. Jetzt will ich die Datei öffnen, im String nach dem Eintrag &quot;F1&quot; suchen, den Wert nach dem nächsten &quot;/&quot; erhöhen und wieder abspeichern. Vielleicht mach ich das ja alles viel zu umständlich, aber ne andere lösung ist mir nicht eingefallen und melde mich deswegen ja bei euch.</p>
<p>Hier mein Code zum erhöhen der Taste</p>
<pre><code>void TKeyHookForm::addKey(char Key[40])
{
 //Hier wird die logfile DAtei hochgeladen und der Wert für die
 //übergeben Taste wird um eins erhöht

   datei = fopen(logfile,&quot;rt&quot;);
   char* str_line1,* str_line2;
   int ok = 0;

   char line[line_size];   //Line_size = 50000 
   fgets(line,line_size,datei);
   str_line1 = strtok(line, &quot;\&quot;&quot; );  //str_line1 hat doch jetzt z.B: F3/12
   while (str_line1 != NULL){
     str_line2 = strtok(str_line1, &quot;/&quot;); //str_line2 hat dann jetzt F3
     if (str_line2 == Key){              
        Memo1-&gt;SetSelTextBuf(str_line2); //solange in der schleife bis die 
                                         //Taste passt und dann ausgabe
        ok = 1;
     }
     if(ok = 1)break;
     str_line1 = strtok(line, &quot;\&quot;&quot; );
   }
   fclose(datei);
}
//---------------------------------------------------------------------------
</code></pre>
<p>Ich habs jetzt erstmal mit nur &quot;Ausgeben wenn die richtige Taste gefunden wurder&quot; versucht. Weil ich noch folgende Probleme habe:<br />
- Wenn ich die Richtige Taste gefunden habe, wie komme ich dann zu dem Wert?<br />
- Wie kann ich am besten den veränderten String wieder zusammenfügen und<br />
abspeichern</p>
<p>Ich hoffe ihr könnt mir einpaar Tipps geben wie ich das besser machen kann.</p>
<p>Danke schön...<br />
semid</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151847/brauch-hilfe-zu-einem-program</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 23:41:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151847.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Jun 2006 06:37:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to brauch hilfe zu einem program on Fri, 30 Jun 2006 06:37:27 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich muss für die schule ein C++ Programm schreiben und da ich noch nicht soviel mit c\c++ gemacht habe würde ich mich freuen wenn ihr mir ein paar Tipps geben könntet wie ich irgendwas besser machen kann.</p>
<p>Nun zu meinem Programm:<br />
Das Programm soll die Tasteneingaben über eine (Hook).dll - Datei abfangen und die Anzahl der anschläge in eine Log-Testdatei erhöhen und abspeichern. Die dll Datei habe ich schon mit hilfe des Internets realisiert und es funktioniert mehr oder weniger schon. (Funkitioniert nicht wenn man das Fenster minimiert)</p>
<p>Nun kommen wir zu dem Punkt wo ich auf eine Tasteneigabe reagieren will.<br />
Die Logfile habe ich so vorbereitet das ich jede Taste schon mal mit dem Wert definiert haben:</p>
<p>&quot;ECS/0&quot;F1/0&quot;F2/0&quot;F3/0&quot;...... (In dem Format als String abgespeichert)</p>
<p>Nun bekomme ich z.B die Eingabe &quot;F1&quot;. Jetzt will ich die Datei öffnen, im String nach dem Eintrag &quot;F1&quot; suchen, den Wert nach dem nächsten &quot;/&quot; erhöhen und wieder abspeichern. Vielleicht mach ich das ja alles viel zu umständlich, aber ne andere lösung ist mir nicht eingefallen und melde mich deswegen ja bei euch.</p>
<p>Hier mein Code zum erhöhen der Taste</p>
<pre><code>void TKeyHookForm::addKey(char Key[40])
{
 //Hier wird die logfile DAtei hochgeladen und der Wert für die
 //übergeben Taste wird um eins erhöht

   datei = fopen(logfile,&quot;rt&quot;);
   char* str_line1,* str_line2;
   int ok = 0;

   char line[line_size];   //Line_size = 50000 
   fgets(line,line_size,datei);
   str_line1 = strtok(line, &quot;\&quot;&quot; );  //str_line1 hat doch jetzt z.B: F3/12
   while (str_line1 != NULL){
     str_line2 = strtok(str_line1, &quot;/&quot;); //str_line2 hat dann jetzt F3
     if (str_line2 == Key){              
        Memo1-&gt;SetSelTextBuf(str_line2); //solange in der schleife bis die 
                                         //Taste passt und dann ausgabe
        ok = 1;
     }
     if(ok = 1)break;
     str_line1 = strtok(line, &quot;\&quot;&quot; );
   }
   fclose(datei);
}
//---------------------------------------------------------------------------
</code></pre>
<p>Ich habs jetzt erstmal mit nur &quot;Ausgeben wenn die richtige Taste gefunden wurder&quot; versucht. Weil ich noch folgende Probleme habe:<br />
- Wenn ich die Richtige Taste gefunden habe, wie komme ich dann zu dem Wert?<br />
- Wie kann ich am besten den veränderten String wieder zusammenfügen und<br />
abspeichern</p>
<p>Ich hoffe ihr könnt mir einpaar Tipps geben wie ich das besser machen kann.</p>
<p>Danke schön...<br />
semid</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1088805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1088805</guid><dc:creator><![CDATA[semid]]></dc:creator><pubDate>Fri, 30 Jun 2006 06:37:27 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Fri, 30 Jun 2006 06:43:38 GMT]]></title><description><![CDATA[<p>Das kann arg kompliziert werden, wenn du bei jedem Tastendruck durch die Datei ratterst (und spätestens beim 10. Druck auf ESC mußt du alle Daten nach hinten verschieben, um die &quot;10&quot; reinquetschen zu können). Lies dir deine Datei lieber einmal in den Speicher ein (z.B. in eine map&lt;string,int&gt;) und arbeite dann auf den eingelesenen Daten - bei Programmende kannst du alle Daten wieder auf Platte schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1088808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1088808</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 30 Jun 2006 06:43:38 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Fri, 30 Jun 2006 07:53:07 GMT]]></title><description><![CDATA[<p>Hallo CStoll,</p>
<p>ok einmal einlesen, verstanden.<br />
Kannst du mir vielleicht sagen was du mit map&lt;string,int&gt; meinst oder ein beispiel zeigen.</p>
<p>Danke<br />
semid</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1088849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1088849</guid><dc:creator><![CDATA[semid]]></dc:creator><pubDate>Fri, 30 Jun 2006 07:53:07 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Fri, 30 Jun 2006 07:56:41 GMT]]></title><description><![CDATA[<p>...oder du nimmst irgendeinen keylogger der alles in eine datei schreibt und wertest die am schluss aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1088852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1088852</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Fri, 30 Jun 2006 07:56:41 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Fri, 30 Jun 2006 08:07:53 GMT]]></title><description><![CDATA[<p>Zum Thema map&lt;&gt; findest du im Magazin einen Artikel (STL Teil 1). Dort kannst du zu jeder interessanten Taste den Namen (string) und die Anzahl der Tastendrücke (int) eintragen. Beim Programmstart mußt du aus der seltsamen Dateistruktur dort oben die Taste/Wert-Paare auslesen und in deine Map einfügen, im laufenden Programm erhöhst du die Werte und am Ende schreibst du alles wieder zurück:</p>
<pre><code class="language-cpp">map&lt;string,int&gt; tasten;

//Start:
ifstream file(&quot;tasten.txt&quot;);
while(file)
{
  string name;int wert;
  file.get();             // &quot; auslesen
  getline(file,name,'/'); // Name lesen (überliest das Endezeichen /)
  file&gt;&gt;wert;
  if(file) tasten.insert(make_pair(name,wert));
}
file.close();

//Tastendruck auswerten
string name = hole_taste();//gibt den Namen der aktuellen Taste als String zurück
tasten[name]++;//erhöhe Zähler

//Programmende
ofstream file(&quot;tasten.txt&quot;);
for(map&lt;string,int&gt;::iterator p=tasten.begin();p!=tasten.end();++p)
  file&lt;&lt;'&quot;'&lt;&lt;p-&gt;first&lt;&lt;'/'&lt;&lt;p-&gt;second;
file&lt;&lt;'&quot;';
file.close();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1088857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1088857</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 30 Jun 2006 08:07:53 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Sat, 01 Jul 2006 16:18:38 GMT]]></title><description><![CDATA[<p>hallo ich bin es wieder...</p>
<p>- Ich hab auf meinem Form ein paar Buttons erstellt und will als Aktion nur eine Methode aufrufen. In der Methode will ich aber wissen von welchem Button die aufgerufen wurde.<br />
Kann mir jemand sagen ob das irgendwie möglich ist und wie?</p>
<p>- Kann ich irgendwie zwei String Variablen (keine char) vergleichen.</p>
<p>Also:</p>
<pre><code>string f1,f2;

strcpy(f1, &quot;das ist ein Test&quot;);
strcpy(f2, &quot;das ist ein Test&quot;);
//=&gt; gleich

strcpy(f1, &quot;das ist ein Test&quot;);
strcpy(f2, &quot;das ist kein Test&quot;);
//=&gt;ungleich
</code></pre>
<p>Danke schön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089644</guid><dc:creator><![CDATA[semid]]></dc:creator><pubDate>Sat, 01 Jul 2006 16:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Sat, 01 Jul 2006 20:57:33 GMT]]></title><description><![CDATA[<p>semid schrieb:</p>
<blockquote>
<pre><code class="language-cpp">string f1,f2;

strcpy(f1, &quot;das ist ein Test&quot;);
strcpy(f2, &quot;das ist ein Test&quot;);
//=&gt; gleich

strcpy(f1, &quot;das ist ein Test&quot;);
strcpy(f2, &quot;das ist kein Test&quot;);
//=&gt;ungleich
</code></pre>
</blockquote>
<p>*lol*</p>
<p>Ein Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main( )
{
    string one = &quot;Hello!&quot;, two;

    cout &lt;&lt; &quot;My string is \&quot;&quot; &lt;&lt; one &lt;&lt; &quot;\&quot;. Enter one: &quot; &lt;&lt; endl;
    cin &gt;&gt; two;

    cout &lt;&lt; &quot;\&quot;&quot; &lt;&lt; one;
    if( one.compare( two ) == 0 ) {

        cout &lt;&lt; &quot;\&quot; == \&quot;&quot;;

    } else {

        cout &lt;&lt; &quot;\&quot; != \&quot;&quot;;
    }
    cout &lt;&lt; two &lt;&lt; &quot;\&quot;.&quot; &lt;&lt; endl;
}
</code></pre>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089805</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sat, 01 Jul 2006 20:57:33 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Mon, 03 Jul 2006 06:07:51 GMT]]></title><description><![CDATA[<p>Hi, eigentlich muss das gehen aber irgendwie läufs nicht.<br />
DAs Problem ist das er die Daten in der logfile nicht überschreibt sondern die einzelnen Tasten die != 0 sind hinzufügt. Und somit muss ich wenn ich die log-Datei hochlade die Summe der einzellnen Tasten haben:<br />
[code]<br />
// Die log-Datei wird hochgeladen und die Taste mit dem dazuhörigem Wert<br />
// wird in die map &quot;Taste&quot; geschrieben<br />
string name, old_name, new_name;<br />
int wert, old_wert, cmp;<br />
ifstream logfile(&quot;log.txt&quot;);<br />
while(logfile)<br />
{<br />
logfile.get(); // &quot; auslesen<br />
getline(logfile,name,'/'); // Name lesen (überliest das Endezeichen /)<br />
logfile&gt;&gt;wert;<br />
new_name = name; //Welche Taste grade ausgelesen wird<br />
if(logfile)<br />
{<br />
//Wenn die Taste die grade ausgelesen wurde nicht die Taste ist die<br />
//letztes mal ausgelesen wurde. =&gt; Gleiche Tasten werden Summiert<br />
//und die Summe wird in die Map gespeichert</p>
<p>if( new_name.compare( old_name ) != 0 )<br />
{<br />
tasten.insert(make_pair(old_name,old_wert));<br />
old_wert = 0;<br />
ListBox1-&gt;Items-&gt;Add(tasten[old_name]);<br />
}<br />
}<br />
old_name = name; //Welche Taste grade ausgelesen wurde<br />
old_wert+=wert;<br />
}<br />
logfile.close();<br />
[code]</p>
<p>Bei dem Punkt &quot;if( new_name.compare( old_name ) != 0 ) &quot; geht er trotzdem in die if-Anweisung auch wenn new_name und old_name gleich sind.</p>
<p>HAt jemand nen Tip...</p>
<p>Danke schön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1090471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1090471</guid><dc:creator><![CDATA[semid]]></dc:creator><pubDate>Mon, 03 Jul 2006 06:07:51 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Mon, 03 Jul 2006 06:18:19 GMT]]></title><description><![CDATA[<p>Hatte noch was vergessen...</p>
<p>Hab jetzt 2 Forms erstellt, und muss im 2tem Form die 1te unit.h datei includieren um mit der Klasse zuarbeiten.<br />
Wenn ich das aber mache bekomme ich einen Fehler bei der deklaration von der<br />
map Variable:</p>
<pre><code>class TKeyHookForm : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TButton *Button1;
        TListBox *ListBox1;
        TPerformanceGraph *PerformanceGraph1;
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall FormDestroy(TObject *Sender);
        void __fastcall SaveData(TObject *Sender, TCloseAction &amp;Action);
        void __fastcall Button1Click(TObject *Sender);
  private:	// Anwender-Deklarationen
    int Graph_var;
    MESSAGE void __fastcall KeyHook(TMessage &amp;Message);
    BEGIN_MESSAGE_MAP
      MESSAGE_HANDLER(WM_KEYHOOK, TMessage, KeyHook);
    END_MESSAGE_MAP(TForm);
  public:      	// Anwender-Deklarationen
        __fastcall TKeyHookForm(TComponent* Owner);
         void addKey(char[]);
         map&lt;string,int&gt;tasten;      //Fehler
         int GetGraph_var(char[]);

};
</code></pre>
<p>[C++ Fehler] Unit1.h(35): E2303 Typname erwartet<br />
[C++ Fehler] Unit1.h(35): E2139 In Deklaration fehlt ;</p>
<p>Hat jemand ne Idee woran das liegen könnte...</p>
<p>Danke schön<br />
Semid</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1090473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1090473</guid><dc:creator><![CDATA[semid]]></dc:creator><pubDate>Mon, 03 Jul 2006 06:18:19 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Mon, 03 Jul 2006 06:59:08 GMT]]></title><description><![CDATA[<p>#include &lt;map&gt; vergessen?</p>
<p>#include &lt;stirng&gt; vergessen?</p>
<p>using namespace std vergessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1090497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1090497</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Mon, 03 Jul 2006 06:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Tue, 04 Jul 2006 13:25:36 GMT]]></title><description><![CDATA[<p>#include &lt;map&gt; vergessen?<br />
#include &lt;stirng&gt; vergessen?</p>
<p>ne hatte ich schon drin...<br />
was meinst du mit:<br />
using namespace std vergessen? <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="🙄"
    /></p>
<p>Gruß<br />
semid</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091242</guid><dc:creator><![CDATA[semid]]></dc:creator><pubDate>Tue, 04 Jul 2006 13:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to brauch hilfe zu einem program on Tue, 04 Jul 2006 13:55:58 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Es ist gemeint ob du die Anweisung</p>
<pre><code class="language-cpp">using namespace std;
</code></pre>
<p>nach den Includes der Headerdatei vergessen hast.</p>
<p>Allerdings solltest du lieber immer <em>std::</em> vor jedem Typ string, vector, map usw. schreiben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091256</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 04 Jul 2006 13:55:58 GMT</pubDate></item></channel></rss>