Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
28. Apr 2017
In (deinem) Delphi sind Strings 1-basiert. Daher besser so:
Delete(PBuf10, 1, 12);
Delete(PBuf20, 1, 12);
Delete(PBuf10, length(PBuf10) - 2, 3);
Delete(PBuf20, length(PBuf20) - 2, 3); // In deinem Code veränderst du übrigens PBuf10!
Du kannst auch Copy verwenden:
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
28. Apr 2017
Welche Delphi-Version und welche Zielplattform?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
28. Apr 2017
Was soll damit erreicht werden? Vorausgesetzt, PBuf10 ist als string deklariert, dann versuchst du hier 9 Zeichen mehr zu kopieren als vorhanden sind. Delphi fängt das natürlich ab, aber der Code riecht nach einem Fehler.
:glaskugel: Eventuell versuchst du ja auch nur die ersten 12 und die letzen 2 oder 3 Zeichen abzuschneiden? Dann ist das aber der falsche Befehl.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
28. Apr 2017
Das ist sogar noch witziger:
type
TSet = set of 0..3;
procedure Main;
var
s: TSet;
I: 0..3;
begin
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
27. Apr 2017
Gut erkannt! TByteSet muss natürlich so deklariert sein:
type
TByteSet = set of 0..7;
Übrigens: Das funktioniert deshalb, weil Delphi immer ganze Bytes für Sets reserviert.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
27. Apr 2017
Ich verstehe das so, daß du die beiden Hex-Strings bitweise verschachtelst. Folgende Funktion sollte das leisten:
function Convert(const A, B: string): string;
function Merge(CA, CB: Char): string;
type
TByteSet = set of 0..3;
var
BS: TByteSet;