offset ändern



  • Ich bin noch relativ neu in der C++ Programmierung und hab mir schon ein ziemlich schwieriges Projekt gestartet. Ich will in einer Datei einen offset ändern. Also ich will zum Beispiel bei Offset 0174 den Wert FF in D9 ändern. Ich denk ma das muss man irgendwie mit ifstream oder ofstream machen, lieg ich da richtig? Könnt ihr mir ein kleinen Denkanstoß geben wie man eine Datei hexadezimal ändern kann?


  • Mod

    Hallo

    ob du die Datei hex oder sonstwas aendern willst ist eigentlich egal

    du solltest die Datei binaer einlesen
    den Dateizeiger auf diese Position stellen
    den Wert ueberschreiben (vorher pruefen ?)
    die Datei wier abspeichern

    MfG
    Klaus



  • Ich hab mir das aus irgend ner anderen Hilfeseite, is das so richtig? Ich will nur zu Testzwecken erstma den Wert ausgeben. Wie kann man zu den jeweiligen Punkt springen?

    using namespace std;
    int main();
    int var1,var2;
    {
        ifstream myFile;
        myFile.open("eikctl.rsc",ios::in|ios::binary);
        if (!myFile)
        {
            Label1->Caption="Fehler";  // Fehlerbehandlung
        }
    
        //Daten lesen
        myFile.read(reinterpret_cast<char*>(&var1),
                    sizeof(var1));
        myFile.read(reinterpret_cast<char*>(&var2),
                    sizeof(var2));
        //gibt in Label1 aus
        Label1->Caption =var1;
    


  • Hallo

    ifstream.seekg(...);
    

    allerdings gehört das schon wieder ins C++ Forum

    bis bald
    akari



  • so klappt bis jetzt. Jetzt hab ich noch ne Frage, kann man das öffnen der Datei auch mit nem OpenDialog verbinden? Meine bisherigen Versuch sind immer schief gegangen.

    So siehts bis jetzt aus:

    using namespace std;
    
    int main();
    char var1,var2;
    {
        //Datei öffnen    
        fstream myFile("eikctl.rsc",ios::in|ios::hex|ios::out|ios::hex);
        if (!myFile)
        {
            Label1->Caption="Fehler";  // Fehlerbehandlung
        }
    
        myFile.seekg(118);    //zum Punkt springen
        myFile << "C";        //in Variable schreiben
        myFile.seekg(323);
        myFile << "C";        //in Datei schreiben
        myFile.seekg(323);
        myFile >> var1;       //in Variable schreiben
    
        //Label1 gibt Wert aus
        Label1->Caption=var1
    
        myFile.close();
    


  • hoschie schrieb:

    kann man das öffnen der Datei auch mit nem OpenDialog verbinden?

    Ja kann man. Wie, das ist (mit Beispielcode) in der Hilfe zu TOpenDialog beschrieben.

    Und in Zukunft bitte die Faustregel beachten: ein Thema pro Thread, ein Thread pro Thema. Danke!



  • sorry soll ich für mein Problem nochn Thread aufmachen? Die Hilfe bringt mich nämlich nicht sehr weiter 😕 .


Anmelden zum Antworten