Array karşılaştırma aynı olan elemanları silme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Array karşılaştırma aynı olan elemanları silme
Merhaba
2 adet array mevcut bunlarda kayıt sayısı 1000000 den fazla.
1 array 2. array
1 9
2 7
3 7
4 2
5 4
1. arrayda var olan elamanları 2. arrayda silmek için
tmp array diye bir array açıoyrum.
Eğer eleman var ise o elemanı atlıyorum
yok ise elemanı tmp e yazıyorum
son olarak tmp array ın boyunu ayarlıyorum ve 1. arrayın üstüne yazıyorum.
Sonuc
1
3
4
dönüyor
Bunun ram ve işlemci optimisasyonu açısından daha hızlı bir yöntemi var mı?
2 adet array mevcut bunlarda kayıt sayısı 1000000 den fazla.
1 array 2. array
1 9
2 7
3 7
4 2
5 4
1. arrayda var olan elamanları 2. arrayda silmek için
tmp array diye bir array açıoyrum.
Eğer eleman var ise o elemanı atlıyorum
yok ise elemanı tmp e yazıyorum
son olarak tmp array ın boyunu ayarlıyorum ve 1. arrayın üstüne yazıyorum.
Sonuc
1
3
4
dönüyor
Bunun ram ve işlemci optimisasyonu açısından daha hızlı bir yöntemi var mı?
Re: Array karşılaştırma aynı olan elemanları silme
Nasıl bir kod yazdınız ?JavaCiva yazdı: 1. arrayda var olan elamanları 2. arrayda silmek için
tmp array diye bir array açıoyrum.
Eğer eleman var ise o elemanı atlıyorum
yok ise elemanı tmp e yazıyorum
son olarak tmp array ın boyunu ayarlıyorum ve 1. arrayın üstüne yazıyorum.
Sonuc
1
3
4
dönüyor
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Array karşılaştırma aynı olan elemanları silme
Ben olsam
Elimdeki içinde veri aranacak olan arrayi bubble sort yöntemi ile önce sıralardım
Sonra aranacak değeri, aranacak olan arrayin içinde büyüklük küçüklük yapısına göre bölme yöntemi ile
yaklaşık 1,000,000 kayıt için 19 hamlede tüm kayıtları gezmeksizin varlığını tespit edip işlemimi tamamlardım
Not : buna benzer bir yöntemi delphi 5 te yaptığımda Listarray içine atıp armak ve array içinde tüm kayıtlarda
armaktan çok daha hızlı olduğunu tecrübe ettiğimi söyliyebilirim.
Elimdeki içinde veri aranacak olan arrayi bubble sort yöntemi ile önce sıralardım
Sonra aranacak değeri, aranacak olan arrayin içinde büyüklük küçüklük yapısına göre bölme yöntemi ile
yaklaşık 1,000,000 kayıt için 19 hamlede tüm kayıtları gezmeksizin varlığını tespit edip işlemimi tamamlardım
Not : buna benzer bir yöntemi delphi 5 te yaptığımda Listarray içine atıp armak ve array içinde tüm kayıtlarda
armaktan çok daha hızlı olduğunu tecrübe ettiğimi söyliyebilirim.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Array karşılaştırma aynı olan elemanları silme
@adelphiforumz; @JavaCiva'nın testine göre bir örnek paylaşmanız mümkün müdür ?
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Array karşılaştırma aynı olan elemanları silme
Belki biraz daha uğraşılsa daha kısa ve düzgün kod çıkabilirkimimben yazdı:@adelphiforumz; @JavaCiva'nın testine göre bir örnek paylaşmanız mümkün müdür ?
ben çok üstünde düşünmeden yazdım.
DFM
Kod: Tümünü seç
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 411
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 24
Top = 11
Width = 75
Height = 13
Caption = 'Dizi Boyutu'
end
object Label2: TLabel
Left = 24
Top = 36
Width = 61
Height = 13
Caption = 'Arama Say'#305's'#305
end
object Button1: TButton
Left = 14
Top = 152
Width = 161
Height = 25
Caption = 'Ba'#351'lat'
TabOrder = 0
OnClick = Button1Click
end
object lbSonuc: TListBox
Left = 202
Top = 183
Width = 383
Height = 175
ItemHeight = 13
TabOrder = 1
end
object lbBilgi: TListBox
Left = 14
Top = 183
Width = 161
Height = 175
ItemHeight = 13
TabOrder = 2
end
object SEDiziBoyutu: TSpinEdit
Left = 118
Top = 8
Width = 111
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 3
Value = 1000000
end
object SEAramaSayisi: TSpinEdit
Left = 118
Top = 31
Width = 111
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 4
Value = 1000
end
object pnlSabit: TPanel
Left = 118
Top = 59
Width = 201
Height = 30
TabOrder = 5
Visible = False
object Label3: TLabel
Left = 3
Top = 6
Width = 72
Height = 13
Caption = 'Aranacak Sabit'
end
object SESabitSayi: TSpinEdit
Left = 81
Top = 3
Width = 111
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 0
Value = 0
end
end
object cxbSabitmi: TCheckBox
Left = 20
Top = 62
Width = 92
Height = 21
Caption = 'Sabit Say'#305' Ara'
TabOrder = 6
OnClick = cxbSabitmiClick
end
end
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
Generics.Collections, Vcl.Samples.Spin, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
lbSonuc: TListBox;
lbBilgi: TListBox;
SEDiziBoyutu: TSpinEdit;
Label1: TLabel;
SEAramaSayisi: TSpinEdit;
Label2: TLabel;
pnlSabit: TPanel;
Label3: TLabel;
SESabitSayi: TSpinEdit;
cxbSabitmi: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure cxbSabitmiClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Dizi : Array of integer;
I,X, iSure, iDiziSayisi, iAramaSayisi, iArananSayi, iLow, iHigh : Integer;
bSwcBul : Boolean;
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer) ;
var
Lo, Hi, Pivot, T: Integer;
begin
Lo := iLo;
Hi := iHi;
Pivot := A[(Lo + Hi) div 2];
repeat
while A[Lo] < Pivot do Inc(Lo) ;
while A[Hi] > Pivot do Dec(Hi) ;
if Lo <= Hi then
begin
T := A[Lo];
A[Lo] := A[Hi];
A[Hi] := T;
Inc(Lo) ;
Dec(Hi) ;
end;
until Lo > Hi;
if Hi > iLo then QuickSort(A, iLo, Hi) ;
if Lo < iHi then QuickSort(A, Lo, iHi) ;
end;
begin
SetLength(Dizi, 1);
iDiziSayisi := SEDiziBoyutu.Value;
iAramaSayisi := SEAramaSayisi.Value;
lbBilgi.Items.Clear;
iSure := GetTickCount;
SetLength(Dizi, iDiziSayisi);
for I := 0 to iDiziSayisi - 1 do
begin
Dizi[I] := I;
end;
lbBilgi.Items.Add('Dizi Oluşturma Süresi : ' + IntToStr(GetTickCount - iSure));
iSure := GetTickCount;
QuickSort(Dizi, Low(Dizi), High(Dizi)) ;
lbBilgi.Items.Add('Sıralama süresi : ' + IntToStr(GetTickCount - iSure));
lbSonuc.Items.Clear;
iSure := GetTickCount;
for I := 0 to iAramaSayisi - 1 do
begin
Button1.Caption := IntToStr(I);
iArananSayi := Random(iDiziSayisi);
for X := 0 to iDiziSayisi - 1 do
begin
if Dizi[X] = iArananSayi then
begin
lbSonuc.Items.Add(IntToStr(Dizi[X]));
break;
end;
end;
end;
lbBilgi.Items.Add('Sıralı bulma süresi : ' + IntToStr(GetTickCount - iSure));
Application.ProcessMessages;
iSure := GetTickCount;
lbSonuc.Items.Clear;
for I := 0 to iAramaSayisi - 1 do
begin
Button1.Caption := IntToStr(I);
if cxbSabitmi.Checked then
iArananSayi := SESabitSayi.Value
else
iArananSayi := Random(iDiziSayisi);
X := 0;
while 1=1 do
begin
if X = 0 then
begin
X := Length(Dizi) div 2;
iHigh := Length(Dizi);
iLow := 1;
end;
if Dizi[X] = iArananSayi then
begin
lbSonuc.Items.Add('Sıra No : ' + IntToStr(I) + ', Index : ' + IntToStr(X) + ', Aranan Sayı : ' + IntToStr(Dizi[X]));
break;
end;
if iArananSayi < Dizi[X] then
iHigh := X
else
iLow := X;
X := iLow + ((iHigh - iLow) div 2);
if ( (X <= 2) or (X = iHigh) or (X = (Length(Dizi) -1)) ) then
begin
bSwcBul := False;
for X := (iLow) to iHigh do
begin
if Dizi[X] = iArananSayi then
begin
lbSonuc.Items.Add('Sıra No x : ' + IntToStr(I) + ', Index : ' + IntToStr(X) + ', Aranan Sayı : ' + IntToStr(Dizi[X]));
bSwcBul := True;
break;
end;
end;
if bSwcBul = False then
lbSonuc.Items.Add('Aranan Sayı bulunamadı : ' + IntToStr(iArananSayi));
break;
end;
End;
end;
lbBilgi.Items.Add('Bölerek Bulma Süresi : ' + IntToStr(GetTickCount - iSure));
Button1.Caption := 'Başlat';
end;
procedure TForm1.cxbSabitmiClick(Sender: TObject);
begin
pnlSabit.Visible := cxbSabitmi.Checked;
end;
end.
En son adelphiforumz tarafından 24 Kas 2016 11:39 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Array karşılaştırma aynı olan elemanları silme
TArray ile kullanabilirsiniz.
Kod: Tümünü seç
Uses System.Generics.Collections, System.Generics.Defaults;
Kod: Tümünü seç
var
ArrayOfSource : array of string; // kaynak
ArrayOfDestination : array of string; // hedef
I, FIndex : Integer;
begin
SetLength(ArrayOfSource, 1000000);
SetLength(ArrayOfDestination, 500000);
for I := 0 to 999999 do
begin
ArrayOfSource[i] := i.ToString; // kaynak arrayı doldur..
end;
for I := 0 to 499999 do
begin
ArrayOfDestination[i] := i.ToString; // hedef arrayı doldur..
end;
TArray.Sort<String>(ArrayOfSource, TStringComparer.Ordinal); // Kaynak arrayı sırala
TArray.Sort<String>(ArrayOfDestination, TStringComparer.Ordinal); // Hedef arrayı sırala
ListBox1.Items.BeginUpdate;
for I := 0 to Length(ArrayOfSource) -1 do
begin
if TArray.BinarySearch<String>(ArrayOfDestination, ArrayOfSource[I], FIndex, TStringComparer.Ordinal) then // arama yap
begin
ListBox1.Items.Add(ArrayOfDestination[FIndex]); // bulunanları listbox a at..
end;
end;
ListBox1.Items.EndUpdate;
amatör küme programcı
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Array karşılaştırma aynı olan elemanları silme
"barutali" arkadaşımızın dediği yöntemde oldukça hızlı olabilir fakat denemk lazım
fakat yanlış bilmiyorsam kullanılan sınıflar 2014 sonrasındaki delphi sürümlerine eklendi
daha önceki sürümler için yine uğraşmak lazım
fakat yanlış bilmiyorsam kullanılan sınıflar 2014 sonrasındaki delphi sürümlerine eklendi
daha önceki sürümler için yine uğraşmak lazım
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Array karşılaştırma aynı olan elemanları silme
Test sonuçları aşağıdaki şekilde ve optimize edilmiş kod ekte işinize yarar umarımadelphiforumz yazdı:"barutali" arkadaşımızın dediği yöntemde oldukça hızlı olabilir fakat denemk lazım
fakat yanlış bilmiyorsam kullanılan sınıflar 2014 sonrasındaki delphi sürümlerine eklendi
daha önceki sürümler için yine uğraşmak lazım
.DFM
Kod: Tümünü seç
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 411
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 24
Top = 11
Width = 53
Height = 13
Caption = 'Dizi Boyutu'
end
object Label2: TLabel
Left = 24
Top = 36
Width = 61
Height = 13
Caption = 'Arama Say'#305's'#305
end
object Button1: TButton
Left = 14
Top = 116
Width = 161
Height = 25
Caption = 'S'#305'ral'#305' / B'#246'lme Y'#246'ntemi'
TabOrder = 0
OnClick = Button1Click
end
object lbSonuc: TListBox
Left = 202
Top = 183
Width = 383
Height = 175
ItemHeight = 13
TabOrder = 1
end
object lbBilgi: TListBox
Left = 14
Top = 183
Width = 161
Height = 175
ItemHeight = 13
TabOrder = 2
end
object SEDiziBoyutu: TSpinEdit
Left = 118
Top = 8
Width = 111
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 3
Value = 1000000
end
object SEAramaSayisi: TSpinEdit
Left = 118
Top = 31
Width = 111
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 4
Value = 1000
end
object pnlSabit: TPanel
Left = 118
Top = 59
Width = 201
Height = 30
TabOrder = 5
Visible = False
object Label3: TLabel
Left = 3
Top = 6
Width = 72
Height = 13
Caption = 'Aranacak Sabit'
end
object SESabitSayi: TSpinEdit
Left = 81
Top = 3
Width = 111
Height = 22
MaxValue = 0
MinValue = 0
TabOrder = 0
Value = 0
end
end
object cxbSabitmi: TCheckBox
Left = 20
Top = 62
Width = 92
Height = 21
Caption = 'Sabit Say'#305' Ara'
TabOrder = 6
OnClick = cxbSabitmiClick
end
object Button2: TButton
Left = 14
Top = 147
Width = 161
Height = 25
Caption = 'TArray Y'#246'ntemi'
TabOrder = 7
OnClick = Button2Click
end
end
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
Generics.Collections, System.Generics.Defaults,
Vcl.Samples.Spin, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
lbSonuc: TListBox;
lbBilgi: TListBox;
SEDiziBoyutu: TSpinEdit;
Label1: TLabel;
SEAramaSayisi: TSpinEdit;
Label2: TLabel;
pnlSabit: TPanel;
Label3: TLabel;
SESabitSayi: TSpinEdit;
cxbSabitmi: TCheckBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure cxbSabitmiClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Dizi : Array of integer;
I,X, FIndex, iSure, iDiziSayisi, iAramaSayisi, iArananSayi, iLow, iHigh : Integer;
bSwcBul : Boolean;
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer) ;
var
Lo, Hi, Pivot, T: Integer;
begin
Lo := iLo;
Hi := iHi;
Pivot := A[(Lo + Hi) div 2];
repeat
while A[Lo] < Pivot do Inc(Lo) ;
while A[Hi] > Pivot do Dec(Hi) ;
if Lo <= Hi then
begin
T := A[Lo];
A[Lo] := A[Hi];
A[Hi] := T;
Inc(Lo) ;
Dec(Hi) ;
end;
until Lo > Hi;
if Hi > iLo then QuickSort(A, iLo, Hi) ;
if Lo < iHi then QuickSort(A, Lo, iHi) ;
end;
begin
SetLength(Dizi, 1);
iDiziSayisi := SEDiziBoyutu.Value;
iAramaSayisi := SEAramaSayisi.Value;
lbBilgi.Items.Clear;
lbBilgi.Items.Add('-----Sıralı/Bölme Sonuçları-----');
iSure := GetTickCount;
SetLength(Dizi, iDiziSayisi);
for I := 0 to iDiziSayisi - 1 do
begin
Dizi[I] := I;
end;
lbBilgi.Items.Add('Dizi Oluşturma Süresi : ' + IntToStr(GetTickCount - iSure) + '.ms');
iSure := GetTickCount;
QuickSort(Dizi, Low(Dizi), High(Dizi)) ;
lbBilgi.Items.Add('Sıralama süresi : ' + IntToStr(GetTickCount - iSure) + '.ms');
lbSonuc.Items.Clear;
iSure := GetTickCount;
lbSonuc.Items.BeginUpdate;
for I := 0 to iAramaSayisi - 1 do
begin
// Button1.Caption := IntToStr(I);
iArananSayi := Random(iDiziSayisi);
for X := 0 to iDiziSayisi - 1 do
begin
if Dizi[X] = iArananSayi then
begin
lbSonuc.Items.Add(IntToStr(Dizi[X]));
break;
end;
end;
end;
lbSonuc.Items.EndUpdate;
lbBilgi.Items.Add('Sıralı bulma süresi : ' + IntToStr(GetTickCount - iSure) + '.ms');
Application.ProcessMessages;
iSure := GetTickCount;
lbSonuc.Items.Clear;
lbSonuc.Items.BeginUpdate;
for I := 0 to iAramaSayisi - 1 do
begin
// Button1.Caption := IntToStr(I);
if cxbSabitmi.Checked then
iArananSayi := SESabitSayi.Value
else
iArananSayi := Random(iDiziSayisi);
X := 0;
while 1=1 do
begin
if X = 0 then
begin
X := Length(Dizi) div 2;
iHigh := Length(Dizi);
iLow := 1;
end;
if Dizi[X] = iArananSayi then
begin
lbSonuc.Items.Add('Sıra No : ' + IntToStr(I) + ', Index : ' + IntToStr(X) + ', Aranan Sayı : ' + IntToStr(Dizi[X]));
break;
end;
if iArananSayi < Dizi[X] then
iHigh := X
else
iLow := X;
X := iLow + ((iHigh - iLow) div 2);
if ( (X <= 2) or (X = iHigh) or (X = (Length(Dizi) -1)) ) then
begin
bSwcBul := False;
for X := (iLow) to iHigh do
begin
if Dizi[X] = iArananSayi then
begin
lbSonuc.Items.Add('Sıra No x : ' + IntToStr(I) + ', Index : ' + IntToStr(X) + ', Aranan Sayı : ' + IntToStr(Dizi[X]));
bSwcBul := True;
break;
end;
end;
if bSwcBul = False then
lbSonuc.Items.Add('Aranan Sayı bulunamadı : ' + IntToStr(iArananSayi));
break;
end;
End;
end;
lbSonuc.Items.EndUpdate;
lbBilgi.Items.Add('Bölerek Bulma Süresi : ' + IntToStr(GetTickCount - iSure) + '.ms');
Button1.Caption := 'Sıralı / Bölme Yöntemi';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ArrayOfSource : array of string; // kaynak
ArrayOfDestination : array of string; // hedef
I, iSure, FIndex : Integer;
begin
lbBilgi.Items.Add('-----TArray Sonuçları-----');
SetLength(ArrayOfSource, SEDiziBoyutu.Value);
SetLength(ArrayOfDestination, (SEDiziBoyutu.Value div 2));
iSure := GetTickCount;
for I := 0 to (SEDiziBoyutu.Value-1) do
begin
ArrayOfSource[i] := i.ToString; // kaynak arrayı doldur..
end;
lbBilgi.Items.Add('Dizi Oluşturma Süresi 1 : ' + IntToStr(GetTickCount - iSure) + '.ms');
iSure := GetTickCount;
for I := 0 to (SEDiziBoyutu.Value div 2) do
begin
ArrayOfDestination[i] := i.ToString; // hedef arrayı doldur..
end;
lbBilgi.Items.Add('Dizi Oluşturma Süresi 2 : ' + IntToStr(GetTickCount - iSure) + '.ms');
iSure := GetTickCount;
TArray.Sort<String>(ArrayOfSource, TStringComparer.Ordinal); // Kaynak arrayı sırala
lbBilgi.Items.Add('Sıralama süresi 1: ' + IntToStr(GetTickCount - iSure) + '.ms');
iSure := GetTickCount;
TArray.Sort<String>(ArrayOfDestination, TStringComparer.Ordinal); // Hedef arrayı sırala
lbBilgi.Items.Add('Sıralama süresi 2: ' + IntToStr(GetTickCount - iSure) + '.ms');
iSure := GetTickCount;
lbSonuc.Items.BeginUpdate;
for I := 0 to Length(ArrayOfSource) -1 do
begin
if TArray.BinarySearch<String>(ArrayOfDestination, ArrayOfSource[I], FIndex, TStringComparer.Ordinal) then // arama yap
begin
lbSonuc.Items.Add(ArrayOfDestination[FIndex]); // bulunanları listbox a at..
end;
end;
lbSonuc.Items.EndUpdate;
lbBilgi.Items.Add('Bulma Süresi: ' + IntToStr(GetTickCount - iSure) + '.ms');
end;
procedure TForm1.cxbSabitmiClick(Sender: TObject);
begin
pnlSabit.Visible := cxbSabitmi.Checked;
end;
end.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Array karşılaştırma aynı olan elemanları silme
@adelphiforumz ilgi ve paylaşım için teşekkürler
Müsait bir zamanımda inceleyeceğim.
Müsait bir zamanımda inceleyeceğim.