Selamlar...
Zamanında herhangi bir txt içerikli dosyada(.srt, .txt, .xml,...vs) bazı karakterleri başka karakterlere çevirmeye yarayan ufak bir masaüstü pogramı yazmıştım C#'ta. Visual Studio 2008 kullanmıştım. Yazılışındaki amaç altyazı dosyalarındaki Türkçe karakterleri temizlemek.
Farklı işlere de yarayabilir belki.
Kaynak kodları http://www.mediafire.com/?w9xfy80q188e4 adresinden indirebilirsiniz. Ya da http://www.divshare.com/download/12593413-f72 adresinden.
Kullanımı çok kolay. Karakterler.xml adındaki XML dosyası içine değiştirmek istediğiniz karakterleri ekliyorsunuz.
Kodları aşağıdaki şekilde:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace TurkceKarakterleriTemizle
{
    public partial class TurkceKarakterleriTemizle : Form
    {
        private string strDosyaTurleri = "";
        private System.Xml.XmlDocument xmlDokuman = null;
        private string strAltyaziIcerik = "";
        private string strDosyaYolu = "";
        MainMenu menuUst = null;
        public TurkceKarakterleriTemizle()
        {
            InitializeComponent();
            strDosyaTurleri = "Altyazi Dosyalari(.srt)|*.srt|Altyazi Dosyalari(.sub)|*.sub";
            strDosyaTurleri  = "|HTML Dosyalari|*.html|HTM Dosyalari|*.htm";
            strDosyaTurleri ="|JSP Dosyalari|*.jsp|XML Dosyalari|*.xml";
            strDosyaTurleri  = "|Excel Dosyalari|*.xls|ASP Dosyalari|*.asp";
            strDosyaTurleri  = "|TXT Dosyalari|*.txt";
            xmlDokuman = new System.Xml.XmlDocument();
            System.Collections.Hashtable htTurkceKarakterler = new System.Collections.Hashtable();
            xmlDokuman.Load(System.AppDomain.CurrentDomain.BaseDirectory   "/Karakterler.xml");
            lblAltyaziDosyasi.Text = "";
            btnTurkceyeCevir.Enabled = false;
////////////MENU BASLANGIC
            menuUst = new MainMenu();
            // en ust seviye.
            MenuItem m1 = new MenuItem("Dosya");
            menuUst.MenuItems.Add(m1);
            MenuItem m2 = new MenuItem("Islem");
            menuUst.MenuItems.Add(m2);
            // dosya menusunun alt menuleri
            MenuItem subm1 = new MenuItem("Ac");
            m1.MenuItems.Add(subm1);
            MenuItem subm2 = new MenuItem("Cikis");
            m1.MenuItems.Add(subm2);
            // islem menusunun alt menusu
            MenuItem subm3 = new MenuItem("Turkce'ye Cevir");
            m2.MenuItems.Add(subm3);
            // menu elemanlarina islem atama.
            subm1.Click  = new EventHandler(btnDosyaAc_Click);
            subm2.Click  = new EventHandler(btnCikis_Click);
            subm3.Click  = new EventHandler(btnTurkceyeCevir_Click);
            // menuyu form a ekleyelim..
            Menu = menuUst;
////////////MENU BITIS
        }
 
        private void btnCikis_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private void TurkceKarakterleriTemizle_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (MessageBox.Show("Çıkmak istediğinizden emin misiniz?", "TurkceKarakterleriTemizle",<br>&nbsp;MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
 
        private void txtYeYaz(string pDosyaAdi, string pIcerik)
        {
            System.IO.StreamWriter nesneSw = null ;
            string[] diziIcerik = null;
            int i=0;
            if (!pIcerik.Equals(""))
            {
                nesneSw = new System.IO.StreamWriter(pDosyaAdi, false, Encoding.GetEncoding(1254)); <br>//'Yanına true dersek üzerine yazmaya devam eder.
                diziIcerik = pIcerik.Split(new string[]{"@@SA@@"},StringSplitOptions.RemoveEmptyEntries);
                for (i = 0; i &amp;amp;amp;amp;lt; diziIcerik.Length; i  )
                {
                    nesneSw.Write(diziIcerik[i]); //'Yukarda değiştirdiğimiz içeriği dosyaya yazıyoruz.
                }
 
                lblTurkceyeCevir.Text  = Environment.NewLine   "Programin calistigi dizinde";
                lblTurkceyeCevir.Text  = Environment.NewLine   "ayni isimde dosya olusturuldu.";
                lblTurkceyeCevir.Text  = Environment.NewLine   "Filmin oldugu dizine kopyalanmalidir.";
                //MessageBox.Show("Dosya oluşturuldu.("   pDosyaAdi   ")", "Dosya Olustu!", MessageBoxButtons.OK);
                nesneSw.Close();
            }
        }
 
        private void btnDosyaAc_Click(object sender, EventArgs e)
        {
 
            OpenFileDialog dosyaAcmaPenceresi = new OpenFileDialog();
            lblTurkceyeCevir.Text = "";
            lblAltyaziDosyasi.Text = "";
            btnTurkceyeCevir.Enabled = false;
            dosyaAcmaPenceresi.Filter = strDosyaTurleri;
            dosyaAcmaPenceresi.InitialDirectory = "C:/";
            dosyaAcmaPenceresi.Title = "Bir dosya seçin";
            dosyaAcmaPenceresi.ShowDialog();
            System.IO.StreamReader nesneSr = null;
            strDosyaYolu = dosyaAcmaPenceresi.FileName;
            string strSatir = "";
            strAltyaziIcerik = "";
            if (System.IO.File.Exists(strDosyaYolu) == true)
            {
                nesneSr = new System.IO.StreamReader(strDosyaYolu, Encoding.Default); //'Dosyamızı nesnemize yükledik.
                while (nesneSr.Peek() != -1) //'Dosyadaki tüm karakterleri almaya yarayan kalıp bu sanırım.
                {
                    strSatir = nesneSr.ReadLine()   Environment.NewLine;
                    strSatir  = "@@SA@@";
                    strAltyaziIcerik  = strSatir;
                }
                nesneSr.Close(); //'Bunu kapatmazsak YazmaNesnesi yazamıyor. Zaten açılan her nesneyi kapatmakta fayda var.
                lblAltyaziDosyasi.ForeColor = Color.Wheat;
                lblAltyaziDosyasi.Text = "Dosya yuklendi.";
                btnTurkceyeCevir.Enabled = true;
            }
            else
            {
                MessageBox.Show("Dosya bulunamadı!", "Dosya Yok!", MessageBoxButtons.OK); //'Dosya yoksa uyarı versin.
            }
 
        }
 
        private void btnTurkceyeCevir_Click(object sender, EventArgs e)
        {
            System.Xml.XmlNodeList lst1 = xmlDokuman.SelectNodes("/KOK/KARAKTER");
            System.Xml.XmlNode nod1 = null;
            int i = 0;
            string[] diziDosyaAdi = null;
            string strDosyaAdi = "";
            for (i = 0; i &amp;amp;amp;amp;lt; lst1.Count; i  )
            {
                nod1 = lst1[i];
                strAltyaziIcerik = strAltyaziIcerik.Replace(nod1.SelectSingleNode("ESKI").InnerText,<br>&nbsp;nod1.SelectSingleNode("YENI").InnerText);
            }
            diziDosyaAdi = strDosyaYolu.Split('\\');
            for (i = 0; i &amp;amp;amp;amp;lt; diziDosyaAdi.Length; i  )
            {
                strDosyaAdi = diziDosyaAdi[i]; // son eleman dosya adidir.
            }
            lblTurkceyeCevir.ForeColor = Color.Wheat;
            lblTurkceyeCevir.Text = "Turkce karakterler temizlendi.";
            txtYeYaz(strDosyaAdi, strAltyaziIcerik);
        }
    }
}
 
Saygılar...
# Kategoriler : C# Yazılım
# Etiketler : Etiket Yok
# Yorumlar : 0 Yorum Yorum Yaz

Yorumlar

Yorum Eklenmemiş...

Yorum Yaz

Adınız: *
E-Mail Adresiniz: *
Web Sitesi:
Yorum: *
Güvenlik Kodu: *
 
Arama
  Ara
Sayfalar
Takvim
<December 2018>
SMTWTFS
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Bağlantılar