none
C# dosyadan karakter bulma ve değiştirme RRS feed

  • Soru

  • Merhaba, dosya içindeki belirli bir kelimeyi aratıp o satırdaki rakamları değiştirmem gerekiyor.Yardımcı olursanız sevinirim.

    Dosya içeriği;

    zo_move1 "1"
    zo_allowmove "1"
    zo_zoloveaa "400"
    zo_cmdbackup "2"
    zo_cmdlat "66"

    Bulup değiştirmem gereken satır;

    zo_zoloveaa "400"

    Değişmesi gereken karakterler "400"

    Teşekkürler.

    28 Mart 2020 Cumartesi 16:31

Yanıtlar

  • Program çalıştığında 400 olan değer istediğiniz gibi değişiyor ve 150 oluyor.

    Burada aranan kelime eğer varsa indexini alıyor.Ardından yine index of methodu ile indexten hemen sonraki tırnak işaretlerini buluyor ve arasındaki değeri siliyor.Sonra yeni bir değer atayıp metni yeniden dosyaya kaydediyor.

    class Program
    {
        static void Main(string[] args)
        {
            var yol = @"C:/deneme.txt";
            string metin = File.ReadAllText(yol);
            string aranan = "zo_zoloveaa";
            string eklenecekVeri = "150";
    
            var index = metin.IndexOf(aranan);
            if (index > 0)
            {
                var ilkTirnakIsaretiIndexi = metin.IndexOf('"', index + aranan.Length);
                var ikinciTirnakIsaretiIndexi = metin.IndexOf('"', ilkTirnakIsaretiIndexi + 1);
                metin = metin.Remove(ilkTirnakIsaretiIndexi + 1, ikinciTirnakIsaretiIndexi - ilkTirnakIsaretiIndexi - 1);
                metin = metin.Insert(ilkTirnakIsaretiIndexi + 1, eklenecekVeri);
                File.WriteAllText(yol, metin);
            }
            Console.ReadKey();
        }
    }


    • Düzenleyen Brahimm 28 Mart 2020 Cumartesi 22:16
    • Yanıt Olarak İşaretleyen Salih B 29 Mart 2020 Pazar 12:07
    28 Mart 2020 Cumartesi 22:13
  • Yardımcı olabildiğime sevindim. :)

    Programlamada yapılamayacak birşey yok fakat bu sorunun yanıtını almak için yeni bir başlık açmanız gerekir.

    • Yanıt Olarak İşaretleyen Salih B 29 Mart 2020 Pazar 14:34
    29 Mart 2020 Pazar 13:21

Tüm Yanıtlar

  • çok mu zor ya
    28 Mart 2020 Cumartesi 20:40
  • Program çalıştığında 400 olan değer istediğiniz gibi değişiyor ve 150 oluyor.

    Burada aranan kelime eğer varsa indexini alıyor.Ardından yine index of methodu ile indexten hemen sonraki tırnak işaretlerini buluyor ve arasındaki değeri siliyor.Sonra yeni bir değer atayıp metni yeniden dosyaya kaydediyor.

    class Program
    {
        static void Main(string[] args)
        {
            var yol = @"C:/deneme.txt";
            string metin = File.ReadAllText(yol);
            string aranan = "zo_zoloveaa";
            string eklenecekVeri = "150";
    
            var index = metin.IndexOf(aranan);
            if (index > 0)
            {
                var ilkTirnakIsaretiIndexi = metin.IndexOf('"', index + aranan.Length);
                var ikinciTirnakIsaretiIndexi = metin.IndexOf('"', ilkTirnakIsaretiIndexi + 1);
                metin = metin.Remove(ilkTirnakIsaretiIndexi + 1, ikinciTirnakIsaretiIndexi - ilkTirnakIsaretiIndexi - 1);
                metin = metin.Insert(ilkTirnakIsaretiIndexi + 1, eklenecekVeri);
                File.WriteAllText(yol, metin);
            }
            Console.ReadKey();
        }
    }


    • Düzenleyen Brahimm 28 Mart 2020 Cumartesi 22:16
    • Yanıt Olarak İşaretleyen Salih B 29 Mart 2020 Pazar 12:07
    28 Mart 2020 Cumartesi 22:13
  • Bu yardımın için çok teşekkür ederim.Çok kez denedim sorunsuz çalışıyor.Birde bir bilgi almak istiyorum bende bir program var exe çalıştıgında dışarıya demoheader.dmf diye bir dosya çıkarıyor.Exe kapantığında oda hemen siliniyor.Bende böyle birşey yapabilirmiyim?
    • Düzenleyen Salih B 29 Mart 2020 Pazar 12:10
    29 Mart 2020 Pazar 12:07
  • Yardımcı olabildiğime sevindim. :)

    Programlamada yapılamayacak birşey yok fakat bu sorunun yanıtını almak için yeni bir başlık açmanız gerekir.

    • Yanıt Olarak İşaretleyen Salih B 29 Mart 2020 Pazar 14:34
    29 Mart 2020 Pazar 13:21