AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Daten-String in Array of Byte einlesen

Ein Thema von DonPedroFo · begonnen am 5. Aug 2019 · letzter Beitrag vom 5. Aug 2019
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.289 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 11:02
Nur dass ich das richtig verstanden habe, aus dem String '12450A' soll ein Array of Byte mit dem Inhalt (18, 69, 10) werden, stimmt das (ich weiß, Deine Strings sind länger, aber ich war zu faul)?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
794 Beiträge
 
Delphi 2009 Professional
 
#12

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 11:35
Wenn du den Stream von Hex entschlüsseln sollst: StrToInt('xA3') als Ansatz.

Wenn du den Stream unverändert ausgeben möchtest: Delphi-Referenz durchsuchenTStringStream oder Delphi-Referenz durchsuchenTBytesStream. Die haben ein array of Byte als Eigenschaft (Bytes glaube ich).
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.745 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 11:51
TFile.ReadAllBytes(..) 😶
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#14

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 12:02
Also wenn du diesen String (mit Hex-Werten) in Bytes umwandeln möchtest, dann geht das so
Delphi-Quellcode:
function DecodeHexStringToBytes(const AHexString: string): TBytes;
var
  byteIdx: Integer;
  Len: Integer;
begin
  Len := AHexString.Length;
  if AHexString.Length mod 2 <> 0 then
    raise EArgumentException.Create('AHexString must contain even number of chars');

  SetLength(Result, AHexString.Length div 2);
  for byteIdx := 0 to AHexString.Length div 2 - 1 do
  begin
    Result[byteIdx] := Byte.Parse('$' + AHexString.Substring(byteIdx * 2, 2));
  end;
end;
Hier werden immer zwei Hexadezimal-Ziffern genommen und davon der Dezimal-Wert berechnet und dieser in dem Byte-Array gespeichert.

BTW Dein Beispiel-String aus dem ersten Post beinhaltet 74 Zeichen und das ergibt dann 37 Bytes.
  Mit Zitat antworten Zitat
DonPedroFo

Registriert seit: 26. Jun 2019
18 Beiträge
 
#15

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 12:48
@DeddyH: ja so sollte es am ende aussehen

@Günther: Tfile.ReadAllBytes(...) schreib ich dann in den Klammern den Pfad, in dem das File liegt?

@Schockohase: Danke für den Code, ich probier ihn mal aus.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.745 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 13:10
Schaust du Doku
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
378 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 13:26
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:
Du (und bisher alle Antwortenden) machst das viel zu kompliziert. Delphi hat eine Funktion HexToBin (in system.classes), die exakt das macht, was Du haben willst.
Peter Below
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#18

AW: Daten-String in Array of Byte einlesen

  Alt 5. Aug 2019, 13:31
Du (und bisher alle Antwortenden) machst das viel zu kompliziert. Delphi hat eine Funktion HexToBin (in system.classes), die exakt das macht, was Du haben willst.
Ja, aber: Not invented here!

(Natürlich hast du Recht)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.
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