<?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 an Datei anhängen (mit Klasse CFile)]]></title><description><![CDATA[<p>hallo!</p>
<p>ich weiss, dass das ne doofe Frage ist...</p>
<p>Aber weiss einer von euch zufällig wie man Daten an eine Datei anhängt?<br />
Bzw. wie man während die datei geöffnet ist häppchen-weise die daten zwischen<br />
den \n ausliest, um sie dann in nen struct zu speichern.<br />
Ich musste bis jetzt immer die komplette Datei in nen CString einlesen, bzw. nen<br />
gewaltig langen CString in die Datei rückspeichern, aber früher oder später kracht<br />
es da gewaltig.<br />
Ich habe die Klasse CFile benutzt und mein Projekt ist ein SDI.</p>
<p>weiss jemand von euch Rat?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/69706/daten-an-datei-anhängen-mit-klasse-cfile</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 21:24:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/69706.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Mar 2004 17:29:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 17:29:58 GMT]]></title><description><![CDATA[<p>hallo!</p>
<p>ich weiss, dass das ne doofe Frage ist...</p>
<p>Aber weiss einer von euch zufällig wie man Daten an eine Datei anhängt?<br />
Bzw. wie man während die datei geöffnet ist häppchen-weise die daten zwischen<br />
den \n ausliest, um sie dann in nen struct zu speichern.<br />
Ich musste bis jetzt immer die komplette Datei in nen CString einlesen, bzw. nen<br />
gewaltig langen CString in die Datei rückspeichern, aber früher oder später kracht<br />
es da gewaltig.<br />
Ich habe die Klasse CFile benutzt und mein Projekt ist ein SDI.</p>
<p>weiss jemand von euch Rat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/491916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/491916</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Tue, 30 Mar 2004 17:29:58 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 17:53:52 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>für das Zeilenweise-Auslesen der Datei kannst du scanfs (reines c) oder CStdioFile::ReadString (von CFile abgeleitet) verwenden.</p>
<p>Datei an Datei hängen<br />
Einfach eine Datei im Schreibmodus öffnen, Zeiger mit SeekToEnd an das Dateiende setzten und deine Daten mit CFile::Write hineinschreiben, dann mit CFile::Write hineinschreiben dann mit CFile::Write hineinschreiben, bis du keine Lust mehr hast.</p>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/491931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/491931</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Tue, 30 Mar 2004 17:53:52 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 17:56:49 GMT]]></title><description><![CDATA[<p>Hi Rapha!<br />
Dank dir wieder einmal.<br />
ich werde es versuchen.<br />
Sag mal, kann man mit CStdioFile::ReadString beliebig lange Strings einlesen oder<br />
gelten da die gleichen Speicherverhältnisse wie zum speichern in nen CString?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/491936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/491936</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Tue, 30 Mar 2004 17:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 18:28:47 GMT]]></title><description><![CDATA[<p>CStdioFile::ReadString liest einfach eine Zeile ein (d.h. bis zum '\n').<br />
Soetwas hast du doch gesucht, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/491954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/491954</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Tue, 30 Mar 2004 18:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 18:32:32 GMT]]></title><description><![CDATA[<p>genau sowas hab ich gesucht.<br />
und dann ist der pointer auch automatisch auf dem nächsten string?<br />
mann, das wäre zu schön.<br />
aber vielleicht, warum ich das brauche:<br />
ich hab ne datenbank die bis 200 personen fassen soll.<br />
die einträge innerhalb der datei sehen so aus:<br />
Vorname(15 Stellen)<br />
Name(15 Stellen)<br />
PK-Nr. (7 Stellen)<br />
alle einträge sollen stringweise eingelesen werden (Vorname, dann Name, dann PK)<br />
und sogleich in ein struct zum gebrauch innerhalb des programms gespeichert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/491961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/491961</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Tue, 30 Mar 2004 18:32:32 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 19:39:33 GMT]]></title><description><![CDATA[<p>Super, funzt prima!<br />
Viiiiiielen Dank für den Tipp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <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="👍"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/492003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/492003</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Tue, 30 Mar 2004 19:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 19:45:57 GMT]]></title><description><![CDATA[<p>Bummsfallera schrieb:</p>
<blockquote>
<p>und dann ist der pointer auch automatisch auf dem nächsten string?</p>
</blockquote>
<p>Wenn du den Filepointer meinst, dann liegst du goldrichtig <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>Allerdings würde ich dir bei einer derartigen Datenbank empfehlen die Daten im Binärmodus zu speichern:<br />
etwa so:</p>
<pre><code class="language-cpp">typedef struct person
{
char cVorname[15];
char cName[15];
char PKNr[7];
} Person;
</code></pre>
<p>Dann kannst du folgendermaßen in die Datei schreiben:</p>
<pre><code class="language-cpp">CFile fFile;
/* hier fFile.Open(...) */
Person Personen[50];
/* die 50 Personen mit Daten füllen*/

for(int i=0; i &lt; 50; i++)
{
  // person in Datei schreiben:
  fFile.Write(Personen[i], sizeof[Person]);
}
</code></pre>
<p>So kannst du die Personen lesen (angenommen es sind 50 Personen in der Datei (du musst natürlich eine EOF Überprüfung einbauen, damit du genau weißt, wieviele Datensätze in der Datenbank existieren (damit du nicht über das Dateiende hinausliest)</p>
<pre><code class="language-cpp">CFile fFile;
/* hier fFile.Open(...) */

Person Personen[50];
for(int i=0; i &lt; 50; i++)
{
  // person in Datei schreiben:
  fFile.Read(Personen[i], sizeof[Person]);
}
</code></pre>
<p>Wenn du jetzt z.B. den 34. Datensatz auslesen willst, machst du folgendes:<br />
- Dateizeiger auf den Anfang der Datei setzten<br />
- Dateizeiger um folgende Bytes verschieben (n=34): ((n-1) * sizeof(Person))<br />
- Dann einfach mit folgendem Code die Person einlesen:</p>
<pre><code class="language-cpp">Person tmpPers;
fFile.Read(&amp;tmpPers, sizeof[Person]);
</code></pre>
<p>Diese Methode hat einige Vorteile (z.B. kannst du ganz schnell die größe einer Potentiellen Datenbankdatei errechnen: (Anzahl der Einträge)*(sizeof(Person))</p>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/492008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/492008</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Tue, 30 Mar 2004 19:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 19:49:33 GMT]]></title><description><![CDATA[<p>da hast du dir aber mühe gemacht....<br />
hehe, sieht schon fast aus wie bei mir (ich hab in nem test-projekt ein<br />
wenig rumgespielt):</p>
<pre><code class="language-cpp">void CDateitestView::OnButton3() 
{
	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
	CString filenam = &quot;C:\\Dokumente und Einstellungen\\Graf Koks\\Desktop\\dateitest\\datei.txt&quot;;
	CStdioFile pFile;
	CString string;
	pFile.Open(filenam, CFile::modeRead , NULL );
	int i=0;

	struct perso
	{
		CString Name;
		CString Vorname;
		CString PK;
	}posmemory[100];

	pFile.ReadString(string);	
	while(string.GetLength()&gt;0)
	{
		posmemory[i].Name=string;
		pFile.ReadString(string);

		posmemory[i].Vorname=string;
		pFile.ReadString(string);

		posmemory[i].PK=string;
		pFile.ReadString(string);

		i++;
	}
	pFile.Close();

	for(int j=0; j&lt;i; j++)
	{
		AfxMessageBox(posmemory[j].Name + &quot;\n&quot; + posmemory[j].Vorname + &quot;\n&quot; + posmemory[j].PK);
	}
/*	
	pFile.Open(filenam, CFile::modeWrite, NULL);
	pFile.SeekToEnd();
	pFile.WriteString(&quot;test\n&quot;);
*/
}
</code></pre>
<p>scheint zu gehn, aber deinen code werd ich mir v.a. beim auslesen ncoh ein<br />
wenig zu gemüte führen...<br />
Aber nochmals -&gt; Fettes Merci, du bist der Beste.. <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/492011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/492011</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Tue, 30 Mar 2004 19:49:33 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 19:59:26 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>der einzige Unterschied zwischen meinem Code und deinem ist, dass ich die Datei im Binären Modus öffne (oh sorry, hab ich wohl nicht deutlich erwähnt) und direkt den Speicher in die Datei kopiere (CFile::Write) bzw von der Datei lese (CFile::Read). Deshalb auch die vielen sizeof <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Musst dich nur noch entscheiden, ob du die Datei binär oder im Textmodus haben willst.</p>
<p>Freut mich, dass ich dir helfen konnte.</p>
<p>Grüße Rapha<br />
ps. Gute Nacht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/492020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/492020</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Tue, 30 Mar 2004 19:59:26 GMT</pubDate></item><item><title><![CDATA[Reply to Daten an Datei anhängen (mit Klasse CFile) on Tue, 30 Mar 2004 20:01:09 GMT]]></title><description><![CDATA[<p>ja, penn gut.<br />
bis nächstes mal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/492023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/492023</guid><dc:creator><![CDATA[Bummsfallera]]></dc:creator><pubDate>Tue, 30 Mar 2004 20:01:09 GMT</pubDate></item></channel></rss>