Pobieranie z pliku kolejnych bitów
Ostatnio zmodyfikowano 2011-05-22 17:50
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.
|
|
absflg |
» 2011-05-21 16:55:55 Daj kod kopiujący. Nie każdy potrafi przy pomocy projekcji astralnej czytać z twojego dysku twardego... |
|
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 |
|
Katruf Temat założony przez niniejszego użytkownika |
» 2011-05-21 20:42:08 struct bajt { int tab[ 8 ]; };
bajt p_wej::rozwalaj() { 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 ) { 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 |
|
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? |
|
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ć |
|
DejaVu |
» 2011-05-22 17:50:23 Istnieje. Przesuń wskaźnik do odczytu na koniec pliku i odczytaj aktualną pozycję. |
|
1 « 2 » |