<?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[GZipStream&amp;lt;-&amp;gt;File - Komprimierungs&#x2F;Dekomprimierungsproblem]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Habe mir eine kleine Gzip-Funktion erstellt, um Dateien zu komprimieren, bzw. zu dekomprimieren...<br />
Definitionen:</p>
<pre><code class="language-cpp">#define SOURCENOTFOUND &quot;101&quot;
#define DESTEXISTS &quot;102&quot;
#define CANTCREATEFILE &quot;103&quot;
#define GZIPFILENOTFOUND &quot;190&quot;
</code></pre>
<p>using:</p>
<pre><code class="language-cpp">using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::IO;
using namespace System::IO::Compression;
using namespace System::Drawing;
using namespace System::Text;
</code></pre>
<p>Funktionen:</p>
<pre><code class="language-cpp">private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)
	{
	try { CompressFile(&quot;C:\\testtext.txt&quot;, &quot;C:\\testtext.gz&quot;); }
	catch (Exception ^ex)
		{
		if (ex-&gt;Message==SOURCENOTFOUND) { /* Quelldatei nicht gefunden */ }
		if (ex-&gt;Message==DESTEXISTS) { /* Ziel existiert bereits */ }
		if (ex-&gt;Message==CANTCREATEFILE) { /* Ziel konnte nicht erstellt werden. */ }
		}
	try { DecompressFile(&quot;C:\\testtext.gz&quot;, &quot;C:\\testziel.txt&quot;); }
	catch (Exception ^ex)
		{
		if (ex-&gt;Message==GZIPFILENOTFOUND) { /* Gzip-Datei nicht gefunden. */ }
		if (ex-&gt;Message==DESTEXISTS) { /* Ziel schon vorhanden */ }
		if (ex-&gt;Message==CANTCREATEFILE) { /* Ziel konnte nicht erstellt werden */ }
		}
	}

 public: void CompressFile(String^ inputFileName, String^ outputFileName) 
	{
	if (!File::Exists(inputFileName)) throw gcnew Exception(SOURCENOTFOUND);
	if (File::Exists(outputFileName)) throw gcnew Exception(DESTEXISTS);
    array&lt;Byte&gt;^ buffer = gcnew array&lt;Byte&gt;(4096);
	FileStream^ inputFile;
	int n = 0;
	inputFile = gcnew FileStream(inputFileName, FileMode::Open, FileAccess::Read, FileShare::Read);
	FileStream^ outputFile = File::Create(outputFileName);
	if (!File::Exists(outputFileName)) throw gcnew Exception(CANTCREATEFILE);
	GZipStream^ gzip = gcnew GZipStream(outputFile, CompressionMode::Compress);
	while((n = inputFile-&gt;Read(buffer, 0, buffer-&gt;Length)) != 0) { gzip-&gt;Write(buffer, 0, n); }
	gzip-&gt;Close();
	inputFile-&gt;Close();
	outputFile-&gt;Close();
	}

public: void DecompressFile(String^ inputFileName, String^ outputFileName) 
{
	array&lt;Byte&gt;^buffer = gcnew array&lt;Byte&gt;(4096);
	if (!File::Exists(inputFileName)) throw gcnew Exception(GZIPFILENOTFOUND);
	if (File::Exists(outputFileName)) throw gcnew Exception(DESTEXISTS);
	FileStream^ inputFile = gcnew FileStream(inputFileName, FileMode::Open);
	FileStream^ outputFile = File::Create(outputFileName);
	if (!File::Exists(outputFileName)) throw gcnew Exception(CANTCREATEFILE);
	GZipStream^ gzip = gcnew GZipStream(outputFile, CompressionMode::Decompress);
	int n = 0;
	while ((n = gzip-&gt;Read(buffer, 0, buffer-&gt;Length)) != 0) { outputFile-&gt;Write(buffer, 0, n); }
	gzip-&gt;Close();
	inputFile-&gt;Close();
	outputFile-&gt;Close();
	}
