<?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[Probleme beim bearbeiten einer datei.]]></title><description><![CDATA[<p>Ich arbeite zurzeit an nem klein hilfttool welches mir die konfiguration von nem Emulator erleichtern soll.</p>
<p>nun habe ich schon 75% des program fertig und hänge an der letzetn aufgabe.<br />
Diese besteht darin eine Datei namens World.config zu bearbeiten.</p>
<p>aufbau dieser datei seht ihr hier</p>
<blockquote>
<p>&lt;?xml version=&quot;1.0&quot;?&gt;<br />
&lt;WorldConfig&gt;<br />
&lt;world&gt;<br />
&lt;id&gt;1&lt;/id&gt;<br />
&lt;name&gt;Saga1&lt;/name&gt;<br />
&lt;dbhost&gt;127.0.0.1&lt;/dbhost&gt;<br />
&lt;dbport&gt;8001&lt;/dbport&gt;<br />
&lt;dbuser&gt;saga&lt;/dbuser&gt;<br />
&lt;dbpass&gt;saga&lt;/dbpass&gt;<br />
&lt;/world&gt;<br />
&lt;world&gt;<br />
&lt;id&gt;2&lt;/id&gt;<br />
&lt;name&gt;Saga2&lt;/name&gt;<br />
&lt;dbhost&gt;127.0.0.1&lt;/dbhost&gt;<br />
&lt;dbport&gt;8002&lt;/dbport&gt;<br />
&lt;dbuser&gt;saga&lt;/dbuser&gt;<br />
&lt;dbpass&gt;saga&lt;/dbpass&gt;<br />
&lt;/world&gt;<br />
&lt;/WorldConfig&gt;</p>
</blockquote>
<p>nun bin ich leider bissel aufgeschmissen mit dem wissen was ich atm nur zur verfügung habe in sachen C++ um das zu realisieren.</p>
<p>ich hatte es so geplant das man zwischen 2 funktionen auswählen kann.<br />
einen bestimmten &lt;world&gt;--&lt;/world&gt; block löschen, oder einen hinzufügen.</p>
<p>das hinzufügen wäre indemsinne kein problem wenn ich wüsste wie man zeilen wegschneiden kann, dann würde ich es so realiseren das er überprüft ob schon ein paar tags eingetragen sind, geht zum ende, schneidet den close für &lt;WorldConfig&gt; weg, hängt den neuen block an und schliesst ihn wieder.</p>
<p>hab versucht mich über ios::trunc schlau zu machen da irgendwie nüscht gefunden...</p>
<p>das löschen einer id_tag wäre indem sinne dann das gleiche blos das ich nicht eine zeile sondern den gesamten blog von &lt;world&gt; bis &lt;/world&gt; löschen würde.</p>
<p>hatte auch dran gedacht die id_tags per berechnung vergeben zu lassenaber das ist mir noch bissle zu komliziert <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="🙂"
    /> ich machs erstmal manuel^^ später vielelicht per berechnung.</p>
<p>da ich mit C++ erst seit ~5Tagen arbeite ist die basis relativ billig gehalten. ich kann mir gut vorstellen das man es einfacher realisieren kann. aber ich bin wie gesagt nen laie auf der c++ basis. also bitte nicht meckern q.q</p>
<pre><code class="language-cpp">#include &lt;fstream.h&gt;

//XMl Header für die config Datein
char xml_header[] = &quot;&lt;?xml version=\&quot;1.0\&quot;?&gt;&quot;;

//XML datein für alle configs
char dbhost_in[] = &quot;&lt;dbhost&gt;&quot;;
char dbhost_out[] = &quot;&lt;/dbhost&gt;&quot;;
char dbport_in[] = &quot;&lt;dbport&gt;&quot;;
char dbport_out[] = &quot;&lt;/dbport&gt;&quot;;
char dbuser_in[] = &quot;&lt;dbuser&gt;&quot;;
char dbuser_out[] = &quot;&lt;/dbuser&gt;&quot;;
char dbpass_in[] = &quot;&lt;dbpass&gt;&quot;;
char dbpass_out[] = &quot;&lt;/dbpass&gt;&quot;;

//String für alle configs
char db_host[100];
char db_port[100];
char db_user[100];
char db_pass[100];

//XML datein für die world.config

char world_nameconfig_in[] = &quot;&lt;WorldConfig&gt;&quot;;
char world_nameconfig_out[] = &quot;&lt;/WorldConfig&gt;&quot;;
char world_world_in[] = &quot;&lt;world&gt;&quot;;
char world_world_out[] = &quot;&lt;/world&gt;&quot;;
char world_port_in[] = &quot;&lt;port&gt;&quot;;
char world_port_out[] = &quot;&lt;/port&gt;&quot;;
char world_id_in[] = &quot;&lt;id&gt;&quot;;
char world_id_out[] = &quot;&lt;/id&gt;&quot;;
char world_file[] = &quot;world.config&quot;;
char world_name_in[] = &quot;&lt;name&gt;&quot;;
char world_name_out[] = &quot;&lt;/name&gt;&quot;;

//Strings für die World config
char world_name[100];
int world_idtag;

int main() {
ifstream fin(world_file,ios::nocreate,ios::trunc);
								if (!fin)                // existiert bereits?
								   {

										ofstream fout (world_file);
										fout &lt;&lt; xml_header &lt;&lt; &quot;\n\n&quot;;
										fout &lt;&lt; world_nameconfig_in &lt;&lt; endl;
										fout.close();
								   }

								 if (fin)
								 { 
								 }

									fin.close();

				ofstream fout (world_file,ios::app);
				if (!fout)
				{ cout &lt;&lt; &quot;cant open the file&quot; &lt;&lt; endl;
				return(1);
				}
							cout &lt;&lt; &quot;World Configuration&quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;------------------------------&quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;ID: &quot;;
							cin &gt;&gt; world_idtag;
							cout &lt;&lt; &quot;Name: &quot;;
							cin &gt;&gt; world_name;
							cout &lt;&lt; &quot;DbHost: &quot;;
							cin &gt;&gt; db_host;
							cout &lt;&lt; &quot;DbPort: &quot;;
							cin &gt;&gt; db_port;
							cout &lt;&lt; &quot;DbUser: &quot;;
							cin &gt;&gt; db_user;
							cout &lt;&lt; &quot;DbPass: &quot;;
							cin &gt;&gt; db_pass;

							cout &lt;&lt; &quot;------------------------------&quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;Infos who gets written in the file: &quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;ID: &quot; &lt;&lt; world_id_in &lt;&lt; world_idtag &lt;&lt; world_id_out &lt;&lt; endl;
							cout &lt;&lt; &quot;Name: &quot; &lt;&lt; world_name_in &lt;&lt; world_name &lt;&lt; world_name_out  &lt;&lt; endl;
							cout &lt;&lt; &quot;Dbhost: &quot; &lt;&lt; dbhost_in &lt;&lt; db_host &lt;&lt; dbhost_out  &lt;&lt; endl;
							cout &lt;&lt; &quot;DbPort:&quot; &lt;&lt; dbport_in &lt;&lt; db_port &lt;&lt; dbport_out &lt;&lt; endl;
							cout &lt;&lt; &quot;DbUser: &quot; &lt;&lt; dbuser_in &lt;&lt; db_user &lt;&lt; dbuser_out &lt;&lt; endl;
							cout &lt;&lt; &quot;DbPass: &quot; &lt;&lt; dbpass_in &lt;&lt; db_pass &lt;&lt; dbpass_out &lt;&lt; endl;
							cout &lt;&lt; &quot;------------------------------&quot; &lt;&lt; endl;

								fout &lt;&lt; world_world_in &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; world_id_in &lt;&lt; world_idtag &lt;&lt; world_id_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; world_name_in &lt;&lt; world_name &lt;&lt; world_name_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbhost_in &lt;&lt; db_host &lt;&lt; dbhost_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbport_in &lt;&lt; db_port &lt;&lt; dbport_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbuser_in &lt;&lt; db_user &lt;&lt; dbuser_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbpass_in &lt;&lt; db_pass &lt;&lt; dbpass_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; world_world_out &lt;&lt; endl;;
								fout &lt;&lt; world_nameconfig_out &lt;&lt; &quot;\n&quot;;
							    fout.close();
								return 0;
}
</code></pre>
<p>das programm zum jetztigen zeitpunkt, erstellt die datei, und schreib zwar die blöcke hinten ran, aber das &lt;/WorldConfig&gt; steht dann hinter jedem block, und das ist falsch <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="=/"
      alt="😕"
    /></p>
<p>hoffe jemand kann mir helfen... <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="=/"
      alt="😕"
    /><br />
wer der meinug ist er kann mir helfen, meldet euch bei mir, ich denke aktiv im icq oder msn ist sowas leichter zu erklären. vielleicht sogar im ts.</p>
<p>MfG<br />
Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/172095/probleme-beim-bearbeiten-einer-datei</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 16:07:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172095.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Feb 2007 12:14:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim bearbeiten einer datei. on Thu, 01 Feb 2007 12:22:15 GMT]]></title><description><![CDATA[<p>Ich arbeite zurzeit an nem klein hilfttool welches mir die konfiguration von nem Emulator erleichtern soll.</p>
<p>nun habe ich schon 75% des program fertig und hänge an der letzetn aufgabe.<br />
Diese besteht darin eine Datei namens World.config zu bearbeiten.</p>
<p>aufbau dieser datei seht ihr hier</p>
<blockquote>
<p>&lt;?xml version=&quot;1.0&quot;?&gt;<br />
&lt;WorldConfig&gt;<br />
&lt;world&gt;<br />
&lt;id&gt;1&lt;/id&gt;<br />
&lt;name&gt;Saga1&lt;/name&gt;<br />
&lt;dbhost&gt;127.0.0.1&lt;/dbhost&gt;<br />
&lt;dbport&gt;8001&lt;/dbport&gt;<br />
&lt;dbuser&gt;saga&lt;/dbuser&gt;<br />
&lt;dbpass&gt;saga&lt;/dbpass&gt;<br />
&lt;/world&gt;<br />
&lt;world&gt;<br />
&lt;id&gt;2&lt;/id&gt;<br />
&lt;name&gt;Saga2&lt;/name&gt;<br />
&lt;dbhost&gt;127.0.0.1&lt;/dbhost&gt;<br />
&lt;dbport&gt;8002&lt;/dbport&gt;<br />
&lt;dbuser&gt;saga&lt;/dbuser&gt;<br />
&lt;dbpass&gt;saga&lt;/dbpass&gt;<br />
&lt;/world&gt;<br />
&lt;/WorldConfig&gt;</p>
</blockquote>
<p>nun bin ich leider bissel aufgeschmissen mit dem wissen was ich atm nur zur verfügung habe in sachen C++ um das zu realisieren.</p>
<p>ich hatte es so geplant das man zwischen 2 funktionen auswählen kann.<br />
einen bestimmten &lt;world&gt;--&lt;/world&gt; block löschen, oder einen hinzufügen.</p>
<p>das hinzufügen wäre indemsinne kein problem wenn ich wüsste wie man zeilen wegschneiden kann, dann würde ich es so realiseren das er überprüft ob schon ein paar tags eingetragen sind, geht zum ende, schneidet den close für &lt;WorldConfig&gt; weg, hängt den neuen block an und schliesst ihn wieder.</p>
<p>hab versucht mich über ios::trunc schlau zu machen da irgendwie nüscht gefunden...</p>
<p>das löschen einer id_tag wäre indem sinne dann das gleiche blos das ich nicht eine zeile sondern den gesamten blog von &lt;world&gt; bis &lt;/world&gt; löschen würde.</p>
<p>hatte auch dran gedacht die id_tags per berechnung vergeben zu lassenaber das ist mir noch bissle zu komliziert <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="🙂"
    /> ich machs erstmal manuel^^ später vielelicht per berechnung.</p>
<p>da ich mit C++ erst seit ~5Tagen arbeite ist die basis relativ billig gehalten. ich kann mir gut vorstellen das man es einfacher realisieren kann. aber ich bin wie gesagt nen laie auf der c++ basis. also bitte nicht meckern q.q</p>
<pre><code class="language-cpp">#include &lt;fstream.h&gt;

//XMl Header für die config Datein
char xml_header[] = &quot;&lt;?xml version=\&quot;1.0\&quot;?&gt;&quot;;

//XML datein für alle configs
char dbhost_in[] = &quot;&lt;dbhost&gt;&quot;;
char dbhost_out[] = &quot;&lt;/dbhost&gt;&quot;;
char dbport_in[] = &quot;&lt;dbport&gt;&quot;;
char dbport_out[] = &quot;&lt;/dbport&gt;&quot;;
char dbuser_in[] = &quot;&lt;dbuser&gt;&quot;;
char dbuser_out[] = &quot;&lt;/dbuser&gt;&quot;;
char dbpass_in[] = &quot;&lt;dbpass&gt;&quot;;
char dbpass_out[] = &quot;&lt;/dbpass&gt;&quot;;

//String für alle configs
char db_host[100];
char db_port[100];
char db_user[100];
char db_pass[100];

//XML datein für die world.config

char world_nameconfig_in[] = &quot;&lt;WorldConfig&gt;&quot;;
char world_nameconfig_out[] = &quot;&lt;/WorldConfig&gt;&quot;;
char world_world_in[] = &quot;&lt;world&gt;&quot;;
char world_world_out[] = &quot;&lt;/world&gt;&quot;;
char world_port_in[] = &quot;&lt;port&gt;&quot;;
char world_port_out[] = &quot;&lt;/port&gt;&quot;;
char world_id_in[] = &quot;&lt;id&gt;&quot;;
char world_id_out[] = &quot;&lt;/id&gt;&quot;;
char world_file[] = &quot;world.config&quot;;
char world_name_in[] = &quot;&lt;name&gt;&quot;;
char world_name_out[] = &quot;&lt;/name&gt;&quot;;

//Strings für die World config
char world_name[100];
int world_idtag;

int main() {
ifstream fin(world_file,ios::nocreate,ios::trunc);
								if (!fin)                // existiert bereits?
								   {

										ofstream fout (world_file);
										fout &lt;&lt; xml_header &lt;&lt; &quot;\n\n&quot;;
										fout &lt;&lt; world_nameconfig_in &lt;&lt; endl;
										fout.close();
								   }

								 if (fin)
								 { 
								 }

									fin.close();

				ofstream fout (world_file,ios::app);
				if (!fout)
				{ cout &lt;&lt; &quot;cant open the file&quot; &lt;&lt; endl;
				return(1);
				}
							cout &lt;&lt; &quot;World Configuration&quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;------------------------------&quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;ID: &quot;;
							cin &gt;&gt; world_idtag;
							cout &lt;&lt; &quot;Name: &quot;;
							cin &gt;&gt; world_name;
							cout &lt;&lt; &quot;DbHost: &quot;;
							cin &gt;&gt; db_host;
							cout &lt;&lt; &quot;DbPort: &quot;;
							cin &gt;&gt; db_port;
							cout &lt;&lt; &quot;DbUser: &quot;;
							cin &gt;&gt; db_user;
							cout &lt;&lt; &quot;DbPass: &quot;;
							cin &gt;&gt; db_pass;

							cout &lt;&lt; &quot;------------------------------&quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;Infos who gets written in the file: &quot; &lt;&lt; endl;
							cout &lt;&lt; &quot;ID: &quot; &lt;&lt; world_id_in &lt;&lt; world_idtag &lt;&lt; world_id_out &lt;&lt; endl;
							cout &lt;&lt; &quot;Name: &quot; &lt;&lt; world_name_in &lt;&lt; world_name &lt;&lt; world_name_out  &lt;&lt; endl;
							cout &lt;&lt; &quot;Dbhost: &quot; &lt;&lt; dbhost_in &lt;&lt; db_host &lt;&lt; dbhost_out  &lt;&lt; endl;
							cout &lt;&lt; &quot;DbPort:&quot; &lt;&lt; dbport_in &lt;&lt; db_port &lt;&lt; dbport_out &lt;&lt; endl;
							cout &lt;&lt; &quot;DbUser: &quot; &lt;&lt; dbuser_in &lt;&lt; db_user &lt;&lt; dbuser_out &lt;&lt; endl;
							cout &lt;&lt; &quot;DbPass: &quot; &lt;&lt; dbpass_in &lt;&lt; db_pass &lt;&lt; dbpass_out &lt;&lt; endl;
							cout &lt;&lt; &quot;------------------------------&quot; &lt;&lt; endl;

								fout &lt;&lt; world_world_in &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; world_id_in &lt;&lt; world_idtag &lt;&lt; world_id_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; world_name_in &lt;&lt; world_name &lt;&lt; world_name_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbhost_in &lt;&lt; db_host &lt;&lt; dbhost_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbport_in &lt;&lt; db_port &lt;&lt; dbport_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbuser_in &lt;&lt; db_user &lt;&lt; dbuser_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; dbpass_in &lt;&lt; db_pass &lt;&lt; dbpass_out &lt;&lt; &quot;\n&quot;;
								fout &lt;&lt; world_world_out &lt;&lt; endl;;
								fout &lt;&lt; world_nameconfig_out &lt;&lt; &quot;\n&quot;;
							    fout.close();
								return 0;
}
</code></pre>
<p>das programm zum jetztigen zeitpunkt, erstellt die datei, und schreib zwar die blöcke hinten ran, aber das &lt;/WorldConfig&gt; steht dann hinter jedem block, und das ist falsch <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="=/"
      alt="😕"
    /></p>
<p>hoffe jemand kann mir helfen... <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="=/"
      alt="😕"
    /><br />
wer der meinug ist er kann mir helfen, meldet euch bei mir, ich denke aktiv im icq oder msn ist sowas leichter zu erklären. vielleicht sogar im ts.</p>
<p>MfG<br />
Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221054</guid><dc:creator><![CDATA[Marco1704]]></dc:creator><pubDate>Thu, 01 Feb 2007 12:22:15 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim bearbeiten einer datei. on Thu, 01 Feb 2007 12:31:05 GMT]]></title><description><![CDATA[<p>Da gibts einiges, zum einen kannst du statt den CStrings über Char die richtigen strings über string nehmen. Desweiteren kannst du mit getline(ifstream,string) ganze Zeilen einlesen bei ifstream kommt dann deine Dateivariable rein und bei string der string danach kannst du dann über string operationen den rest abziehen und dann passt das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221063</guid><dc:creator><![CDATA[Raven2]]></dc:creator><pubDate>Thu, 01 Feb 2007 12:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim bearbeiten einer datei. on Thu, 01 Feb 2007 12:55:22 GMT]]></title><description><![CDATA[<p>danke für die antwort aber ich hab keine ahnung wovon du sprichst O.o</p>
<p>bist du dir sicher das du die fragestellung richtig gelesen hast?</p>
<p>weil meine frage war ja wie ich teile aus der datei rausschneiden kann um nen neuen block rein zu editieren. O.o</p>
<p>und itte dran denken q.q ich bin kompletter laie auf C++ basis. dein text ist verdammt verwirrent <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="😞"
    /> ich raf da um genau zu sein nur die wörter aber was du mir damit sagen willst nicht <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/1221085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221085</guid><dc:creator><![CDATA[Marco1704]]></dc:creator><pubDate>Thu, 01 Feb 2007 12:55:22 GMT</pubDate></item></channel></rss>