Obsluga plików binarnych
Ostatnio zmodyfikowano 2018-07-05 13:09
zxprog Temat założony przez niniejszego użytkownika |
Obsluga plików binarnych » 2018-07-05 10:26:02 Witam Próbuje skompilować program który wczyta plik binarny plik.bin i następnie wyświetli zapisane dane od podanego adresu Znalazłem przykładowy program i próbuje go edytować na swoje potrzeby, niestety kompilacja zatrzymuje się na plik.seekg( iPozycjaStartowa ); Poniżej kod programu #include <iostream> #include <fstream>
using namespace std;
int main() { ofstream plik( "plik.bin", ios::binary ); if( !plik.good() ) return 0; int iPozycjaStartowa = 0; plik.seekg( iPozycjaStartowa ); int iLiczba; plik >> iLiczba; int iWczytanychZnakow = plik.tellg() - iPozycjaStartowa; cout << "Liczba: " << iLiczba << endl; cout << "Wczytano " << iWczytanychZnakow << " znakow" << endl; return 0; }
Tak wyglądają dane w moim pliku plik.bin w hex: 31 31 31 31 31 2D 32 32 32 32 32 2D 33 33 33 33 33 2D 34 34 34 34 34 2D 35 35 35 35 35 35 35 2D 36 36 36 36 36 2D 37 37 37 37 37 2D 38 38 38 38 38 A tak tekstowo: 11111-22222-3333 3-44444-5555555- 66666-77777-8888 8 |
|
pekfos |
» 2018-07-05 11:51:35 std::ofstream służy wyłącznie do zapisu. A tak tekstowo: 11111-22222-3333 3-44444-5555555- 66666-77777-8888 8 |
No to niezbyt "binarny" ten twój plik.. Zapis binarny |
|
zxprog Temat założony przez niniejszego użytkownika |
» 2018-07-05 12:10:42 Ok już jest dobrze, zmieniłem na ifstream
Teraz co muszę zrobić aby wczytywało dane od podanego adresu startowego do podanego końcowego a następnie zapisało odczytane dane w pliku tekstowym przekonwertowane na format tekstowy czyli z Hex na ASCII
Plik jest binarny. Wartości tekstowe podałem wyświetlone przez program HxD
|
|
pekfos |
» 2018-07-05 12:13:51 Plik jest binarny. Wartości tekstowe podałem wyświetlone przez program HxD |
A jak otworzysz ten plik notatnikiem, to co niby zobaczysz? |
|
zxprog Temat założony przez niniejszego użytkownika |
» 2018-07-05 12:56:48 To inny plik dla przykładu Tak wygląda w hex
01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 1D 00 00 00 45 52 46 47 36 2D 54 32 44 43 44 2D 44 52 47 34 35 2D 42 33 34 35 36 2D 54 33 42 33 33
tak w HXD jako ASCII ................ ....ERFG6-T2DCD- DRG45-B3456-T3B3 3
a tak otworzony w notatniku na początku są krzaki kwadraty,
ERFG6-T2DCD-DRG45-B3456-T3B33
|
|
pekfos |
» 2018-07-05 13:09:05 |
|
« 1 » |