AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hex to Base64

Ein Thema von Cubysoft · begonnen am 7. Mai 2015 · letzter Beitrag vom 7. Mai 2015
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Hex to Base64

  Alt 7. Mai 2015, 14:30
Am Besten wäre es natürlich, wenn ich einfach direkt alles in ein Byte Array gepackt bekomme, aber dafür reicht mein Wissen leider nicht aus. Es wäre genial, wenn ihr hierbei nochmal helfen könntet
dann Schau Dir mal #2 an!
Das könnte hilfreich sein.

Gruß
K-H

P.S.
Hex ist übriges das gleiche wie Base16
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#2

AW: Hex to Base64

  Alt 7. Mai 2015, 14:42
Achsoooooo jetzt weiß ich endlich was base 64 ist DD danke Ich schau mir deinen Post nochmal genauer an

EDIT: Ja hier ist auch schon das Problem:

Der Wert für das 2. Byte liegt als String vor (dezimal, 1-250). Der Wert für die Bytes danach liegt ebenfalls als String vor (aber nicht little endian sondern eben normal). Ich weiß weder, wie ich den Wert für Byte 2 als Byte konvertiere, noch wie ich einen Integer beliebiger länge (Byte 3-x) in ein little endian byte array konvertiere. Vor allem deswegen, weil die größe eines Integers - soweit ich weiß - unter 32 und 64bit unterschiedlich ist..
Tobias

Geändert von Cubysoft ( 7. Mai 2015 um 14:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Hex to Base64

  Alt 7. Mai 2015, 14:58
Ja hier ist auch schon das Problem:

Der Wert für das 2. Byte liegt als String vor (dezimal, 1-250). Der Wert für die Bytes danach liegt ebenfalls als String vor (aber nicht little endian sondern eben normal). Ich weiß weder, wie ich den Wert für Byte 2 als Byte konvertiere, noch wie ich einen Integer beliebiger länge (Byte 3-x) in ein little endian byte array konvertiere. Vor allem deswegen, weil die größe eines Integers - soweit ich weiß - unter 32 und 64bit unterschiedlich ist..
Ob es wohl möglich wäre, dass du anstatt einer abstrakten Beschreibung einmal konkrete Werte zeigen könntest, so z.B.
Delphi-Quellcode:
function Foo( Arg1 : Byte; Arg2 : string; Arg3 : Int64 ) : string;
begin
  // da weiss ich nicht wie
end;

procedure Test;
begin
  Assert(
    // Eingangswerte
    Foo(42, '42', 42)
    // erwartetes Ergebnis
    = 'Magic' );
end;
Darunter können wir uns dann konkret etwas vorstellen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#4

AW: Hex to Base64

  Alt 7. Mai 2015, 15:14
Ich weiß nicht genau was du meinst, aber ich versuche gerade aus Werten einer Datenbank einen Base64 kodierten String zu erstellen, mit dem ein anderes Programm arbeiten kann. Dazu habe ich den genannten Aufbau:

1.Byte: Header (immer 02)
2.Byte: Anzahl (liegt als String vor: Beispiele: 1;15;123;250;... -> der Wert schwankt zwischen 1 und 250)
3-xByte: ID (liegt als String vor: Beispiele: 1;2345;65234;... -> der Wert ist immer positiv und ungleich 0 ansonsten theoretisch beliebige größe, derzeit aber nich größer als 3Bytes)
x+1Byte: 0Byte

Mein Ansatz zum Erstellen des Byte Arrays:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  BArray: TByteDynArray;
  s2: string;
  t: Byte;
begin
  SetLength(BArray, ?); //Ich weiß vorher noch nicht wie groß es wird, weil die ID ja beliebig groß ist
  BArray[0] := $02;
  t := StrToInt(ed_anzahl.Text);
  BArray[1] := t;
  //hier müsste ich dann die ID als little endian, also verkehrt herum hinzufügen
  BArray[?] := $00;
end;
Ich hoffe das Problem ist jetzt klar. Wenn ich das Byte Array erstmal richtig aufgebaut habe, versuche ich mal #2
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.752 Beiträge
 
Delphi 12 Athens
 
#5

AW: Hex to Base64

  Alt 7. Mai 2015, 14:47
Sind da wirklich Leerzeichen zwischen den Hex-Werten?
  • Leerzeichen entfernen (Replace im String)
  • Hex nach Bin konvertieren (String -> ByteArray oder Stream)
  • Bin nach Base64 konvertieren (ByteArray oder Stream -> String)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

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 06:59 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