<?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[Schleife stürtzt ab.]]></title><description><![CDATA[<p>Hallo!</p>
<p>Hab ein ür mich nicht lösbares Problem.<br />
Das Programm soll ein Textfile einlesen (funktioniert), ein wenig umgestalten und dann ein csv File auslesen.</p>
<p>Hier der Code: Sorry, dass er so lange und vielleicht etwas unüberischtlich ist. Bitte um mögliche Hinweise, was sein könnte, dass die lange For-Schleife mit den inserts der Semikolons instabil ist.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;vector&gt; 
#include &lt;string&gt; 

using namespace std; 
int main(int argc, char **argv)

 { 
  string str; 
  fstream f;
  string dateiname;
  vector&lt;string&gt; vec;
  string output;

  string C=&quot; &quot;;
  string S=&quot; &quot;;
  string L=&quot; &quot;;

  string data;           // Auslese String, in welchen die Daten geschrieben werden

        int a=0;                 // VARIABLENDEKLARATION a... Zeilenzählvariabel
        int ii=0;
        int i=0;
        int add=0;

// Variablen für Berechnung
char* StopPosition = 0;

  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*    TEXTFILTER PROGRAMM -        Johannes JAN 2006  *&quot;&lt;&lt;endl;

  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      Bitte zu oeffnende Datei mit PFAD eingeben    *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      PFAD unbeding mit \\ angeben!                 *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      Bsp.: C:\\dateien\\filename                   *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;

getline(cin, dateiname); 
ifstream ifs(dateiname.c_str());

while (!ifs.eof()) {  // Einlesen der DATEI
getline(ifs, str);                     // Datei wird Zeile in Vector vec geschrieben
vec.push_back(str);                     // Zeile wird an Vektor 
a++;  

}

    for (ii=0;ii&lt;=a;ii++)   // FOR SCHLEIFE die geöffnete Datei durchläuft
    		         //STÜRTZT AB - Wo kann Fehler liegen?
    {

            if (vec[ii].substr(111,1)==&quot;C&quot;)

            {            
            C=vec[ii].substr(24,52);
            C+=&quot;;&quot;;                       
            }

            if (vec[ii].substr(111,1)==&quot;S&quot;)

            {
            S=vec[ii].substr(24,52);
            S+=&quot;;&quot;;                               
            }

            if (vec[ii].substr(111,1)==&quot;L&quot;)

            {
            L=vec[ii].substr(24,52);
            L+=&quot;;&quot;;                           
            }

        if (vec[ii].substr(10,2)!= &quot;  &quot;) 

        {

	        if (vec[ii].substr(0,2)==&quot;00&quot; ||
	        vec[ii].substr(0,2)==&quot;01&quot; || vec[ii].substr(0,2)==&quot;02&quot;||
	        vec[ii].substr(0,2)==&quot;03&quot; || vec[ii].substr(0,2)==&quot;04&quot; ||
	        vec[ii].substr(0,2)==&quot;05&quot; || vec[ii].substr(0,2)==&quot;06&quot;) 

		        {
		        vec[ii].insert(0,&quot;20&quot;);
		        add=2;                                   
		        }

		if (vec[ii].substr(0,2)==&quot;87&quot; ||
		vec[ii].substr(0,2)==&quot;95&quot; || 
		vec[ii].substr(0,2)==&quot;96&quot; ||
		vec[ii].substr(0,2)==&quot;97&quot; || 
		vec[ii].substr(0,2)==&quot;98&quot; || 
		vec[ii].substr(0,2)==&quot;99&quot;) 

		        {
		        vec[ii].insert(0,&quot;19&quot;);
		        add=2;                                   
		        }

        vec[ii].insert(0,&quot; &quot;); // Semikolons werden anfgefügt
        vec[ii].insert(5+add,&quot;;&quot;);             
        vec[ii].insert(8+add,&quot;;&quot;);
        vec[ii].insert(10+add,&quot;;&quot;);
        vec[ii].insert(12+add,&quot;;&quot;);
        vec[ii].insert(15+add,&quot;;&quot;);             

        vec[ii].insert(19+add,&quot;;&quot;);
        vec[ii].insert(22+add,&quot;;&quot;);
        vec[ii].insert(27+add,&quot;;&quot;);
        vec[ii].insert(32+add,&quot;;&quot;);     
        vec[ii].insert(34+add,&quot;;&quot;);

        vec[ii].insert(43+add,&quot;;&quot;);
        vec[ii].insert(48+add,&quot;;&quot;);
        vec[ii].insert(50+add,&quot;;&quot;);
        vec[ii].insert(57+add,&quot;;&quot;);
        vec[ii].insert(91+add,&quot;;&quot;);

        vec[ii].insert(97+add,&quot;;&quot;);
        vec[ii].insert(103+add,&quot;;&quot;);
        vec[ii].insert(105+add,&quot;;&quot;);
        vec[ii].insert(114+add,&quot;;&quot;);
        vec[ii].insert(115+add,&quot;;&quot;);

        vec[ii].insert(127+add,&quot;;&quot;);
        vec[ii].insert(133+add,&quot;;&quot;);
        vec[ii].insert(135+add,&quot;;&quot;);
        vec[ii].insert(137+add,&quot;;&quot;);
        vec[ii].insert(142+add,&quot;;&quot;);

        vec[ii].insert(143+add,C);
        vec[ii].insert(196+add,S);
        vec[ii].insert(249+add,L);

        data+=&quot;\n&quot;;

        data+=vec[ii];  // neuer Vektor wird dem Data String zugeführt

	}

}

f.open(&quot;C:\\test\\test_57.csv&quot;,ios::out); // Ausgabe in .csv Datei
f &lt;&lt; data &lt;&lt; endl;

if (!f)

{
cout &lt;&lt; &quot;Die Ausgabe in die Datei hat nicht funktioniert&quot; &lt;&lt; endl;
}

else
{

f.close();
cout &lt;&lt;&quot;Datei erzeugt!&quot; &lt;&lt;endl;   
}

cin &gt;&gt; find1;

};
</code></pre>
<p>Kann es sein, dass meine Einlesezeilen zu lange sind?<br />
Bitte euch um Hinweise, wie ich das Problem eleganter und vor allem stabiler lösen kann.</p>
<p>Recht herzlichen Dank,</p>
<p>Johannes <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/133366/schleife-stürtzt-ab</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 21:55:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133366.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Jan 2006 10:07:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schleife stürtzt ab. on Tue, 17 Jan 2006 10:07:46 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Hab ein ür mich nicht lösbares Problem.<br />
Das Programm soll ein Textfile einlesen (funktioniert), ein wenig umgestalten und dann ein csv File auslesen.</p>
<p>Hier der Code: Sorry, dass er so lange und vielleicht etwas unüberischtlich ist. Bitte um mögliche Hinweise, was sein könnte, dass die lange For-Schleife mit den inserts der Semikolons instabil ist.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;vector&gt; 
#include &lt;string&gt; 

using namespace std; 
int main(int argc, char **argv)

 { 
  string str; 
  fstream f;
  string dateiname;
  vector&lt;string&gt; vec;
  string output;

  string C=&quot; &quot;;
  string S=&quot; &quot;;
  string L=&quot; &quot;;

  string data;           // Auslese String, in welchen die Daten geschrieben werden

        int a=0;                 // VARIABLENDEKLARATION a... Zeilenzählvariabel
        int ii=0;
        int i=0;
        int add=0;

// Variablen für Berechnung
char* StopPosition = 0;

  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*    TEXTFILTER PROGRAMM -        Johannes JAN 2006  *&quot;&lt;&lt;endl;

  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      Bitte zu oeffnende Datei mit PFAD eingeben    *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      PFAD unbeding mit \\ angeben!                 *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;*      Bsp.: C:\\dateien\\filename                   *&quot;&lt;&lt;endl;
  cout &lt;&lt; &quot;******************************************************&quot;&lt;&lt;endl;

getline(cin, dateiname); 
ifstream ifs(dateiname.c_str());

while (!ifs.eof()) {  // Einlesen der DATEI
getline(ifs, str);                     // Datei wird Zeile in Vector vec geschrieben
vec.push_back(str);                     // Zeile wird an Vektor 
a++;  

}

    for (ii=0;ii&lt;=a;ii++)   // FOR SCHLEIFE die geöffnete Datei durchläuft
    		         //STÜRTZT AB - Wo kann Fehler liegen?
    {

            if (vec[ii].substr(111,1)==&quot;C&quot;)

            {            
            C=vec[ii].substr(24,52);
            C+=&quot;;&quot;;                       
            }

            if (vec[ii].substr(111,1)==&quot;S&quot;)

            {
            S=vec[ii].substr(24,52);
            S+=&quot;;&quot;;                               
            }

            if (vec[ii].substr(111,1)==&quot;L&quot;)

            {
            L=vec[ii].substr(24,52);
            L+=&quot;;&quot;;                           
            }

        if (vec[ii].substr(10,2)!= &quot;  &quot;) 

        {

	        if (vec[ii].substr(0,2)==&quot;00&quot; ||
	        vec[ii].substr(0,2)==&quot;01&quot; || vec[ii].substr(0,2)==&quot;02&quot;||
	        vec[ii].substr(0,2)==&quot;03&quot; || vec[ii].substr(0,2)==&quot;04&quot; ||
	        vec[ii].substr(0,2)==&quot;05&quot; || vec[ii].substr(0,2)==&quot;06&quot;) 

		        {
		        vec[ii].insert(0,&quot;20&quot;);
		        add=2;                                   
		        }

		if (vec[ii].substr(0,2)==&quot;87&quot; ||
		vec[ii].substr(0,2)==&quot;95&quot; || 
		vec[ii].substr(0,2)==&quot;96&quot; ||
		vec[ii].substr(0,2)==&quot;97&quot; || 
		vec[ii].substr(0,2)==&quot;98&quot; || 
		vec[ii].substr(0,2)==&quot;99&quot;) 

		        {
		        vec[ii].insert(0,&quot;19&quot;);
		        add=2;                                   
		        }

        vec[ii].insert(0,&quot; &quot;); // Semikolons werden anfgefügt
        vec[ii].insert(5+add,&quot;;&quot;);             
        vec[ii].insert(8+add,&quot;;&quot;);
        vec[ii].insert(10+add,&quot;;&quot;);
        vec[ii].insert(12+add,&quot;;&quot;);
        vec[ii].insert(15+add,&quot;;&quot;);             

        vec[ii].insert(19+add,&quot;;&quot;);
        vec[ii].insert(22+add,&quot;;&quot;);
        vec[ii].insert(27+add,&quot;;&quot;);
        vec[ii].insert(32+add,&quot;;&quot;);     
        vec[ii].insert(34+add,&quot;;&quot;);

        vec[ii].insert(43+add,&quot;;&quot;);
        vec[ii].insert(48+add,&quot;;&quot;);
        vec[ii].insert(50+add,&quot;;&quot;);
        vec[ii].insert(57+add,&quot;;&quot;);
        vec[ii].insert(91+add,&quot;;&quot;);

        vec[ii].insert(97+add,&quot;;&quot;);
        vec[ii].insert(103+add,&quot;;&quot;);
        vec[ii].insert(105+add,&quot;;&quot;);
        vec[ii].insert(114+add,&quot;;&quot;);
        vec[ii].insert(115+add,&quot;;&quot;);

        vec[ii].insert(127+add,&quot;;&quot;);
        vec[ii].insert(133+add,&quot;;&quot;);
        vec[ii].insert(135+add,&quot;;&quot;);
        vec[ii].insert(137+add,&quot;;&quot;);
        vec[ii].insert(142+add,&quot;;&quot;);

        vec[ii].insert(143+add,C);
        vec[ii].insert(196+add,S);
        vec[ii].insert(249+add,L);

        data+=&quot;\n&quot;;

        data+=vec[ii];  // neuer Vektor wird dem Data String zugeführt

	}

}

f.open(&quot;C:\\test\\test_57.csv&quot;,ios::out); // Ausgabe in .csv Datei
f &lt;&lt; data &lt;&lt; endl;

if (!f)

{
cout &lt;&lt; &quot;Die Ausgabe in die Datei hat nicht funktioniert&quot; &lt;&lt; endl;
}

else
{

f.close();
cout &lt;&lt;&quot;Datei erzeugt!&quot; &lt;&lt;endl;   
}

cin &gt;&gt; find1;

};
</code></pre>
<p>Kann es sein, dass meine Einlesezeilen zu lange sind?<br />
Bitte euch um Hinweise, wie ich das Problem eleganter und vor allem stabiler lösen kann.</p>
<p>Recht herzlichen Dank,</p>
<p>Johannes <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/968688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968688</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Tue, 17 Jan 2006 10:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife stürtzt ab. on Tue, 17 Jan 2006 10:12:16 GMT]]></title><description><![CDATA[<p>Es kann sein, daß du über das Vektorende hinausliest - nimm lieber &quot;for(ii=0;ii&lt;vec.size();++ii)&quot; für deine Schleifenbedingung.</p>
<p>Ansonsten ist es vielleicht günstiger, die Daten direkt auszugeben als sie in einen (fast) endlosen String zu verpacken <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/968690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968690</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 17 Jan 2006 10:12:16 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife stürtzt ab. on Tue, 17 Jan 2006 10:20:54 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Wie kann ich die Daten direkt ausgeben?</p>
<p>Die Schleife stürtzt trotzdem ab.</p>
<p>Danke für weitere Hinweise.</p>
<p>Johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968703</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Tue, 17 Jan 2006 10:20:54 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife stürtzt ab. on Tue, 17 Jan 2006 10:27:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">f.open(&quot;out.csv&quot;,ios::out);
for(ii=0;ii&lt;vec.size();++ii)
{
  //Element vec[ii] verarbeiten
  //...
  f&lt;&lt;vec[ii]&lt;&lt;endl;
}
f.close();
</code></pre>
<p>Ansonsten rate ich dir mal, eine Debug-Ausgabe in die Schleife einzubauen (nach cout oder cerr).</p>
<p>PS: Da du sowieso zeilenweise arbeitest, brauchst du den Vector überhaupt nicht:</p>
<pre><code class="language-cpp">ifstream fin(&quot;in.txt&quot;);
ofstream fout(&quot;out.csv&quot;);
string line;
while(getline(fin,line)
{
  //bearbeite aktuelle Zeile
  fout&lt;&lt;line&lt;&lt;endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/968707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968707</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 17 Jan 2006 10:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Schleife stürtzt ab. on Tue, 17 Jan 2006 10:33:15 GMT]]></title><description><![CDATA[<p>werd mal versuchen dass programm dahingehend umzustellen.</p>
<p>hoffe es funktioniert dann.</p>
<p>danke für den hinweis.</p>
<p>melde mich wieder, wenns nicht klappen sollte.</p>
<p>johannes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968711</guid><dc:creator><![CDATA[keboo]]></dc:creator><pubDate>Tue, 17 Jan 2006 10:33:15 GMT</pubDate></item></channel></rss>