Elimde bir dizi var diyelim
Dizi[0]=1
Dizi[1]=2
Dizi[2]=1
Dizi[3]=1
bu gibi durumda dizinin içinde 1,2 değerlerinin yani aynı değerlerin kalmasını istiyorum..
yani tam olarak Sql'in grup by ını bu yapan bir fonksiyon varmı hazır..
ya da nasıl yazabilirim.
tşkler.
Dizi içindeki aynı değerleri 1 kez yazsın istiyorum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- MercilessTurk
- Üye
- Mesajlar: 94
- Kayıt: 28 Eki 2005 10:14
Sanırım böyle bişey istiyorsun:
Forma 2 memo koyman lazım.
Kolay gelsin.
Kod: Tümünü seç
var
dizi: array[0..14] of integer=(1,2,3,131,5,3,2,1,10,131,4213,1,3,523,10);
unique_valued,cop: array of integer;
i,y,z:integer;
begin
Memo1.Lines.Clear;
setlength(cop,High(dizi)+1);
z:=Low(dizi);
cop[z]:=dizi[z];
for i:=Low(dizi) to High(dizi) do
begin
Memo1.Lines.Add('dizi['+IntToStr(i)+']='+IntToStr(dizi[i]));
for y:=Low(dizi) to z do
begin
if cop[y]=dizi[i] then
break;
if y=z then begin
Inc(z);
cop[z]:=dizi[i];
end;
end;
end;
Memo2.Lines.Clear;
setlength(unique_valued,z+1);
for i:=Low(cop) to z do begin
unique_valued[i]:=cop[i];
Memo2.Lines.Add('unique_valued['+IntToStr(i)+']='+IntToStr(unique_valued[i]));
end;
end;
Kolay gelsin.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Eğer bu problem için aklına birşey gelmediyse mantığı hakkında bir kaç öneri vereyim:
1-Sırayla tüm elemanları incele
2-İncelenen elemanı daha önceki elemanlarla kıyasla
3-Eğer aynı değeri bulmadıysa bu elemanı işleme al, bulduysa bir sonraki elemana geç
1-Sırayla tüm elemanları incele
2-İncelenen elemanı daha önceki elemanlarla kıyasla
3-Eğer aynı değeri bulmadıysa bu elemanı işleme al, bulduysa bir sonraki elemana geç
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
arkadaşlar c# da şu şekilde hallettim aynı mantıkla delphi
arkadaşlar c# da şu şekilde hallettim aynı mantıkla delphi de yaptık şu an elimin altında c# kodu vardı ondan bunu attım eve gidince inşallah delphi kodlarınıda atayım..
System.Collections.ArrayList a = new System.Collections.ArrayList();
System.Collections.ArrayList b = new System.Collections.ArrayList();
a.Add(1); ;
a.Add(2);
a.Add(3);
a.Add(4);
a.Add(1); ;
a.Add(2);
a.Add(3);
a.Add(4);
b.Add(a[0]);
bool esitmi=false;
for (int i = 1; i < a.Count; i++)
{
esitmi = false;
for (int j = 0; j < b.Count; j++)
{
if (int.Parse(a.ToString()) == int.Parse(b[j].ToString()))
{
esitmi = true;
break;
}
}
if (!esitmi)
b.Add(a);
}
yardımlarını için tşkler..
System.Collections.ArrayList a = new System.Collections.ArrayList();
System.Collections.ArrayList b = new System.Collections.ArrayList();
a.Add(1); ;
a.Add(2);
a.Add(3);
a.Add(4);
a.Add(1); ;
a.Add(2);
a.Add(3);
a.Add(4);
b.Add(a[0]);
bool esitmi=false;
for (int i = 1; i < a.Count; i++)
{
esitmi = false;
for (int j = 0; j < b.Count; j++)
{
if (int.Parse(a.ToString()) == int.Parse(b[j].ToString()))
{
esitmi = true;
break;
}
}
if (!esitmi)
b.Add(a);
}
yardımlarını için tşkler..
derviş