G
ANTWORT:
void CTeilerDlg::OnButton3() //ENTZIPPEN!!
{
FILE *gezippteDateiLesen;
gezippteDateiLesen = fopen("\\gezippte.txt", "rb");
int neueDateigroesse = 0, neuwert = 0;
fseek (gezippteDateiLesen,0,SEEK_END);
neueDateigroesse = ftell (gezippteDateiLesen);
fseek (gezippteDateiLesen,0,SEEK_SET);
char *Buffer = new char[neueDateigroesse];
neuwert = fread(Buffer, 1,neueDateigroesse,gezippteDateiLesen);
fclose (gezippteDateiLesen);
CString hilf2="";
int hexwert = 0;
int zaehlhilf = 0;
char hilf3;
Byte *irgendwas= (unsigned char*)Buffer;
for (int x=0; x<neueDateigroesse; x+=2)
{
if(isdigit((int)Buffer[x]))
{
hexwert = ((int)Buffer[x]-48)*16;
}
else
{
switch (Buffer[x])
{
case 'A':
hexwert = 160;
break;
case 'B':
hexwert = 176;
break;
case 'C':
hexwert = 192;
break;
case 'D':
hexwert = 208;
break;
case 'E':
hexwert = 224;
break;
case 'F':
hexwert = 240;
break;
}
}
if(isdigit((int)Buffer[x+1]))
{
hexwert += ((int)Buffer[x+1]-48);
}
else
{
switch (Buffer[x+1])
{
case 'A':
hexwert += 10;
break;
case 'B':
hexwert += 11;
break;
case 'C':
hexwert += 12;
break;
case 'D':
hexwert += 13;
break;
case 'E':
hexwert += 14;
break;
case 'F':
hexwert += 15;
break;
}
}
hilf3 = hexwert;
Buffer[zaehlhilf] = hilf3;
zaehlhilf++;
}
m_test = Buffer;
m_anz = hexwert;
UpdateData(false);
Byte *neu = new Byte[100000];
uLong neuLen= 100000, irgendwasLen= neueDateigroesse;
neuLen= test_large_inflate(irgendwas, irgendwasLen, neu, neuLen);
FILE *EntzipDatei;
EntzipDatei = fopen("BertDaten\\schwarzweiss.bmp", "wb");
fwrite(neu, 1, neuLen, EntzipDatei);
fclose (EntzipDatei);
delete Buffer;
delete irgendwas;
delete neu;
}