[Delphi] tablice dynamiczne...

0

Jak z tablicy dynamicznej wykopać jakiś wpis, np. numerek 2, albo jak dodać. Tyle, żeby pozostałe wartość pozostałych się nie zmieniła, a w pierwszym przypadku numerki wartości się zmniejszyły o 1 razem z wartosciami?

--
Vroc

0

Niezabardzo rozumiem o co Ci chodzi ale...

  1. Jak wykopać jakąś pozycje z tablicy:

For I:= numer wykopanej pozycji to Legnth(tabilca)-1 do
Tablica[I].Tablica:= tablica[I+1];

  • w ten sposób usuniesz jedną pozycje a reszte przesuniesz nieżej tablicy

SetLength(Tablica, Length(Tablica)-1);
*zmiejszenie tablicy o jeden

Jeżeli chcesz pozmieniać wartości wcześniejszych pozycji o jeden

For I:= 0 to Length(Tablica) do
if I &lt numer wykopanej pozycji then Dec(Tablica[I])
else Tablica[I].Tablica:= tablica[I+1];

SetLength(Tablica, Length(Tablica)-1);

z Dodawaniem podobnie tylko musi być pętla For Downto od końca tablicy do miejsca dodania.--Delphi 6; Pozdrawiam eSka :-)

0

Ten kodzik sobie obejrzyj i dopasuj do swoich potrzeb

type TDynamicShortSessionArray=array of TShortSession;

procedure DeleteShortSession(const Subject: string; const Which: integer);
var
Sessions : TDynamicShortSessionArray;
begin
LoadShortSessions(Subject, Sessions);
if Which&lt&gtHigh(Sessions) then
Move(Sessions[Succ(Which)], Sessions[Which],
(High(Sessions)-Which)*SizeOf(TShortSession));
SetLength(Sessions,High(Sessions));
SaveShortSessions(Subject, Sessions);
end;--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

dobra, dam se rade, myslalem ze jakas procedurka specjalana jest, ale w taki sposob to ja se rade dam:))--Vroc
&ltDelphi Knight&gt

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