C# ile basit metin düzenleme programı

Evet bugün sizlere "metin düzenleme programı" yapacağım. Tabii bu her zamanki gibi copy+paste yapmanız için değil, geliştirmeler yapıp kendinizi geliştirmeniz için olacak o yüzden fazla özellikli olamayacak.
bak sen şuna yapamıyorum demiyor da...
Neyse geçelim kodlara. İlk örnekte her şeyden ayrı sadece metin açma kaydetme ve yazma için kullanılabilit bir program var:

Kod:
using System;
using System.IO;

class TextEditor {
 static void Main(string[] args) {
 // Kullanıcının açmak istediği dosyanın yolunu isteyin.
 Console.WriteLine("Technopatta yasaklı olan istek belirtme kelimesi açmak istediğiniz dosyanın yolunu girin:");
 string filePath = Console.ReadLine();

 // Dosya varsa, metni okuyun ve kullanıcıya gösterin.
 if (File.Exists(filePath)) {
 string text = File.ReadAllText(filePath);
 Console.WriteLine("Dosya içeriği:");
 Console.WriteLine(text);
 } else {
 Console.WriteLine("Dosya bulunamadı.");
 return;
 }

 // Kullanıcıdan değişiklik yapmasını isteyin.
 Console.WriteLine("Metni düzenlemek ister misiniz? (E/H)");
 string response = Console.ReadLine();

 // Kullanıcının yanıtına göre metni düzenleyin veya programı sonlandırın.
 if (response.ToLower() == "e") {
 Console.WriteLine("Technopatta yasaklı olan istek belirtme kelimesi metni girin:");
 string newText = Console.ReadLine();
 File.WriteAllText(filePath, newText);
 Console.WriteLine("Değişiklikler kaydedildi.");
 } else {
 Console.WriteLine("Program sonlandırıldı.");
 return;
 }
 }
}

Bu, herkesin yazabileceği basit bir programdı.
Bu program, kullanıcıya bir dosya yolu girmesini isteyecek ve dosya varsa, dosyanın içeriğini okuyacak ve kullanıcıya gösterecektir. Daha sonra, kullanıcıya metni düzenlemek isteyip istemediğini soracak ve kullanıcının yanıtına göre metni düzenleyecek veya programı sonlandıracaktır.
Metni düzenleme işlemi, "file. Writealltext" yöntemi kullanılarak gerçekleştirilir. Bu yöntem, belirtilen dosya yolundaki mevcut metnin üzerine yazar ve dosyayı değiştirir.
Gelin işeri karmaşıklaştıralım. Aşağıdaki kod örneği, kullanıcının dosyayı açtıktan sonra belirli bir kelimeyi aramasına olanak tanıyan bir metin düzenleme programıdır:

Kod:
using System;
using System.IO;

class TextEditor {
 static void Main(string[] args) {
 // Kullanıcının açmak istediği dosyanın yolunu isteyin.
 Console.WriteLine("Technopatta yasaklı olan istek belirtme kelimesi açmak istediğiniz dosyanın yolunu girin:");
 string filePath = Console.ReadLine();

 // Dosya varsa, metni okuyun ve kullanıcıya gösterin.
 if (File.Exists(filePath)) {
 string text = File.ReadAllText(filePath);
 Console.WriteLine("Dosya içeriği:");
 Console.WriteLine(text);
 } else {
 Console.WriteLine("Dosya bulunamadı.");
 return;
 }

 // Kullanıcının aramak istediği kelimeyi isteyin.
 Console.WriteLine("Aranacak kelimeyi girin:");
 string searchWord = Console.ReadLine();

 // Metinde arama yapın ve sonuçları gösterin.
 int searchCount = 0;
 string[] lines = File.ReadAllLines(filePath);
 for (int i = 0; i < lines.Length; i++) {
 if (lines[i].Contains(searchWord)) {
 Console.WriteLine("Aranan kelime \"{0}\" metnin {1}. satırında bulundu.", searchWord, i+1);
 searchCount++;
 }
 }

 if (searchCount == 0) {
 Console.WriteLine("Aranan kelime metinde bulunamadı.");
 }

 // Kullanıcıdan değişiklik yapmasını isteyin.
 Console.WriteLine("Metni düzenlemek ister misiniz? (E/H)");
 string response = Console.ReadLine();

 // Kullanıcının yanıtına göre metni düzenleyin veya programı sonlandırın.
 if (response.ToLower() == "e") {
 Console.WriteLine("Technopatta yasaklı olan istek belirtme kelimesi metni girin:");
 string newText = Console.ReadLine();
 File.WriteAllText(filePath, newText);
 Console.WriteLine("Değişiklikler kaydedildi.");
 } else {
 Console.WriteLine("Program sonlandırıldı.");
 return;
 }
 }
}

