Obsluga plików binarnych
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Obsluga plików binarnych

AutorWiadomość
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
C/C++
#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
P-171747
» 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
P-171748
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
P-171749
» 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?
P-171750
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

P-171751
» 2018-07-05 13:09:05
Użyj read() i write().
Zapis binarny
P-171752
« 1 »
 Strona 1 z 1