Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi HEX-Werte in Datei schreiben? (https://www.delphipraxis.net/31231-hex-werte-datei-schreiben.html)

Sharky 6. Okt 2004 11:38


HEX-Werte in Datei schreiben?
 
Hai,

ich schreibe gerade ein Programm mit dem ich Plasmabildschirme über die Serielle Ein- bzw. Ausschalten kann (Verwende dafür TurboPower Async Professional).

Um den Plasma einzuschalten muss ich z.B. folgende HEX-Werte senden:
Code:
AA 11 FF 01 01 12
Soweit so gut. Um das ganze felxibel zu halten möchte ich die Steuercodes in einer Datei haben. Darum versuche ich mit diesem Code die Datei zu erzeugen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  data : Array of Byte;
  myStream: TMemoryStream;
begin
  SetLength(data, 6);
  data[0] := $AA;
  data[1] := $11;
  data[2] := $FF;
  data[3] := $01;
  data[4] := $01;
  data[5] := $12;
  fAppPath := ExtractFilePath(Application.ExeName);
  try
    myStream := TMemoryStream.Create;
    myStream.Size := 6;
    myStream.WriteBuffer(data,6);
    myStream.Position := 0;
    myStream.SaveToFile(fAppPath + 'on.dat');
  finally
    myStream.Free;
  end;
end;
Wenn ich mir aber in einem HEX-Viewer die Datei ansehe stehen dort immer diese Werte:
Code:
24 A2 CD 00 28 9B
Was mache ich denn da Falsch?

Muetze1 6. Okt 2004 11:41

Re: HEX-Werte in Datei schreiben?
 
Moin!

So wie du das Array angibst beim schreiben, schreibst du die Adresse des Arrays in die Datei, aber nicht den Inhalt. Mache es so, dann sollte es klappen:

Delphi-Quellcode:
myStream.WriteBuffer(data[0],6);
(gleiches beim auslesen, aber vorher dafür sorgen, dass genug Elemente im Array vorhanden sind...

MfG
Muetze1

Sharky 6. Okt 2004 11:44

Re: HEX-Werte in Datei schreiben?
 
Zitat:

Zitat von Muetze1
...Mache es so, dann sollte es klappen...

:wall:
Heute ist echt nicht mein Tag :stupid:
Ich danke dir bis ans Ende meiner Mittagspause ;-)

Sharky 6. Okt 2004 11:49

Re: HEX-Werte in Datei schreiben?
 
Zitat:

Zitat von Muetze1
...(gleiches beim auslesen, aber vorher dafür sorgen, dass genug Elemente im Array vorhanden sind...

Das müsste zum lesen dann doch stimmen oder?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  myStream: TFileStream;
begin
  fAppPath := ExtractFilePath(Application.ExeName);
  myStream := TFileStream.Create(fAppPath + 'on.dat', fmOpenRead);
  try
    myStream.Position := 0;
    SetLength(MonitorON, myStream.Size); // Arrygröße festlegen
    myStream.ReadBuffer(MonitorON[0], Length(MonitorON));
  finally
    myStream.Free;
  end;
end;

Muetze1 6. Okt 2004 11:54

Re: HEX-Werte in Datei schreiben?
 
Moin!

Jo, ich kann so erstmal nix verwerfliches sehen - sollte auch so klappen...

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz