<?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[Großes Array effizient in .txt auslagern]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein großes Array und möchte dieses in eine .txt auslagern um es später wieder in ein Array einzulesen.</p>
<p>Wie kann ich das effizient machen?</p>
<p>Es handelt sich um folgendes Array:<br />
unsigned int ar[150][150][150][15];</p>
<p>Bei kleineren Arrays habe ich einfach jedes Element ausgelesen in die .txt geschrieben und dazwischen ein Leerzeichen gemacht. Beim einlesen dann immer bis zum Leerzeichen gelesen und ins Array geschrieben.</p>
<p>Jetzt wird aber meine .txt auf diese Weise sehr groß. Gibt es da eine effizienter/platzsparende Weise? Die .txt muss nicht von &quot;außen&quot; nicht lesbar sein, sie soll nur das Array speichern und später wieder das Array füllen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327968/großes-array-effizient-in-txt-auslagern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 16:45:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327968.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Sep 2014 18:56:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Großes Array effizient in .txt auslagern on Sat, 13 Sep 2014 18:56:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein großes Array und möchte dieses in eine .txt auslagern um es später wieder in ein Array einzulesen.</p>
<p>Wie kann ich das effizient machen?</p>
<p>Es handelt sich um folgendes Array:<br />
unsigned int ar[150][150][150][15];</p>
<p>Bei kleineren Arrays habe ich einfach jedes Element ausgelesen in die .txt geschrieben und dazwischen ein Leerzeichen gemacht. Beim einlesen dann immer bis zum Leerzeichen gelesen und ins Array geschrieben.</p>
<p>Jetzt wird aber meine .txt auf diese Weise sehr groß. Gibt es da eine effizienter/platzsparende Weise? Die .txt muss nicht von &quot;außen&quot; nicht lesbar sein, sie soll nur das Array speichern und später wieder das Array füllen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417415</guid><dc:creator><![CDATA[Trasher77]]></dc:creator><pubDate>Sat, 13 Sep 2014 18:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Großes Array effizient in .txt auslagern on Sat, 13 Sep 2014 19:07:45 GMT]]></title><description><![CDATA[<blockquote>
<p>Gibt es da eine effizienter/platzsparende Weise?</p>
</blockquote>
<p>Eine platformabhängige Methode besteht darin die Daten binär reinzuschreiben.</p>
<pre><code>unsigned int ar[150][150][150][15];
// [...]
std::ofstream stream(&quot;MyFile.txt&quot;);
stream.write(reinterpret_cast&lt;unsigned char const*&gt;(ar), sizeof ar);
</code></pre>
<p>Lesen:</p>
<pre><code>unsigned int ar[150][150][150][15];
std::ifstream stream(&quot;MyFile.txt&quot;);
stream.read(reinterpret_cast&lt;unsigned char*&gt;(ar), sizeof ar);
</code></pre>
<p>Beides ungetestet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417417</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sat, 13 Sep 2014 19:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to Großes Array effizient in .txt auslagern on Sat, 13 Sep 2014 19:09:16 GMT]]></title><description><![CDATA[<p>Also wir hatten vor kurzem erst <a href="http://de.wikipedia.org/wiki/Compressed_Row_Storage" rel="nofollow">diese</a> Technik in der Vorlesung, das kann genau für sowas verwendet werden...</p>
<p>Bringt aber nur was wenn dein Array viele gleiche Elemente enthält (also zum Beispiel viele Nullen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417418</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Sat, 13 Sep 2014 19:09:16 GMT</pubDate></item><item><title><![CDATA[Reply to Großes Array effizient in .txt auslagern on Sat, 13 Sep 2014 19:54:13 GMT]]></title><description><![CDATA[<p>Trasher77 schrieb:</p>
<blockquote>
<p>Es handelt sich um folgendes Array:<br />
unsigned int ar[150][150][150][15];</p>
</blockquote>
<p>Und wenn man zum Rausschreiben 9 Stellen plus Zeilenumbruch nimmt, 500M in der Datei. Wo ist das Problem?</p>
<p>Bei 4 Bytes pro int also 200M im Ram und auch 200M mit Arcoths Trick.</p>
<p>Schreib das Array mal normal raus mit Leerzeichen, wie Du es gewohnt bist.<br />
Sage uns, wieviel Bytes groß es ist. Bei vollem Durcheinander sollten es um 500M sein, bei fast nur Nullen ungefähr 100M.<br />
Davon hängt ab, wie gut happystudents Trick wirken würde (,wobei dann aber auch simples RLE gut arbeiten würde).</p>
<p>Dann packe die Datei mit zip oder irgendeinem Packer. Wie groß ist sie jetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417421</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 13 Sep 2014 19:54:13 GMT</pubDate></item><item><title><![CDATA[Reply to Großes Array effizient in .txt auslagern on Sat, 13 Sep 2014 21:41:09 GMT]]></title><description><![CDATA[<p>Kommt immer drauf an was genau &quot;effizient&quot; heißt.<br />
Geht es nur um die Dateigröße oder auch um die Schnelligkeit vom Speichern/Laden ?</p>
<p>Wenn es nur im die Dateigröße geht, dann ist das effizienteste:<br />
-Daten vorbearbeiten damit sie besser komprimieren - muss natürlich umkehbar sein<br />
-Daten binär verarbeiten, also nicht in Text umwandeln<br />
-LZMA/Deflate oder ähnliches nutzen um die Daten zu komprimieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417430</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Sat, 13 Sep 2014 21:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to Großes Array effizient in .txt auslagern on Sat, 13 Sep 2014 21:48:56 GMT]]></title><description><![CDATA[<p>DarkShadow44 schrieb:</p>
<blockquote>
<p>-Daten binär verarbeiten, also nicht in Text umwandeln<br />
-LZMA/Deflate oder ähnliches nutzen um die Daten zu komprimieren</p>
</blockquote>
<p>Wenn du die Daten in Text umwandelst und dann komprimierst, sollte, bis vielleicht auf wenige Prozent, ungefähr die gleiche Größe rauskommen, als wenn du sie binär speicherst und dann komprimierst. Schließlich hat man mehr Redundanzen dadurch, dass man sich auf 10 Ziffern + Trennzeichen beschränkt. Und zwar ziemlich genau so viel Mehrredundanz, wie der Unterschied zwischen (unkomprimierter) maschinen- und menschenlesbarer Speicherung.<br />
Wenn man also komprimiert (meine Empfehlung: <a href="http://www.cs.unc.edu/Research/compgeom/gzstream/" rel="nofollow">gzstream</a>), gelten also immer noch die gleichen Überlegungen für oder wider menschenlesbarer Formate, wie sonst auch (außer natürlich Speicherplatz, der kein Argument mehr ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2417433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2417433</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 13 Sep 2014 21:48:56 GMT</pubDate></item></channel></rss>