bytes in datei ändern?



  • okay, die frage ist so einfach, wie sie für mich komplex zu lösen ist:

    Ich gehe einfach davon aus, jeder hat einmal eine datei mit einem HEX editor geöffnet.
    wie kann ich per C++ eine datei auf solche art öffnen&bearbeiten (so das man die bytes ausgeben&verändern kann)?
    mit fopen kann man ja nur den darin gespeicherten text verändern.



  • Hi!

    fopen( dateiname, "wb" );
    

    Öffnet die Datei im Binärmodus. Da kannst du jedes Byte verändern, ganz wie du willst.

    Unter C++ solltest du aber Streams verwenden.

    std::ifstream
    std::ofstream
    

    grüße



  • okay, danke.

    edit:
    wenn ich mit

    fputc('48', working);

    verusche, in di datei zu schreiben, wird auch nur "48" hineingeschrieben, eigentlich müsste doch dann, wenn man es mit dem editor öffnet, ein h darin zu finden sein Oo
    wenn ich es mit dem editor öffne, sind darin die bytes:
    34 38 😞



  • Weißt du überhaupt was Hex bedeutet? Was ASCII ist?

    Außerdem geht '48' bestimmt nicht!



  • Thomas (: schrieb:

    Weißt du überhaupt was Hex bedeutet? Was ASCII ist?

    Außerdem geht '48' bestimmt nicht!

    ASCII == amerikanisches standart zur umwandlung dr bytes in buchstaben (?)
    HEX steht soweit ich mich erinnere doch für das hexdezimalsystem, in hexzahlen werden die bytes afaik ausgedrückt Oo

    und warum wird stand.art zensiert?



  • vale schrieb:

    HEX steht soweit ich mich erinnere doch für das hexdezimalsystem, in hexzahlen werden die bytes afaik ausgedrückt Oo

    Dann versuch doch mal Sequenzen in HEX in die Datei zu schreiben, und nicht Multibyte-Characters die aus den Zeichen '4' und '8' (HEX 34 und 38) bestehen.

    und warum wird stand.art zensiert?

    Na dafür würde ich jetzt glatt mal den DUDEN konsultieren...



  • LordJaxom schrieb:

    vale schrieb:

    HEX steht soweit ich mich erinnere doch für das hexdezimalsystem, in hexzahlen werden die bytes afaik ausgedrückt Oo

    Dann versuch doch mal Sequenzen in HEX in die Datei zu schreiben, und nicht Multibyte-Characters die aus den Zeichen '4' und '8' (HEX 34 und 38) bestehen.

    und warum wird stand.art zensiert?

    Na dafür würde ich jetzt glatt mal den DUDEN konsultieren...

    1. wie mache ich das

    2.gabs irgendwann in deutschland bstimmt auch offiziel standart, bei den ganzen rechtschreibreformen Oo



  • vale schrieb:

    1. wie mache ich das

    2.gabs irgendwann in deutschland bstimmt auch offiziel stan****, bei den ganzen rechtschreibreformen Oo

    1. Zum Beispiel mit fputc('\x30', filehandle)
    2. Nein, mit Sicherheit gabs nie ein *zensiert* in der deutschen Sprache.

    BTW:
    Irgendwer sagte mal Stand-Art erinnert eher an die Kunst einen Messestand zu gestalten als an Standards...



  • LordJaxom schrieb:

    vale schrieb:

    1. wie mache ich das

    2.gabs irgendwann in deutschland bstimmt auch offiziel stan****, bei den ganzen rechtschreibreformen Oo

    1. Zum Beispiel mit fputc('\x30', filehandle)
    2. Nein, mit Sicherheit gabs nie ein *zensiert* in der deutschen Sprache.

    BTW:
    Irgendwer sagte mal Stand-Art erinnert eher an die Kunst einen Messestand zu gestalten als an Standards...

    1. okay, danke - ich habe jetzt leider keine zeit es zu b versuchen, edite das ergebnis dann aber hier rein.

    2.http://www.k-faktor.com/standart/

    tja, man lernt halt nie aus Oo


Log in to reply