Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pobieranie z pliku kolejnych bitów

Ostatnio zmodyfikowano 2011-05-22 17:50
Autor Wiadomość
Katruf
Temat założony przez niniejszego użytkownika
» 2011-05-21 16:25:02
tylko że ja nie tylko kopiuję ale rozkładam każdego bajta na bity podstawiam do algorytmu szyfrowania a potem składam z powrotem (przy czym nawet jak pominę szyfrowanie to nie działa) zatem CopyFile() nie rozwiązuje mojego problemu.
P-33257
absflg
» 2011-05-21 16:55:55
Daj kod kopiujący. Nie każdy potrafi przy pomocy projekcji astralnej czytać z twojego dysku twardego...
P-33261
Mrowqa
» 2011-05-21 17:03:14
To ty chcesz po prostu zakodować program wykonywalny ?? :P Ciekawy projekt :D Może też zrobię coś takiego :P
P-33262
Katruf
Temat założony przez niniejszego użytkownika
» 2011-05-21 20:42:08
C/C++
struct bajt {
    int tab[ 8 ];
};
/////////////////////////////////////////////////////
bajt p_wej::rozwalaj() { //to funkcja  składowa klasy odpowiedzialnej za odczytanie z pliku informacji
   
   
    rozklad x;
    bajt ba;
    x.nasz_bajt = strum.get();
   
    ba.tab[ 0 ] = x.nasze_bity.b1;
    ba.tab[ 1 ] = x.nasze_bity.b2;
    ba.tab[ 2 ] = x.nasze_bity.b3;
    ba.tab[ 3 ] = x.nasze_bity.b4;
    ba.tab[ 4 ] = x.nasze_bity.b5;
    ba.tab[ 5 ] = x.nasze_bity.b6;
    ba.tab[ 6 ] = x.nasze_bity.b7;
    ba.tab[ 7 ] = x.nasze_bity.b8;
   
   
    czy_koniec = strum.eof();
    return ba;
};
//////////////////////////////////////////////
bool p_wyj::ł ą cz( bajt ba ) { //funkcja składowa klasy odpowiedzialnej za zapis danych
    tab[ 0 ] =- 1;
    for( int i = 0; i < 8; i++ ) {
        tab[ i ] = ba.tab[ i ];
       
    }
   
   
    rozklad x;
   
   
    x.nasze_bity.b1 = tab[ 0 ];
    x.nasze_bity.b2 = tab[ 1 ];
    x.nasze_bity.b3 = tab[ 2 ];
    x.nasze_bity.b4 = tab[ 3 ];
    x.nasze_bity.b5 = tab[ 4 ];
    x.nasze_bity.b6 = tab[ 5 ];
   
    x.nasze_bity.b7 = tab[ 6 ];
    x.nasze_bity.b8 = tab[ 7 ];
   
   
    if( !czy_koniec ) strum.put( x.nasz_bajt );
   
    if( czy_koniec ) strum.put( EOF );
   
   
    return 1;
};

funkcja rozwalaj pobiera bajt z pliku i rozkłada go na bity i kopiuje do tablicy w strukturze bajt a funkcja łącz z tych bitów robi ponownie bajta i wkłada do innego pliku pomiędzy tymi funkcjami jeszcze jest stosowany algorytm szyfrujący

P-33286
absflg
» 2011-05-21 21:10:17
Wygląda jakby było dobrze.

Na początku drugiej funkcji początkowe przypisanie do tab[0] wygląda podejrzanie. Dwie linijki dalej ta wartość jest i tak zawsze zmieniana w pętli. Może pomyliłeś nazwę zmiennej(?).

Może przy przerabianiu bajtów, któryś z nich przybiera wartość równoznaczną z EOF i przez to świruje?
P-33289
Katruf
Temat założony przez niniejszego użytkownika
» 2011-05-22 17:34:51
to przypisywanie -1 do tab[0] to pozostałość po wcześniejszych próbach ale bez tego i tak nie działa poprawnie. A istnieje jakiś sposób na sprawdzenie jaką długość ma plik w bajtach?? bo wtedy mógłbym to całkowicie inaczej rozwiązać
P-33343
DejaVu
» 2011-05-22 17:50:23
Istnieje. Przesuń wskaźnik do odczytu na koniec pliku i odczytaj aktualną pozycję.
P-33345
1 « 2 »
Poprzednia strona Strona 2 z 2