En iyi yanıtlayıcılar
C# dosyadan karakter bulma ve değiştirme

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.
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(); } }
-
Tüm 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(); } }
-
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
-