none
Excel'den Belirli Şartlara Göre Veri Alıp Metin Belgesine yazdırma RRS feed

  • Soru

  • Kelime programı üzerinde çalışıyordum. Bir yerden kelime veri tabanını buldum(xls) Excel'den bu verileri şu şartla çekmek istiyorum 

    Minimum 3 Hafli Kelimeleri Maximum 13 harfli kelimeleri seçicek Örneğin kelime abusluk,-ğu gibi ise sadece abusluk kısmını alıcak yani virgülden öncekini birde abur cubur gibi boşluklu kelimeyse kelimeyi almayacak.

    Bunu nasıl yapabilirim ? internette araştırdım sadece veri çekme var ve veri tabanı işlemlerini neredeyse hiç bilmiyorum.

    18 Nisan 2013 Perşembe 18:26

Yanıtlar

  • StreamReader'ın overloads'ına gözat. Encoding kullanman gerek.

    http://msdn.microsoft.com/tr-tr/library/3aadshsx.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

    • Yanıt Olarak İşaretleyen AzizUtku 18 Nisan 2013 Perşembe 20:05
    18 Nisan 2013 Perşembe 19:57
    Moderatör

Tüm Yanıtlar

  • Excellin makrolarını mı kullanmak istiyon yoksa Windos programlama(c# la) yapmak isitiyon.
    18 Nisan 2013 Perşembe 18:53
  • Hocam excel'den veri okuyup metin belgesine yazdıracaktım. Excel'den biraz karışık herhalde o yüzden kopyalayıp metin belgesine yapıştırdım. Metin belgesinden okuyup şartlara uygun bir şekilde başka metin belgesine yazdırdım. Ama özel harfleri işaretlerle gösteriyor örneğin abacı ' yı abac� olarak yazmış. Bunu nasıl düzeltebilirim ? Kodlar bunlar:

    Not: Debug ettim okurken abac� diye okuyor, yazarken problem yok ne yapabilirim ?

    int virgul; int bosluk; StreamReader SR; StreamWriter yaz = new StreamWriter("C:\\Users\\utkuaziz\\Desktop\\YeniKelimeler.txt"); string S; SR = File.OpenText("C:\\Users\\utkuaziz\\Desktop\\Kelimeler.txt"); S = SR.ReadLine(); while (S != null) { virgul=S.IndexOf(','); bosluk = S.IndexOf(' ');

    //Boşluk yoksa devam ediyor if (bosluk==-1) { //Virgül Yoksa Devam Ediyor if (virgul==-1) {

    //Kelime uzunluğu 2-13 arasında ise devam ediyor. if (S.Length > 2 && S.Length < 13) { yaz.WriteLine(S); } } else {

    //Virgülden sonrakini siliyor S.Remove(virgul); // //Kelime uzunluğu 2-13 arasında ise devam ediyor. if (S.Length > 2 && S.Length < 13) { yaz.WriteLine(S); } } } S = SR.ReadLine(); } MessageBox.Show("Bitti"); yaz.Close(); SR.Close();



    • Düzenleyen AzizUtku 18 Nisan 2013 Perşembe 19:19
    18 Nisan 2013 Perşembe 19:01
  • Bu kelime programın tam olarak ne yapacak? Metin belgesine aktardığın zaman kelimeler ne işine yarayacak? Yapmak istediğinle ilgili bilgi verirsen, daha sağlıklı yönlendirme yapabilir arkadaşlar.
    18 Nisan 2013 Perşembe 19:35
    Moderatör
  • Kullanıcının verdiği karışık harfleri içeren kelimeler bulucak. Örneğin kullanıcı HBACYUFEM yazıcak program bu harflerin bir kısmını veya hepsini içeren kelimeler üreticek CAM - HEY gibi . Hocam yukarıda verdiğim kodla hallettim kelimeleri düzenlemeyi ama dediğim gibi Türkçe Karakterleri düzgün okumuyor bunun sebebi ne olabilir ? abacı ' yı abac� diye okuyor bunu nasıl çözebilirim ?
    18 Nisan 2013 Perşembe 19:41
  • StreamReader'ın overloads'ına gözat. Encoding kullanman gerek.

    http://msdn.microsoft.com/tr-tr/library/3aadshsx.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

    • Yanıt Olarak İşaretleyen AzizUtku 18 Nisan 2013 Perşembe 20:05
    18 Nisan 2013 Perşembe 19:57
    Moderatör
  • Hocam çok teşekkür ederim. 

      StreamReader oku = new StreamReader(DosyaKonumu, Encoding.GetEncoding("windows-1254"));

    Sayenizde bu kodla sorunu çözdüm. 

    18 Nisan 2013 Perşembe 20:06