Questione : Ancor più domande circa compressione/decompression.

Ciao esperti! il
I ha ottenuto a dove ho voluto essere con l'aiuto delle mie ultime due domande qui (realmente sono stupito con questo luogo, continuo il buon lavoro). il
Now sopra con un po'più di domande circa compressione e Decompression.

If che volete dare un'occhiata al codice del mio programma di prova, esso è here.

Well, con il mio programma di prova devo sapere compressa e decomprimo gli impianti con boost.iostreams. Ora sto cercandogli un senso affinchè comprima e decomprimere senza di me che devo dire che cosa la lima della destinazione sarà. Poiché realizzerò questo in un più grande programma dell'analisi del ceppo, ho bisogno di intero processo della compressa e decomprimo per essere automatico.
Also, se esperti potete indicarli un senso rendere a questa piccola esplorazione di programma un indice per le lime “di .z„ e decomprimerle tutte, sarebbe mólto helpful.
Reviewing che cosa lo ho bisogno tipi di aiutarlo con: l'indice del
Scan per le lime„ di .z ", le decomprime tutte, comprime le lime mentre ottengono uno per uno. la cosa analizzata del

One l'ultima volta, se sapere di qualunque metodo che di compressione posso usare con boost.iostreams che è più efficiente, prego lascianolo sapere. Il programma di analisi realizzerò questa compressa e decomprimere gli affari di funzionalità con i carichi dei dati delle lime di ceppo, in modo da sarebbe in anticipo piacevole avere un più forte
di compressione method.

Thanks. class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
notpretty del >#include " del class= " " di codeSnippet781313 del id= del
 del #include

#include 
#include 
#include 

using il namespace std;
using spinta del namespace:: iostreams;

//---------------------------------------------------------------------
compressa vuota (il arq della stringa, mette insieme più arqdest)
{
    ifstream dentro (arq.c_str (), ios_base:: in | ios_base:: paio);
    lima del ofstream (arqdest.c_str (), ios_base:: fuori | ios_base:: paio);
    filtering_streambuf fuori;
    out.push (zlib_compressor ());
    out.push (lima);
    spinta:: iostreams:: copia (in, fuori);
}

//---------------------------------------------------------------------
il vuoto decomprime (stringa più arqdest, arq della stringa)
{
    lima del ifstream (arqdest.c_str (), ios_base:: in | ios_base:: paio);
    ofstream fuori (arq.c_str (), ios_base:: fuori | ios_base:: paio);
    filtering_streambuf dentro;
    in.push (zlib_decompressor ());
    in.push (lima);
    spinta:: iostreams:: copia (in, fuori);
}
//---------------------------------------------------------------------
conduttura di int ()
{
    arq della stringa;
    stringa più arqdest;
    modo del carbone;

    cout << “compressa =„/Descompress “di c = “d„„ << endl;
    il cout << “sceglie uno dei metodi: „ << endl;
    cin >> modo;
    se (== “d di modo ")
    {
       il cout << “entra nella lima da decomprimere: „ << endl;
       cin >> il più arqdest;
       il cout << “entra nella lima della destinazione: „ << endl;
       cin >> arq;
       decomprimere (il più arqdest, arq);
    }
    se (== “c di modo ")
    {
       il cout << “entra nella lima da comprimere: „ << endl;
       cin >> arq;
       il cout << “entra nella lima della destinazione: „ << endl;
       cin >> il più arqdest;
       compressa (arq, più arqdest);
    }

    ritorno 0;

}
class= del

Risposta : Ancor più domande circa compressione/decompression.

>> l'indice di esplorazione per le lime “di .z„, le decomprime tutte, comprime le lime mentre ottengono analizzate uno per uno.

State modificando i dati? Se non, potete omettere il punto di compressione. Decomprimere appena semplicemente il flusso e procedarlo.


>> Ora sto cercandogli un senso affinchè comprima e decomprimere senza di me che devo dire che cosa la lima della destinazione sarà.

Se volete conservarli ad una lima, ancora dovrete fornire in qualche modo un nome di schedario. Che nome di schedario volete usare? Potreste usare il nome di schedario dell'archivio sorgente e cambiate l'estensione per esempio, o aggiungete un suffisso, o…
Alternativamente, potreste usare un nome di schedario provvisorio automaticamente generato using tmpnam (http://www.cplusplus.com/reference/clibrary/cstdio/tmpnam/) per esempio.
Altre soluzioni  
 
programming4us programming4us