Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Daten-String in Array of Byte einlesen (https://www.delphipraxis.net/201588-daten-string-array-byte-einlesen.html)

DonPedroFo 5. Aug 2019 10:03

Delphi-Version: 5

Daten-String in Array of Byte einlesen
 
Hallo,
ich hoffe ich drück mich richtig aus und verwechsel keine Fachbegriffe.

Ich habe die Aufgabe, aus einer Text Datei mehrere Daten-Strings in ein Array of Byte "einzulesen"

ein "Datenstring" besteht aus 64 Byte und sieht z.b. folgender maßen aus: 12450ABF43ED234DFAB39104365FFF221943AABEE04365FFF2 21943AABEEBEE04365FFF221

ich hab schon folgendes probiert aber komme irgendwie auf keinen grünen Zweig:


1. Versuch

var
i : Integer;
sZeile : String;
Daten : Array of Byte;
.
begin
SL := TStringlist.Create;
SL.LoadfromFile('.....');

for i := 0 to sl.Count-1 do begin
sZeile := SL.Strings[i];
Daten[i] := StrToInt ('$'+sZeile);
end;
.
.
.
.

hier bekomme ich immer die Datei '12450ABF43ED234DFAB39104365FFF221943AABEE04365FFF 221943AABEEBEE04365FFF221' ist kein gütliger Integerwert ist. (egal ob ich mit oder ohne '$' schreib).

DieDolly 5. Aug 2019 10:06

AW: Daten-String in Array of Byte einlesen
 
Steht der String so in der Textdatei?
Denn was du machst ist die Datei Zeile für Zeile auslesen und nicht Zeichen für Zeichen.

Und wenn du schonmal dabei bist Delphi zu lernen dann gewöhn dir diesen unsäglichen C-Stil ab und schieb das begin in die nächste Zeile.

Aviator 5. Aug 2019 10:08

AW: Daten-String in Array of Byte einlesen
 
Ich weiß nicht ob es nur ein Formatierungsfehler hier im Forum ist, aber bei beiden Zeichenketten sehe ich ca. in der Mitt ein Leerzeichen. Das sollte da natürlich nicht sein. Am besten verwendest du noch
Delphi-Quellcode:
Trim()
bevor du die Zeichenkette an die
Delphi-Quellcode:
StrToInt()
Funktion übergibst.

Edit: Ich sehe gerade, dass du ein array of Byte verwendest. Dann wäre das Umwandeln der Zeichenkette natürlich unnötig. Zudem ist dieser Hex-Wert selbst für einen Int64 noch zu groß.

Der schöne Günther 5. Aug 2019 10:16

AW: Daten-String in Array of Byte einlesen
 
Zitat:

Zitat von DieDolly (Beitrag 1439434)
Denn was du machst ist die Datei Zeile für Zeile auslesen und nicht Zeichen für Zeichen.

Etwas genauer erklärt: Eine TStringList liest den Text aus einer Datei zeilenweise ein. Wenn du auf das x-te Element zugreifst, dann nimmst du die x-te Zeile. Wenn du also eine Datei mit mehreren Zeilen hast brauchst du auch zwei for-Schleifen: Eine für jede Zeile und eine für das jeweilige Zeichen darin.


Zitat:

Zitat von DieDolly (Beitrag 1439434)
dann gewöhn dir diesen unsäglichen C-Stil ab und schieb das begin in die nächste Zeile.

dafuq 🤪

DonPedroFo 5. Aug 2019 10:34

AW: Daten-String in Array of Byte einlesen
 
@Die Dolly, ursprünglich ist das ganze ein S-Record File von Motorola. Aber Imprinzip ist es nichts anders als eine Textdatei, bei der "x"-Zeile untereinander stehen mit einem jeweiligen HEX-Code.
Sinn des ganzen wäre es diesen "Daten-String" in ein Array of Byte zu schreiben, da ich diese Daten Byte für Byte in ein Flash schreiben muss.
Das mit dem beginn werde ich mir angewöhnen ;D
@Aviator: Das Leerzeichen müsste ein Formatierungsfehler sein. In meiner Datei steht kein Leerzeichen.

@Günther: So ist der Plan in meinem Kopf; ich lese das gesamte "Dokument" Zeile für Zeile ein, und "schiebe" jede Zeile in ein Array of Byte mit dem ich wieder weiterarbeiten kann.

DieDolly 5. Aug 2019 10:39

AW: Daten-String in Array of Byte einlesen
 
Zitat:

@Die Dolly, ursprünglich ist das ganze ein S-Record File von Motorola. Aber Imprinzip ist es nichts anders als eine Textdatei, bei der "x"-Zeile untereinander stehen mit einem jeweiligen HEX-Code.
Dann ließt du die Daten falsch ein so wie ich sagte.

DonPedroFo 5. Aug 2019 10:48

AW: Daten-String in Array of Byte einlesen
 
ich sag mal so,
Im Moment lese ich die Daten in eine Stringliste ein und arbeite damit weiter. Das funktioniert auch ohne großen Probleme.

DieDolly 5. Aug 2019 10:50

AW: Daten-String in Array of Byte einlesen
 
Wenn das ohne Probleme funktionieren würde, hättest du nicht hier um Hilfe gebeten :P

DonPedroFo 5. Aug 2019 10:57

AW: Daten-String in Array of Byte einlesen
 
Wenn ich die Daten in eine Stringliste schreibe und mit dieser dann weiter arbeite funktioniert es.
Allerdings sind dann die Daten in einem "String".

Wenn ich die Daten in eine Stringliste schreibe und die einzelnen Zeilen in ein Array of Byte packe funktioniert es nicht.

Und deswegen versuche ich auch viel erstmal selbst zu lösen. Aber bis jetzt bin ich auf keinen grünen Zweig gekommen.

Deswegen stell ich die Frage an was es liegen könnte.

Ich hab auch schon die Firma Google gefragt und auch hier im Forum die Suchfunktion benutzt.

Bisher ohne Erfolg.

DieDolly 5. Aug 2019 11:00

AW: Daten-String in Array of Byte einlesen
 
Zitat:

Ich hab auch schon die Firma Google gefragt. Bisher ohne Erfolg.
Das wird auch so bleiben. Bei denen etwas nachzufragen ist sinnlos.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.
Seite 1 von 2  1 2   

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