<?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[Daten in den Arbeitsspeicher legen]]></title><description><![CDATA[<p>Hallo möchte gern Dateien von der Festplate in den Arbeitsspeicher zum bearbeiten legen. Weiß jemand wie ich das machen kann, geht das überhaupt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/121063/daten-in-den-arbeitsspeicher-legen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 16:45:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/121063.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Sep 2005 14:31:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Mon, 19 Sep 2005 14:31:53 GMT]]></title><description><![CDATA[<p>Hallo möchte gern Dateien von der Festplate in den Arbeitsspeicher zum bearbeiten legen. Weiß jemand wie ich das machen kann, geht das überhaupt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875829</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Mon, 19 Sep 2005 14:31:53 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Mon, 19 Sep 2005 14:37:59 GMT]]></title><description><![CDATA[<p>Was denkst du wo deine Varibalen liegen?? --&gt; In einen String einlesen, dann ist es im Arbeitsspeicher.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/875836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875836</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Mon, 19 Sep 2005 14:37:59 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Mon, 19 Sep 2005 14:38:52 GMT]]></title><description><![CDATA[<p>ich gehe davon aus du meinst eine datei. lese sie doch einfach in einen buffer.<br />
bsp:</p>
<pre><code class="language-cpp">// ist mit sicherheit nicht das optimun :D 
bool ReadFileInBuffer(const char *pszFilename, std::string &amp;strBuffer)
{
	std::ifstream	file(pszFilename, std::ios::in | std::ios::binary);

	if(!file) return false; // exception oder whatever

	std::istreambuf_iterator&lt;char&gt;		itPos(file), itEnd;
	std::insert_iterator&lt;std::string&gt;	itBuffer(strBuffer, strBuffer.begin());

	while(itPos != itEnd)
		*itBuffer++ = *itPos++;

	file.close();

    return true;
}

int main()
{
    std::string strBuffer;
    ReadFileInBuffer(&quot;test.dat&quot;, strBuffer);
}
</code></pre>
<p>[edit]<br />
waren bestimmt nur vier sekunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/875837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/875837</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 19 Sep 2005 14:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:08:57 GMT]]></title><description><![CDATA[<p>Ja genau so etwas in der Art meine ich. Würde aber lieber die Datei in den Hauptspeicher schreiben (Bsp: c:\\daten.txt --&gt; ab in den HS).<br />
Mit den Buffer ist eine gute Idee aber in meinem Programm leider nicht um zu setzen. Die txt müsste als solche erhalten bleiben aber da ich nur in der rumarbeite soll sie wärend des ganzen Programms von der Platte in den HS. Geht das überhaupt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877637</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:08:57 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:18:06 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
nochmal, was glaubst du in welchem speicher der buffer liegt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877640</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:19:05 GMT]]></title><description><![CDATA[<p>Oliver1980 schrieb:</p>
<blockquote>
<p>Die txt müsste als solche erhalten bleiben aber da ich nur in der rumarbeite soll sie wärend des ganzen Programms von der Platte in den HS. Geht das überhaupt?</p>
</blockquote>
<p>A ha. Hier haben wir endlich mal gesehen das was du möchstest.</p>
<p>Dazu kann ich dir leider nur Stichworte hinknallen, da ich damit selbst noch nicht gearbeitet habe.</p>
<p>MemoryMapping (mmap).<br />
Damit mappst du eine Datei in den Speicher. Du kannst also drauf rumrödeln und bearbeitest damit die Datei auf der Festplatte. Oder zumindest nach einem Sync oder Ähnlichem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877641</guid><dc:creator><![CDATA[hehejo]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:19:05 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:35:55 GMT]]></title><description><![CDATA[<p>wieso nicht alles lesen, ändern, zurückschreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877654</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:35:55 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:36:39 GMT]]></title><description><![CDATA[<p>Ja weiß dass der Buffer in HS liegt das Problem ist ebend nur dass ich mit den Buffer nicht die selben Sachen wie mit einer txt machen kann. Wollte diese mit fgetc weiter bearbeiten. Das Programm ist ja auch schon fertig braucht nur enorme Rechenzeit. Deshalb habe ich mir so gedacht hole die zu bearbeitende Datei einfach mal in Hauptspeicher und spare damit was. Aber mit einfach so ist das wohl nicht getan.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Habe grad mal in Google nach MemoryMapping c++ geguckt kamen auch ne ganze Menge Einträge aber alles ganz schön kompliziert. Und leider auch nicht viel c++ Code. Kennt sich vielleicht hier jemand damit aus? Wäre doch auch sinnvoll gäbe es einen einfachen Befehl der eine Datei in den HS abstellt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877656</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:36:39 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:39:17 GMT]]></title><description><![CDATA[<p>Na ja mit lesen ändern zurück schreiben ist nicht so einfach. Da müsste ich nochmal ganz von vorne anfangen. Das wäre fast nicht mehr schaffbar in der Zeit die ich noch habe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877660</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:39:17 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:43:36 GMT]]></title><description><![CDATA[<p>Oliver1980 schrieb:</p>
<blockquote>
<p>Ja weiß dass der Buffer in HS liegt das Problem ist ebend nur dass ich mit den Buffer nicht die selben Sachen wie mit einer txt machen kann.</p>
</blockquote>
<p>natürlich kannst du gleichen sachen machen. nur nicht halt mit den C funktionen. mit einen std::string (alternativ stringstreams) kannst du ziemlich viele sachen machen. was genau steht den in der datei und wie möchtest du diese den bearbeiten?</p>
<p>[edit]<br />
kleiner anhang: alternative zu fgetc wären dann iteratoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877663</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:43:36 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 09:56:41 GMT]]></title><description><![CDATA[<p>habe in der txt Datei 5 Spalten die ersten 3 sind x y z. Muss diese dann erst nach x dann nach y und dann nach z ordnen. Dabei muss ich ja wenn ich beispielsweise nach z ordne immer die ganze Zeile mit nehmen, denke mal das ist das Problem bei Buffer, oder würde ebend viel Arbeit machen. Zeige mal mein Code für nach x ordnen.</p>
<pre><code class="language-cpp">dateisortierennachx(char* filevon, char* filenach,int zaehl)  ////////sortiert Datei nach z
{

	CopyFile(filevon, &quot;c:\\zwischen3.txt&quot;, TRUE); 
	std::ofstream file; 
    file.open(filenach); 

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

	cout &lt;&lt; &quot;nachx&quot;&lt;&lt; z&lt;&lt; endl;
	Datei = fopen (&quot;c:\\zwischen3.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;
	//////////////////////////////////////////////////////////kleinste suchen und in Datei schreiben
	while(1) 
   { 
	   i=i +1;
       i2=i2+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
							anfang=zwischen;
						}
					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 ' ':{ 
					//abd[i]=0;

			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)
						{
							  // /n machen
							memset(bufferablage,0,100);
							memcpy(bufferablage,buffer1,100); ////buffer machen
							anfang=zwischen;
						}
					memset(buffer1,0,100);
				    memset(abd,0,20);
					merker=0;
					i=-1;
					i2=-1;
					break;
				   }

		}

   }//while ende 

   file &lt;&lt; bufferablage; 

   //file.close();
   memset(buffer1,0,100);
   memset(abd,0,20);
   i=-1;
   i2=-1;
   merker=0;

   ////////////////////////////////////////////////////löschen von zeile
   fclose (Datei); 
   Datei = fopen (&quot;c:\\zwischen3.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:\\zwischen3.txt&quot;);
   CopyFile(&quot;c:\\zwischen2.txt&quot;, &quot;c:\\zwischen3.txt&quot;, TRUE);
   DeleteFile(&quot;c:\\zwischen2.txt&quot;);

}//ende For Schleife

  ////////////////////////////////////////////////////ganz zum Schluss Datei löschen

   DeleteFile(&quot;c:\\zwischen3.txt&quot;); 
   }
