Delphi de Dizi elemanını tekrardan isimlendirmek

Başlatan Salih, 22 Aralık 2011, 10:59:15

Salih

Şöyle bir sorum olacak, ben olabilirliğini bulamadım.

Örneğin şu şekilde bir dizi tanımlamış olalım

Var
dizi : array[0..5] of integer;


bu dizi nin
dizi[0] elemanını veri1,
dizi[1] elemanını veri2
olarak tekrar isimlendirip kullanabilirmiyiz.

aykuto

Şöyle yapabilirsiniz:

var
 dizi: array [0..5] of integer;
 veri1,veri2,veri3,veri4,veri5,veri6:^integer;  //Bunları pointer tipte tanımlıyoruz
begin
   veri1:=@dizi[0];
   veri2:=@dizi[1];
   veri3:=@dizi[2];
   veri4:=@dizi[3];
   veri5:=@dizi[4];
   veri6:=@dizi[5];

//Yukarıdaki tanımlamayı yaptıktan sonra değişkenleri aşağıdaki gibi kullanabilirsiniz.

   veri1^:=88;  //dizi[0]:=88; ile aynı işlevi görür

end;


Umarım yardımcı olabilmişimdir.

Burak B

"... a healthy dose of paranoia leads to better systems." Jack Ganssle

Salih

#3
Arkadaşlar,
Cevaplar için teşekkürler.
Pointer benimde aklımda da, fakat direk
C deki
#Define veri0   dizi[0]
gibi bir tanımlama olabilirmi diye düşünmüştüm.

Burak B

Eğer delphi değilde freepascal kullanıyor olsaydın;

const
{J+} // Yazılabilir sabit olduğunu derleyiciye bildiriyoruz. Bu durumda bir sabit gibi değil bir değişken gibi davranacak.
    dizi:array [0..5] of integer= (1, 2, 3,4,5,6);
{J-}
{$MACRO ON}  // işte bu delphide desteklenmeyen ve en kritik olan tanımlama.
{$define veri:=dizi[2]}
.....


Akabinde begin bloğunda

begin

...
MessageBox(Window,PCHAR(inttostr(veri)),'Test',MB_OK);	   // mesaj 3 gösterir. Yani dizi[2] deki ön tanımlı değeri.
veri:=4;				                                                           // veri=dizi[2] idi içeriği 4 oldu;
MessageBox(Window,PCHAR(inttostr(dizi[2])),'Test',MB_OK);   // mesaj 4 gösterir. veri üzerinden dizi[2]'deki değer değişmiş oldu.

end;

"... a healthy dose of paranoia leads to better systems." Jack Ganssle