Bilgisayar-Bilişim Teknolojileri
Ana Sayfa
Bilişim Teknolojileri Forumu Son Konuları
24 Saat
Bilişim Teknolojileri - Formatör - Bilgisayar Öğretmeni Kayıt
Kayıt Olun
iletişim
iletişim
Detaylı Arama
Arama

Asp.net'te aşanların yardımını bekliyorum ...

Konu, 'Web Programlama' kısmında ulutas55 tarafından paylaşıldı.


Sayfayı Paylaş /bbnetsosyal

  1. ulutas55

    ulutas55 Site Gezgini

    Kayıt:
    21 Şubat 2008
    Mesajlar:
    95
    Beğeni:
    0
    İyi akşamlar arkadaşlar.
    Asp.net C# ta resimde görüldüğü gibi bir uygulama yapmak istiyorum. Fakat planlama yaparken bir noktaya gelince artık insan tıkanıyor ve her defasında sıfıra dönmek zorunda kalıyorum.
    Son çare ustalardan yardım istemeye karar verdim :D

    Kısaca olayı anlatayım;

    web sayfamda ingilizce bir hikaye var. Bu hikaye veritabanımda hikaye tablomda saklı. veritabanımda ikinci bir tablo daha var ve tüm ingilizce kelimeler ve türkçeleri burada saklı.

    Olay şu;
    öğrenci hikayeyi okurken takıldığı kelimelerin üstüne fareyle geldiği anda açılan bir popup'ta Türkçesi anında görünecek. Hikayedeki tüm kelimelere bir nevi link verilmiş ve onmouse durumunda pencere açılmış gibi birşey olacak.

    Bu konuda öneri ve fikirlere çok ihtiyacım var.
     

    Ekli Dosyalar:

  2. SoftGe

    SoftGe Süper Üye Süper Üye

    Kayıt:
    18 Eylül 2007
    Mesajlar:
    1.206
    Beğeni:
    4
    hocam bu veritabanında kelime sayısı kadar sorgu yaparak sayfayı yüklemek demek,
    onun yerine tıklanan kelime modal popup ile açılsa ve o pencerede hem kelimenin anlamı ve detay versen daha sağlıklı olacağı kanaatindeyim
     
  3. endoplazmik bi kulum

    endoplazmik bi kulum Site Gezgini

    Kayıt:
    10 Ocak 2011
    Mesajlar:
    98
    Beğeni:
    0
    sadece c# ile yapılabilir mi bilmem ama jquery ile sayfa yenilenmeden kelime üzerine gelindiğinde baloncuk açılıp içi veritabanından gelecek şekilde bir sorgu ile jquery yardımıyla istediğiniz uygulamayı yapabilirsiniz..
     
  4. glassic

    glassic Aktif Üye

    Kayıt:
    20 Mart 2008
    Mesajlar:
    229
    Beğeni:
    0
    Kod:
    public partial class _Default : System.Web.UI.Page 
    {
        string hikaye = "When i was a young man, i traveled all of the world.";
        protected void Page_Load(object sender, EventArgs e)
        {
            int i = 0, x = 0, bosluk= 0;
            string kelime = "";
            string link = "";
            for (i = 1; i < 100; i++)
            {
                bosluk = hikaye.IndexOf(" ");
                if (bosluk > 0)
                {
                    kelime = hikaye.Substring(x, bosluk);
                    hikaye = hikaye.Substring(bosluk + 1, hikaye.Length - bosluk - 1);
                }
                else
                {
                    kelime = hikaye;
                    i = 100;
                }
                link = "http://translate.google.com/#en/tr/" + kelime;
                Response.Write("<a href = '" + link + "' >" + kelime + " </a>");
            }
        }
     

    Ekli Dosyalar:

  5. ulutas55

    ulutas55 Site Gezgini

    Kayıt:
    21 Şubat 2008
    Mesajlar:
    95
    Beğeni:
    0
    @celikumit hocam, benim kafamdan geçende ilk bahsettiğiniz olaydı. Tek hücredeki hikayeyi boşluklarısaydırarak bir dizi içine alıp kelime sayısı kadar link oluşturup veritabanından kontrol ederek tooltip'te göstermekti. Ama kelimelere döngü yardımıyla link verme olayını çözemedim. modal popup yapmak istesem kelimeye link verme nasıl olacak?

    Hocam jquery'e pek hakim değilim ve işin diğer boyutu ve benim tıkandığım nokta; kelimelere teker teker nasıl link verebiliriz?
    Aslında sizin söylediğiniz şey tam benim aradığım olay 8) örnek uygulamanız varsa çok yardımcı olur bana :)


    @glassic hocam öncelikle sizin bu uygulama bayağı yol gösterici oldu sağolun.
    fakat benim yapmaya çalıştığım, bu kelimelerin üzerine geldiğimde Google Translate 'e gitmeden veritabanında tablolardan kelimenin karşılığını bulup bir tooltip, popup, messagebox yada benzeri bir nesnede göstermesi.
    birde burda ufak bir sorun olacak. kelimenin sonundaki noktalama işaretleri...


    Arkadaşlar cevaplarınız için çok sağolun. Allah razı olsun :alkis:
    Gerçi sabah 7:20 den akşam 22:20 ye kadar dersten sonra pek sağlıklı düşünemiyorum. sabah sakin kafayla bi daha incelerim.
    Tekrar çok teşekkür ederim :)
     
  6. ulutas55

    ulutas55 Site Gezgini

    Kayıt:
    21 Şubat 2008
    Mesajlar:
    95
    Beğeni:
    0
    Güncel ... :?
     
  7. ulutas55

    ulutas55 Site Gezgini

    Kayıt:
    21 Şubat 2008
    Mesajlar:
    95
    Beğeni:
    0
    güncel ...
     
  8. burhansenyuva

    burhansenyuva Seçkin Üye Seçkin Üye

    Kayıt:
    13 Şubat 2008
    Mesajlar:
    610
    Beğeni:
    0
    Hocam merhaba;

    Size kod olarak yardımcı olamayabilirim belki ancak yaklaşımda bir şeyler aktarabilirim sanırım. Sizin yapmak istediğiniz kelime çalışması ingilizce
    çeviri olacak ben bilmediğimden örneklerimi Türkçe vereceğim ama yaklaşımları algılayacaksınızdır diye tahmin ediyorum.


    Öncelikle şu sorunlarınıza cevap veriniz.

    - Cümleler kurallı mı yazılacak ?
    - İmla hataları olacak mı ?
    - Cümle sonlarında nokta olacak mı?
    - Boşluklar düzenli konulacak mı?
    - Virgülden sonra boşluk kullanılacak mı?

    Eğer bu gibi sorularınıza cevabınız evet ise (Yani kelime okuma hedefiniz profesyonelce olmayacaksa), Kelimeleri algılamanız için boşluk saymanız gerekir. Peki Boşluk sayarsak ne olacak.

    Ben, bir kalem satın aldım.

    - Yukarıda ki cümlede boşluk saydırarak diziniz de "Ben, " "bir " "kalem " "satın " "aldım." Şeklinde bir sonuca ulaşırsınız. Yani bu demek oluyor ki, sizin boşluk saydırarak kelime yakaladıktan sonra imladan da arındırmanız gerekir. Bu işin ikinci kısmıdır. Bu aşamada ise

    for (x=1; x<=kelimeuzunluk;x++)
    if (NOT(Kelimeninharfi==" " or Kelimeninharfi=="," or Kelimeninharfi==";".......))
    bufferkelime= bufferkelime + kelimeninharfi

    yukarıda ki kod çalışmaz onu diyeyim öncelikle size şunu anlatır ama; Boşluk ile yakaladığım kelimeyi harf harf kontol et ve bak eğer o harf 3. karaktere tekabül ediyorsa (, ; " " gibi) buffera kelimeyi alma yoksa al. "Ben, " kelimesini işlediğinizde elinizde son olarak "ben" hali ile kalacaktır ve artık veritabanı kontrol aşamasına gelebilirsiniz. İşin mesaj kısmında sanırım diğer arkadaşlar daha yardımcı olacaktır.

    Farklı bir cümle ele alırsak;

    O an bakakaldım.

    Şimdi yukarıdaki cümleyi boşluk saydırarak hesaplarsak "O " "an " "bakakaldım." şeklinde olacaktır diziniz. Farkettiyseniz bizim çeviri için kullanacağımız "O an" kelimesi boşluk tarama yüzünden "O " ve "an " şeklinde çıktı. Yani "O" kelimesi sanki üçüncü tekil şahışmış gibi durdu aslında kelime "O an"
    idi. Böyle bir durumda boşluk saydırmak da pek bir anlam ifade etmeyecektir. İngilizcede de buna benzer durumlar mevcuttur tahminimce.

    Farklı bir cümle ele alırsak;

    Şair; "- İstanbul'u dinliyorum gözlerim kapalı." dedi.


    Yukarıdaki cümlede "İstanbul'u " kelimesi bir isim ifadesi taşıyor. burada az önce bahsettiğim kelimenin harflerini bul dediğimizdeki kısımda kelimeniz
    "İstanbulu" şeklinde çıkacaktır. Muhtemelen de veritabanınızda siz bu şekilde kaydetmeyeceksiniz.


    Farklı bir husus ingilizce çevirttiğim kelimeye bakarsak;

    İstanbul'u dinliyorum gözlerim kapalı. kelimesini çevirttim
    I listen to Istanbul, my eyes closed şeklinde çıktı

    Yukarıdaki cümlede almış olduğunuz "eyes" kelimesi gözler anlamı taşıyor. Sizin veritabanınızda eye olarak mı duracak yoksa
    eye: göz
    eyes: gözler
    şeklinde mi. BU şekilde ek almış kelimeler için ne düşünüyorsunuz.


    Son Cümle

    kapak örtüsünü koy Google çeviri ile sonucu

    Put the valve cover çıkıyor.

    valve: subap, valf
    cover: kapak, örtü
    the valve: örtüsünü
    the cover: kapak

    yukarıdaki cümlede kelimelerinizi aldınız. "valve" kelimesini veritabanında ararken ilk bulduğunuz sutunu döndüreceksiniz tahminimce
    Sonuç ne çıkacak bakalım.Doğrudan kelimenin ilk sorgu halini aldık ve yanlış çıktı.


    Subap kapağını koy.


    Yine yukarıdaki cümle için bir husus daha var ki anlamları aynı yazılışları farklı kelimeler. Şimdi ;

    cover: kapak, örtü

    Put the valve cover kelimesinin

    put the cover cover. Yukarıda saydıklarımıza göre bu cümlede sorun yok demektir. Ama valve yerine cover var artık. Çünkü aynı anlamları da
    üstleniyorlar.
    Bu durumda Türkçe
    Örtü örtüsünü ört. Çıkar buda bizim cümlemiz değil...

    Son olarak "the" kelimesini ney olarak alacaksınız. farzedelim "put" koymak anlamı taşır. "put the" dersek de koy olur. Şimdi siz
    put diye mi arayacaksınız yoksa put the diye mi.


    Şimdi sayın hocam; tekrar yinelemekte fayda görüyorum. Türkçe veya İngilizce yazdığım cümlelelerde hatalar olabilir. Çok takılmayın
    o kısma. Size anlatmak istediklerime yoğunlaşmaya çalışın. Saymış olduklarımda gördüğünüz gibi kelime işlemci programlarının içine girdikçe
    çok fazla kıstas ortaya çıkıyor ki zaten sizin kodlamaya hep en başa dönmenizin sebebide budur. Bana sorarsanız;

    Öncelikle Arama mantığınızı oturtun,

    kelimeyi nasıl arayacak (veritabanındaki ilk kaydı mı getirecek yoksa cümledeki anlamını mı bulacak)
    Kelimenin eklerini arayacak mı
    kelime cümle içerisinde nasıl bulunacak.
    Noktalama işaretlerini siz mi koyacaksınız.
    Yazdığını cümleler kurallı mı olacak.
    Eğer uzun uzun metinler yazacaksanız bu boşluk sayarak kelime bulma olayı döngünüzün uzun olmasına sebep verir ki birbirine bağlı bence
    en az 3 döngü ile kelimenin eksiz ve imlasız haline ulaşırsınız. Bu da yorabilir programı...

    Kısaca, size şunu diyebilirim, herşeyden önce algoritma kısmında arama kriterlerinizi belirtin. Ondan sonra kelime bulma tarzınızı
    çıkartın sonrasında da kodlamaya geçin. Bir örnek vermek gerekirse

    her kelimenin önüne

    "1 My" "2 name" "3 is" "x Burhan" şeklinde rakamlar korsunuz sonra bu rakamları yakalarsınız. ve dersiniz ki

    "1 Benim" "2 İsim" "3 dir" "x Burhan" bu sizin için yeterli ise bir yoldur.

    Farklı bir yöntem olarak hikayelerin ingilizce ve Türkçe metinlerini barındırırsınız.

    C1: 1. cümleyi ifade eder
    C1K1:C cümlesindeki 1. kelimeyi ifade eder.

    C1("C1K1 My" "C1K2 name" "C1K3 İs" "CKx Burhan")

    buradan ne çıkartırsınız. C1 i bildiğiniz için cümlenin en anlamlı halini gösterebilirsiniz

    - Benim adım burhandır

    Kelime olarakda name is üzerine geldiğinde
    is kelimesi ondan sonraki kelimeye dır dir anlamı kattığından

    C1K3 var ise sonraki kelimeyi de alıp ( C1Kx ) birleştirerek yazdırabilirsiniz.

    "BUrhandır".
    --- BU örnek size yönetimi tamamen ele alma kavramını gerektirir.

    Başka örnek arkadaşlarında dediği gibi google translate yardımı ile buldurmak

    Bunun dışında 8 farklı arama tekniği var programlama derslerinde anlatılan. Bunlardan birini kullanarak veritabanı arama hızınızı arttırabilirsiniz.

    Gördüğünüz gibi yöntem bulma konusu kolay. Siz önce nasıl bir yönetim ve arama mantığı kuracağınıza karar verin.
    Yazdıklarım baya oldu, Umarım gereksiz bilgi vermemişimdir. İyi çalışmalar.
     
  9. dndd

    dndd Süper Üye Süper Üye

    Kayıt:
    28 Ağustos 2009
    Mesajlar:
    1.496
    Beğeni:
    30
    bir fikrim var :idea:
    sayfa yüklenirken tablodan tüm kelimeleri çekip bir diziye yüklersin sonra bu dizideki elemanları javascripte aktarıp herkelime için onload özelliğinde js de sorgulatır sonucu js de verirsin böylece her kelime için sorgu yapmak zorunda kalmazsın
    Kod:
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function popup(ms) { //v1.0
    var trk = new Array;
    var ing = new Array;
    trk[0]="hakkinda";
    ing[0]="about";
    trk[1]="orman";
    ing[1]="jungle";
    trk[2]="bir";
    ing[2]="one";
    trk[3]="aslan";
    ing[3]="lion";
    trk[4]="aslan";
    ing[4]="lion";
    
    for (s = 0; s <= 4; ++s )
    {
    if(ms==ing[s])
    {
    msg=trk[s];
    alert(msg);
    break;
      }}
    }
    function kapa() {
    window.close;
    }
    //-->
    </script>
    
    
    <a href="#" onMouseOver="popup('one')" onMouseOut="kapa">one</a> 
    <a href="#" onMouseOver="popup('jungle')" onMouseOut="kapa">jungle</a> 
    <a href="#" onMouseOver="popup('lion')" onMouseOut="kapa">lion</a> 
    
    burda
    trk[0]="hakkinda";
    ing[0]="about";
    trk[1]="orman";
    ing[1]="jungle";
    trk[2]="bir";
    ...
    kısmını değiştirip bir eof döngü açıp veritabanından çektiğin değerleri aktarmalısın
    trk=<%turcesi%>
    ing=<%ingilizcesi%>

    gibi

    tabi bu durumda hikayeyi kelime kelime yazdırman lazım buda biraz sıkıntılı göründü şimdi gözüme
    birde bu window.alert le pek hoş olmuyor jquery felan kullanman lazım
    :)
     
  10. SoftGe

    SoftGe Süper Üye Süper Üye

    Kayıt:
    18 Eylül 2007
    Mesajlar:
    1.206
    Beğeni:
    4
    hocam sözlükte kaç bin kelime var,
    jquery ilede yapsan farketmez,
    anlık üzerine gelince gösterecekse bir şekilde veritabanındaki tüm kelimeler yüklenecek,
    yapılamazmı yapılır zor değil ama çok kullanıcılı sistemde bu şekilde yaparsan aşırı yüklenirsin

    bendim dediğim şu hocam son derece basit ve veritabanını en az meşgul eden yöntem
    nasıl yapacğın konusunda ise
    split ile cümleyi kelimelere ayırır cümleyi diziye veya kolleksiyona ayırırsın,
    code behinde bunu gönderir ve replace metodu ile bunu htmnl koda döüştürü link verirsin
    örneğin
    veritabanından okuduğun kelime başarı olsun sana html olarak
    <a href='sozcukanlami.aspx?kelime=başarı>başarı</a>
    şekline dönüştürüp sayfaya yazarsın,
    popup pencereye paramete gideceğincen yapacağın tek şey sozcukanlami.aspx sayfanda bu sözcükle ilgili istediğin bilgileri vermek
    hem bu sayede tüm dönüşün işlemi sozcukanlami.aspx de oalcağından daha sonra örnek kullanımlar detaylar vs de görüntülersin,
    fırsat bulursam bir örnekde hazırlar eklerim
    asp.nette popup pencereyle ilgli bir sürü dökümanda bulursun zaten
     
  11. ulutas55

    ulutas55 Site Gezgini

    Kayıt:
    21 Şubat 2008
    Mesajlar:
    95
    Beğeni:
    0
    hocam örnek olursa çok güzel olur.minnettar kalırım :)

    hikayeyi diziye atıyorum. böldükten sonra kelimeleri tabloda arayıp yükleme kısmında kafam karışıyor ve işin içinden çıkamıyorum.
     

Sayfayı Paylaş /bbnetsosyal