<?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[Struct mit AnsiString speichern]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich habe eine warscheindlich einfache Frage und bisher keine funktionierende Antwort gefunden:</p>
<p>Ich habe einen Struct der AnsiStrings enthält (ich halte AnsiSting für eine einfachere Alternative zu Char). Nun möchte ich diesen einfach abspeichern und Laden können, aber jedes mahl wenn er lädt liest er recht merkwürdige Daten aus wie &quot;ComboBox&quot; oder &quot;C:/Data.bin&quot;, also Werte die gar nicht im Struct sein sollten.</p>
<p>hier mal der Struct:</p>
<pre><code class="language-cpp">struct Pay
{
	AnsiString Name;
	AnsiString PW;
	AnsiString Strasse;
	int Nr;
	int Plz;
	AnsiString Stadt;
	int Kosten;
	int KontoNr;

}BenDat[100];
</code></pre>
<p>das Speicher \1:</p>
<pre><code class="language-cpp">u_save()
{
	FILE *f;

	f=fopen(&quot;C:/Data.bin&quot;,&quot;wb&quot;);

	fwrite(&amp;BenDat,sizeof(BenDat),1,f);

	fclose(f);
}
</code></pre>
<p>und das Lade \1:</p>
<pre><code class="language-cpp">u_load()
{
	FILE *f;

	if((f=fopen(&quot;C:/Data.bin&quot;,&quot;rb&quot;))!=0)
	{
		fread(&amp;BenDat,sizeof(BenDat),1,f);

		fclose(f);
	}

	else
	{
		MessageBox(NULL,&quot;Datei nicht gefunden, neue erstellt&quot;,&quot;Error&quot;,MB_OK);

		fclose(f);
		f=fopen(&quot;C:/Data.bin&quot;,&quot;wb&quot;);
		fclose(f);
	}
}
</code></pre>
<p>Ich hoffe ihr könnt mir helfen...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246995/struct-mit-ansistring-speichern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 12:40:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246995.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Aug 2009 17:40:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 17:40:31 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich habe eine warscheindlich einfache Frage und bisher keine funktionierende Antwort gefunden:</p>
<p>Ich habe einen Struct der AnsiStrings enthält (ich halte AnsiSting für eine einfachere Alternative zu Char). Nun möchte ich diesen einfach abspeichern und Laden können, aber jedes mahl wenn er lädt liest er recht merkwürdige Daten aus wie &quot;ComboBox&quot; oder &quot;C:/Data.bin&quot;, also Werte die gar nicht im Struct sein sollten.</p>
<p>hier mal der Struct:</p>
<pre><code class="language-cpp">struct Pay
{
	AnsiString Name;
	AnsiString PW;
	AnsiString Strasse;
	int Nr;
	int Plz;
	AnsiString Stadt;
	int Kosten;
	int KontoNr;

}BenDat[100];
</code></pre>
<p>das Speicher \1:</p>
<pre><code class="language-cpp">u_save()
{
	FILE *f;

	f=fopen(&quot;C:/Data.bin&quot;,&quot;wb&quot;);

	fwrite(&amp;BenDat,sizeof(BenDat),1,f);

	fclose(f);
}
</code></pre>
<p>und das Lade \1:</p>
<pre><code class="language-cpp">u_load()
{
	FILE *f;

	if((f=fopen(&quot;C:/Data.bin&quot;,&quot;rb&quot;))!=0)
	{
		fread(&amp;BenDat,sizeof(BenDat),1,f);

		fclose(f);
	}

	else
	{
		MessageBox(NULL,&quot;Datei nicht gefunden, neue erstellt&quot;,&quot;Error&quot;,MB_OK);

		fclose(f);
		f=fopen(&quot;C:/Data.bin&quot;,&quot;wb&quot;);
		fclose(f);
	}
}
</code></pre>
<p>Ich hoffe ihr könnt mir helfen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755245</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Tue, 04 Aug 2009 17:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 17:43:38 GMT]]></title><description><![CDATA[<p>Das ist kein C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755248</guid><dc:creator><![CDATA[asdasdasdasd]]></dc:creator><pubDate>Tue, 04 Aug 2009 17:43:38 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 18:50:07 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<pre><code class="language-cpp">struct Pay
{
	AnsiString Name;
	AnsiString PW;
	AnsiString Strasse;
	int Nr;
	int Plz;
	AnsiString Stadt;
	int Kosten;
	int KontoNr;

}BenDat[100];
</code></pre>
</blockquote>
<p>Was soll BenData[100] da? Du hast doch bereits einen Bezeichner, nämlich Pay. Lass das BenData weg und leg bei der späteren Operationen mit deinen Dateien einfach die 100 Objekte von Pay an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755296</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Tue, 04 Aug 2009 18:50:07 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 18:54:25 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Mathiable schrieb:</p>
<blockquote>
<pre><code class="language-cpp">struct Pay
{
	AnsiString Name;
	AnsiString PW;
	AnsiString Strasse;
	int Nr;
	int Plz;
	AnsiString Stadt;
	int Kosten;
	int KontoNr;

}BenDat[100];
</code></pre>
</blockquote>
<p>Was soll BenData[100] da? Du hast doch bereits einen Bezeichner, nämlich Pay. Lass das BenData weg und leg bei der späteren Operationen mit deinen Dateien einfach die 100 Objekte von Pay an.</p>
</blockquote>
<p>Der Quellcode ist in der Hinsicht vollkommen korrekt und legt ein Array des Typ Pay mit 100 Elementen an <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/1755298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755298</guid><dc:creator><![CDATA[asdasdasdasd]]></dc:creator><pubDate>Tue, 04 Aug 2009 18:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 19:16:27 GMT]]></title><description><![CDATA[<p>Der Struct selber kann ich gut beschreiben, dass ist nicht das Problem, der muss eh global sein, weil ich das noch in anderen Units weiter verwende. Aber wenn ich ihn speichere, nimmt es irgendwelche Werte die nicht im Struct sind sonder sonst irgendwelche, wie eben der Name der Combobox oder die Variable für den Pfad die ich noch angelegt habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755313</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Tue, 04 Aug 2009 19:16:27 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 19:28:26 GMT]]></title><description><![CDATA[<p>asdasdasdasd schrieb:</p>
<blockquote>
<p>Das ist kein C++.</p>
</blockquote>
<p>Wie das ist kein C++? Das hatten wir so in der Schule, nur nicht mit AnsiString sondern mit Char. Und Kompilieren kann er es ja, also wird es nicht so falsch sein.</p>
<p>Sorry für den Doppel Post.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755325</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Tue, 04 Aug 2009 19:28:26 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 19:57:36 GMT]]></title><description><![CDATA[<p>char / char* / ... ist ja auch Standard C++</p>
<p>nur eben AnsiString ist kein Standard C++<br />
Standard wäre z.bsp. std::string</p>
<p>AnsiString ist eine Erweiterung des BCBs...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755341</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 04 Aug 2009 19:57:36 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 20:16:21 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>char / char* / ... ist ja auch Standard C++</p>
<p>nur eben AnsiString ist kein Standard C++<br />
Standard wäre z.bsp. std::string</p>
<p>AnsiString ist eine Erweiterung des BCBs...</p>
<p>bb</p>
</blockquote>
<p>Schau lieber nochmal ganz genau hin: <code>FILE</code> , <code>fopen</code> , <code>fwrite</code> , etc.</p>
<p>Naaaa? Eindeutig C!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755356</guid><dc:creator><![CDATA[asdasdasdasd]]></dc:creator><pubDate>Tue, 04 Aug 2009 20:16:21 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 20:19:45 GMT]]></title><description><![CDATA[<p>asdasdasdasd schrieb:</p>
<blockquote>
<p>Schau lieber nochmal ganz genau hin: <code>FILE</code> , <code>fopen</code> , <code>fwrite</code> , etc.</p>
<p>Naaaa? Eindeutig C!</p>
</blockquote>
<p>Hmm.. hätt ich machen können - hab iwie gerad erst gesehen, dass der erste Post nicht nur aus dem Code für das struct besteht^^</p>
<p>also: /signed<br />
<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>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755359</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 04 Aug 2009 20:19:45 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Tue, 04 Aug 2009 23:07:34 GMT]]></title><description><![CDATA[<p>Das ist weder C noch C++, das ist einfach nur falsch. Dass sowas heutzutage überhaupt kompiliert...<br />
Wenn ihr es so in der Schule gelernt habt, dann habt ihr vermutlich nicht C++, sondern C90 gelernt (auch wenn dein Code selbst das nicht ist). Wenn das unter C++ lief, dann hat der Unterricht sein Ziel verfehlt.</p>
<p>Was imho alles auf den ersten Blick falsch ist:</p>
<ul>
<li>implicit int wird von Standard-C++ und C99 nicht unterstützt. Und selbst wenn dein Kompiler das zulässt, verlässt du dich auf undefined behavior, weil du dann eine Ganzzahl zurückgeben musst (der Rückgabetyp ist nicht void, sondern int!).</li>
<li>Pay ist kein POD, du kannst also nicht fread() darauf anwenden, weil dieses einfach nur in den rohen Speicher schreibt, bzw. fwrite(), weil diese Funktion einfach nur den rohen Speicher in die Datei schreibt.</li>
<li>fclose(0) ist undefined behavior.</li>
</ul>
<p>Dein aktuelles Hauptproblem ist der 2. Punkt. Verwende lieber die C++-Streams, dann klappt das auch mit dem Einlesen von Strings.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755440</guid><dc:creator><![CDATA[Old McDonald]]></dc:creator><pubDate>Tue, 04 Aug 2009 23:07:34 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 06:16:55 GMT]]></title><description><![CDATA[<p>Ohweh. Ich würd den Thread ja gern verschieben - C++ ists nicht. C auch nicht (nichtmal in irgendeiner alten Version mit impliziten Rückgabetypen), weil diese seltsamen BCB-Stringklassen verwendet werden. Ich frag mal nach ob wir ein Extraforum &quot;Gruselkabinett&quot; für solche Fälle aufmachen können <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>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22794">@Mathiable</a>: In was für einer Schule kriegt man sowas beigebracht? Sicher dass es so war, ganz ohne Rückgabeparameter, und dass es C++ sein sollte? Oder hast du da mehrere Sprachen durcheinanderbegracht? Falls es euch <em>tatsächlich</em> so beigebracht worden ist - kann das sein dass der Info-Lehrer von eurem Archäologielehrer irgendwo ausgegraben und wiederbelebt wurde - mitsamt einem Compiler der sowas schluckt? Nichts für ungut <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/1755476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755476</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 05 Aug 2009 06:16:55 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 08:57:49 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Ohweh. Ich würd den Thread ja gern verschieben - C++ ists nicht. C auch nicht (nichtmal in irgendeiner alten Version mit impliziten Rückgabetypen), weil diese seltsamen BCB-Stringklassen verwendet werden. Ich frag mal nach ob wir ein Extraforum &quot;Gruselkabinett&quot; für solche Fälle aufmachen können <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>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22794">@Mathiable</a>: In was für einer Schule kriegt man sowas beigebracht? Sicher dass es so war, ganz ohne Rückgabeparameter, und dass es C++ sein sollte? Oder hast du da mehrere Sprachen durcheinanderbegracht? Falls es euch <em>tatsächlich</em> so beigebracht worden ist - kann das sein dass der Info-Lehrer von eurem Archäologielehrer irgendwo ausgegraben und wiederbelebt wurde - mitsamt einem Compiler der sowas schluckt? Nichts für ungut <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>
</blockquote>
<p>Das mit den AnsiStrings hab ich mir aus dem Betrieb abgeschaut, das hatten wir so nicht in der Schule. Und ich bin Elektroniker, daher arbeite ich meist auch nur mit Uhralt Programmiersprachen. Ich lernte sogar noch mit Assembler. <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>
<p>Der Lehrer benützt eben immer noch denselben Stoff wie er ihn vor 10 Jahren geschrieben hat und hat keine Ahnung von C# oder anderem weil das nicht berufsspezifisch sei. <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>
<p>zurück zum Thema:<br />
Ich habe nun einen Crashkurs mit fstream gemacht, speichern und laden kann er schon, nur macht er dieselben Fehler. Soll ich meine Theorie mit den AnsiStrings nochmals überlegen oder kennt jemand eine Lösung?</p>
<p>Mit fstream mach ich es ganz einfach:</p>
<pre><code class="language-cpp">file.open(&quot;C:/Data.bin&quot;,ios::in | ios::binary);

file.read ((char*)&amp;BenDat, sizeof(Pay));
</code></pre>
<p>und das selbe dann noch für den Schreib zyklus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755537</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Wed, 05 Aug 2009 08:57:49 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 09:46:10 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Der Lehrer benützt eben immer noch denselben Stoff wie er ihn vor 10 Jahren geschrieben hat und hat keine Ahnung von C# oder anderem weil das nicht berufsspezifisch sei. <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>
</blockquote>
<p>Ähm - dir ist schon klar dass C, C++ und C# drei verschiedene Sprachen sind und vor allem C# mit den anderen beiden nichts zu tun hat?<br />
Dass du die AnsiStrings ausm Betrieb kennst sagt schon einiges, dann ergibt sich nämlich folgender Eindruck: Der Lehrer bringt euch C bei, nicht C++. Denn ohne die AnsiStrings ist das was du oben gepostet hast ein zwar reichlich veraltetes und verstaubtes, aber vor Dekaden mal gültiges C. Du hast dann die Borland-C++-AnsiStrings drunter gemischt und raus kommt eine ziemlich unsinnige Codesuppe die eigentlich auf keinem halbwegs ordentlichen Compiler kompilieren sollte. Dass du es scheinbar trotzdem fertig gebracht hast ist ebenso verwunderlich wie erschreckend.</p>
<p>Du musst dich entscheiden ob du C oder C++ programmieren willst. In beiden Fällen empfehle ich die Lektüre eines guten Buches und/oder einiger Tutorials. Und gerade wenn du in der Schule Steinzeit-C und in der Firma Borland-C++ machst solltest du lernen folgendes auseinanderzuhalten:</p>
<ul>
<li>Steinzeit-C (was dein Lehrer macht)</li>
<li>Standard-C</li>
<li>Standard-C++</li>
<li>Borland-C++ (was einige Klassenbibliotheken hat die es im Standard nicht gibt und scheinbar seeeeehr frei im Umgang mit der Sprache ist).</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1755569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755569</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 05 Aug 2009 09:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 12:06:00 GMT]]></title><description><![CDATA[<blockquote>
<p>Ähm - dir ist schon klar dass C, C++ und C# drei verschiedene Sprachen sind und vor allem C# mit den anderen beiden nichts zu tun hat?</p>
</blockquote>
<p>Ist mir schon klar, wollte damit nur sagen dass der Lehrer immer noch auf den Programmiersprachen der 80er hängen geblieben ist. :p</p>
<blockquote>
<p>Dass du die AnsiStrings ausm Betrieb kennst sagt schon einiges, dann ergibt sich nämlich folgender Eindruck: Der Lehrer bringt euch C bei, nicht C++. Denn ohne die AnsiStrings ist das was du oben gepostet hast ein zwar reichlich veraltetes und verstaubtes, aber vor Dekaden mal gültiges C.</p>
</blockquote>
<p>Kannst du mir mal sagen was daran so altmodisch ist? Damit ich daran arbeiten kann und schlussendlich etwas Seriöseres raus bringen kann. Wenn der Lade/Speicher Zyklus mal läuft ist gut, den Rest krig ich dann schon irrgendwie zusammen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755702</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Wed, 05 Aug 2009 12:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 12:21:40 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<blockquote>
<p>Ähm - dir ist schon klar dass C, C++ und C# drei verschiedene Sprachen sind und vor allem C# mit den anderen beiden nichts zu tun hat?</p>
</blockquote>
<p>Ist mir schon klar, wollte damit nur sagen dass der Lehrer immer noch auf den Programmiersprachen der 80er hängen geblieben ist. :p</p>
</blockquote>
<p>Dir ist hoffentlich bewusst das C noch verbreiteter als C++ oder C# ist? Und dir ist hoffentlich auch bewusst das auch C++ schon aus den 80iger Jahren stammt (glaube um 1977). Wenn man den tiobe-Index nimmt: Java auf Platz 1, C auf 2, C++ auf 3 (C# auf Platz 7).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755716</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 05 Aug 2009 12:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 12:22:36 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22794">@Mathiable</a><br />
Während sich die anderen wegen C, C++, oder C# Grundsätzen fusselig labern, gebe ich dir schonmal ein paar Tips:</p>
<pre><code>fwrite(&amp;BenDat,sizeof(BenDat),1,f);
</code></pre>
<p>Prinzipiell denkbar, üblicherweise schreibt man:</p>
<pre><code class="language-cpp">fwrite(BenDat,sizeof(struct  Pay), sizoef(BenDat),f);
</code></pre>
<p>Wie sieht dein AnsiString Typ aus? char* konstanter Länger oder watt?<br />
Wenn nicht, musst du die Strings einzeln speichern.<br />
Die Tatsache, das in deinen Variablen Werte stehen, die dort nicht hingehören, schließen darauf, das Arraygrenzen überschrieben werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755718</guid><dc:creator><![CDATA[lattemann]]></dc:creator><pubDate>Wed, 05 Aug 2009 12:22:36 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 12:25:07 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Kannst du mir mal sagen was daran so altmodisch ist?</p>
</blockquote>
<p>Wie schon oben gesagt wurde sind Funktionen mit implizitem Rückgabetyp int nicht mehr erlaubt, IIRC seit dem C99-Standard. Im C++-Standard von 1998 ists das selbe.<br />
Funktionen müssen einen Rückgabetyp (z.B. void, int oder etwas anderes) explizit angegeben haben.</p>
<p>Wenn du mir mitteilst, ob du in C oder C++ schreiben möchtest, kann ich den Thread entweder ins richtige C-Forum verschieben oder wir können dir hier mit ordentlichem C++ weiterhelfen <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/1755722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755722</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 05 Aug 2009 12:25:07 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 12:32:40 GMT]]></title><description><![CDATA[<p>lattemann schrieb:</p>
<blockquote>
<pre><code class="language-cpp">fwrite(BenDat,sizeof(struct  Pay), sizoef(BenDat),f);
</code></pre>
</blockquote>
<p>Wechstaben verbuchselt :p<br />
Muss heißen sizeof, is klar, wa.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755727</guid><dc:creator><![CDATA[lattemann]]></dc:creator><pubDate>Wed, 05 Aug 2009 12:32:40 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 12:34:17 GMT]]></title><description><![CDATA[<p>lattemann schrieb:</p>
<blockquote>
<p>Während sich die anderen wegen C, C++, oder C# Grundsätzen fusselig labern, gebe ich dir schonmal ein paar Tips:</p>
</blockquote>
<p>Die wenn du die anderen Beiträge gelesen hättest nicht funktionieren können.</p>
<p>lattemann schrieb:</p>
<blockquote>
<p>Wie sieht dein AnsiString Typ aus? char* konstanter Länger oder watt?</p>
</blockquote>
<p>AnsiString ist wie gesagt ein Datentyp des BCB (Genauer: Eine Klasse der VCL-Bibliothek).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755729</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 05 Aug 2009 12:34:17 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 19:54:52 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>... wenn du die anderen Beiträge gelesen hättest nicht funktionieren können.</p>
</blockquote>
<p><strong>die</strong> anderen? das gefeilsche um den rückgabetypen? nee, ne.<br />
bisher habe ich diesbezüglich nur einen brauchbaren, den von Old MacDonald gesehen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22794">@Mathiable</a>:<br />
Hol dir für jeden Structmember den Zeiger auf die Daten, ermittle die Anzahl der Bytes, hau das in die Datei rein und gut ist.<br />
Beim AnsiString bin ich mir gerade nicht so sicher, ob man den Zeiger so bekommt:<br />
AnsiString Name;<br />
char* p = Name.c_str();<br />
Gruß,<br />
jepp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1755971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1755971</guid><dc:creator><![CDATA[lattemann]]></dc:creator><pubDate>Wed, 05 Aug 2009 19:54:52 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Wed, 05 Aug 2009 23:12:15 GMT]]></title><description><![CDATA[<blockquote>
<p>die anderen? das gefeilsche um den rückgabetypen? nee, ne.<br />
bisher habe ich diesbezüglich nur einen brauchbaren, den von Old MacDonald gesehen.</p>
</blockquote>
<p>Aber dein Vorschlag wäre sogar noch eine Verschlimmbesserung gewesen - der hätte nämlich glatt einen Bufferoverrun noch zusätzlich erzeugt. <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>
<blockquote>
<p>Hol dir für jeden Structmember den Zeiger auf die Daten, ermittle die Anzahl der Bytes, hau das in die Datei rein und gut ist.<br />
Beim AnsiString bin ich mir gerade nicht so sicher, ob man den Zeiger so bekommt:<br />
AnsiString Name;<br />
char* p = Name.c_str();</p>
</blockquote>
<p>Viel Spaß. Denn wie du die Zeichenketten variabler Länge wieder korrekt auslesen willst, hast du noch nicht gesagt; zumindest nicht eindeutig genug, dass es Mathiable versteht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756026</guid><dc:creator><![CDATA[Old McDonald]]></dc:creator><pubDate>Wed, 05 Aug 2009 23:12:15 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Thu, 06 Aug 2009 06:37:08 GMT]]></title><description><![CDATA[<p>Old McDonald schrieb:</p>
<blockquote>
<p>Aber dein Vorschlag wäre sogar noch eine Verschlimmbesserung gewesen - der hätte nämlich glatt einen Bufferoverrun noch zusätzlich erzeugt. <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>
</blockquote>
<p>ich schrieb, dass man u.u. einzeln speichern muss und habe nach dem datentypen gefragt <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>
<p>Old McDonald schrieb:</p>
<blockquote>
<p>Viel Spaß. Denn wie du die Zeichenketten variabler Länge wieder korrekt auslesen willst, hast du noch nicht gesagt; zumindest nicht eindeutig genug, dass es Mathiable versteht.</p>
</blockquote>
<p>wie willst du denn beurteilen, was er versteht und was nicht <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/1756075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756075</guid><dc:creator><![CDATA[lattemann]]></dc:creator><pubDate>Thu, 06 Aug 2009 06:37:08 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Thu, 06 Aug 2009 11:08:44 GMT]]></title><description><![CDATA[<p>Das hier:</p>
<pre><code class="language-cpp">fwrite(BenDat,sizeof(struct  Pay), sizeof(BenDat),f);
</code></pre>
<p>Erzeugt einen Pufferüberlauf. Wenn Pay ein POD wäre, müsste es so lauten:</p>
<pre><code class="language-cpp">fwrite(BenDat,sizeof(BenDat[0]), sizeof(BenDat)/sizeof(BenDat[0]),f);
</code></pre>
<p>Aber lassen wir das - es ändert eh nichts daran, dass es falsch ist <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>
<blockquote>
<p>wie willst du denn beurteilen, was er versteht und was nicht <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>
</blockquote>
<p>Das kann ich nicht - aber ich kann es vermuten. Je nachdem, wie man deine Beschreibung liest, wie die Struktur in die Datei geschrieben werden soll, kommt entweder totaler Murks raus oder etwas, dass man wieder auslesen kann. Warum? Weil du nicht eindeutig dazugeschrieben hast, dass man auch noch die Länge der Zeichenkette mitspeichern muss oder die Zeichenkette mit '\0' terminieren muss. Die Beschreibung ist so einfach zu schwammig oder unvollständig.<br />
Naja, jetzt abwarten, bis sich Mathiable wieder meldet <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/1756224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756224</guid><dc:creator><![CDATA[Old McDonald]]></dc:creator><pubDate>Thu, 06 Aug 2009 11:08:44 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Thu, 06 Aug 2009 12:02:12 GMT]]></title><description><![CDATA[<p>Old McDonald schrieb:</p>
<blockquote>
<p>Das hier:</p>
<pre><code class="language-cpp">fwrite(BenDat,sizeof(struct  Pay), sizeof(BenDat),f);
</code></pre>
<p>Erzeugt einen Pufferüberlauf.</p>
</blockquote>
<p>Auch du Scheiße. Da haddu recht, was bin ich doch für eine Schlampe :D, da hab ich gepennt.</p>
<p>Den Teiler habe ich ganz vergessen!<br />
Korrekt wäre in der Tat gewesen:</p>
<pre><code class="language-cpp">fwrite ( BenDat, sizeof( struct Pay ), sizeof( BenDat )/sizeof(struct Pay), fp);
</code></pre>
<p>für die sogenannten PODs. -&gt; hier kein rolleyes &lt;- <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/1756271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756271</guid><dc:creator><![CDATA[lattemän]]></dc:creator><pubDate>Thu, 06 Aug 2009 12:02:12 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Thu, 06 Aug 2009 12:27:42 GMT]]></title><description><![CDATA[<p>lattemän schrieb:</p>
<blockquote>
<p>Old McDonald schrieb:</p>
<blockquote>
<p>Das hier:</p>
<pre><code class="language-cpp">fwrite(BenDat,sizeof(struct  Pay), sizeof(BenDat),f);
</code></pre>
<p>Erzeugt einen Pufferüberlauf.</p>
</blockquote>
<p>Auch du Scheiße. Da haddu recht, was bin ich doch für eine Schlampe :D, da hab ich gepennt.</p>
<p>Den Teiler habe ich ganz vergessen!<br />
Korrekt wäre in der Tat gewesen:</p>
<pre><code class="language-cpp">fwrite ( BenDat, sizeof( struct Pay ), sizeof( BenDat )/sizeof(struct Pay), fp);
</code></pre>
<p>für die sogenannten PODs. -&gt; hier kein rolleyes &lt;- <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>
</blockquote>
<p>Benutze in sizeof bitte immer Ausdrücke und keine Typbezeichner, wenn BenDat jemals kein Array von Pays mehr ist, dann ist dein Code falsch, während der von Old McDonald weiterhin das richtige tut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756308</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Thu, 06 Aug 2009 12:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit AnsiString speichern on Thu, 06 Aug 2009 12:45:09 GMT]]></title><description><![CDATA[<p>Tippgeber schrieb:</p>
<blockquote>
<p>Benutze in sizeof bitte immer Ausdrücke und keine Typbezeichner, wenn BenDat jemals kein Array von Pays mehr ist, dann ist dein Code falsch, während der von Old McDonald weiterhin das richtige tut.</p>
</blockquote>
<p>Ja, das mach Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756320</guid><dc:creator><![CDATA[lattemän]]></dc:creator><pubDate>Thu, 06 Aug 2009 12:45:09 GMT</pubDate></item></channel></rss>