Obsługa plików binarnych, a Little Endian / Big Endian
Ostatnio zmodyfikowano 2015-02-22 10:54
rafalmlody12321 Temat założony przez niniejszego użytkownika |
Obsługa plików binarnych, a Little Endian / Big Endian » 2015-02-21 18:59:01 Witam czy jest ktos kto moze mi wytlumaczyc jak zachowac niezaleznosc platformowa przy obsudze plikow binarnych? chodzi mi o maly - duzy endian i codowanie znakow. jak sie do tego zabrac ? |
|
Pokropow |
» 2015-02-21 19:05:22 może po prostu zapisuj liczby po bajcie od najmłodszych bajtów, a znaki w ascii? Do czego chcesz to wykorzystać? Z tego co wiem to mało gdzie stosują big endian'a , a ascii jest praktycznie wszędzie. |
|
rafalmlody12321 Temat założony przez niniejszego użytkownika |
» 2015-02-21 19:35:52 Ogolnie chodzi o to ze mam prace dyplomowa i jest w niej zadanie serializacji danych wiec serializacje do ASCII mam zrobiona mam tez XML i chcialbym to rozszezyc o pliki binarne tylko wlasnie w temacie tej pracy jest dopisane ze trzeba zwrocic uwage na konwersje typow endianess i kodowanie znakow chce wykozystywac pliki binarne do serializacji calych obiektow w polaczeniu z sekfencyjnym serializowaniem ASCII czyli chce serializowac podstawowe typy zawarte w klasie do ASCII, a obiekty typu klasa struktura czy tablica do pliku binarnego |
|
DejaVu |
» 2015-02-21 21:26:38 Little Endian/Big Endian ma znaczenie dopiero wtedy, gdy zapisujesz zmienne które zajmują więcej niż 1 bajt. Czytaj: jeżeli wiesz, że przesyłasz dane między platformami A i B np. 32-bitową wartość to wówczas musisz przejmować się konwersją. Jeżeli przesyłasz ciąg wartości 8-bitowych to wówczas żadna konwersja nie musi być stosowana. |
|
pekfos |
» 2015-02-21 22:22:26 chcialbym to rozszezyc o pliki binarne tylko wlasnie w temacie tej pracy jest dopisane ze trzeba zwrocic uwage na konwersje typow endianess |
WinSock ma funkcje do takich konwersji. Struktury i przetwarzanie danych |
|
rafalmlody12321 Temat założony przez niniejszego użytkownika |
» 2015-02-21 23:06:47 Aha czy np jezeli uzyje std::fstream to wystarczy ze w metodzie write zrzutuje moj objekt do (char*) to wszystko bedzie gitara ??
mniej wiecej tak
std::fstream PLIK;
PLIK.open("NazwaPliku", std::fstream::out | std::fstream::binary)
PLIK.write((char*)MojObiect, sizeof(MojObiekt));
sprawdzalem to i obiekt sie serializuje jezeli uzyty jest wskaznik do obiektu to trzeba uzyc dereferencji wskaznika w metodzie sizeof
tylko teraz pytanie czy to jest to o co mi chodzi ?
|
|
pekfos |
» 2015-02-22 10:54:03 jezeli uzyje std::fstream to wystarczy ze w metodzie write zrzutuje moj objekt do (char*) to wszystko bedzie gitara ?? |
Tak jakby cały czas piszemy, że nie.. |
|
« 1 » |