Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Texte și mesaje funny pe sit...

Recomandari carti non-fictiune

Cat costa un pui la rotisor?

cum leg firele de la o pompa subm...
 PC Voltage +3.3V Red!

Cum conectez la net o centrala Fe...

w11 nu mentine profil power proce...

DIGI se lanseaza in Belgia cu ser...
 Setari XMP ram pentru 5900x - BSO...

Iphone 13, 14 sau 15?

Dune: Prophecy (2024 _ ...)

DMSS problema
 Montare parchet in balcon

Exista doar ... si restul

Instagram - sunt eu batran, sau...

Regim utilizare HDD Ubuntu
 

Compresie ZLib char - fisier

- - - - -
  • Please log in to reply
3 replies to this topic

#1
GabyF

GabyF

    Junior Member

  • Grup: Members
  • Posts: 235
  • Înscris: 27.09.2006
Am facut o functie care incarca datele existente intr-un fisier comprimat zlib intr-un char.

int uncomprCharLen(char *&output, char *infile) {
int nr_read, nr_out = 0; char buffer[512];
gzFile gzfile = gzopen(infile, "rb");
gzread(gzfile, buffer, 4);
char *tmp=new char[gzoffset(gzfile)*4];// uncompress data cannot be larger
gzseek(gzfile, 0, SEEK_SET);
while ((nr_read = gzread(gzfile, buffer, sizeof(buffer))) > 0) {
strncat(tmp, buffer, nr_read);
nr_out+=nr_read;
}
delete[] output;
output = new char[nr_out];
strncpy(output, tmp, nr_out);
delete[] tmp;
gzclose(gzfile);
return nr_out;
}
int main(int argc, char **argv) {
char *uncompr=new char[4];
uncomprCharLen(uncompr, argv[1]);
printf("uncompr %s\n", uncompr);
return 0;
}

Pare ca merge. Intrebarea mea este daca vi se pare ceva in neregula.
Zlib nu ofera posibilitatea de-a afla lungimea sirului decomprimat si nici n-as vrea sa folosesc gzread de doua ori. Asa ca am folosit un char temporar destul de mare si am redimensionat char-ul pe care o sa-l folosesc in afara functiei.

Edited by GabyF, 28 February 2023 - 16:14.


#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,259
  • Înscris: 24.02.2007
std::vector


#3
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,259
  • Înscris: 24.02.2007
Exista desigur si posibilitatea sa nici n-ai nevoie de toate caracterele deodata. De exemplu daca doar le copiez in alta parte sau faci procesari pe cate putine odata.

#4
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,259
  • Înscris: 24.02.2007
Ai reusit?

Anunturi

Bun venit pe Forumul Softpedia!

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate