zlib



  • der verständlicherere link dazu! 😃

    http://www.openlab.jp/tsuneo/tar32/index-e.html



  • Guenter Mies schrieb:

    netter link!! 😃

    nur leider hab ich keine japanische tastatur um angemessen antworten zu koennen.... 🤡

    aber ich find schon das deutsche gegenstueck...danke!!

    Günni

    jep sorry war gestern schon spät

    ich kann euch auch noch meinen zlib code raussuchen... mal schaun



  • Das wäre cool wenn du das mal machen könntest!
    Du hast das doch auch realisiert um BMP#s zu koprimieren, oder?
    Das wäre sehr interessant! Wir sind soweit das wit simpele txt komprimieren und dekomprimieren!
    Tja wir hatten schon versucht BMP infos zu komprimieren doch da sehr wahrscheinlich in den BMP´s steuerinformationen vorhanden sind die einem /0 entsprechen, werden bei uns nur 3 oder 4 zeichen der BMP eingelesen!
    Wir hatten uns gedacht das wir diese maskieren um dieses zu umgehen!
    Wäre dennoch interessant zu wissen wie du das gemacht hast!

    thx a lot

    sven



  • ich glaub mir war der dateityp schnurz
    habs einfach binär eingelesen und an die komprimierungsfunktion verfüttert

    an den code komm ich erst heut abend wenn ich wieder zuhause bin



  • Das hort sich ja dennoch gut an!
    Also wenn du @home bist bitte denk an uns! 😃

    ///// NEUES PROBLEM MIT ZLIB ////////////////
    unsere einelese buffer ist 9000 zeichen groß, damit liest er 3332 Zeichen ein bei 3333 zeichen bricht er ab! Und die Ausgabedatei ist dann leer!
    Vergrößern wir unseren Buffer auf 10000 dann ist kann er die 3333 Zeichen lesen! Nun haben wir uns gedacht den Buffer in Schritten auf 50000 zu erhöhen.
    Und 6000 Zeichen einzuladen aber es funzt nicht!!!
    Und es wäre müsig die maximale Lesbaren Zeichen dafür heraus zu finden.
    Wir sind der Meinung dass es daran liegt dass die fread methode nur bis zu einem eof liest. Wir haben uns die Datei in einem Hexeditor angeschaut und erkannt, dass es immer bei HEX 00 endet egal ob noch zeichen folgen sollten! Dies ist laut ASCII tabelle == NULL
    ist in diesem Fall ein \0 gemeint oder ...

    int wert =0;
    File inFile;
    inFile = fopen("Dateiname","rb");
    char *puffer = new char [Dateigroesse +1];
    if (inFile != NULL )
    {
      wert = fread(puffer,1,Dateigroesse,inFile);
    }
    

    .. das NULL der If Abfrage?
    p.s. wir arbeiten auf pocketpc daher fread / fopen usw. (geht nicht anders 😞 )

    Sven



  • der rueckgabewert entspricht ja der groesse der gelesenen daten oder?
    probierts mal mit ner while schleife bis nix mehr kommt



  • haben wir schon gemacht!

    char *Puffer = new char[Dateigroesse];
    Puffer = "";
    char *Puffer2 = new char[2];
    *(Puffer2+1) = '\0';
    do{
    	wert = fread(Puffer2,sizeof(char),1, inZip);
             strcat(Puffer, Puffer2);
             j++;
    	} while(j<Dateigroesse);
    fclose (inZip);
    

    Wäre cool wenn du heut abend einfach mal deinen code postest dann können wir vielleicht sehen wo s bei uns scheitert!

    thx a lot



  • haben wir schon gemacht!

    char *Puffer = new char[Dateigroesse];
    Puffer = "";
    char *Puffer2 = new char[2];
    *(Puffer2+1) = '\0';
    do{
    	wert = fread(Puffer2,sizeof(char),1, inZip);
             strcat(Puffer, Puffer2);
             j++;
    	} while(j<Dateigroesse);
    fclose (inZip);
    

    Wäre cool wenn du heut abend einfach mal deinen code postest dann können wir vielleicht sehen wo s bei uns scheitert!

    thx a lot



  • boah sieht der code sche**** aus... is ja schon fast peinlich das zu posten
    aber ich weiss dass er damals einwandfrei funktioniert hat um einzelne dateien zu packen und zu entpacken

    int eCompress_CompressFile(CString FileName,CString Extension)
    {
    	LastError="";
    	CFile TheFile;
    	if(!TheFile.Open(FileName,CFile::modeRead|CFile::typeBinary))
    		return PutError("Datei konnte nicht geöffnet werden!"); 
    	char Buf[1000000];
    	int read=0;
    	gzFile zFile=gzopen(FileName+Extension,"wb9");
    
    	if(!zFile)
    		return PutError("Ausgabedatei konnte nicht erstellt werden!");
    
    	do
    	{
    		read=TheFile.Read(Buf,1000000);
    		if(!gzwrite(zFile,Buf,read))
    			PutError("Fehler beim Schreiben der komprimierten Daten!");
    
    	}while(read);
    
    	TheFile.Close();
    	gzclose(zFile);
    
    return eCompressionFINE;
    }
    int eCompress_DecompressFile(CString FileName,CString Extension)
    {
    	LastError="";
    	gzFile zFile=gzopen(FileName+Extension,"rb9");
    	if(!zFile)
    		return PutError("Eingabedatei konnte nicht geöffnet werden!");
    	char Buf[1000000];
    	int write=0;
    
    	CFile TheFile;
    	if(!TheFile.Open(FileName,CFile::modeWrite|CFile::typeBinary|CFile::modeCreate))
    		return PutError("Ausgabedatei konnte nicht erstellt werden!"); 
    
    	do
    	{
    		write=gzread(zFile,Buf,1000000);
    		TheFile.Write(Buf,write);
    	}while(write);
    
    	gzclose(zFile);
    	TheFile.Close();
    
    return eCompressionFINE;
    }
    


  • Und so s******e sieht der doch nicht aus!
    Hättest aber eben noch Kommentare dazu schreiben können! 😃
    Nein thx a lot!
    Werd mal schauen was wir damit machen können, aber nicht mehr heute!
    werd morgen posten ob es was geholfen hat!

    sven


Anmelden zum Antworten