Çözüldü C# Richtextbox'da method ile her satırın sonundan ve başından karakter silme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

sauranex

Hectopat
Katılım
24 Eylül 2020
Mesajlar
654
Makaleler
1
Çözümler
3
Öncelikle merhaba, elimde bir richtextbox var ve bunda 5000 küsür satır var, satır başından "-2", satır sonundan iste "-5" karakter silmek istiyorum tabi bu silinen karakter sayısı değişiklik gösteriyor. Projede kullandığım böyle bir kod var fakat bu kod bloğunu her işlem yaptığımda yazmam lazım bunun yerine "private void" tarzı bir method kullanmak istiyorum, yani methodu çektiğimde sayı belirticem ve ona göre işlem yapıcak. Satır sayısı 5000 ile sınırlı kalmayabilir bu işlem 1.000.000 sayıya kadar çıkabilir bu yüzden StringBuilder'ı BackgroundWorker içinde kullanıyorum. Kısacası istediğim kod, bir method çağırarak satır sonundan ve başından silme işlemi yapacak fakat methodu satır sonu veya satır başı işlemine özel olarak almak ve sayı belirtmek istiyorum. Hobi amaçlı yazılım geliştirdiğim için fazla bilmiyorum, kullandığım kod bloğunu aşağıya bırakıyorum.
[CODE lang="csharp" title="Richtextbox her satır başından 8 karakter silen kod bloğu"] StringBuilder sbdnsmasqfirst = new StringBuilder();
foreach (string s in rtbList.Lines)
{
if (s.Length > 0)
{
sbdnsmasqfirst.AppendLine(s.Substring(8));
}
}
rtbList.Text = sbdnsmasqfirst.ToString();[/CODE]

[CODE lang="csharp" title="Richtextbox her satır sonundan 3 karakter silen kod bloğu"] StringBuilder sbdnsmasqlast = new StringBuilder();
foreach (string s in rtbList.Lines)
{
if (s.Length > 0)
{
sbdnsmasqlast.AppendLine(s.Substring(0, s.Length - 3));
}
}
rtbList.Text = sbdnsmasqlast.ToString();[/CODE]
 
Çözüm
Bunu dener misin?
C#:
private void subs(RichTextBox obj, int start, int end) {
    StringBuilder sbdnsmasqlast = new StringBuilder();
    foreach(string s in rtbList.Lines) {
        if(s.Length > 0) {
            sbdnsmasqlast.AppendLine(end == 0 ? s.Substring(start) : s.Substring(start, s.Length - start - end));
        }
    }
    rtbList.Text = sbdnsmasqlast.ToString();
}
Metoda bgwden erişince yine async çalışması lazım. Aldığınız hata nedir?
Hata almadım fakat büyük boyutlu dosyalarla çalışırken programda çökme olmasın diye methodu bgw içine almak istedim sadece. Yardımlarınız için çok teşekkür ederim, konuyu çözüldü olarak onaylıyorum.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…