Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 21:33

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# Hexadezimalen Code in einer Binärdatei austauschen

Discussion on C# Hexadezimalen Code in einer Binärdatei austauschen within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
Epanias's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 41
Received Thanks: 18
[Erledigt] C# Hexadezimalen Code in einer Binärdatei austauschen

Hallo,

Ich versuche momentan ein Programm zu schreiben, das in einer Binärdatei eine bestimmte Zeichenabfolge durch eine andere, genauso lange ersetzen soll. Um das zu erreichen habe ich versucht mir eine kleine Methode zu schreiben, die mit Hilfe einer angegebenen Stelle, dem Text und dem Dateinamen in der entsprechenden Datei an der Stelle X den Text Y schreibt. Dazu benutze ich momentan folgenden Code:

Code:
        private void WriteToFile(string Filename, string Text, int Position)
        {
            using (BinaryWriter Bwriter = new BinaryWriter(File.Open(Filename, FileMode.Open)))
            {
                Bwriter.Seek(Position, SeekOrigin.Begin);
                Bwriter.Write(Text);
                Bwriter.Close();
            }
Da ich mich weder mit der Konvertierung von ASCII zu Hexadezimal noch mit den binary reader besonders gut aus kenne, habe ich zunächst mal versucht, mein Programm dazu zu bringen, überhaupt mal einen ASCII Text an der entsprechenden Stelle in eine Binärdatei zu schreiben, was aber mit dem obigen Code dazu geführt hat, dass nur ein Teil meines Strings dort richtig über den anderen Code geschrieben wurde und der Rest sich auf geheimnisvolle weise komplett geändert hat.

Ich denke, dass das etwas mit der Convertierung von ASCII Zeichen während dem Schreiben zu tun hat, da mein Programm z.B. aus einem Ê ein A mit einem Tilde (~) darüber macht. Um das zu verhindern, würde ich gerne direkt hexadezimalen Code anstelle von ASCII Code zum Ersetzen verwenden. Leider habe ich auch nach einigem Suchen nicht viel nützliches zu dem Thema in C# finden können und bitte daher, da ich mich selbst, wie schon erwähnt, nicht gut damit auskenne, um ein Codesniped, mit dem sich so etwas realisieren lässt.

Lange Rede, kurzer Sinn: Ziel ist es eine Methode zu haben, der ich die Position in der Binärdatei (ob das jetzt in Hexadezimal oder Dezimal ist, ist egal), einen hexadezimalen Code der an der entsprechenden Stelle geschrieben werden soll, ggf. den hexadezimalen Code der überschrieben werden soll (nur wenn nötig) und den Namen der Datei übergebe, damit diese das dann ausführt.

Ich beiße mir daran jetzt schon mehrere Tage die Zähne aus und währe dankbar für abhilfe .

€dit:

Ich habe jetzt mal, nach langem zusammensuchen und in Anlehnung an dieses Tutorial:
Folgende Methode zusammengeschrieben:

Code:
        private void WriteToFile(string Filename, string Text, int Position)
        {
            string ArrText = Text.Split(",".ToCharArray());
            BinaryWriter Bwriter = new BinaryWriter(File.OpenWrite(Filename));


            Bwriter.BaseStream.Position = Position;
                foreach (string value in ArrText)
                {
                string hexOutput = String.Format("{0:X}", value);
                Bwriter.Write(hexOutput);
                }
                Bwriter.Close();
        }
Der Eingabe Werte sehen so aus:

Code:
           string     Filename = NameOfFile; //NameOfFile ist der String, der den Namen der Datei beeinhaltet
           int     Position = 0xF51EE;
           string[]     Text = "40,5A,00,CA,0F,00,00,00,00,00,00";
           WriteToFile(Filename, Text, Position);
Jetzt habe ich allerdings das Problem, dass anders als im Video, der Befehl
Code:
                Bwriter.Write(hexOutput);
Den Inhalt des Strings nicht zu ASCII umwandelt bzw als Hex Schreibt, sondern als ASCII:


Außerdem fügt er, wie auf dem Bild zu sehen ist, vor den Hexwert noch die Länge des Strings (02) ein, was er eigentlich auch nicht soll. Ich habe vorher auch das selbe schon damit versucht, dem Content String 0x als Inhalt + die aktuelle Value der Schleife zuzuweisen, was aber mit dem selben Problem geendet hat.

Ich habe leider absolut keine Ahnung, was ich machen muss, damit der Binary Writer meinen Stringinhalt richtig in die Datei schreibe. Weiß von euch jemand, was ich falsch mache?

€dit2:

Ich habe das Problem jetzt selbst gelöst - es bestand darin dass man keine Hex Strings direkt in eine Datei schreiben kann, sondern sie zu Bytes bzw einem Bytearray konvertieren muss, damit sie richtig in eine Datei geschrieben werden können.
Epanias is offline  
Reply


Similar Threads Similar Threads
[Selling] Gc Code sale! einer nur 40e*g!
08/27/2013 - League of Legends Trading - 3 Replies
Hi com, Verkaufe hier meine restlichen gc Codes. Da sie nurnoch bis morgen einlösbar sind Verkaufe ich Sie für 40eg das Stück. Wenn ihr einen wollt dann pn'd mich und ich sende euch eine treasure. MfG :)
VK!e-va code einer 50euro psc
02/02/2011 - elite*gold Trading - 6 Replies
titel sagt alles einfach ma bieten :P dann mach ich treasure mit code.
vk code von einer zeitschrift gg e*gold
07/09/2010 - Cabal Online Trading - 0 Replies
ich vk nen code von ner zeitschrift(cbs) gg e*gold es steht drinnen dass der code viele cabal taler enthält leider nicht die genaue anzahl.. dann steht noch dass de code 5€ wert ist.... ich will nur 50*gold mehr nicht
hi hat einer gm code für goldschmidt?
10/19/2009 - Metin2 Private Server - 3 Replies
ya der titel sagt yashcon alles ^^:handsdown::handsdown: der wo ihn hat=THX
Kann mir den Code einer raus schreiben ?
02/07/2009 - Metin2 Private Server - 5 Replies
Also ich hab ein Prob mit der regi auf NewLongju. Da ich es mitdem Abby Reader nicht selber machen kann (er geht einfach nicht) Würde ich mich freuen wenn es einer für mich machen könnte =) Code : http://img6.myimg.de/Bla04bf5.jpg



All times are GMT +1. The time now is 21:33.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.