Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
10. Mai 2014
Öhm, das ist mir bei einem TDictionary noch nicht aufgefallen.
Kannst du das mal erläutern?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
9. Mai 2014
Bitte :)
Ein kleines Performance-Update habe ich auch noch eingebaut :)
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
9. Mai 2014
Ok, hier der Code.
Durch das Verschieben sollten keine Wert mit mehr als 25bit abgerufen werden, da es sonst zu komischen Ergebnissen kommen kann :)
Es erfolgt keine Überprüfung der Index-Werte ... wer das möchte, der kann sich das ja noch einbauen :)
UPDATE
Ich habe nochmals ca. 2ms weniger (bei 1.000.000 Zugriffen) herausgekitzelt durch eine Änderung in der GetData Methode :)
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
9. Mai 2014
Wie schnell muss dass denn sein?
Ich frage einen 4-Bit Wert aus 2 Bytes
1111111001111111
genau 1.000.000 ab und das dauert hier so 18ms.
Wenn das schnell genug ist, dann kann ich den Code hier mal reinstellen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
9. Mai 2014
Ja, könnte man auch nehmen, wenn denn dann die Werte Byte-Weise abgegriffen werden könnten. Das geht aber eben nicht.
0|1|2|3|4|5|6|7
00000000|00000010|01000000|00000000|00000000|00000000|00000000|00000000
Wie holt man denn daraus jetzt den Wert 9 ("1001") per Record Index?
Der Wert muss aus den Bits (von links 0-basierend gezählt) 14-17 kommen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
9. Mai 2014
Der Name GetBits ist schlecht gewählt, denn mit einem Call wird der gesamte Wert ausgelesen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
9. Mai 2014
Mit der Typisierung und der Länge kann man schon eine Factory aufbauen, die dann aus einem Stream entsprechende Instanzen erzeugt.
Das Grundproblem wird dadurch aber nicht gelöst.
Wie wäre es mit so einer Lösung
http://stackoverflow.com/questions/282019/how-to-simulate-bit-fields-in-delphi-records
Würde ich in deinem Fall aber eher als Klasse aufbauen, das Prinzip ist aber gleich
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
9. Mai 2014
Was bekommst du denn jetzt? Bytes oder Strings?
Gut, irgendwie bekommt man ja immer nur Bytes und ein String ist dann nur die Interpretation der Bytes ;)