Zitat von
yörsch:
noch ne´variante
Delphi-Quellcode:
type
TTest = record
case boolean of
true : (Text : array [0..125] of char);
false: (Zahl : array [0..125] of byte);
end;
var OutStr : String;
TEST : TTest;
i : Integer;
b : Byte;
begin
OutStr := 'Help';
for i:=0 to Length(OutStr)-1 do
TEST.Text[i] := OutStr[i];
b := TEST.Zahl[0];
Ist aber auch um einiges langsamer als CopyMemory oder auch gleich Move (CopyMemory ruft auch nur move auf). Ganze Speicherbereiche als Block zu kopieren ist immer das schnellste, geht in nahezu konstanter Zeit (ganz unabhängig von der Anzahl der zu kopierenden Bytes). In deiner Variante wird die Schleife natürlich sehr oft durchlaufen und dann auch noch in jeder Iteration ein Wert gelesen und geschrieben...