<?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[Meine C++-Fragen (Anfänger)]]></title><description><![CDATA[<p>Guten Tag!<br />
Ich habe ein mehr oder weniger kleines Problem.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;

using namespace std;

void wroten(std::string ersatz);
bool stopit;

    std::string Ersetzer(const std::string &amp;Suchstring, const std::string &amp;stringErsetzer, std::string ZuErsetzendesGebilde)
    {
            std::string::size_type pos = ZuErsetzendesGebilde.find(Suchstring, 0);
            int intLengthSearch = Suchstring.length();

            while(std::string::npos != pos)
            {
                    ZuErsetzendesGebilde.replace(pos, intLengthSearch, stringErsetzer);
                    pos = ZuErsetzendesGebilde.find(Suchstring, pos + intLengthSearch);
                    wroten(ZuErsetzendesGebilde);
            };
            return ZuErsetzendesGebilde;
    };
    fstream write_file;

void wroten(string ersatz)
{
    if (!stopit)
    {
        write_file.open(&quot;Auflistung.txt&quot;);
        write_file &lt;&lt; ersatz &lt;&lt; endl;
        write_file.close();
        stopit;
    };
};

    void ersetzen (ifstream file, string quelle , string Suchobjekt, string Ersetzung)
    {
        ;
        while (!file.eof())
		{
            getline(file,quelle);
            if (quelle==Suchobjekt)
            {
                //Suchobjekt-&gt;Ersetzung
            };
		};
    };

      void find_and_replace( string &amp;source, string find, string replace )
      {
        size_t j;
        for ( ; (j = source.find( find )) != string::npos ; )
        {
            source.replace( j, find.length(), replace );
        };
      };

int main()
{
    string search = &quot;\\NPC\\&quot;;
    string replace = &quot;\\NPC\\NPC_RuestungsFunctions.txt\n&quot;;
    ifstream read_file(&quot;Auflistung.txt&quot;);
    string linebuffer;

        while (!stopit)
		{
		    zaehler++;
            getline(read_file,linebuffer);
            cout &lt;&lt; linebuffer &lt;&lt; endl;
            Ersetzer(search,replace,linebuffer);
            //Ersetzer(&quot;\r\n&quot;,&quot;&quot;,stringToReplace);
        };
        cout &lt;&lt; endl;
    read_file.close();
};
</code></pre>
<p>Wenn man den Code verwendet, dann funktioniert er zwar - jedoch fehlerhaft.<br />
Normalerweise sollte er in dieser Datei hier</p>
<blockquote>
<p>AI\ORC\ZS_ORC_TA.txt<br />
AI\ORC\Grunzer_*.txt<br />
AI\ORC\Arten_ORC.txt<br />
AI\ORC\TESTORC.txt<br />
AI\ORC\TESTORCSLAVE.txt</p>
<p>STORY\NPC\BAU*.txt<br />
STORY\NPC\BORG*.txt<br />
STORY\NPC\CS*.txt</p>
</blockquote>
<p>Besser gesagt die erste darin enthaltene Zeile, inder \NPC\ vorkommt, durch diese hier ersetzen:</p>
<blockquote>
<p>STORY\NPC\NPC_RuestungsFunctions.txt</p>
</blockquote>
<p>Allerdings kommt dies hier dabei heraus:</p>
<blockquote>
<p>STORY\NPC\NPC_RuestungsFunctions.txt<br />
CS*.txt</p>
<p>C\Arten_ORC.txt<br />
AI\ORC\TESTORC.txt<br />
AI\ORC\TESTORCSLAVE.txt</p>
<p>STORY\NPC\BAU*.txt<br />
STORY\NPC\BORG*.txt<br />
STORY\NPC\CS*.txt</p>
</blockquote>
<p>Wie man sehen kann ist das, alsob man versucht mit aktiver &quot;Einfügetaste&quot; einen Geldbetrag in einer Datei zu ändern: Katastrophal!</p>
<p>Nun weiß ich langsam nicht mehr weiter.<br />
Kennt von euch jemand die Lösung meines Problemes?</p>
<p>Nochmal zur Erläuterung:<br />
Das Programm soll nur eine Zeile tatsächlich austauschen und den Rest lassen, wie er ist.</p>
<p>mfg for (I=I'm; i&gt;0; i++)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237015/meine-c-fragen-anfänger</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 15:21:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237015.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Mar 2009 11:09:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Meine C++-Fragen (Anfänger) on Mon, 23 Mar 2009 11:22:07 GMT]]></title><description><![CDATA[<p>Guten Tag!<br />
Ich habe ein mehr oder weniger kleines Problem.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;

using namespace std;

void wroten(std::string ersatz);
bool stopit;

    std::string Ersetzer(const std::string &amp;Suchstring, const std::string &amp;stringErsetzer, std::string ZuErsetzendesGebilde)
    {
            std::string::size_type pos = ZuErsetzendesGebilde.find(Suchstring, 0);
            int intLengthSearch = Suchstring.length();

            while(std::string::npos != pos)
            {
                    ZuErsetzendesGebilde.replace(pos, intLengthSearch, stringErsetzer);
                    pos = ZuErsetzendesGebilde.find(Suchstring, pos + intLengthSearch);
                    wroten(ZuErsetzendesGebilde);
            };
            return ZuErsetzendesGebilde;
    };
    fstream write_file;

void wroten(string ersatz)
{
    if (!stopit)
    {
        write_file.open(&quot;Auflistung.txt&quot;);
        write_file &lt;&lt; ersatz &lt;&lt; endl;
        write_file.close();
        stopit;
    };
};

    void ersetzen (ifstream file, string quelle , string Suchobjekt, string Ersetzung)
    {
        ;
        while (!file.eof())
		{
            getline(file,quelle);
            if (quelle==Suchobjekt)
            {
                //Suchobjekt-&gt;Ersetzung
            };
		};
    };

      void find_and_replace( string &amp;source, string find, string replace )
      {
        size_t j;
        for ( ; (j = source.find( find )) != string::npos ; )
        {
            source.replace( j, find.length(), replace );
        };
      };

int main()
{
    string search = &quot;\\NPC\\&quot;;
    string replace = &quot;\\NPC\\NPC_RuestungsFunctions.txt\n&quot;;
    ifstream read_file(&quot;Auflistung.txt&quot;);
    string linebuffer;

        while (!stopit)
		{
		    zaehler++;
            getline(read_file,linebuffer);
            cout &lt;&lt; linebuffer &lt;&lt; endl;
            Ersetzer(search,replace,linebuffer);
            //Ersetzer(&quot;\r\n&quot;,&quot;&quot;,stringToReplace);
        };
        cout &lt;&lt; endl;
    read_file.close();
};
</code></pre>
<p>Wenn man den Code verwendet, dann funktioniert er zwar - jedoch fehlerhaft.<br />
Normalerweise sollte er in dieser Datei hier</p>
<blockquote>
<p>AI\ORC\ZS_ORC_TA.txt<br />
AI\ORC\Grunzer_*.txt<br />
AI\ORC\Arten_ORC.txt<br />
AI\ORC\TESTORC.txt<br />
AI\ORC\TESTORCSLAVE.txt</p>
<p>STORY\NPC\BAU*.txt<br />
STORY\NPC\BORG*.txt<br />
STORY\NPC\CS*.txt</p>
</blockquote>
<p>Besser gesagt die erste darin enthaltene Zeile, inder \NPC\ vorkommt, durch diese hier ersetzen:</p>
<blockquote>
<p>STORY\NPC\NPC_RuestungsFunctions.txt</p>
</blockquote>
<p>Allerdings kommt dies hier dabei heraus:</p>
<blockquote>
<p>STORY\NPC\NPC_RuestungsFunctions.txt<br />
CS*.txt</p>
<p>C\Arten_ORC.txt<br />
AI\ORC\TESTORC.txt<br />
AI\ORC\TESTORCSLAVE.txt</p>
<p>STORY\NPC\BAU*.txt<br />
STORY\NPC\BORG*.txt<br />
STORY\NPC\CS*.txt</p>
</blockquote>
<p>Wie man sehen kann ist das, alsob man versucht mit aktiver &quot;Einfügetaste&quot; einen Geldbetrag in einer Datei zu ändern: Katastrophal!</p>
<p>Nun weiß ich langsam nicht mehr weiter.<br />
Kennt von euch jemand die Lösung meines Problemes?</p>
<p>Nochmal zur Erläuterung:<br />
Das Programm soll nur eine Zeile tatsächlich austauschen und den Rest lassen, wie er ist.</p>
<p>mfg for (I=I'm; i&gt;0; i++)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1684720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1684720</guid><dc:creator><![CDATA[for *I*I&#x27;m* i*gt*0* i++*]]></dc:creator><pubDate>Mon, 23 Mar 2009 11:22:07 GMT</pubDate></item><item><title><![CDATA[Reply to Meine C++-Fragen (Anfänger) on Mon, 23 Mar 2009 20:16:13 GMT]]></title><description><![CDATA[<p>Dein Programm ist insgesamt recht wüst.<br />
z.B.<br />
- Einrückung<br />
- Nach Funktionen, for-Schleifen etc. gehört kein Semikolon<br />
- was ist stopit? &quot;stopit;&quot; bewirkt überhaupt nichts<br />
- Variablendeklaration mal eben irgendwo dazwischen<br />
- Funktionen ersetzen() und find_and_replace() werden gar nicht aufgerufen (geposteten Code bitte aufs wesentliche beschränken)<br />
- &quot;zaehler&quot; gibt's noch nicht mal</p>
<p>Zu deinem Problem:<br />
Du öffnest in der Funktion wroten() deine Datei ein zweites mal, d.h. der Filepointer steht am Anfang der Datei, deshalb wird dein Ersatzstring auch dahin geschrieben.<br />
Mach eine komplett neue Datei auf, in die du falls in einer Zeile nichts zu ersetzen ist, den Originaltext schreibst, ansonsten den geänderten Text. Zum Schluss alte Datei löschen und neue umbenennen nach &quot;Auflistung.txt&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1685048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685048</guid><dc:creator><![CDATA[hüstel]]></dc:creator><pubDate>Mon, 23 Mar 2009 20:16:13 GMT</pubDate></item><item><title><![CDATA[Reply to Meine C++-Fragen (Anfänger) on Mon, 23 Mar 2009 20:39:47 GMT]]></title><description><![CDATA[<p>hüstel schrieb:</p>
<blockquote>
<p>- Variablendeklaration mal eben irgendwo dazwischen</p>
</blockquote>
<p>Hm, ich dachte bisher Variablendeklarationen sollte man erst dann machen, wenn man die Variable braucht. Stimmt das oder ist das schlechter Stil?</p>
<p>Gruss<br />
Cartman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1685064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685064</guid><dc:creator><![CDATA[Eric Cartman]]></dc:creator><pubDate>Mon, 23 Mar 2009 20:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to Meine C++-Fragen (Anfänger) on Mon, 23 Mar 2009 20:45:02 GMT]]></title><description><![CDATA[<p>Eric Cartman schrieb:</p>
<blockquote>
<p>hüstel schrieb:</p>
<blockquote>
<p>- Variablendeklaration mal eben irgendwo dazwischen</p>
</blockquote>
<p>Hm, ich dachte bisher Variablendeklarationen sollte man erst dann machen, wenn man die Variable braucht. Stimmt das oder ist das schlechter Stil?</p>
<p>Gruss<br />
Cartman</p>
</blockquote>
<p>stimmt ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1685069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685069</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 23 Mar 2009 20:45:02 GMT</pubDate></item><item><title><![CDATA[Reply to Meine C++-Fragen (Anfänger) on Mon, 23 Mar 2009 20:54:51 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">fstream write_file; 

void wroten(string ersatz) 
{ 
    if (!stopit) 
    { 
        write_file.open(&quot;Auflistung.txt&quot;); 
        write_file &lt;&lt; ersatz &lt;&lt; endl; 
        write_file.close(); 
        stopit; 
    }; 
};
</code></pre>
<p>Du brauchst write_file aber nicht da sondern da:</p>
<pre><code class="language-cpp">void wroten(string ersatz) 
{ 
   fstream write_file; 

    if (!stopit) 
    { 
        write_file.open(&quot;Auflistung.txt&quot;); 
        write_file &lt;&lt; ersatz &lt;&lt; endl; 
        write_file.close(); 
        stopit; 
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1685080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685080</guid><dc:creator><![CDATA[hüstel]]></dc:creator><pubDate>Mon, 23 Mar 2009 20:54:51 GMT</pubDate></item></channel></rss>