<?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[txt.Dateien Lesen, kopieren, speichern]]></title><description><![CDATA[<p>Hallo Jungs und Mädels;</p>
<p>ich programmiere seit einigen Wochen hobbymäßig mit c++ und habe mir wieder mal ein kleines Programm überlegt.</p>
<p>Jedoch komme ich nicht so wirklich weiter:-(</p>
<p>1. ich möchte von einer Textdatei eine bestimmte zeile auslesen<br />
2. dann die gesamte textdatei kopieren<br />
3. diese dann mit der ausgelesenen zeile aus der alten Textdatei benennen</p>
<p>Leider funktioniert die sache noch nicht so wie ich will.</p>
<p>Hier mein bisheriger Code:</p>
<p>#include &lt;string&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;</p>
<p>using namespace std;</p>
<p>int main(void)<br />
{<br />
for (int n=1; n&lt; 10; n++)<br />
{<br />
ifstream Quelldatei;<br />
Quelldatei.open(&quot;D:\\Datei.txt&quot;, ios_base::in);</p>
<p>if (!Quelldatei)<br />
cerr &lt;&lt; &quot;Fehler - Quelldatei kann nicht geöffnet werden&quot;;</p>
<p>else {</p>
<p>ofstream Zieldatei(&quot;D:\\Datei_2.txt&quot;);</p>
<p>if (!Quelldatei &amp;&amp; !Zieldatei)</p>
<p>cerr &lt;&lt; &quot;Fehler - Zieldatei kann nicht ausgegeben werden&quot;;</p>
<p>else {<br />
char c;</p>
<p>while(Quelldatei.get(c))<br />
{<br />
Zieldatei.put(c);<br />
}</p>
<p>}<br />
}</p>
<p>}</p>
<p>system(&quot;pause&quot;);<br />
return 0;</p>
<p>}</p>
<p>Punkt 2 habe ich bereits gelöst.</p>
<p>Punkt 1 würde ich gerne so lösen, dass ich unterhalb des ifstreams eine &quot;getline()&quot; einbaue<br />
-&gt; ist das so möglich?</p>
<p>Punkt 3 würde ich gerne so lösen, dass ich in den ofstream einfach die gelesene Zeile aus punkt 1 schreibe</p>
<p>Ist diese Herangehensweise ok oder muss ich da komplett umdenken?</p>
<p>Danke schon mal für eure Antworten Jungs &amp; Mädels <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/310542/txt-dateien-lesen-kopieren-speichern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 13:18:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310542.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Nov 2012 13:45:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to txt.Dateien Lesen, kopieren, speichern on Wed, 14 Nov 2012 13:45:18 GMT]]></title><description><![CDATA[<p>Hallo Jungs und Mädels;</p>
<p>ich programmiere seit einigen Wochen hobbymäßig mit c++ und habe mir wieder mal ein kleines Programm überlegt.</p>
<p>Jedoch komme ich nicht so wirklich weiter:-(</p>
<p>1. ich möchte von einer Textdatei eine bestimmte zeile auslesen<br />
2. dann die gesamte textdatei kopieren<br />
3. diese dann mit der ausgelesenen zeile aus der alten Textdatei benennen</p>
<p>Leider funktioniert die sache noch nicht so wie ich will.</p>
<p>Hier mein bisheriger Code:</p>
<p>#include &lt;string&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;fstream&gt;</p>
<p>using namespace std;</p>
<p>int main(void)<br />
{<br />
for (int n=1; n&lt; 10; n++)<br />
{<br />
ifstream Quelldatei;<br />
Quelldatei.open(&quot;D:\\Datei.txt&quot;, ios_base::in);</p>
<p>if (!Quelldatei)<br />
cerr &lt;&lt; &quot;Fehler - Quelldatei kann nicht geöffnet werden&quot;;</p>
<p>else {</p>
<p>ofstream Zieldatei(&quot;D:\\Datei_2.txt&quot;);</p>
<p>if (!Quelldatei &amp;&amp; !Zieldatei)</p>
<p>cerr &lt;&lt; &quot;Fehler - Zieldatei kann nicht ausgegeben werden&quot;;</p>
<p>else {<br />
char c;</p>
<p>while(Quelldatei.get(c))<br />
{<br />
Zieldatei.put(c);<br />
}</p>
<p>}<br />
}</p>
<p>}</p>
<p>system(&quot;pause&quot;);<br />
return 0;</p>
<p>}</p>
<p>Punkt 2 habe ich bereits gelöst.</p>
<p>Punkt 1 würde ich gerne so lösen, dass ich unterhalb des ifstreams eine &quot;getline()&quot; einbaue<br />
-&gt; ist das so möglich?</p>
<p>Punkt 3 würde ich gerne so lösen, dass ich in den ofstream einfach die gelesene Zeile aus punkt 1 schreibe</p>
<p>Ist diese Herangehensweise ok oder muss ich da komplett umdenken?</p>
<p>Danke schon mal für eure Antworten Jungs &amp; Mädels <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/2270775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270775</guid><dc:creator><![CDATA[dieSocke]]></dc:creator><pubDate>Wed, 14 Nov 2012 13:45:18 GMT</pubDate></item><item><title><![CDATA[Reply to txt.Dateien Lesen, kopieren, speichern on Wed, 14 Nov 2012 14:00:16 GMT]]></title><description><![CDATA[<p>dieSocke schrieb:</p>
<blockquote>
<p>1. ich möchte von einer Textdatei eine bestimmte zeile auslesen</p>
<p>...</p>
<p>Punkt 1 würde ich gerne so lösen, dass ich unterhalb des ifstreams eine &quot;getline()&quot; einbaue<br />
-&gt; ist das so möglich?</p>
</blockquote>
<p>Jein. Wenn alle Zeilen gleich lang sind, und Du weißt oder ermitteln kannst, wie lang sie sind, dann könntest Du den Offset der gewünschten Zeile in der Datei berechnen und Dich dort positionieren.<br />
Eine ganz normale Textdatei hat aber ganz unterschiedlich lange Zeilen. Deshalb geht da nur, x Zeilen überlesen (einlesen und verwerfen), um an die x + 1 ste Zeile zu kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270778</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 14 Nov 2012 14:00:16 GMT</pubDate></item><item><title><![CDATA[Reply to txt.Dateien Lesen, kopieren, speichern on Wed, 14 Nov 2012 14:03:56 GMT]]></title><description><![CDATA[<p>Umbenennen ist ein bisschen kompliziert, wenn du nur Standardmittel benutzen möchtest, wesentlich einfacher wird das, wenn du Betriebssystemmethoden nutzt, entweder direkt oder schön portabel weggekapselt, z.B. mit Boost::Filesystem.</p>
<p>Aber wenn du davon ausgehen kannst, dass die Datei klein genug ist für den Arbeitsspeicher des Computers, dann kannst du sie auch einfach komplett einlesen und dann der Ausgabedatei gleich den richtigen Namen geben.</p>
<p>Zum Lesen: Nun, wenn die Zeilen eine Rolle spielen, dann bietet sich schon irgendwie getline an. Ohne das Format zu kennen, kann ich keine Optmierungsideen benennen, aber allgemein würde ich folgende Zutaten benutzen:</p>
<pre><code>- Datei öffnen
- Alle Zeilen aus Datei in vector&lt;string&gt; lesen
- Ausgabedatei mit passendem Namen öffnen, dazu den passenden Eintrag aus dem vector&lt;string&gt; wählen
- Alle Einträge aus vector&lt;string&gt; in Datei schreiben
- Fertig
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2270779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270779</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 14 Nov 2012 14:03:56 GMT</pubDate></item><item><title><![CDATA[Reply to txt.Dateien Lesen, kopieren, speichern on Wed, 14 Nov 2012 14:16:27 GMT]]></title><description><![CDATA[<p>@ Belli</p>
<p>ich hoffe du hast mich da richtig verstanden</p>
<p>ich will eine bestimmte zeile aus einer txt-datei lesen und diese dann wieder verwenden</p>
<p>ich nimm jetzt einfach mal an, dass der kopf dieser datei immer gleich aussieht, dann müsste es doch so möglich sein oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270781</guid><dc:creator><![CDATA[dieSocke]]></dc:creator><pubDate>Wed, 14 Nov 2012 14:16:27 GMT</pubDate></item><item><title><![CDATA[Reply to txt.Dateien Lesen, kopieren, speichern on Wed, 14 Nov 2012 14:24:09 GMT]]></title><description><![CDATA[<p>@ SeppJ</p>
<p>das format ist ne txt.-Datei keine binär etc.</p>
<p>code:<br />
- Datei öffnen<br />
- Alle Zeilen aus Datei in vector&lt;string&gt; lesen<br />
- Ausgabedatei mit passendem Namen öffnen, dazu den passenden Eintrag aus dem vector&lt;string&gt; wählen *<br />
- Alle Einträge aus vector&lt;string&gt; in Datei schreiben<br />
- Fertig</p>
<p>* das müsste ich doch dann mit &quot;ofstream Zieldatei(&quot;D:\\vector&lt;string&gt;&quot;);&quot; realisieren können oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270786</guid><dc:creator><![CDATA[dieSocke]]></dc:creator><pubDate>Wed, 14 Nov 2012 14:24:09 GMT</pubDate></item></channel></rss>