Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Delphi'de nasıl Wilcard arama yapabilirim? ('Ali * yakala' gibi)

Konu, 'Pascal / Delphi / Delphi.NET' kısmında Sedat Atif tarafından paylaşıldı.

  1. Sedat Atif

    Sedat Atif Daimi Üye

    Kayıt:
    26 Ekim 2002
    Mesajlar:
    622
    Beğenilen Mesajlar:
    0
    Meslek:
    Öcü
    Şehir:
    Fâni bir yer
    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.
     
  2. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    Aramayı nerde yaptıracaksın Vt de mi? yoksa herhangi bir text dosyasında falan mı?
     
  3. Sedat Atif

    Sedat Atif Daimi Üye

    Kayıt:
    26 Ekim 2002
    Mesajlar:
    622
    Beğenilen Mesajlar:
    0
    Meslek:
    Öcü
    Şehir:
    Fâni bir yer
    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.
     
  4. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    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

    Kod:
    
    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.:)
     
  5. Sedat Atif

    Sedat Atif Daimi Üye

    Kayıt:
    26 Ekim 2002
    Mesajlar:
    622
    Beğenilen Mesajlar:
    0
    Meslek:
    Öcü
    Şehir:
    Fâni bir yer
    Ç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>
     
  6. CrazyCat

    CrazyCat Daimi Üye

    Kayıt:
    25 Temmuz 2002
    Mesajlar:
    653
    Beğenilen Mesajlar:
    0
    Meslek:
    lecturer
    Şehir:
    Adana
    Ö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 :)
     
  7. Sedat Atif

    Sedat Atif Daimi Üye

    Kayıt:
    26 Ekim 2002
    Mesajlar:
    622
    Beğenilen Mesajlar:
    0
    Meslek:
    Öcü
    Şehir:
    Fâni bir yer
    Yardımların için çok teşekkür ederim CrazyCat.