Dizinden eleman Silmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Dizinden eleman Silmek

Mesaj gönderen tuanna »

başlık soru oldu ama biraz açayım
bir dinamik dizi tanımladım ama
diziden index numarasına göre kayıt silmek isityorum bunu nasıl yaparım...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
tam olarak ne istediğinizi anlamadım ama linked list ler sanırım işinizi görebilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Diziler oluşturduğunuzda bellekte ard arda yer kaplayan veri yapıları olduğu için aradan bir elemanı doğal yollarla silmek mümkün değildir, hatta eklemek.
Geçici bir dinamik array la şöyle birşey kullanabilirsiniz..

Kod: Tümünü seç

dizi : array of Integer;
...
...
procedure TForm1.RemoveIndex(index : Integer);
var
  i : Integer;
  dizitmp : array of Integer;
begin
  SetLength(dizitmp, Length(dizi) - 1);
  for i := 0 to Length(dizi) - 1 do
  begin
    if i < index then
      dizitmp[i] := dizi[i]
    else if i > index then
      dizitmp[i - 1] := dizi[i];
  end;
  dizi := nil;
  SetLength(dizi, Length(dizitmp));
  for i := 0 to Length(dizitmp) - 1 do
    dizi[i] := dizitmp[i];
  dizitmp := nil;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetLength(dizi, 3);
  dizi[0] := 9;
  dizi[1] := 8;
  dizi[2] := 7;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  i : Integer;
begin
  RemoveIndex(1);
  for i := 0 to Length(dizi) - 1 do
    ShowMessage(IntToStr(dizi[i]));
end;
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

ya bu aklıma geldi ama
şimdi söle düşün içinde verilerin olan bin kayıtlı bir dizi kullanmışsan...sorun oluyor...
aslında visual c# da var...bende acaba dedim arkadaşlara bir sorayım okuduğum delphi kitaplarda dizileri konusunda böle bir konu yoktu...
aslında sorunu çözümü iin sonırım stringlist kullanmak daha doğru olacak...cevaplar için tsk ederim...sağ olun
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

c# daki gibi birşey istiyorsanız @aslangeri nin de dediği gibi bir bağlı liste yapısı oluşturup kullanmanız gerekecek..
DeveloperToolKit

..::|YeşilMavi|::..
Cevapla