<?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[Fstream - Variable Dateinamen]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Folgendes Problem wo ich etwas Hilfe gebrauchen könnte:</p>
<p>Habe verschiedene Dateien die ich nacheinander verarbeiten möchte. Die Dateinamen sind so -&gt; abc-123456.dat (Vorzeichen;laufende Nummer;Dateiformat) aufgebaut.<br />
Alle zu verarbeitenden laufenden Nummern liegen in einem Textfile. Dieses lese ich aus und baue mir somit den Dateinamen in einem std::string auf. Die zu öffnende Dateie soll dann verarbeitet werden.<br />
Wie schaffe ich es, dass der aufgebaute Dateiname als Variable in fstream open benutzt werden kann? Bekomme eine Endlosschleife. Woran liegts? Bin für jede Hilfe dankbar! Benütze Dev C++.</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

int suche(string dat){
    fstream datei;
    string dat_vorz, dat_format, s;

    dat_vorz = &quot;Vorzeichen-&quot;;
    dat_format = &quot;.dat&quot;;

    dat = dat_vorz + dat + dat_format;

    cout &lt;&lt; dat &lt;&lt; endl;
    datei.open(dat.c_str(),ios::in);

    while(!datei.eof()){
       getline(datei,s);
       cout &lt;&lt; s &lt;&lt; endl;
    }

datei.close();

return(0);
}

