<?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[Text bearbeiten]]></title><description><![CDATA[<p>Hallo habe folgendes Problem. Will eine txt Datei öffnen an eine Stelle &quot;stelle&quot; springen und dann eine Zeile mit der Größe &quot;groeße&quot; löschen.<br />
Komm aber nicht so richtig dahinter. Dachte mir so ungefair</p>
<pre><code class="language-cpp">Datei = fopen (&quot;c:\\zwischen.txt&quot; , &quot;rw&quot;); //datei in der geändert werden soll öffnen
fseek(datei,stelle,SEEK_SET); // an die stelle springen
?? //zeile ab &quot;stelle löschen keine Ahnung wie( also die nächsten Zeichen der anzahl &quot;größe&quot; löschen)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/121042/text-bearbeiten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 13:57:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/121042.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Sep 2005 12:01:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 12:01:29 GMT]]></title><description><![CDATA[<p>Hallo habe folgendes Problem. Will eine txt Datei öffnen an eine Stelle &quot;stelle&quot; springen und dann eine Zeile mit der Größe &quot;groeße&quot; löschen.<br />
Komm aber nicht so richtig dahinter. Dachte mir so ungefair</p>
<pre><code class="language-cpp">Datei = fopen (&quot;c:\\zwischen.txt&quot; , &quot;rw&quot;); //datei in der geändert werden soll öffnen
fseek(datei,stelle,SEEK_SET); // an die stelle springen
?? //zeile ab &quot;stelle löschen keine Ahnung wie( also die nächsten Zeichen der anzahl &quot;größe&quot; löschen)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/875652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875652</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Mon, 19 Sep 2005 12:01:29 GMT</pubDate></item><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 12:13:29 GMT]]></title><description><![CDATA[<p>am einfachsten wäre es wenn du die datei komplett einliest und mit dem geändertem text neu reinschreibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875667</guid><dc:creator><![CDATA[DarkShadow18]]></dc:creator><pubDate>Mon, 19 Sep 2005 12:13:29 GMT</pubDate></item><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 12:17:04 GMT]]></title><description><![CDATA[<p>Eine Löschfunktion wirst Du nicht finden. Du kannst ja auch nicht aus einem C-Array per Befehl in der Mitte etwas rauslöschen.</p>
<p>Hilft nur - wie mein Vorgänger schon schrieb - die Datei neu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875669</guid><dc:creator><![CDATA[Richie_Gecco]]></dc:creator><pubDate>Mon, 19 Sep 2005 12:17:04 GMT</pubDate></item><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 12:28:03 GMT]]></title><description><![CDATA[<p>Ja so habe ich es gemacht. Es geht darum eine TextDatei die in 3 Spalten mit bis zu 1Mio Zeilen zu ordnen. Wenn ich es so mache dauert fast doppelt so lange. Dachte ich die Rechenzeit ein bisschen verkürzen denn bei meinen Programm braucht mein rechner schon 4 Stunden für 20000 Zeilen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875681</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Mon, 19 Sep 2005 12:28:03 GMT</pubDate></item><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 12:30:03 GMT]]></title><description><![CDATA[<p>Ich würde sagen es ist an der Zeit sich Gedanken über ein Datenbank-System zu machen. Das dürfte wesentlich schneller und einfach handzuhaben sein.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875682</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Mon, 19 Sep 2005 12:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 12:32:17 GMT]]></title><description><![CDATA[<p>oder n ordentlicher such / sortieralgorithmus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875684</guid><dc:creator><![CDATA[Vorden]]></dc:creator><pubDate>Mon, 19 Sep 2005 12:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 12:44:19 GMT]]></title><description><![CDATA[<p>Welchen Sortieralgorithmus würdet ihr zum Sortieren einer Text Datei empfehlen und bis zu wieviel mal so schnell kann ein solcher sortieren. Jetzt geht mein Programm die ganze Datei durch, nimmt sich die kleinste Zeile, schreibt sie in die geordnete Datei und löscht diese Zeile aus der Datei (Indem es alle Zeilen speichert die ungleich der grad raus genommenen sind). Das wiederholt mein Programm bis alle Zeilen aus der Ausgangsdatei gelöscht sind. Es wäre gut wenn der Algorithmus schnell wäre, aber nicht zu schwer zu implementieren ist.<br />
Die Datei ist nicht in binär Format. Also müssen die Zahlen immer erst in float konvertiert werden bevor ich sie vergleiche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875707</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Mon, 19 Sep 2005 12:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Text bearbeiten on Mon, 19 Sep 2005 13:29:14 GMT]]></title><description><![CDATA[<p>hab mich grad mal über Sortieralgorithmen belesen. Denke bald dass in meinen Fall eher noch eine längere Rechenzeit entstehen würde. Wenn ich beispielsweise Quicksort nehmen würde müsste ich ja ziemlich oft springen und neue Felder eröffnen. Das springen in einer Text Datei hat ja einen gewissen Aufwand. Da ich die Zeilen mit nehmen muss, müsste ich bei 20000 Zeilen zwischenzeitlich ja 20000 Dateien anlegen und diese dann zusammenfügen. Oder sehe ich das jetzt falsch? Gebe einfach mal mein Code mit, vielleicht sieht ja jemand was auf Anhieb wie ich Rechenzeit sparen kann, wenn nicht ist auch egal</p>
<pre><code class="language-cpp">dateisortierennachx(int anzahlx)        ///////////////sortiert Datei nach x
{

   CopyFile(&quot;c:\\testdaten.txt&quot;, &quot;c:\\zwischen.txt&quot;, TRUE);
   std::ofstream file; 
   file.open(&quot;c:\\geordnet.txt&quot;); 

	int z;
	for (z=1;  z&lt;=anzahlx; z=z+1)
	{

	cout &lt;&lt; z&lt;&lt;endl;

	Datei = fopen (&quot;c:\\zwischen.txt&quot; , &quot;r&quot;);

	char abd[20];
	char buffer1[100];
	char bufferablage[100];
	memset(buffer1,0,100);
	memset(bufferablage,0,100);
	int i=-1,i2=-1,merker=0;
    float zwischen; float anfang=100000;
	short int zeile;
	//////////////////////////////////////////////////////////kleinste suchen und in Datei schreiben
	while(1) 
   { 
	   i=i +1;
       i2=i2+1;
	   zwischenstelle = zwischenstelle+1;
	   zeile=zeile+1;
      cRead=fgetc(Datei); 
      if(feof(Datei)) 
      { 
         buffer1[i2]='\n';
					buffer1[i2+1]=0;

					if (zwischen &lt;anfang)
						{
							  // /n machen
							memset(bufferablage,0,100);
							memcpy(bufferablage,buffer1,100);////buffer machen
						}
					memset(buffer1,0,100);
				    memset(abd,0,20);
					merker=0;
					i=-1;
					i2=-1;

         break; 
      } 

	  switch(cRead) 
		{ 

	  case '0': {abd [i]='0';buffer1[i2]='0';
		  break;}
      case '1': {abd [i]='1';buffer1[i2]='1';
		  break;}
	  case '2': {abd [i]='2';buffer1[i2]='2';
		  break;}
	  case '3':{ abd [i]='3';buffer1[i2]='3';
		  break;}
	  case '4':{abd [i]='4';buffer1[i2]='4';
		  break;}
	  case '5':{ abd [i]='5';buffer1[i2]='5';
		  break;}
	  case '6':{ abd [i]='6';buffer1[i2]='6';
		  break;}
	  case '7':{ abd [i]='7';buffer1[i2]='7';
		  break;}
	  case '8':{ abd [i]='8';buffer1[i2]='8';
		  break;}
	  case '9':{ abd [i]='9';buffer1[i2]='9';
		  break;}
		case '.':{ abd [i]='.';buffer1[i2]='.';
			break;}
		case ' ':{ 

					if (merker==0) {
						zwischen=atof(abd);
						merker=1;}
					buffer1[i2]=' ';
					memset(abd,0,20);
					i=-1;
					break;
				  }

		case '\n': {
					buffer1[i2]='\n';
					buffer1[i2+1]=0;

					if (zwischen &lt;anfang)
						{

							memset(bufferablage,0,100);
							memcpy(bufferablage,buffer1,100); ////buffer machen
						}
					memset(buffer1,0,100);
				    memset(abd,0,20);
					merker=0;
					i=-1;
					i2=-1;
					zeile=0;
					break;
				   }

		}

   }//while ende 

   file &lt;&lt; bufferablage; 
   memset(buffer1,0,100);
   memset(abd,0,20);
   i=-1;
   i2=-1;
   merker=0;
   fclose (Datei); 
   ////////////////////////////////////////////////////löschen von zeile

   Datei = fopen (&quot;c:\\zwischen.txt&quot; , &quot;r&quot;);
   std::ofstream file2; 
   file2.open(&quot;c:\\zwischen2.txt&quot;);

   float austausch=zwischen;
   anfang=100000;
   while(1) 
   { 
	   i=i +1;
       i2=i2+1;
      cRead=fgetc(Datei); 
      if(feof(Datei)) 
      { 

		  buffer1[i2]='\n';
		  if (memcmp(bufferablage,buffer1,100)!=0)
			 {
			 	file2 &lt;&lt; buffer1; 						

			 }
		 memset(buffer1,0,100);
		 memset(abd,0,20);
		 merker=0;
		 i=-1;
		 i2=-1;
		 break; 
      } 

	  switch(cRead) 
		{ 

	  case '0': {abd [i]='0';buffer1[i2]='0';
		  break;}
      case '1': {abd [i]='1';buffer1[i2]='1';
		  break;}
	  case '2': {abd [i]='2';buffer1[i2]='2';
		  break;}
	  case '3':{ abd [i]='3';buffer1[i2]='3';
		  break;}
	  case '4':{abd [i]='4';buffer1[i2]='4';
		  break;}
	  case '5':{ abd [i]='5';buffer1[i2]='5';
		  break;}
	  case '6':{ abd [i]='6';buffer1[i2]='6';
		  break;}
	  case '7':{ abd [i]='7';buffer1[i2]='7';
		  break;}
	  case '8':{ abd [i]='8';buffer1[i2]='8';
		  break;}
	  case '9':{ abd [i]='9';buffer1[i2]='9';
		  break;}
		case '.':{ abd [i]='.';buffer1[i2]='.';
			break;}
		case ' ':{ 

					if (merker==0) {
						zwischen=atof(abd);
						merker=1;}
					buffer1[i2]=' ';
					memset(abd,0,20);
					i=-1;
					break;
				  }

		case '\n': {
					buffer1[i2]='\n';

					if (memcmp(bufferablage,buffer1,100)!=0)
						{
							 	file2 &lt;&lt; buffer1; 						

						}
					memset(buffer1,0,100);
				    memset(abd,0,20);
					merker=0;
					i=-1;
					i2=-1;
					break;
				   }

		}	
   }/
   file2.close();
   fclose(Datei); 
   DeleteFile(&quot;c:\\zwischen.txt&quot;);
   CopyFile(&quot;c:\\zwischen2.txt&quot;, &quot;c:\\zwischen.txt&quot;, TRUE);
   DeleteFile(&quot;c:\\zwischen2.txt&quot;);

}//ende For Schleife

   DeleteFile(&quot;c:\\zwischen.txt&quot;); 
   }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/875757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875757</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Mon, 19 Sep 2005 13:29:14 GMT</pubDate></item></channel></rss>