Sei nicht sauer, aber ich würde es mal ab und zu mit ein paar Interpunktionszeichen versuchen. Ich versuche das mal für dich zu machen:
der Grammatiklehrer hat folgendes geschrieben: |
Nein, du verstehst mich falsch.
Ich will in einer Datei, an der Position 600, ein Byte ändern. Und zwar soll der Wert aus dem Edit-Feld in die Datei eingetragen werden. Beispiel:
Quelltext 1:
| Edit.Text = 255 // Offset 600, Byte in 0xff ändern | |
So hätte ich´s nämlich auch gleich verstanden.
Gut, jetzt zur Lösung:
Es gibt kein Problem. Du öffnest die Datei (z.B. mit
AssignFile, und
Reset), springst an Position 600 und schreibst das Byte rein. Das Byte selbst bekommst du durch eine simple Umwandlung:
Quelltext
1: 2: 3: 4: 5:
| var b : byte; begin b := StrToIntDef(Edit1.Text,0); end; |
Um Fehler zu vermeiden, solltest du "b" auch wirklich als Byte deklarieren, damit du nicht versehentlich mehr Stellen überschreibst.
Zitat: |
Wie könnte das mit Datum und 3 Bytestellen gehen. |
Sind die 3 Bytestellen etwas eigenes von dir, oder bezieht sich das auf das Datum? Im letzteren Fall würde ich es mal mit 4 Bytes versuchen (DWORD, Integer, Longint). Das Prinzip ist dann aber das selbe wie eben beschrieben.
Zitat: |
Wie ließt man die wieder in einen String ein? |
Wahrscheinlich willst du das Byte, das an Position 600 steht, beim Programmstart anzeigen?! Wie gesagt: Datei öffnen, Position suchen, ein Byte einlesen und mit
inttostr an das Edit-Feld übergeben.