int main(){
 char temp;
 string s;
 fstream quelle, ziel;
 int i;

 quelle.open(&quot;Verarbeitet.txt&quot;, ios::in);
 quelle.seekg(0, ios::beg);

 while(!quelle.eof()){
 	for (i=0; i&lt;3; i++){
        quelle &gt;&gt; s;
        if (i==0){
           suche(s);
        }

        if (i==2){
           i = -1;
        }
        if (quelle.eof()){
           break;
        }
	}
 }
 quelle.close();

 return(0);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/182468/fstream-variable-dateinamen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 00:29:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182468.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 May 2007 10:28:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fstream - Variable Dateinamen on Fri, 25 May 2007 10:28:11 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Folgendes Problem wo ich etwas Hilfe gebrauchen könnte:</p>
<p>Habe verschiedene Dateien die ich nacheinander verarbeiten möchte. Die Dateinamen sind so -&gt; abc-123456.dat (Vorzeichen;laufende Nummer;Dateiformat) aufgebaut.<br />
Alle zu verarbeitenden laufenden Nummern liegen in einem Textfile. Dieses lese ich aus und baue mir somit den Dateinamen in einem std::string auf. Die zu öffnende Dateie soll dann verarbeitet werden.<br />
Wie schaffe ich es, dass der aufgebaute Dateiname als Variable in fstream open benutzt werden kann? Bekomme eine Endlosschleife. Woran liegts? Bin für jede Hilfe dankbar! Benütze Dev C++.</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;

using namespace std;

int suche(string dat){
    fstream datei;
    string dat_vorz, dat_format, s;

    dat_vorz = &quot;Vorzeichen-&quot;;
    dat_format = &quot;.dat&quot;;

    dat = dat_vorz + dat + dat_format;

    cout &lt;&lt; dat &lt;&lt; endl;
    datei.open(dat.c_str(),ios::in);

    while(!datei.eof()){
       getline(datei,s);
       cout &lt;&lt; s &lt;&lt; endl;
    }

datei.close();

return(0);
}

int main(){
 char temp;
 string s;
 fstream quelle, ziel;
 int i;

 quelle.open(&quot;Verarbeitet.txt&quot;, ios::in);
 quelle.seekg(0, ios::beg);

 while(!quelle.eof()){
 	for (i=0; i&lt;3; i++){
        quelle &gt;&gt; s;
        if (i==0){
           suche(s);
        }

        if (i==2){
           i = -1;
        }
        if (quelle.eof()){
           break;
        }
	}
 }
 quelle.close();

 return(0);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1292091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292091</guid><dc:creator><![CDATA[focus-tlm]]></dc:creator><pubDate>Fri, 25 May 2007 10:28:11 GMT</pubDate></item><item><title><![CDATA[Reply to Fstream - Variable Dateinamen on Fri, 25 May 2007 10:30:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>weil du i immer auf -1 setzt, so bald es 2 wird.</p>
<p>gruss<br />
v R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292093</guid><dc:creator><![CDATA[virtuell Realisticer]]></dc:creator><pubDate>Fri, 25 May 2007 10:30:39 GMT</pubDate></item><item><title><![CDATA[Reply to Fstream - Variable Dateinamen on Fri, 25 May 2007 10:44:07 GMT]]></title><description><![CDATA[<p>Ich will auch nur jeden 3ten String aus der Quelle haben.</p>
<p>Grund: laufendeNummmer Datum Uhrzeit</p>
<p>Da ich immer nur die laufende Nummer in die Funktion suche übergeben haben will, habe ich i auf -1 gesetzt.</p>
<p>Wenn ich in Funktion suche den Dateinamen selber angebe (datei.open&quot;abc-123456.dat&quot;)funktionierts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292108</guid><dc:creator><![CDATA[focus-tlm]]></dc:creator><pubDate>Fri, 25 May 2007 10:44:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fstream - Variable Dateinamen on Mon, 28 May 2007 21:03:34 GMT]]></title><description><![CDATA[<p>kann mir keiner einen tipp geben? oder ein beispiel wie ich verschiedene dateien mit einer variable und schleife öffne?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294073</guid><dc:creator><![CDATA[focus-tlm]]></dc:creator><pubDate>Mon, 28 May 2007 21:03:34 GMT</pubDate></item><item><title><![CDATA[Reply to Fstream - Variable Dateinamen on Tue, 29 May 2007 00:37:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool search(const std::string&amp; file_name)
{
    std::string file_intern(&quot;Vorzeichen-&quot;);
    file_intern += file_name;
    file_intern += &quot;.dat&quot;;

    std::cout &lt;&lt; file_intern &lt;&lt; std::endl;
    std::ifstream file_stream(file_intern.c_str(), std::ios::in);
    if (!file_stream)
        return false;   

    std::string line_in;
    while (std::getline(file_stream, line_in))
        std::cout &lt;&lt; line_in &lt;&lt; std::endl;
    return true;
}
</code></pre>
<p>... das schonmal dazu <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>
<pre><code class="language-cpp">int main()
{
    std::ifstream file_stream(&quot;Verarbeitet.txt&quot;, std::ios::in);
    if (!file_stream)
        return -1;

    std::string input;
    while (file_stream.eof() == false)
    {
        for (unsigned short x = 0; (x &lt; 3 &amp;&amp; file_stream.eof() == false); ++x)
        {
            file_stream &gt;&gt; input;
            if (x == 0)
                search(input);
        }
    }
}
</code></pre>
<p>... naja nicht die beste Lösung ... hab es auf deinem Ansatz aufgebaut ... kann man noch viel eleganter lösen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294138</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 29 May 2007 00:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Fstream - Variable Dateinamen on Tue, 29 May 2007 07:03:55 GMT]]></title><description><![CDATA[<p>Vielen vielen Dank! <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>Hab allerdings noch ein Problem. Und zwar sind meine zu öffnenden Dateien ziemlich lang.</p>
<p>Vorzeichen: 7 Zeichen<br />
laufende Nummer: 32 Zeichen<br />
Dateiformat: 4 Zeichen (.dat)</p>
<p>Dementsprechend kann man sich ja ausmalen wie groß der Dateiname ist. Da liegt auch schon das Problem. Kann die Datei deshalb nicht öffnen. Wenn ich den Dateinamen verkürze klappts einwandfrei! Was könnte man da noch machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294195</guid><dc:creator><![CDATA[focus-tlm]]></dc:creator><pubDate>Tue, 29 May 2007 07:03:55 GMT</pubDate></item></channel></rss>