Jump to content
Matei

Putin ajutor in C++ :D

Recommended Posts

Posted

Hello,

Stie cineva destul de bine C++ ? Am o tema sa comprim un fisier .bmp utilizand huffman compression :). Am facut tot algoritmul, merge ... dar am o mica problema si nu pot sa-i dau de cap. Trebuie sa scriu in headerul fisierului de out MC in loc de BM ( BM au fisierele bmp in header ) , iar extensia mea trebuie sa fie mcb ...

Am incercat sa-i dau ceva de genu ... :

if ((( bfh.bfType & 0x00FF) == 'B') || ((bfh.bfType >> 8) & 0x00FF) == 'M')

bfh.bfType=0x4d43;

Dar tot nu merge. Adica, incerc sa le scriu ... dar nu inteleg unde :)) Poate cineva sa se uite ? Raman dator vandut !

Posted

pai din cate stiu eu caracterele alea sunt primele din fisier daca il deschizi cu notepad, desi nu pot sa zic ca inteleg pe deplic ce vrei.

daca am inteles corect, poti sa verifici pe ce pozitie sunt caracterele ce tre modificate si le inlocuiesti gen:

#include <Windows.h>

fisier = CreateFile("numeFisier", ....); //inlocuiesti .... , nu stau sa scriu toata fct aici.

char buffer[10];

ReadFile(fisier, buffer, ....); //citesti primele 10 caractere.

buffer[0] = 'M'; //le inlocuiesti.

buffer[1] = 'C';

WriteFile(fisier, .....); //le scri inapoi in fisier.

Posted

Am rezolvat treaba asta pana la urma ... am scris pur si simplu ca headerul = 0x434D ( valoare in hexa a lui MC ) ...

Acum alta e problema. Am rulat cu valgrind pentru debug si am niste probleme la crearea arborelui Huffman :-? Se pare ca scriu peste ceva ce nu exista ( nu stiu daca interpretez bine ca nu prea am folosit valgrind pentru debug ) :))

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...