Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
9. Mär 2007
Also, ein dynamischer String ist ein array of Char. Ein array of Char ist ein Zeiger auf eine Folge von Chars, davor steht die Länge. Jetzt lege ich einfach den Pointer des ersten Arrays auf den des zweiten Arrays und vice versa. Wo soll da ein Problem sein?
Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
9. Mär 2007
Okay, das geht dann wohl nicht. Dann machen wirs halt so, wir sind ja flexibel:
procedure SwapMemory(var a, b; size: Cardinal);
var I, max: Cardinal;
begin
I:=0;
max:=(ALength div 4)*4-1;
while I<=max do
begin
PCardinal(Cardinal(ADst)+I)^:=PCardinal(Cardinal(ASrc)+I)^;
inc(I, 4);
Forum: Object-Pascal / Delphi-Language
Delphi
by 3_of_8,
9. Mär 2007
Wieso? Strings, dyn. Arrays, Objekte kann man ganz einfach vertauschen, genauso wie einen Integer.
Ich würds übrigens so machen:
procedure SwapMemory(var a, b; size: Cardinal=0);
var I, max: Cardinal;
begin
if size=0 then size:=sizeof(a);
I:=0;