• 29-12-2012, 23:51:11
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar kısacık bir sorum olacak yine sizlere


    Kodu vereyim öncelikle :
    ir = sr.ReadLine();
                        if (satir != "")
                        {
                            String[] satirlar = satir.Split('#');
                          
                            if (isim.Text == satirlar[0])
                            {
                                satirlar[0] = "";
                                satirlar[1] = "";
                                satirlar[2] = "";
                                MessageBox.Show("Seçtiğiniz isimdeki değerler silindi.","bilgi");
                            }
                        }
    
                    } while (sr.EndOfStream != true);
                    sr.Close();
                }
                catch
                {
                    MessageBox.Show("DOSYA BULUNAMADI", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
    Şimdi şu satırlar[0],satırlar[1],satırlar[2] lerde string ifadeler mevcut. bu string ifadeleri rehber.txt diye bir dosyada saklıyorum. İşte burada bu değişkenleri silmek istiyorum.

    satirlar[0] = "";
    satirlar[1] = "";
    satirlar[2] = "";

    Bu şekilde sıfırlamak istedim ama olmuyor. Acaba sizce nasıl yapmalıyım?
    Şimdiden teşekkürler.
  • 30-12-2012, 00:51:42
    #2
    Öncelikle burada zaten güncelleme kayıt gibi bir işlem yapmamışsınız. Silme işleminiz ise sadece değişkenler üzerinde olmuş.

    Şu şekilde yapabilirsiniz. Maddeler halinde açıklayarak veriyorum.

    1) Bir değişkene veya diziye tüm txt içeriğini alın // Güncelleme yağacağız.

    2) satirlar[0] = ""; yerine >> Örneğin yazıyı yazi diye bir değişkene aldınız. Yapılacak işlem şu

    yazi.Replace(satirlar[0], "");
    3) Kayıt etme (

    StreamWriter yaz = new StreamWriter("rehber.txt");
              yaz.WriteLine(yazi);

    Eğer güncelleme işlemini String[] satirlar = satir.Split('#'); bu dizi üzerinde yapıyor olsaydık sadece düzenlediklerimizi kayıt edeceğimiz için boş bir txt oluşurdu.

    İyi forumlar.
  • 30-12-2012, 00:54:19
    #3
    o satirlari silebilirsin.
    satir.Replace(satirlar[0] ,"");
    satir.Replace(satirlar[1] ,"");
    satir.Replace(satirlar[2] ,"");
  • 30-12-2012, 01:01:53
    #4
    bluemansiiz adlı üyeden alıntı: mesajı görüntüle
    1) Bir değişkene veya diziye tüm txt içeriğini alın // Güncelleme yağacağız.
    Hocam öncelikle çok teşekkür ederim vakit ayırdığınız için.

    rehber.txt diye bir dosyada tutuyorum bilgilerimi. Bu bilgileri nasıl bir değişkene alabilirim.
    Veya değişkene almadan bu silme işlemini yapamazmıyım.?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 01:01:53 -->-> Daha önceki mesaj 01:00:04 --

    tanersenel adlı üyeden alıntı: mesajı görüntüle
    o satirlari silebilirsin.
    satir.Replace(satirlar[0] ,"");
    satir.Replace(satirlar[1] ,"");
    satir.Replace(satirlar[2] ,"");
    Hocam bu şekilde de denedim. Fakat silmiyor yine. Okuma işlemi yaptırıyorum yine eski bilgiler geliyor.
  • 30-12-2012, 01:02:23
    #5
    uslanmaz91 adlı üyeden alıntı: mesajı görüntüle
    Hocam öncelikle çok teşekkür ederim vakit ayırdığınız için.

    rehber.txt diye bir dosyada tutuyorum bilgilerimi. Bu bilgileri nasıl bir değişkene alabilirim.
    Veya değişkene almadan bu silme işlemini yapamazmıyım.?
    Zaten satir diye bir değişkene almışsınız bütün yazıyı.

    @tanersel 'in verdiği gibi

    satir.Replace(satirlar[0] ,""); kullanın kodun sonundada benim verdiğim kayıt fonkisyonunu kullanırsanız işleminiz tamam olacak.
  • 30-12-2012, 11:38:08
    #6
    tanersenel adlı üyeden alıntı: mesajı görüntüle
    o satirlari silebilirsin.
    satir.Replace(satirlar[0] ,"");
    satir.Replace(satirlar[1] ,"");
    satir.Replace(satirlar[2] ,"");
    bluemansiiz adlı üyeden alıntı: mesajı görüntüle
    Zaten satir diye bir değişkene almışsınız bütün yazıyı.

    @tanersel 'in verdiği gibi

    satir.Replace(satirlar[0] ,""); kullanın kodun sonundada benim verdiğim kayıt fonkisyonunu kullanırsanız işleminiz tamam olacak.
    Dediğiniz gibi yaptım fakat şimdide dosya bulunamadı diyor. Yaptığım şey şu:
      if (isim.Text == satirlar[0])
                            {
                                satir.Replace(satirlar[0], "");
                                satir.Replace(satirlar[1], "");
                                satir.Replace(satirlar[2], "");
                                StreamWriter yaz = new StreamWriter("rehber.txt");
                                yaz.WriteLine(satir);
                                MessageBox.Show("Seçtiğiniz isimdeki değerler silindi.","bilgi");
                            }
    Ben kayıt eklerken aşağıdaki gibi diez işareti koydum ayırt etmek için acaba bunun için bir sıkıntı olabilir?

    Kayıt eklerken kullandığım ifadeler:
     string satir = isim.Text;
                satir += "#" + soyisim.Text;
                satir += "#" + telefon.Text + "#\n";
    
                FileStream fs = new FileStream(".\\rehber.txt", FileMode.Append);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine(satir);
                sw.Close();
                MessageBox.Show("Ekleme başarılı");
                this.Close();
  • 30-12-2012, 12:18:37
    #7
    Kardeş dosyayı açtın tüm satırları

    string degisken = sr.ReadToEnd();

    şeklinde bir değişkene attın.

    sonra ilgili kısımda

    degisken.Replace(satirlar[0] ,"");
    degisken.Replace(satirlar[1] ,"");
    degisken.Replace(satirlar[2] ,"")

    şeklinde bu satırları sildin

    sonra
    FileStream fs = new FileStream(".\\rehber.txt", FileMode.Create);
    StreamWriter sw = new StreamWriter(fs);
    sw.Write(degisken);
    sw.Dispose()
    sw.Close();
    fs.Dispose();
    fs.Close();

    şeklinde yeniden kaydet..
  • 30-12-2012, 13:41:44
    #8
    Hocam verdiğiniz kodlara hiç aşina değilim. Benim yapmak istediğim yöntemle olmazmı?
    Öğrenmeden yapmak istemiyorum sonuçta.

    Yinede teşekkürler.

    Varmı acaba benim gittiğim yoldan çaresi? replace ilede olabilir
  • 30-12-2012, 19:10:38
    #9
    Verdiğim kodlar senin kodlarından çok uzak değil. zaten sıfırdan ben yazıyor olsam çok farklı yazardım. sana pm ile attığım kodlarda çok fazla yeni bir komut yok.
    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;
    using System.IO;
    
    namespace WindowsFormsApplication8
    {
    public partial class sil : Form
    {
    public sil()
    {
    InitializeComponent();
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
    try
    {
    FileStream fs = new FileStream(Application.StartupPath + "\\rehber.txt", FileMode.Open);
    StreamReader sr = new StreamReader(fs);
    // string dosyaIcerik = sr.ReadToEnd();
    string yeniIcerik = string.Empty;
    string satir;
    do
    {
    satir = sr.ReadLine();
    
    if (satir != "")
    {
    String[] satirlar = satir.Split('#');
    
    if (isim.Text.ToUpper() == satirlar[0].ToUpper())
    {
    fs.Close();
    fs.Dispose();
    sr.Close();
    sr.Dispose();
    FileStream fs2 = new FileStream(Application.StartupPath+"\\rehber.txt", FileMode.Create);
    StreamWriter sw = new StreamWriter(fs2);
    sw.Write(yeniIcerik);
    sw.Close();
    sw.Dispose();
    fs2.Close();
    fs2.Dispose();
    
    MessageBox.Show("Seçtiğiniz isimdeki değerler silindi.", "bilgi");
    break;
    }
    else
    {
    yeniIcerik += satir + Environment.NewLine ;
    }
    }
    
    } 
    while (sr.EndOfStream != true);
    sr.Close();
    this.Close();
    }
    catch(Exception ex)
    {
    MessageBox.Show("DOSYA BULUNAMADI", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    }
    }
    }