#include "CabeceraGlobal.h"
void hgGuardarArchivo(void);
//HANDLE event;
static LPLOADSAVEDATA psd;
DWORD WINAPI hgFuncionDeHilo(LPVOID parametros)
{
psd = (LPLOADSAVEDATA) parametros;
//SetEvent(psd->evento);
/* while(1)
{
if(WaitForSingleObject(psd->evento, 0) == WAIT_OBJECT_0)
return TRUE;
}*/
hgGuardarArchivo();
SetEvent(psd->evento);
return TRUE;
}
void hgGuardarArchivo(void)
{
FILE *fichero;
ULONG x;
LPFICHEROLISTA *pfl;
LPDIRECTORIOLISTA *pdl;
DWORD h, i;
unsigned long long j;
unsigned long long v = MAXDWORD;
fichero = _tfopen(psd->filepath, __TEXT("wb"));
if (fichero == NULL)
{
MessageBox(NULL, IdiomasObtenerTexto(60), TEXT(SZWARNING), MB_OK | MB_ICONWARNING);
psd->exito = FALSE;
return;
}
_ftprintf(fichero, __TEXT("%s\r\n"), IdiomasObtenerTexto(1000052));
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->samesize);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->samecrc);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->samecontent);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->samename);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->incsystem);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->increadonly);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->inchidden);
_ftprintf(fichero, __TEXT("%lu\r\n"), psd->puntdatpro->filelist.numelem);
pfl = psd->puntdatpro->filelist.elementos;
for(x = 0; x < psd->puntdatpro->filelist.numelem; x++)
{
psd->porcentajeDeProgreso = ((x * 33) / psd->puntdatpro->filelist.numelem);
if(WaitForSingleObject(psd->evento, 0) == WAIT_OBJECT_0)
{
psd->exito = FALSE;
fclose(fichero);
DeleteFile(psd->filepath);
return;
}
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->yaincluido);
j = pfl[x]->tamanno;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->sololectura);
_ftprintf(fichero, __TEXT("%s\r\n"), pfl[x]->ruta);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->oculto);
_ftprintf(fichero, __TEXT("%lu\r\n"), pfl[x]->numerorepeticion);
_ftprintf(fichero, __TEXT("%s\r\n"), pfl[x]->nombre);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->marcadoeliminar);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->marcadoborrar);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->fondoblanco);
_ftprintf(fichero, __TEXT("%lu\r\n"), pfl[x]->fechmodif.dwLowDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pfl[x]->fechmodif.dwHighDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pfl[x]->fechcreac.dwLowDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pfl[x]->fechcreac.dwHighDateTime);
_ftprintf(fichero, __TEXT("%s\r\n"), pfl[x]->exten);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->desistema);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->crccalculado);
_ftprintf(fichero, __TEXT("%lu\r\n"), pfl[x]->crc32);
_ftprintf(fichero, __TEXT("%d\r\n"), pfl[x]->estaencomprimido);
psd->porcentajeDeProgreso = (x * 50) / psd->puntdatpro->filelist.numelem;
}
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->extstonotincludecount);
for(x = 0; x < (ULONG) psd->puntdatpro->extstonotincludecount; x++)
{
_ftprintf(fichero, __TEXT("%s\r\n"), psd->puntdatpro->extstonotinclude[x]);
}
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->extstoincludecount);
for(x = 0; x < (ULONG) psd->puntdatpro->extstoincludecount; x++)
{
_ftprintf(fichero, __TEXT("%s\r\n"), psd->puntdatpro->extstoinclude[x]);
}
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->dirstonotincludecount);
for (x = 0; x < (ULONG) psd->puntdatpro->dirstonotincludecount; x++)
{
_ftprintf(fichero, __TEXT("%s\r\n"), psd->puntdatpro->dirstonotinclude[x]);
}
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->dirstoincludecount);
for (x = 0; x < (ULONG) psd->puntdatpro->dirstoincludecount; x++)
{
_ftprintf(fichero, __TEXT("%s\r\n"), psd->puntdatpro->dirstoinclude[x]);
}
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->filestoincludecount);
for (x = 0; x < (ULONG) psd->puntdatpro->filestoincludecount; x++)
{
_ftprintf(fichero, __TEXT("%s\r\n"), psd->puntdatpro->filestoinclude[x]);
}
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->filestonotincludecount);
for (x = 0; x < (ULONG) psd->puntdatpro->filestonotincludecount; x++)
{
_ftprintf(fichero, __TEXT("%s\r\n"), psd->puntdatpro->filestonotinclude[x]);
}
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->casesensitive);
_ftprintf(fichero, __TEXT("%lu\r\n"), psd->puntdatpro->cantmarcadoseliminar);
_ftprintf(fichero, __TEXT("%lu\r\n"), psd->puntdatpro->cantmarcadosborrar);
_ftprintf(fichero, __TEXT("%lu\r\n"), psd->puntdatpro->dirslist.numelem);
pdl = psd->puntdatpro->dirslist.elementos;
for(x = 0; x < psd->puntdatpro->dirslist.numelem; x++)
{
psd->porcentajeDeProgreso = ((x * 33) / psd->puntdatpro->dirslist.numelem) + 33;
if(WaitForSingleObject(psd->evento, 0) == WAIT_OBJECT_0)
{
psd->exito = FALSE;
fclose(fichero);
DeleteFile(psd->filepath);
return;
}
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->yaincluido);
j = pdl[x]->totalficheros;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
j = pdl[x]->totalficheros1nivel;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
j = pdl[x]->totalsubdir;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
j = pdl[x]->totalsubdir1nivel;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->sololectura);
_ftprintf(fichero, __TEXT("%s\r\n"), pdl[x]->ruta);
_ftprintf(fichero, __TEXT("%s\r\n"), pdl[x]->nombre);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechmodif.dwLowDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechmodif.dwHighDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechcreac.dwLowDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechcreac.dwHighDateTime);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->desistema);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->oculto);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->sololectura);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->fondoblanco);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->marcadoborrar);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->marcadoeliminar);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->yacomparado);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->numerorepeticion);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->numerorepeticion1);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->numerorepeticion2);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->estaencomprimido);
}
_ftprintf(fichero, __TEXT("%lu\r\n"), psd->puntdatpro->cantmarcadoseliminardirs);
_ftprintf(fichero, __TEXT("%lu\r\n"), psd->puntdatpro->cantmarcadosborrardirs);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->comparardirectorios);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->compararcontenidozips);
_ftprintf(fichero, __TEXT("%d\r\n"), psd->puntdatpro->comprobardentrozip);
_ftprintf(fichero, __TEXT("%lu\r\n"), psd->puntdatpro->noincdirslist.numelem);
pdl = psd->puntdatpro->noincdirslist.elementos;
for(x = 0; x < psd->puntdatpro->noincdirslist.numelem; x++)
{
psd->porcentajeDeProgreso = ((x * 33) / psd->puntdatpro->noincdirslist.numelem) + 66;
if(WaitForSingleObject(psd->evento, 0) == WAIT_OBJECT_0)
{
psd->exito = FALSE;
fclose(fichero);
DeleteFile(psd->filepath);
return;
}
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->yaincluido);
j = pdl[x]->totalficheros;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
j = pdl[x]->totalficheros1nivel;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
j = pdl[x]->totalsubdir;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
j = pdl[x]->totalsubdir1nivel;
i = (ULONG) (j / (v + 1));
h = (ULONG) (j % (v + 1));
_ftprintf(fichero, __TEXT("%lu\r\n"), i);
_ftprintf(fichero, __TEXT("%lu\r\n"), h);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->sololectura);
_ftprintf(fichero, __TEXT("%s\r\n"), pdl[x]->ruta);
_ftprintf(fichero, __TEXT("%s\r\n"), pdl[x]->nombre);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechmodif.dwLowDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechmodif.dwHighDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechcreac.dwLowDateTime);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->fechcreac.dwHighDateTime);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->desistema);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->oculto);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->sololectura);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->fondoblanco);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->marcadoborrar);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->marcadoeliminar);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->yacomparado);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->numerorepeticion);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->numerorepeticion1);
_ftprintf(fichero, __TEXT("%lu\r\n"), pdl[x]->numerorepeticion2);
_ftprintf(fichero, __TEXT("%d\r\n"), pdl[x]->estaencomprimido);
}
fclose(fichero);
psd->exito = TRUE;
}