Cuestión : Aún más preguntas sobre la compresión/decompression.

¡Hola expertos! el
I consiguió a donde quise estar con la ayuda de mis dos preguntas pasadas aquí (me sorprenden realmente con este sitio, continúo el buen trabajo). el
Now encendido con más preguntas sobre la compresión y Decompression.

If que usted quiere hechar una ojeada el código de mi programa de prueba, él es here.

Well, conmigo programa de prueba tengo que saber compresa y descomprimo trabajos con boost.iostreams. Ahora estoy buscando una manera para que comprima y descomprima sin mí que tiene que decir cuál será el archivo de la destinación. Puesto que ejecutaré esto en un programa más grande del análisis del registro, necesito el proceso entero de la compresa y lo descomprimo para ser automático. el
Also, si usted los expertos puede señalarme a una manera de hacer esta pequeña exploración del programa un directorio para los archivos de “.z” y de descomprimirlos todos, sería mucho helpful.
Reviewing con qué le necesito los individuos ayudarme: el directorio del
Scan para los archivos de” .z ", los descomprime todos, comprime los archivos mientras que consiguen uno por uno. cosa analizada del

One, si usted sabe de cualquier método de la compresión que pueda utilizar con boost.iostreams que sea más eficiente, déjanme por último por favor saber. El programa del análisis ejecutaré esta compresa y descomprimir repartos de la funcionalidad con las cargas de datos de los ficheros de diario, así que sería agradable tener un
de la compresión method.

Thanks por adelantado. class= > " claro " 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= " de " codeSnippet781313 del id= del
 del #include

#include 
#include 
#include 

usar namespace std;
usar alza del namespace:: iostreams;

//---------------------------------------------------------------------
compresa vacía (el arq de la secuencia, encadena la más arqdest)
{
    ifstream adentro (arq.c_str (), ios_base:: en | ios_base:: binario);
    archivo del ofstream (arqdest.c_str (), ios_base:: hacia fuera | ios_base:: binario);
    filtering_streambuf hacia fuera;
    out.push (zlib_compressor ());
    out.push (archivo);
    alza:: iostreams:: copia (en, hacia fuera);
}

//---------------------------------------------------------------------
el vacío descomprime (secuencia más arqdest, el arq de la secuencia)
{
    archivo del ifstream (arqdest.c_str (), ios_base:: en | ios_base:: binario);
    ofstream hacia fuera (arq.c_str (), ios_base:: hacia fuera | ios_base:: binario);
    filtering_streambuf adentro;
    in.push (zlib_decompressor ());
    in.push (archivo);
    alza:: iostreams:: copia (en, hacia fuera);
}
//---------------------------------------------------------------------
cañería de la internacional ()
{
    arq de la secuencia;
    secuencia más arqdest;
    modo del carbón de leña;

    cout << “compresa = “”/Descompress de c = “d”” << endl;
    el cout << “elige uno de los métodos: ” << endl;
    cin >> modo;
    si (== “d del modo ")
    {
       el cout << “entra en el archivo que se descomprimirá: ” << endl;
       cin >> el más arqdest;
       el cout << “entra en el archivo de la destinación: ” << endl;
       cin >> arq;
       descomprimir (el más arqdest, arq);
    }
    si (== “c del modo ")
    {
       el cout << “entra en el archivo que se comprimirá: ” << endl;
       cin >> arq;
       el cout << “entra en el archivo de la destinación: ” << endl;
       cin >> el más arqdest;
       compresa (arq, más arqdest);
    }

    vuelta 0;

}
class= del

Respuesta : Aún más preguntas sobre la compresión/decompression.

>> el directorio de la exploración para los archivos de “.z”, los descomprime todos, comprime los archivos mientras que consiguen analizados uno por uno.

¿Usted está modificando los datos? Si no, usted puede dejar hacia fuera el paso de la compresión. Apenas descomprimir simplemente la corriente, y procesarla.


>> Ahora estoy buscando una manera para que comprima y descomprima sin mí que tiene que decir cuál será el archivo de la destinación.

Si usted quiere ahorrarlo a un archivo, usted todavía necesitará subir de alguna manera con un nombre de fichero. ¿Qué nombre de fichero usted quiere utilizar? Usted podría utilizar el nombre de fichero del archivo de fuente, y cambia la extensión eg. , o agregar un sufijo, o…
Alternativo, usted podría utilizar un nombre de fichero temporal automáticamente generado usar el tmpnam (http://www.cplusplus.com/reference/clibrary/cstdio/tmpnam/) eg.
Otras soluciones  
 
programming4us programming4us