![]() |
Binär oder Hex Datei erstellen
Hi,
kleines Problem: möchte eine Datei erstellen, in der ich ca. 1Million Werte im Bereich von 0-255 speichern und wieder auslesen kann. Die Datei soll später auf einem Mikrocontroler verwendet werden, deshalb sollten die Werte nicht im ASCII Format gespeichert werden, sondern gleich im Hex oder Bin format. Ich habe auch eine Lösung dafür gehabt, indem ich einfach meinen Wert mit CHR(X) in ein Zeichen Wandel, dieses in einer TXT Datei speicher und beim auslesen das Zeichen wieder mit ord(Z) in eine Zahl wandel. Nur bekomme ich große Probleme, wenn jetzt mein Wert zufällig 13 ist, da CHR(13) die Entertaste ist und so die ganze Struktur meine Textdatei nicht mehr stimmt und nur noch Müll ausgelesen wird. Auch mit Trennzeichen komme ich nicht weiter, weil ein CR (CHR(13)) wieder alles über den Haufen wirft. Wie kann ich also gleich Binär, oder auch Hex in eine Datei schreiben, ohgne das Rad neu zu erfinden? Danke Cu Trucki |
Re: Binär oder Hex Datei erstellen
Da du binäre Daten speicherst, sind Textfiles nicht sehr geeignet.
Nimm lieber einen Filestream. Deine Daten kannst du in einem Array of Byte verwalten, dieses Array kannst du dann dirrekt in den Filestream speichern. Dabei ist es völlig egal, ob du das Zeichen 0, 13 oder was auch immer hast. BTW: Daten werden immer binär gespeichert. Ob du sie als ASCII-Text darstellst oder als Hexadezimalcode, der Inhalt ist immer das selbe. |
Re: Binär oder Hex Datei erstellen
Hai Trucki,
ich habe das ganze mal mit einem MemoryStream gemacht.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var my_MStream : TMemoryStream; ndx, li_groesse : Integer; lb_wert : Byte; begin li_groesse := 1024 * 1024; my_MStream := TMemoryStream.Create; try my_MStream.SetSize (li_groesse); for ndx := 0 to li_groesse-1 do begin lb_wert := Random (256); my_MStream.Position := ndx; my_MStream.Write (lb_wert,1); end; my_MStream.SaveToFile ('c:\test.dat'); finally my_MStream.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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 by Thomas Breitkreuz