Bu örnekte, kullanıcıdan aranacak kelimeyi girmesi istenir. Daha sonra, file. Readalllines yöntemi kullanılarak dosya satır satır okunur ve aranan kelime metinde bulunduğunda, kelimenin nerede bulunduğu kullanıcıya gösterilir. Eğer aranan kelime metinde hiç bulunamazsa, kullanıcıya bir mesaj gösterilir.
Arama işlemi tamamlandıktan sonra, kullanıcıya metni düzenlemek isteyip istemediği sorulur ve aynı yöntem kullanılarak metin dosyası değiştirilir.
WoW zordu bu değil mi? Gelin daha da karmaşıklaştıralım.

Kod:
using System;
using System.IO;

class TextEditor.
{
 static void Main()
 {
 Console.WriteLine("Metin düzenleme programına hoş geldiniz!");

 Console.WriteLine("Dosya yolunu girin:");
 string filePath = Console.ReadLine();

 if (File.Exists(filePath))
 {
 Console.WriteLine("Dosya var, açılıyor...");

 string text = File.ReadAllText(filePath);

 bool quit = false;
 while (!quit)
 {
 Console.WriteLine("1 - Dosyayı kaydet");
 Console.WriteLine("2 - Geri al");
 Console.WriteLine("3 - Otomatik kaydetme özelliği");
 Console.WriteLine("4 - Metin rengi değiştirme");
 Console.WriteLine("5 - Metin boyutu değiştirme");
 Console.WriteLine("6 - Arama ve değiştirme");
 Console.WriteLine("7 - Metin özetleme");
 Console.WriteLine("8 - Çıkış");

 int choice = int.Parse(Console.ReadLine());

 switch (choice)
 {
 case 1:
 File.WriteAllText(filePath, text);
 Console.WriteLine("Değişiklikler kaydedildi.");
 break;
 case 2:
 Console.WriteLine("Değişiklik geri alındı.");
 break;
 case 3:
 Console.WriteLine("Otomatik kaydetme özelliği açıldı.");
 break;
 case 4:
 Console.WriteLine("Metin rengi değiştirildi. Technopatta yasaklı olan istek belirtme kelimesi renk kodunu girin (Örn: #FF0000): ");
 string colorCode = Console.ReadLine();
 text = $"<span style=\"color:{colorCode}\">{text}</span>";
 Console.WriteLine("Metin rengi değiştirildi.");
 break;
 case 5:
 Console.WriteLine("Metin boyutu değiştirildi. Technopatta yasaklı olan istek belirtme kelimesi boyutu girin (Örn: 12): ");
 int fontSize = int.Parse(Console.ReadLine());
 text = $"<span style=\"font-size:{fontSize}px\">{text}</span>";
 Console.WriteLine("Metin boyutu değiştirildi.");
 break;
 case 6:
 Console.WriteLine("Arama ve değiştirme özelliği açıldı.");
 break;
 case 7:
 Console.WriteLine("Metin özetlendi.");
 break;
 case 8:
 quit = true;
 break;
 default:
 Console.WriteLine("Geçersiz seçim.");
 break;
 }
 }
 }
 else.
 {
 Console.WriteLine("Dosya yok, oluşturmak istiyor musunuz? (E/H)");
 string createFileChoice = Console.ReadLine();

 if (createFileChoice == "E" || createFileChoice == "e")
 {
 Console.WriteLine("Dosya içeriğini girin:");
 string content = Console.ReadLine();

 File.WriteAllText(filePath, content);

 Console.WriteLine("Dosya oluşturuldu ve kaydedildi.");
 }
 else.
 {
 Console.WriteLine("Program sonlandırıldı.");
 }
 }
 }
}

Merak ediyorsunuz. Bu kadar uzatmamın sebebi neydi? Bu kod ile, kullanıcının metin dosyasını açmasını, dosyayı kaydetmesini, geri almasını, otomatik kaydetme özelliğini açmasını, metin rengi ve boyutunu değiştirmesini, arama ve değiştirme yapmasını ve metin özetleme özelliğini kullanmasını sağlar. Tabii ki, bu sadece bir örnek kod ve bu özelliklerin tümünü içermiyor, ancak bu özellikleri programınıza eklemek için bir başlangıç noktası olarak kullanabilirsiniz.
evet biliyorum. Şimdiden çıtayı 1'den 10'a yükselttim. Bu yüzden çıtayı sonraki rehberlerimde düşüreceğim. Daha basit ama kodlamayı öğrenmenize daha fazla işe yarayacak rehberlerle geleceğim.
Bu rehberde hatam olup olmadığını kontrol edip, eleştirmesini istediğim. Ayrıca Tehnopat'ta örnek aldığım kişi: @300319.
 
Son düzenleme:
Şaka bir yana; yanlış yerlerde noktalar var, özellikle sınıf adı, ve int.Parse(Console.ReadLine()) kullanıcının girdiği değerin tam sayıya dönüştürülmesi beklerken kullanıcı yanlışlıkla tam sayı girmezse, program çöker.

Başarılı bir kod deneme için benim gözümde.
Noktaları ben eklemedim. Sanırım otomatik düzeltme eklemiş.
 
Arayüzü olsaymış iyi olurdu. Ek olarak kodları diline göre seçebiliyorunuz. Bu şekilde okunaklık artar ve daha net anlaşılır kodlar.

1681475561797.png


1681475571201.png
 

Technopat Haberler

Geri
Yukarı