Usuwanie skladnika tablicy

0

mam jakis rekord

type

Tcos = record
nazwisko:string[100];
imie:string[100];

end;

nastepnie deklaruje sobie

var

cos:array of Tcos;

w kodzie ustawiam dlugosc itp tak ze mam juz n elementowa tablice
i tu zaczyna sie moje pytanie:

W jaki najszybszy(najlatwiejszy) sposob usunac konkretny element tablicy w taki sposob by wszystkie pozostale elementy przesunely sie o 1 do gory. Wiem ze mozna sobie zrobic petle ktora bedzie przesuwac jeden po jednym do gory, ale jesli mam tablice zbudowana naprzyklad z tysiecy czesci czytam miliona to bedzie to strasznie dlugo trwalo.
Czy jest jakis spposob ,funkcja czy co tam jescze ktora umozliwia szybkie latwe przenoszenie elementow tablicy grupami?
na przyklad tablica {1,2,3,4,5} kasuje 4 element mam {1,2,3,pusty,5} a chce {1,2,3,5} latwo szybko i bez duzych petli

0

Do czegoś takiego musiałbyś raczej użyć listy - na przykład dwukierunkowej :-P

0

Swego czasu sam zastanawiałem się, jak zrobić coś podobnego w PHP. Jednak tam są funkcje umożliwiające usunięcie pierwszy/ostatni element tablicy. Tutaj będziesz musiał użyć pętli.

IMHO: chyba lepiej użyć bazy danych.

0

Mozesz tez skopiowac ostatni element w puste miejsce, jezeli nie zalezy ci na konkretnej kolejnosci.

0

Jesli tych elementów naprawde bedziesz mial tak duzo i operacje kasowania beda czeste to proponuje uzyc klasy Tlist. Tablica z zalozenia jest spojnym kawalkiem pamieci wiec jesli usuwasz cos w srodku to powstaje tam dziura i trzeba przesuwac kopiując , nie ma rady ( no albo zrobic tak ja pisal Wolvarine).

0

Do przesuwania możesz spróbować wykorzystać Move. A poza tym przeszukaj forum, problem był opisywany wielokrotnie.

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