Jak zapsat pole bitů do souboru?   otázka

VB.NET, I/O operace

Prosím o radu, jak vytvořit soubor po bitech a bez formátu, tj. aby se nic nepřidalo na začátek ani na konec. Zápis po bitech, protože data jsou tvořená skupinami po jedenácti bytech - vše, na co jsem přišel, udělá hlavičku, přidá byte na konec a skupiny po 4 bytech.

Potřebuji jen holá data - příklad (Hex)

Offset Data

---------------------

000 - 00, 04, 00, 01, 01, 01, 00, 01, 00, 00, 00

00B - 00, 02, 00, 01, 00, 00, 00, 01, 00, 00, 00

016 - 08, 01, 00, 00, 00, 00, 00, 00, 00, 01, 00

021 - 00, 05, 00, 01, 01, 01, 01, 00, 01, 00, 00

02C - 00, 05, 00, 01, 01, 01, 01, 01, 00, 00, 00

.... atd.

35A - 04, 01, 00, 00, 00, 01, 00, 00, 00, 00, 00

365 - 00, 01, 00, 00, 00, 00, 00, 00, 01, 00, 00

370 - 00, 01, 00, 01, 00, 00, 00, 00, 00, 00, 00

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady se řeší, jak z bitů (pole Boolean hodnot) vytvořit pole bajtů:

http://stackoverflow.com/questions/71950...

Pole bajtů zapsat do souboru pak už není nejmenší problém.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkusil jsem si implementovat něco takového, co popisujete a přikládám sem výsledek, pokud se Vám bude k něčemu hodit. Každopádně pokud je Váš požadavek takový, že chcete zapsat řekněme třeba 11 bajtů a 3 bity, budete si to muset ošetřit při čtení, protože poslední bajt se vždycky dá zapsat pouze jako 8 bitů, ne méně. Ani BinaryWriter ( http://msdn.microsoft.com/en-us/library/... ) to neumí, nejmenší jednotka, kterou dovolí zapsat je 1 bajt ( http://msdn.microsoft.com/en-us/library/... ). Můj program poslední bity posune doleva, pokud nestačí na celý bajt.

http://pastebin.com/iqZ52rjy

Omlouvám se za C#, píši v něm časteji a takhle dlouhý kód se mi nechtělo přepisovat do VB. Ovšem překladač ( http://www.developerfusion.com/tools/con... ) by Vám mohl vyplivnout něco funkčního.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Moc a moc Vám oběma děkuji za rychlou a perfektní pomoc!

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback