<?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[Erstes MFC-Programm: String-Probleme...]]></title><description><![CDATA[<p>Ja hallo ertmal!<br />
Ich bin noch ein C++ Einsteiger und hab in der Schule mit dem Programmieren angefangen, allerdings bis jetzt nur Konsolenanwendungen. Diese Woche hatten wir das Thema Dateizugriff und da hat's mich gereizt mal ein Programm zu schreiben, dass ich mir schon länger wünsche:<br />
Es geht um GTA San Andreas und zwar muss man, wenn man neue Autos in das Spiel einfügt, die Konfigurationsdateien angleichen, die reine Textdateien sind. Also muss man die Konfigurationszeile aus der Readme des Authors rauskopieren und dann die jeweilige GTA Konfigurationsdateien öffnen, die entsprechende Zeile suchen und ersetzen.</p>
<p>Dies Config-Files sehen ungefähr so aus (nur ein kleiner Auszug):</p>
<pre><code>411, 	infernus, 	infernus, 	car, 		INFERNUS, 	INFERNU, 	null,	executive, 	5, 	0,	0,		-1, 0.7, 0.7,		0
412, 	voodoo, 	voodoo, 	car, 		VOODOO, 	VOODOO, 	null,	poorfamily,	10, 	0,	0,		-1, 0.7, 0.7,		0
413, 	pony,		pony,		car, 		PONY, 		PONY, 		van,	worker,		10, 	0,	0,		-1, 0.72, 0.72,		-1
414, 	mule, 		mule, 		car, 		MULE, 		MULE, 		null,	worker, 	10, 	0,	0,		-1, 0.76, 0.76,		-1
415, 	cheetah, 	cheetah, 	car, 		CHEETAH, 	CHEETAH, 	null,	executive, 	5, 	0,	0,		-1, 0.68, 0.68,		0
416, 	ambulan, 	ambulan, 	car, 		AMBULAN, 	AMBULAN, 	van,	ignore,		10,	0,	0,		-1, 0.864, 0.864,	-1
417, 	leviathn, 	leviathn, 	heli, 		LEVIATHN, 	LEVIATH, 	null,	ignore,		5,	0,	0,		-1, 0.54, 0.4,		-1
418, 	moonbeam, 	moonbeam, 	car, 		MOONBEAM, 	MOONBM, 	null,	normal,		10, 	0,	0,		-1, 0.7, 0.7,		0
419, 	esperant, 	esperant, 	car, 		ESPERANT, 	ESPERAN, 	null,	normal,		10, 	0,	0,		-1, 0.64, 0.64,		0
</code></pre>
<p>Ich möchte das ganze automatisieren und hab angefangen, ein MFC-Progrämmchen zu schreiben, das die Textdatei einlesen soll, der Benutzer kopiert dann die Konfigurationszeile in ein Textfeld und das Programm soll dann am besten die ersten 8 stellen in einen anderen String kopieren und diesen dazu benutzen, nach genau dieser Zeichenfolge in der Textdatei zu suchen und die entsprechende Zeile mit der neuen zu ersetzen.</p>
<p>Die Funktion für den Button sieht folgendermaßen aus:<br />
<a href="http://img68.imageshack.us/img68/893/cplus3xh.jpg" rel="nofollow">http://img68.imageshack.us/img68/893/cplus3xh.jpg</a></p>
<pre><code class="language-cpp">void CGTAConfixxDlg::OnOk2() 
{

	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
	UpdateData(TRUE);

	FILE *FDatei;
	int i=0;
	char cFile[1000][255]={&quot; &quot;};

	FDatei=fopen(m_folder, &quot;r+&quot;);	// Datei öffnen, r+ = lesen &amp; schreiben

	do
	{
	fgets(cFile[i], 253, FDatei);	// jede Zeile wird in einem Feld gespeichert
	i++;							// zählt die Zeilen hoch
	}while(!feof(FDatei));			// lese bis Dateiende
	m_debug=i;						// Debug-Zeile, um verschiedene Dinge zu testen

	//string hello(&quot;hallo&quot;); geht nicht???(string nicht deklarierter Bezeicher)
	//char search[7];
	//int k=0;
	//do
	//{
	//strcpy(search[k],cFile[k]) // geht ja nicht, weil beides char... oder?
	//k++;
	//}while(k&lt;7);

        // Jetz soll die Zeile in der Textdatei gefunden werden, in der search[0 bis 7] vorkommt
        // und die jeweilige Zeile durch m_carspec ersetzt werden...

	fclose(FDatei);					// Datei schliessen

	MessageBox(cFile[30]);			// Nur mal so zum testen, ob die Textdatei fehlerfrei eingelesen wurde
	UpdateData(FALSE);

}
</code></pre>
<p>In diesem Status treten keine Fehler oder Warnungen auf und die Datei wird einwandfrei eingelesen. Über &quot;MessageBox(cFile[30]); &quot; bekomm ich die jeweilige Zeile angezeigt.</p>
<p>Nur den (im Moment auskommentierten) Teil nach dem Dateieinlesen versteh ich net so ganz. Ich wollte eigentlich die ersten 8 zeichen vom carspec in einen neuen string kopieren und diesen dann dazu benutzen, in der textdatei Zeile für Zeile nach dem Suchwort zu suchen. Aber ich kann noch nicht mal strings deklarieren, obwohl string und cstring.h included sind. Ich weiß nicht mehr weiter.</p>
<p>Ich hoffe auf euren guten Rat <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/topic/141842/erstes-mfc-programm-string-probleme</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 20:28:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141842.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Mar 2006 15:45:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Erstes MFC-Programm: String-Probleme... on Sat, 25 Mar 2006 15:45:16 GMT]]></title><description><![CDATA[<p>Ja hallo ertmal!<br />
Ich bin noch ein C++ Einsteiger und hab in der Schule mit dem Programmieren angefangen, allerdings bis jetzt nur Konsolenanwendungen. Diese Woche hatten wir das Thema Dateizugriff und da hat's mich gereizt mal ein Programm zu schreiben, dass ich mir schon länger wünsche:<br />
Es geht um GTA San Andreas und zwar muss man, wenn man neue Autos in das Spiel einfügt, die Konfigurationsdateien angleichen, die reine Textdateien sind. Also muss man die Konfigurationszeile aus der Readme des Authors rauskopieren und dann die jeweilige GTA Konfigurationsdateien öffnen, die entsprechende Zeile suchen und ersetzen.</p>
<p>Dies Config-Files sehen ungefähr so aus (nur ein kleiner Auszug):</p>
<pre><code>411, 	infernus, 	infernus, 	car, 		INFERNUS, 	INFERNU, 	null,	executive, 	5, 	0,	0,		-1, 0.7, 0.7,		0
412, 	voodoo, 	voodoo, 	car, 		VOODOO, 	VOODOO, 	null,	poorfamily,	10, 	0,	0,		-1, 0.7, 0.7,		0
413, 	pony,		pony,		car, 		PONY, 		PONY, 		van,	worker,		10, 	0,	0,		-1, 0.72, 0.72,		-1
414, 	mule, 		mule, 		car, 		MULE, 		MULE, 		null,	worker, 	10, 	0,	0,		-1, 0.76, 0.76,		-1
415, 	cheetah, 	cheetah, 	car, 		CHEETAH, 	CHEETAH, 	null,	executive, 	5, 	0,	0,		-1, 0.68, 0.68,		0
416, 	ambulan, 	ambulan, 	car, 		AMBULAN, 	AMBULAN, 	van,	ignore,		10,	0,	0,		-1, 0.864, 0.864,	-1
417, 	leviathn, 	leviathn, 	heli, 		LEVIATHN, 	LEVIATH, 	null,	ignore,		5,	0,	0,		-1, 0.54, 0.4,		-1
418, 	moonbeam, 	moonbeam, 	car, 		MOONBEAM, 	MOONBM, 	null,	normal,		10, 	0,	0,		-1, 0.7, 0.7,		0
419, 	esperant, 	esperant, 	car, 		ESPERANT, 	ESPERAN, 	null,	normal,		10, 	0,	0,		-1, 0.64, 0.64,		0
</code></pre>
<p>Ich möchte das ganze automatisieren und hab angefangen, ein MFC-Progrämmchen zu schreiben, das die Textdatei einlesen soll, der Benutzer kopiert dann die Konfigurationszeile in ein Textfeld und das Programm soll dann am besten die ersten 8 stellen in einen anderen String kopieren und diesen dazu benutzen, nach genau dieser Zeichenfolge in der Textdatei zu suchen und die entsprechende Zeile mit der neuen zu ersetzen.</p>
<p>Die Funktion für den Button sieht folgendermaßen aus:<br />
<a href="http://img68.imageshack.us/img68/893/cplus3xh.jpg" rel="nofollow">http://img68.imageshack.us/img68/893/cplus3xh.jpg</a></p>
<pre><code class="language-cpp">void CGTAConfixxDlg::OnOk2() 
{

	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
	UpdateData(TRUE);

	FILE *FDatei;
	int i=0;
	char cFile[1000][255]={&quot; &quot;};

	FDatei=fopen(m_folder, &quot;r+&quot;);	// Datei öffnen, r+ = lesen &amp; schreiben

	do
	{
	fgets(cFile[i], 253, FDatei);	// jede Zeile wird in einem Feld gespeichert
	i++;							// zählt die Zeilen hoch
	}while(!feof(FDatei));			// lese bis Dateiende
	m_debug=i;						// Debug-Zeile, um verschiedene Dinge zu testen

	//string hello(&quot;hallo&quot;); geht nicht???(string nicht deklarierter Bezeicher)
	//char search[7];
	//int k=0;
	//do
	//{
	//strcpy(search[k],cFile[k]) // geht ja nicht, weil beides char... oder?
	//k++;
	//}while(k&lt;7);

        // Jetz soll die Zeile in der Textdatei gefunden werden, in der search[0 bis 7] vorkommt
        // und die jeweilige Zeile durch m_carspec ersetzt werden...

	fclose(FDatei);					// Datei schliessen

	MessageBox(cFile[30]);			// Nur mal so zum testen, ob die Textdatei fehlerfrei eingelesen wurde
	UpdateData(FALSE);

}
</code></pre>
<p>In diesem Status treten keine Fehler oder Warnungen auf und die Datei wird einwandfrei eingelesen. Über &quot;MessageBox(cFile[30]); &quot; bekomm ich die jeweilige Zeile angezeigt.</p>
<p>Nur den (im Moment auskommentierten) Teil nach dem Dateieinlesen versteh ich net so ganz. Ich wollte eigentlich die ersten 8 zeichen vom carspec in einen neuen string kopieren und diesen dann dazu benutzen, in der textdatei Zeile für Zeile nach dem Suchwort zu suchen. Aber ich kann noch nicht mal strings deklarieren, obwohl string und cstring.h included sind. Ich weiß nicht mehr weiter.</p>
<p>Ich hoffe auf euren guten Rat <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/1023773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1023773</guid><dc:creator><![CDATA[N.I.C.E]]></dc:creator><pubDate>Sat, 25 Mar 2006 15:45:16 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes MFC-Programm: String-Probleme... on Sat, 25 Mar 2006 16:57:09 GMT]]></title><description><![CDATA[<p>Um die Klasse string aus der STL zu verwenden, must Du (am besten in der stdafx.h) den Header inkludieren.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
</code></pre>
<p>Dann kannst Du über std::string die Stringklasse aus der STL verwenden.</p>
<p>Oder du schreibst in der cpp-Datei, in der Du die Strings verwendest<br />
folgendes:</p>
<pre><code class="language-cpp">using std::string
</code></pre>
<p>Dann brauchst Du die Strings nicht extra mit std::string angeben.</p>
<p>Du kannst auch in der stdafx.h hinter dem include eine Typdefinition<br />
angeben um z.B. auch Unicode zu unterstützen:</p>
<pre><code class="language-cpp">#ifdef _UNICODE
typedef std::wstring TString
#else
typedef std::string TString
#endif
</code></pre>
<p>Danach steht Dir TString in deinem Programm zur Verfügung.</p>
<p>Noch besser allerdings, verwendest Du statt der STL-Strings die MFC-Strings.</p>
<p>Die heissen CString und sind ab VC2003 genausogut, und innerhalb der MFC<br />
viel praktischer.</p>
<p>Gruss<br />
EB</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1023822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1023822</guid><dc:creator><![CDATA[EB]]></dc:creator><pubDate>Sat, 25 Mar 2006 16:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes MFC-Programm: String-Probleme... on Sat, 25 Mar 2006 18:10:23 GMT]]></title><description><![CDATA[<p>Erstmal danke für die prompte Antowrt <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>EB schrieb:</p>
<blockquote>
<p>Um die Klasse string aus der STL zu verwenden, must Du (am besten in der stdafx.h) den Header inkludieren.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
</code></pre>
</blockquote>
<p>Ja, schon klar, hab ich ja auch gemacht: &quot;obwohl string und cstring.h included sind&quot;. Das versteh ich ja grad nich, weil er mir trotzdem sagt, dass string ein nicht deklarierter Bezeichner sei... mit CString hab ich es auch schon probiert, mit dem selben Fehler...</p>
<p>EB schrieb:</p>
<blockquote>
<p>Oder du schreibst in der cpp-Datei, in der Du die Strings verwendest<br />
folgendes:</p>
<pre><code class="language-cpp">using std::string
</code></pre>
</blockquote>
<p>Da bringt er mir 6 Fehler, angeführt von &quot;'std' : Keine Klasse oder Namespace&quot;<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>EB schrieb:</p>
<blockquote>
<p>Du kannst auch in der stdafx.h hinter dem include eine Typdefinition<br />
angeben um z.B. auch Unicode zu unterstützen:</p>
<pre><code class="language-cpp">#ifdef _UNICODE
typedef std::wstring TString
#else
typedef std::string TString
#endif
</code></pre>
</blockquote>
<p>ääähm ja...<br />
Also das ganze muss in die stdafx.h?<br />
und dann? Schreib ich dann für die Variablendeklaration z. B. &quot;TString hello(&quot;hello!&quot;);&quot; ?</p>
<p>EB schrieb:</p>
<blockquote>
<p>Noch besser allerdings, verwendest Du statt der STL-Strings die MFC-Strings.</p>
<p>Die heissen CString und sind ab VC2003 genausogut, und innerhalb der MFC<br />
viel praktischer.</p>
</blockquote>
<p>die cstring.h hab ich ja included aber wenn ich meine Variable deklarieren will, kommt immer &quot;nichtdeklarierter Bezeichner&quot; das ist es ja was ich nicht verstehe... ICh hab hier so 2 schöne C++ Büchlein rumliegen, die mir aber leider nicht viel weiterhelfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1023874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1023874</guid><dc:creator><![CDATA[N.I.C.E]]></dc:creator><pubDate>Sat, 25 Mar 2006 18:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes MFC-Programm: String-Probleme... on Sat, 25 Mar 2006 18:21:19 GMT]]></title><description><![CDATA[<p>Wenn Du eine MFC Anwendung hast (wovon ich ja ausgehe, sonst würdest Du hier ja nicht posten), dann hast DU schon per default alles korrekt includiert und kannst direkt</p>
<pre><code class="language-cpp">CString str(_T(&quot;Hallo&quot;));
</code></pre>
<p>verwenden.<br />
Und wenn Du schon MFC hast, dann solltest Du auch CFile verwenden um eine Datei zu lesen...<br />
Siehe: Files in MFC<br />
<a href="http://msdn2.microsoft.com/ey6xh9bk" rel="nofollow">http://msdn2.microsoft.com/ey6xh9bk</a></p>
<p>Oder was ist Dein Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1023880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1023880</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 25 Mar 2006 18:21:19 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes MFC-Programm: String-Probleme... on Mon, 27 Mar 2006 09:25:05 GMT]]></title><description><![CDATA[<p>Datei-Handling:<br />
<a href="http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel3.htm" rel="nofollow">http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel3.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024629</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Mon, 27 Mar 2006 09:25:05 GMT</pubDate></item></channel></rss>