Tam Sürümünü Görmek İçin : Delphi'de nasıl Wilcard arama yapabilirim? ('Ali * yakala' gibi)
Sedat Atif
08/01/2003, 16:43
Merhaba,
Delphi'de nasıl Wilcard arama yapabilirim? (Joker karakter, *, ? vb)
Mesela
(1)
edit1.text:='Ali * yakala' olduğu zaman
program
Ali topu yakala
Ali Veliyi yakala
Ali kediyi yakala
Ali onu yakala
gibi sonuçları bulabilecek.
(2)
edit1.text:='Ali topu yakala' olduğu zaman
bunun 'Ali * yakala' olduğunu anlayacak.
Teşekkürler.
Saygılar sunarım.
CrazyCat
08/01/2003, 16:57
Aramayı nerde yaptıracaksın Vt de mi? yoksa herhangi bir text dosyasında falan mı?
Sedat Atif
08/01/2003, 20:42
Hızlı cevap için teşekkürler.
-
Farklı farklı yerlerde
mesela
(1) memo1.lines.text
(2) belli bir string'in içinde.
(3) memo1.lines.values içinde
<not> Veritabanı için sormuyorum </not>
Saygılar.
CrazyCat
09/01/2003, 20:27
belli bir string içinde aram yapacaksan aklıma ilk pascal da Knuth-Morris-Pratt String Search algoritması geldi. geçen de bi okumuştum biraz karışık ama hızlı çalışıyor.
temelde algoritma için kullanılan kodlar şöyle
i:=0;j:=0;
WHILE <j>M)&(i>N) DO
(*Q(i-j)&(Pi-j,j)*)
WHILE(j>=0)&(s[i]#p(j) DO j:=D END;
i:=i+1;j=j+1
END
P(i,j)=Ak:0<=k<j:Si+k=Pk
Q(i)=Ak:0<=k<i:~P(k,M)
olacak
:)
tam kodlar biras uzun olacak sanırım o şimdilik temelini yasdım.
delphi için özel bir komut varmı bilmiyorum ama istersen bunun yerine pascalda kullanılan Pos() fonksiyonu ile yalap şalap bişeler yazabilirsin.
pascal ve delpiye uzun süredir el sürmüyorum ama fırsat bulursam bu dönem biraz hatırlama çalışmaları yapıcam :)
kolay gelsin.:)
Sedat Atif
09/01/2003, 23:00
Çok teşekkür ederim. Delphi ile ilgilenen başka birilerini görmek güzel. :super:
Yalnız,
(1)Bu kodu pek anlayamadım.
(2)P(i,j)=Ak:0<=k<j:Si+k=Pk
Q(i)=Ak:0<=k<i:~P(k,M)
olacak demişsin, nedir bu?
(3)Elinde bir örnek varsa linkini verir misin?
Tekrar teşekkür ederim.
Saygılar.
<kişiselfikir> Bildiğim birşeyi ilgisizlikten dolayı unutursam onu öğrenmek için harcadığım vakti çöpe atmış olurum. </kişiselfikir>
CrazyCat
10/01/2003, 12:24
Örnek kod var fakat kağıt üzerinde bir ara fırsat bulursam yazarım. biraz uzunca.
kodlar pascal için düşünülmüş ama bir iki değişiklikle Delphide çalışır sanırım.
bu arada
http://www.torry.net/vcl/vcltools/sorters/mtsearch.zip
adresinde bir örnek var Boyer-More un string-search algoritmasından iki kat daha hızlı olduğunu idda ediyorlar. indirip bir dene istersen.
boyer-moore içinde bir örnek var ama yine yazmam gerekecek :)
Niklaus Wirth'in Algorithms & Data Structures kitabında var her ikiside. Yanlız ilk okuduğumda anlamamıştım biraz karışık geldi bana.
KMP (Knuth-Morris-Pratt String Search ) algoritması en çok kullanılan yöntemlerden birisi. karmaşıklığı arama makinesi kurduktan sonra O(N) oluyor. zaten can alıcı noktası arama makinesi kurmakta :) arama makinesinin de temeli o meşhur Durum Maiknesine dayanıyor :)
KMP algoritması için daha geniş türkçe açıklama bulurum diye diğer algoritma kitaplarına baktım ama yerli olanlar konu oraya gelince kıvırtmışlar :D
sen dediğim gibi en ii si linkteki örneği indirip incele.
Bu arada bişeleri unutmamak için kullanmak gerekiyor bazen kullanmıyacaksan öğrenmemek en ii si ama bazende elinde olmadan öğrenmek zorunda kalıyorsun. Keşke herkez sadece bir konuda uzmanlaşacak kadar vakti ve nakti olsa :D
kolay gelsin :)
Sedat Atif
14/02/2003, 21:11
Yardımların için çok teşekkür ederim CrazyCat.
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.