</code></pre>
<p>Durch den ständigen Zugriff auf die txt Datei braucht er ebend viel Rechenzeit. Aber ist für mich das erste mal dass ich mit c++ arbeite. Und das war die einfachste Lösung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877680</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 09:56:41 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 10:13:04 GMT]]></title><description><![CDATA[<p>du mischt hier winapi(C), C und C++ willkürlich. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
ohne jetzt dir zu nahe zu tretten, aber das beste wäre du löscht alles, arbeitest ein tutorial oder ein buch durch und probierst es nochmal, solche learning by doing geschichten sind nicht das richtige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877693</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Thu, 22 Sep 2005 10:13:04 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 10:13:16 GMT]]></title><description><![CDATA[<p>RAMDISK?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/877694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877694</guid><dc:creator><![CDATA[electron_1]]></dc:creator><pubDate>Thu, 22 Sep 2005 10:13:16 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 11:05:33 GMT]]></title><description><![CDATA[<p>Hab ja schon C++ in 21 Tage und MFC in 21 Tagen gelesen das Problem ist ebend dass in den Büchern nichts über die Bearbeitung von Text Dateien steht, gibt es da welche? Warum ist es problematisch die verschiedenen Sachen zu mischen, ist es nich gut die Vorteile der verschiedenen zu nutzen? Wie Ramdisk könntest du den Befehl mal erleutern, hab in google gesehen dass der Befehl für die Ansprechung des Speichers genutzt wird. Aber nicht gefunden wie. RAMDISK(&quot;c:/test.txt&quot;) klappt nicht oder muss ich mit include Datei einbinden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877746</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 11:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 11:48:59 GMT]]></title><description><![CDATA[<p>Kann mir bitte einfach mal jemand bitte sagen ob es mit ramdisk geht und wenn wie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877776</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 11:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 12:15:08 GMT]]></title><description><![CDATA[<p><a href="http://tutorial.schornboeck.net/inhalt.htm" rel="nofollow">http://tutorial.schornboeck.net/inhalt.htm</a><br />
und<br />
<a href="http://c-plusplus.net/forum/viewtopic-var-t-is-39469.html" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-t-is-39469.html</a><br />
zu lesen, wird dir nicht schaden...<br />
Der Code da oben ist ja wohl grauenhaft...</p>
<blockquote>
<p>Ja weiß dass der Buffer in HS liegt das Problem ist ebend nur dass ich mit den Buffer nicht die selben Sachen wie mit einer txt machen kann. Wollte diese mit fgetc weiter bearbeiten. Das Programm ist ja auch schon fertig braucht nur enorme Rechenzeit.</p>
</blockquote>
<p>Du liest aus der Datei zeichenweise aus, und wunderst dich das es langsam ist ?<br />
Es wäre wohl schneller, als erstes die Datei z.b. in einen vector&lt;string&gt; zu laden,<br />
und dann zu bearbeiten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877805</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Thu, 22 Sep 2005 12:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 12:27:21 GMT]]></title><description><![CDATA[<p>Wenn ich die Datei in den Hauptspeicher lese müsste das Ganze genauso schnell funktionieren und daher würde ich nur gerne wissen ob das geht oder nicht. Aber trotzdem danke für deinen tollen Ratschlag</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877813</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 12:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 12:33:03 GMT]]></title><description><![CDATA[<p>Du lädtst den Text in den Hauptspeicher indem du Variablen deklarierst und den Text in diese Variablen schreibst, was bedeutet, du machst das, was dir die anderen schon vor längerem geraten haben, wozu du nur gemeint hast, es würde länger dauern</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877818</guid><dc:creator><![CDATA[Vorden]]></dc:creator><pubDate>Thu, 22 Sep 2005 12:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 12:40:23 GMT]]></title><description><![CDATA[<p>Oliver1980 schrieb:</p>
<blockquote>
<p>Wenn ich die Datei in den Hauptspeicher lese müsste das Ganze genauso schnell funktionieren und daher würde ich nur gerne wissen ob das geht oder nicht. Aber trotzdem danke für deinen tollen Ratschlag</p>
</blockquote>
<p>Genauso schnell als was ?<br />
fgetc lies jedesmal von der Platte, und das ist langsam...<br />
Rat mal warum es funktionen wie getline gibt, um mehr als ein Zeichen einzulesen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877827</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Thu, 22 Sep 2005 12:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 12:48:55 GMT]]></title><description><![CDATA[<p>Ok wie würdest du aus eiener reihen von Zahlen wo du nicht weißt wie lang die einzelnen sind mit getline eine Zahl holen? Bsp<br />
1.2333 444.556566 .....<br />
Das geht meiner Meinung nach nicht. Da du bei jeden Zeichen kontrollieren mußt ob es sich um ein leer Zeichen handelt, und damit die nächste Zahl beginnt.</p>
<p>Ich hab gemeint es dauert länger für mich das zu Programmieren. Aber ist jetzt auch total egal. Also heißt das ich kann die Datei nicht als txt in Hauptspeicher legen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877834</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 12:48:55 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 12:54:11 GMT]]></title><description><![CDATA[<p>btw, so wie ich das sehe, machst du das mit der Überprüfung mit deiner switch-case Konstruktion gerade genauso, wie wenn du es mit getline machen würdest, du könntest es auch einfach so machen:</p>
<pre><code class="language-cpp">ifstream eingabe;
eingabe.open(&quot;File.txt&quot;);
ofstream ausgabe;
ausgabe.open(&quot;File2.txt&quot;);
char x[30];
eingabe&gt;&gt;x; //wenn du es mit den Operatoren &gt;&gt; machst, wird immer bis zum nächsten Leerzeichen gelesen und du kannst schrittweise vorgehen
//Verarbeitung
ausgabe&lt;&lt;x;
eingabe.close();
ausgabe.close();
//natürlich bei open() und close() noch auf good() prüfen, dann passt es
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/877835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877835</guid><dc:creator><![CDATA[Vorden]]></dc:creator><pubDate>Thu, 22 Sep 2005 12:54:11 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 12:56:47 GMT]]></title><description><![CDATA[<p>Vorden schrieb:</p>
<blockquote>
<pre><code class="language-cpp">ifstream eingabe;
eingabe.open(&quot;File.txt&quot;);
ofstream ausgabe;
ausgabe.open(&quot;File2.txt&quot;);
char x[30];
eingabe&gt;&gt;x; //wenn du es mit den Operatoren &gt;&gt; machst, wird immer bis zum nächsten Leerzeichen gelesen und du kannst schrittweise vorgehen
//Verarbeitung
ausgabe&lt;&lt;x;
eingabe.close();
ausgabe.close();
//natürlich bei open() und close() noch auf good() prüfen, dann passt es
</code></pre>
</blockquote>
<pre><code class="language-cpp">ifstream eingabe(&quot;File.txt&quot;);
ofstream ausgabe(&quot;File2.txt&quot;);
string x;
eingabe&gt;&gt;x; //wenn du es mit den Operatoren &gt;&gt; machst, wird immer bis zum nächsten Leerzeichen gelesen und du kannst schrittweise vorgehen
//Verarbeitung
ausgabe&lt;&lt;x;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/877836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877836</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 22 Sep 2005 12:56:47 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 13:00:29 GMT]]></title><description><![CDATA[<p>Oliver1980 schrieb:</p>
<blockquote>
<p>Ok wie würdest du aus eiener reihen von Zahlen wo du nicht weißt wie lang die einzelnen sind mit getline eine Zahl holen? Bsp<br />
1.2333 444.556566 .....<br />
Das geht meiner Meinung nach nicht. Da du bei jeden Zeichen kontrollieren mußt ob es sich um ein leer Zeichen handelt, und damit die nächste Zahl beginnt.</p>
<p>Ich hab gemeint es dauert länger für mich das zu Programmieren. Aber ist jetzt auch total egal. Also heißt das ich kann die Datei nicht als txt in Hauptspeicher legen?</p>
</blockquote>
<p>Ich würd es einfach direkt in ein float/double einlesen, wenns Komma zahlen sind...<br />
Oder mir die Zahlen als String mit getline(stream,string,'separator') holen.<br />
Da gibts viele Möglichkeiten. Nur was hat das damit zu tun, ne txt datei<br />
in den arbeitsspeicher zu legen ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Was machst / willst du mit deinem Programm erreichen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877839</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Thu, 22 Sep 2005 13:00:29 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 13:17:16 GMT]]></title><description><![CDATA[<p>Als float/double direkt einlesen ist nicht möglich, da ich in der Text Datei ja eine Asci folge habe und keine float Zahlen.<br />
Will die Datei in den Arbeitsspeicher legen da auf sie immer wieder zu gegriffen wird. Das würde mein Programm ja dann sicher um ein vielfaches beschleunigen. Will eine Text Datei mit x Spalten nach den ersten 3 absteigend sortieren. Die Text datei hat bis zu 500000 Zeilen, daher der lange Rechenaufwand. Werde gleich mal die Verbesserungen von Vorden und volkard probieren denk mal das spart schon mal ne ganze Menge Zeit. Wenn das ganze dann noch von der Festplatte auf den Arbeitsspeicher verlegt werden könnte (die ganze txt )wäre es sicher noch schneller</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877860</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 13:17:16 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 13:22:17 GMT]]></title><description><![CDATA[<p>Bin grad dabei die Verbesserung ein zu bauen. Nur leider habe ich das Problem dass er die Zahlen nacheinander einliest aber jetzt nicht erkennt wenn ein Zeilenumbruch ist..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877867</guid><dc:creator><![CDATA[Oliver1980]]></dc:creator><pubDate>Thu, 22 Sep 2005 13:22:17 GMT</pubDate></item><item><title><![CDATA[Reply to Daten in den Arbeitsspeicher legen on Thu, 22 Sep 2005 13:32:33 GMT]]></title><description><![CDATA[<p>Dann find ich wär in deinem Fall wohl es sinnvollste eben mit getline in char-Arrays zu schreiben und diese dann abzuspalten, wenn Leerzeichen kommen und anschließend mit atof(); für float oder atoi(); für int auf deine Variablen rüber zu schreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/877879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/877879</guid><dc:creator><![CDATA[Vorden]]></dc:creator><pubDate>Thu, 22 Sep 2005 13:32:33 GMT</pubDate></item></channel></rss>