Witam. Wiem że moge w pętli lecieć po rekordach i kopiować dane z poszczególnych pól, ale jestem ciekaw czy można to zrobić szybciej. Mam coś takiego:
type
TBaza = packed record
NumerID: Integer;
Dzial: Byte;
Towary: Array of ShortString;
end;
const
Komplet: Array[0..3] of ShortString = ('Towar1','Towar2','Towar3','Towar4');
var
Baza: Array of TBaza;
Takich stałych mam więcej i w zależności od potrzeby chcę sobie przypisać, czyli:
begin
SetLength(Baza, Length(Baza)+1);
Baza[High(Baza)].NumerID := 4;
Baza[High(Baza)].Dzial := 2;
SetLength(Baza[High(Baza)].Towary, Length(Komplet);
Baza[High(Baza)].Towary := Komplet;
end;
Tylko że przy Baza[High(Baza)].Towary := Komplet; wywala mi że niekompatybilne typy. Próbowałem przez
Baza[High(Baza)].Towary := Copy(Komplet, 0, Lenght(Komplet));
... ale też się nie da, sprawdza się tylko w przypadku tej samej tablicy (przydatne przy usuwaniu rekordów) - Baza[High(Baza)].Towary := Copy(Baza[High(Baza)].Towary, 0, Lenght(Komplet)-1).
Tak więc moje pytanie brzmi: Czy jest jakaś funkcja w delphi co szybko skopiuje zawartość całej tablicy do drugiej? Jedyne co mi przychodzi do głowy to użyć TMemoryStream.