Şimdi Ara

c# txt dosyası karşılaştırma!!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
15
Cevap
0
Favori
3.325
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar C# ile 2 txt dosyasını karşılaştırıp aynı olan kelimeleri ekrana nasıl yazdırabilirim?



  • quote:

    Orijinalden alıntı: vurucu05


    Arkadaşlar C# ile 2 txt dosyasını karşılaştırıp aynı olan kelimeleri ekrana nasıl yazdırabilirim?



    aynı yerde aynı olan kelimeleri mi?
    yoksa arama mı?
  • quote:

    Orijinalden alıntı: kuduk


    quote:

    Orijinalden alıntı: vurucu05


    Arkadaşlar C# ile 2 txt dosyasını karşılaştırıp aynı olan kelimeleri ekrana nasıl yazdırabilirim?



    aynı yerde aynı olan kelimeleri mi?
    yoksa arama mı?



    iki txt dosyasındaki aynı olan kelimeleri bulup ekrana yazdırcak.
  • Ben böyle yapardım;
    1-) 2 txt'yi de oku.
    2-) Okuduğun yazıyı bir string'e at.
    3-) string[] txtDizi1 = txt1.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); fonksiyonu ile 2 tane dizi elde et.
    4-) Artık elinde 2 txt dosyasınında tüm kelimeleri bir dizide. İç içe döngü ile çok rahat arayabilirsin.
  • Hocam bu yöntemle yaptım ama 40320 adet kelimeyi 62500 kelime içinde arama yapmam lazım o yüzden çok yavaş oluyor.Daha iyi açıklamam gerekirse txt1 in içinde 40320 kelime var ve bu kelimelerden birtanesi txt2 dosyasında bulunan 62500 kelimeden bir tanesiyle aynı, bu aynı olan kelimeyi bulup ekrana yazdırcak. bunun daha hızlı yapabilcem bi karşılaştırma yöntemi yok mu? Veri tabanı kullansam hızlı olur mu?

    ben txtleri diziye aktarıp şu yöntemi kullandım:

    for(int k=0;k<40320;k++)
    for(int j=0;j<62500;j++)
    {
    if(dizi[k] == dizi2[j])
    {
    kelime=dizi[k];
    messageBox.Show(kelime);
    }
    }

    bu yöntem çok yavaş olduğu için verimsiz.Daha hızlı nasıl yaptırabilirim?



    < Bu mesaj bu kişi tarafından değiştirildi vurucu05 -- 20 Mayıs 2010; 18:46:09 >
  • hash table kullan bu sorununu çözecektir;)

    Murat AKKAN |mSharp
    Bilgisayar Mühendisi

    http://www.muratakkan.net



    < Bu mesaj bu kişi tarafından değiştirildi msharp -- 20 Mayıs 2010; 18:41:39 >
  • Diziye atmak mı uzun sürüyor? Yoksa taramak mı? Eğer diziye atmak kısa sürüyorsa Array.Sort işlemi ile yapabilirsin. (Tabi string dizisini destekliyorsa). Ondan sonra kelimeyi daha hızlı bulursun diye tahmin ediyorum. Açıkcası kullanmadım hiç ama daha hızlı sonuç elde edersin diye umuyorum.

    NOT: Yaptıktan sonra bilgilendirirsen sevinirim :)
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • Diziye atmak çok kısa sürüyor ama taraması çok uzun sürüyor. array.sort dizileri sıralıyor diye biliyorum nasıl kullanacağımki karşılaştırmada?
  • Array.Sort ettikten sonra Array.BinarySearch ile daha kısa sürede bulursun bulmak istediğin kelimeyi.
  • Dediğinizi bir araştırayım bende kullanmadığım için pek bilgim yok.
  • verdiğiniz bilgi için saolun dediğiniz yöntem daha hızlı çözdü.
  • indeks kullanaraz belirgin bir biçimde hızlanırsınız.

    eğer ki c# 2 ve üzerinde yer alan özel fonksiyon ve çözümleri kullanmaktan kaçınıyorsanız;

    bir matrisin birinci boyutunu kelimelerin ilk harfleri , ikincisini ise ayırdığınız kelimeleri kümelemek için iki boyutlu bir matris oluşturun:http://msdn.microsoft.com/es-es/library/aa288453(VS.71).aspx
    daha sonra her iki text dosyasındaki kelimeleri matrise ilk harflerine göre atın
    matrisin boyutlarını karşılık gelen boyut içinde çift döngü ile arayın



    < Bu mesaj bu kişi tarafından değiştirildi kuduk -- 20 Mayıs 2010; 22:09:58 >
  • quote:

    Orijinalden alıntı: kuduk

    indeks kullanaraz belirgin bir biçimde hızlanırsınız.

    eğer ki c# 2 ve üzerinde yer alan özel fonksiyon ve çözümleri kullanmaktan kaçınıyorsanız;

    bir matrisin birinci boyutunu kelimelerin ilk harfleri , ikincisini ise ayırdığınız kelimeleri kümelemek için iki boyutlu bir matris oluşturun:http://msdn.microsoft.com/es-es/library/aa288453(VS.71).aspx
    daha sonra her iki text dosyasındaki kelimeleri matrise ilk harflerine göre atın
    matrisin boyutlarını karşılık gelen boyut içinde çift döngü ile arayın


    ilginiz için teşekkürler ama söylediğiniz olayı biraz daha açar mısınız?




  • quote:

    Orijinalden alıntı: vurucu05

    verdiğiniz bilgi için saolun dediğiniz yöntem daha hızlı çözdü.

    Rica ederim. İyi çalışmalar...
  • text dosyasından kelimeleri boşlukları bulup ayırırken ilk baştaki harf kaçıncı harf ise o harfe ait array e atın. daha sonra a harfi ile başlayan ali kelimesini 2. text dosyasının a array i içinde arayın.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.