</code></pre>
<p>Beim Schreiben der Datei testtext.txt (85 Byte) ins Gzip-Format läuft die Komprimierung soweit gut (also es besteht Inhalt... 182 Byte).<br />
Jedoch beim Dekomprimieren wird zwar die Zieldatei geschrieben, sofern sie nicht existiert, aber der Inhalt (Testziel.txt) ist 0-Byte lang.<br />
Wer kann mir sagen, wo der Fehler liegt? Visual C++ 2005 macht keinerlei Fehlermeldung beim Build, sowie auch keine sonstigen Exceptions.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178023/gzipstream-lt-gt-file-komprimierungs-dekomprimierungsproblem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 07:20:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178023.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Apr 2007 14:48:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to GZipStream&amp;lt;-&amp;gt;File - Komprimierungs&#x2F;Dekomprimierungsproblem on Fri, 06 Apr 2007 14:48:32 GMT]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Habe mir eine kleine Gzip-Funktion erstellt, um Dateien zu komprimieren, bzw. zu dekomprimieren...<br />
Definitionen:</p>
<pre><code class="language-cpp">#define SOURCENOTFOUND &quot;101&quot;
#define DESTEXISTS &quot;102&quot;
#define CANTCREATEFILE &quot;103&quot;
#define GZIPFILENOTFOUND &quot;190&quot;
</code></pre>
<p>using:</p>
<pre><code class="language-cpp">using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::IO;
using namespace System::IO::Compression;
using namespace System::Drawing;
using namespace System::Text;
</code></pre>
<p>Funktionen:</p>
<pre><code class="language-cpp">private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)
	{
	try { CompressFile(&quot;C:\\testtext.txt&quot;, &quot;C:\\testtext.gz&quot;); }
	catch (Exception ^ex)
		{
		if (ex-&gt;Message==SOURCENOTFOUND) { /* Quelldatei nicht gefunden */ }
		if (ex-&gt;Message==DESTEXISTS) { /* Ziel existiert bereits */ }
		if (ex-&gt;Message==CANTCREATEFILE) { /* Ziel konnte nicht erstellt werden. */ }
		}
	try { DecompressFile(&quot;C:\\testtext.gz&quot;, &quot;C:\\testziel.txt&quot;); }
	catch (Exception ^ex)
		{
		if (ex-&gt;Message==GZIPFILENOTFOUND) { /* Gzip-Datei nicht gefunden. */ }
		if (ex-&gt;Message==DESTEXISTS) { /* Ziel schon vorhanden */ }
		if (ex-&gt;Message==CANTCREATEFILE) { /* Ziel konnte nicht erstellt werden */ }
		}
	}

 public: void CompressFile(String^ inputFileName, String^ outputFileName) 
	{
	if (!File::Exists(inputFileName)) throw gcnew Exception(SOURCENOTFOUND);
	if (File::Exists(outputFileName)) throw gcnew Exception(DESTEXISTS);
    array&lt;Byte&gt;^ buffer = gcnew array&lt;Byte&gt;(4096);
	FileStream^ inputFile;
	int n = 0;
	inputFile = gcnew FileStream(inputFileName, FileMode::Open, FileAccess::Read, FileShare::Read);
	FileStream^ outputFile = File::Create(outputFileName);
	if (!File::Exists(outputFileName)) throw gcnew Exception(CANTCREATEFILE);
	GZipStream^ gzip = gcnew GZipStream(outputFile, CompressionMode::Compress);
	while((n = inputFile-&gt;Read(buffer, 0, buffer-&gt;Length)) != 0) { gzip-&gt;Write(buffer, 0, n); }
	gzip-&gt;Close();
	inputFile-&gt;Close();
	outputFile-&gt;Close();
	}

public: void DecompressFile(String^ inputFileName, String^ outputFileName) 
{
	array&lt;Byte&gt;^buffer = gcnew array&lt;Byte&gt;(4096);
	if (!File::Exists(inputFileName)) throw gcnew Exception(GZIPFILENOTFOUND);
	if (File::Exists(outputFileName)) throw gcnew Exception(DESTEXISTS);
	FileStream^ inputFile = gcnew FileStream(inputFileName, FileMode::Open);
	FileStream^ outputFile = File::Create(outputFileName);
	if (!File::Exists(outputFileName)) throw gcnew Exception(CANTCREATEFILE);
	GZipStream^ gzip = gcnew GZipStream(outputFile, CompressionMode::Decompress);
	int n = 0;
	while ((n = gzip-&gt;Read(buffer, 0, buffer-&gt;Length)) != 0) { outputFile-&gt;Write(buffer, 0, n); }
	gzip-&gt;Close();
	inputFile-&gt;Close();
	outputFile-&gt;Close();
	}
</code></pre>
<p>Beim Schreiben der Datei testtext.txt (85 Byte) ins Gzip-Format läuft die Komprimierung soweit gut (also es besteht Inhalt... 182 Byte).<br />
Jedoch beim Dekomprimieren wird zwar die Zieldatei geschrieben, sofern sie nicht existiert, aber der Inhalt (Testziel.txt) ist 0-Byte lang.<br />
Wer kann mir sagen, wo der Fehler liegt? Visual C++ 2005 macht keinerlei Fehlermeldung beim Build, sowie auch keine sonstigen Exceptions.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1260676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260676</guid><dc:creator><![CDATA[kenny197902]]></dc:creator><pubDate>Fri, 06 Apr 2007 14:48:32 GMT</pubDate></item><item><title><![CDATA[Reply to GZipStream&amp;lt;-&amp;gt;File - Komprimierungs&#x2F;Dekomprimierungsproblem on Wed, 11 Apr 2007 12:49:14 GMT]]></title><description><![CDATA[<p>GZipStream^ gzip = gcnew GZipStream(inputFile, CompressionMode::Decompress);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263809</guid><dc:creator><![CDATA[honkey]]></dc:creator><pubDate>Wed, 11 Apr 2007 12:49:14 GMT</pubDate></item></channel></rss>