Delphi - Kopiowanie dynamicznych tablic

0

Witam.
Czy jest inny sposób na kopiowanie tablic dynamicznych niż pętlą? Wygooglowałem iż przy pomocy procedury Move można, jednak nie udało mi się to jak na razie. Oto w jaki sposób próbuję i coś nie chce wychodzić:

type
  TDataStock = packed record
   Data: Pointer;
   Size: Integer;
  end;
  TDataStocks = array of TDataStock;
function CopyDataStock(var From:TDataStocks):TDataStocks;
begin
 try
  SetLength(Result,High(From));
  Move(From[Low(From)],Result[Low(Result)],High(From));
 except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
 end;
end;
var
 CC:TDataStocks;
begin
 CC:=CopyDataStock(DataStock);

Dodam iż próbowałem również przy użyciu CopyMemory, jednak wynik ciągle ten sam. Ani to błędu, ani przekopiowanych danych. Właściwie najlepiej byłoby dla mnie 'przenieść' dane z DataStock, do CC, bo tak czy siak po kopiowaniu mam zamiar wyczyścić tablice DataStock.

Proszę o pomoc :)

Btw, mam nadzieję, że nie wywołam jak ostatnim razem wielkiej kłótni x)

0

A nie powinno być ?

Move(From[Low(From)],Result[Low(Result)],High(From)*sizeof(TDataStock));
0

SetLength(Result,High(From));

Źle, użyj length.

Move(From[Low(From)],Result[Low(Result)],High(From));

Move(From[0],Result[0],(Length(From)-1)*sizeof(TDataStock));

0

Tfu, błąd, gadałem z ładną przyszłą programistką i byka zrobiłem. (Length(From)-1) => Length(From).

0

kAzek - też mnie się tak zdawało, testowałem i nic z tego nie było :)
-123oho - nooooo.. Po raz kolejny oszczędziłeś mi nerwów :) Dzięki !

1 użytkowników online, w tym zalogowanych: 0, gości: 1