Autor Beitrag
Biarchiv
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: So 13.10.02 16:06 
Hallo,

Ich habe zB ein Edit.Text Feld. Dort kann man nur eine Zahl von 1 - 255 eingeben. Wie kann ich das in eine Datei ab Stelle z.B. 600 diesen Byte von Edit.Text ändern? Also Das EditFeld die Zahl in eine Bytestelle Seeken.

Wie könnte das mit Datum und 3 Bytestellen gehen.

Wie ließt man die wieder in einen String ein? Bitte kein VCL also sollte rein mit sysutils gehen.

Danke
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 13.10.02 16:15 
Biarchiv hat folgendes geschrieben:
Ich habe zB ein Edit.Text Feld.
Dort kann man nur eine Zahl von 1 - 255 eingeben.
Wie kann ich das in eine Datei ab Stelle z.B. 600 diesen Byte von Edit.Text
ändern? Also Das EditFeld die Zahl in eine Bytestelle Seeken.

Würdest du das noch mal auf Deutsch erklären? Momentan sehe ich nämlich nur ein Paradoxon: wenn das Editfeld nur Zahlen von 1 bis 255 erlaubt, wie willst du dann eine 600 eingeben?

Zitat:
Wie könnte das mit Datum und 3 Bytestellen gehen.

:?

Zitat:
Wie ließt man die wieder in einen String ein?

"inttostr" - ist aber nur geraten, weil ich -offen gesagt- keine Ahnung habe, was du eigentlich willst.
Biarchiv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 688



BeitragVerfasst: So 13.10.02 17:44 
Hallo,

Ne verstest mich falsch.
Ich will in einer Datei nur bei file.position := 600 ein Byte ändern und das soll was in
Edit.Text eingegeben wird abgeändert werden.

Edit1.Text 255 > File Stelle 600 Byte in ffh ändern.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 13.10.02 17:56 
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:
ausblenden 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:
ausblenden 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.