Einen Wert auslesen

Hallo zusammen,

ich habe mit einem Hexeditor eine Datei geöffnet und einen Wert darin geändert.
Da aber nicht jeder mit dem Hexeditor umgehen kann möchte ich ein kleines Programm schreiben, welches folgendes können sollte:

  1. Die Datei öffnen
  2. Den Wert auslesen
  3. Den Wert ändern
  4. Die Datei speichern

Im Moment weiss ich nicht wie ich genau den Wert auslesen kann.

Kann mir da einer helfen?

Gruss

Christian

Hallo,

  1. Die Datei öffnen
  2. Den Wert auslesen
  3. Den Wert ändern
  4. Die Datei speichern

1,3 und 4 macht jeder patch. Wenn du Unixoide Betriebssyteme verwendest solltest du dir patch anschauen, für Windows gibt es viele patch-Generatoren.

Im Moment weiss ich nicht wie ich genau den Wert auslesen
kann.

Was willst du denn damit anstellen? ich meine auslesen ohne damit was zu machen ist wenig sinnvoll.
Werte aus bestimmten Positionen einer Datei lesen kann eigentlich jede gängige höhere Programmiersprache…

HTH,
Moritz

hallo.

was moritz meint, heißt „batch“ und bedeutet stapelverarbeitung. ob dir sowas weiterhilft, weiß ich nicht. denn mit einem solchen tool hast du (soweit ich weiß) keine kontrolle über das aufgerufene programm. müßtest also nach der eingabe des neuen wertes manuell abspeichern.

am einfachsten wär’s, du schreibst ein paar zeilen visual-basic.
oder ein vba-makro, z.b. in excel.

gruß

michael

Hallo,

was moritz meint, heißt „batch“ und bedeutet
stapelverarbeitung.

Nein. Was ich meine heißt tatsächlich patch (auch wenn ich Franke bin *g*). Informationen zum GNU patch gibts z.B. hier:
http://freshmeat.net/projects/patch/

Grüße,
Moritz

Hi,

klar will ich damit was machen *g*
Ich moechte eine vierstellige Zahl auslesen und diese in einen von mir gewuenschten Wert aendern.

Wie kann ich aber nun meinem Prog (in Visual Basic zum Beispiel) sagen, wo sich diese Zahl befindet?
Wenn ich die Datei mit dem HexEditor oeffne sehe ich sie immer an der gleichen Stelle und die wuerde ich gern meinem Prog „sagen“

Geht das und wenn ja, wie?

Thx

Christian

Koenntest Du mir ein paar Tips fuer VB geben, wie ich dem Prog sage welche Stelle er auslesen soll?

Thx

Christian

na dann. sorry :smile:

gruß

michael

Koenntest Du mir ein paar Tips fuer VB geben, wie ich dem Prog
sage welche Stelle er auslesen soll?

hallo.

mit visual basic an sich bin ich wenig vertraut. da kannst ja schöne grafische oberflächen machen und das ganze wird ne exe-datei…

in excel-vba würde es so gehen:
mach eine neue arbeitsmappe auf, laß dir die steuerelement-toolbox anzeigen und erstelle zwei steuerelemente „Befehlsschaltfläche“.
die kannst du z.b. mit „Wert lesen“ und „Wert schreiben“ benennen.
in die erste fügst du durch doppelklick folgenden code ein:

Private Sub CommandButton1_Click()
Dim wert As Byte
'zu lesendes byte
Position = 7
'datei oeffnen
Open „c:\text.txt“ For Binary Access Read As #1
'wert einlesen
Get #1, Position, wert
'datei schliessen
Close #1
’ wert (hexadezimal) anzeigen
Cells(1, 1).Value = Hex(wert)
End Sub

in die zweite den da:

Private Sub CommandButton2_Click()
Dim wert As Byte
'zu schreibendes byte
Position = 7
'datei oeffnen
Open „c:\text.txt“ For Binary Access Write As #1
'wert aus zelle holen
wert = Cells(1, 2).Value
'und in datei schreiben
Put #1, Position, wert
'datei schliessen
Close #1
End Sub

dabei würde jetzt in zelle A1 der gelesene und zu bearbeitende wert stehen, in A2 die formel =HEX2DEC(A1).
das erspart dir die umwandlung im makro zurück in einen dezimalwert. soweit ich weiß, gibt’s dafür keine vba-funktion. aber vielleicht willst du’s sowieso dezimal, dann entfällt natürlich die ganze umwandlung.

bezüglich des designs und der darstellung des wertes ist natürlich einiges möglich. aber prinzipiell funktioniert’s so.

gruß

michael