Dateien hexadezimal auslesen und nach Offset orientiert beschreiben

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Dateien hexadezimal auslesen und nach Offset orientiert beschreiben

    Einen schönen Sonntgnachmittag, liebes VB-Paradise-Forum.

    Ich habe mir als Aufgabe gesetzt, eine Datei mit einem selbstgeschriebenen Programm in Visual Basic hexadezimal auszulesen (also ganz nach Hex-Editor-Manier) und dann an einem bestimmten Offset mit einem ganz bestimmten Wert zu überschreiben.
    Einen Hex-Editor nachbauen will ich nicht, sondern nur auslesen und automatisches Überschreiben an einer bestimmten Stelle (Offset).
    Gibt es dafür eine Art Hex-Reader-Klasse in VB?
    Oder müsste ich mir das ganze irgendwo anders herholen?

    MfG
    LevelXProject

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LevelXProject“ ()

    Hexadezimal ist nur eine mögliche Stringrepräsentation einer (nicht Nachkomma-) Zahl.
    dez 10 = hex a
    dez 5 = hex 5
    dez 222 = hex de
    usw., Groß- und Kleinschreibung ist da egal. Die Vorsätze "0x" bei C / C++ / C# und "&h" bei VB zeigen an, dass es sich um eine Hex-Zahl handelt.
    Was Du brauchst, ist ein Binary Reader und ein Binary Writer. Mit ersterem liest Du das Byte an einer gewissen Position aus und stellst es hexadezimal dar: MessageBox.Show(value.ToString("X").
    Anders herum kannst Du mit value = Convert(txt, 16) einen hex-Wert ohne "0x" oder "&h" in eine Zahl konvertieren.
    Diesen Wert schreibst Du dann an diese Position in der Datei.
    Die Position wird mit Seek(offset, FromBeginnig) (oder so) eingestellt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!