TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
mahsuni
Üye
Mesajlar: 99
Kayıt: 21 Haz 2003 01:09
Konum: Ankara-Mamak

Re: TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Mesaj gönderen mahsuni »

Çok teşekkür ederim.
Sizlerin değerli fikirleri sayesinde bir çok sorunu aştım.
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Mesaj gönderen ikra »

eyvallah
kıdemsiz üye
mahsuni
Üye
Mesajlar: 99
Kayıt: 21 Haz 2003 01:09
Konum: Ankara-Mamak

Re: TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Mesaj gönderen mahsuni »

Belki bu konun dışında olacak,

Pointer ile var parametleri arasındaki fark nedir.

Kod: Tümünü seç

procedure topla(var X:integer)
begin
....
end;

procedure topla( X:^integer)
begin
....
end;
aradaki fark nedir. ikiside procedure adresi gönderiyor.

Matrislerle işlerim var. Kodlarımın olabildikçe hızlı çalışması lazım.

Birde matris işlemlerini assembly ile nasıl yapabiliriz
Bu konu hakkında fikirlerinizi almak isterim.
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Mesaj gönderen ikra »

matris nedir bilmem. hatta bildigim konularin isimlerini dahi bilmem. hicbir seyi ingilizce olarak okumam. yazildigi gibi okurum. ingilizler, amerikalilar türkce ögrensinler prensibimden okulda dahi ödün vermeyip sinavlara girmedim.

assembly hic yazmadim.

var variable yani degiskenin kendisi dir. pointer ise, degiskenin adresi dir. pointerler ile calistiginda, hicbir araci olmadan direkt adrese yazabilirsin.
^integer yerine PInteger sekline parametre olarak gönderebilirsin.

parametre olarak gönderilen (var ile tanimlanmis) degiskenlere, gönderilen prosedür yada fonksyon icinde deger atanabilir. örnegin bir fonksyon sadece result döndürürken, var parametresiyle tanimlanmis fonksyon (var AName: String): String; hem result olarak string, hem de AName ile ikinci bir string deger döndürebilir. prosedür icin de ayni sey gecerlidir.

pointerlerin cok daha hizli olduklari konusunda duyumlarim var. mikro saniyeler ile ölcümlenecek hizlarin, bizim yazdigimiz (örn. masa üstü) programlarda nasil etki edecegi tartisilir.
kıdemsiz üye
mahsuni
Üye
Mesajlar: 99
Kayıt: 21 Haz 2003 01:09
Konum: Ankara-Mamak

Re: TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Mesaj gönderen mahsuni »

En sonunda Dephi7 ye veda ettim.
10.2. Tokyo sürümüne geçtim.
Artık TDictionary nesnesini kullanmaya başladım.

İsteğimi bir örnekle açıklamak istiyorum.

Kod: Tümünü seç

Adı,Sno:Integer;
key:Adı+Sno
Adı Sno values
1    1    v1
1    2    v2
1    3    v3
2    1    v4
2    2    v.
3    3    v.
Bu kayıtlar TDictionary eklenecek

Adı 1 olanları isteyince ilgili ilk üç kayda ait değerleri getirtmek istiyorum.

Bu işlemi TDictionary ile nasıl yapabilirim.

Kod: Tümünü seç

Not:
key:=Adi+'-'+sno;
Dictionary.Add(key,values); 
olacak şekilde işlem yaptım.
Bunun başka bir yöntemi olması lazım.
ertank
Kıdemli Üye
Mesajlar: 1653
Kayıt: 12 Eyl 2015 12:45

Re: TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Mesaj gönderen ertank »

Merhaba,

TDictionary adı üzerinde sözlük gibi çalışır. Sözlükte bir kelime arayıp açıklamasını okursunuz. TDictionary de yanı şekilde bir değer arar değerini okursunuz. TDictionary'de aynı değeri iki defa saklamanız bilgim dahlinde mümkün değil.

Sizin istediğiniz veritabanı işlemlerine daha uygun gözüküyor. Amacınızı gözden geçirip memory table benzeri bir çözüm düşünmenizde fayda var diye düşünüyorum.
En son ertank tarafından 15 Tem 2021 07:21 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
mahsuni
Üye
Mesajlar: 99
Kayıt: 21 Haz 2003 01:09
Konum: Ankara-Mamak

Re: TStringList arama ve hızlandırma veya yeni bir bileşen önerisi

Mesaj gönderen mahsuni »

Ertank tşk ederim.

key:string

Kod: Tümünü seç

Adi+'-'+sno
ile tek olacak şekilde amatörce çözdüm.
Belki bilmediğimiz başka bir yöntem varsa onu öğrenmek istemiştim.

Sağ olun.
Cevapla