удаление строки текстового файла в просмотре списка, но не сохранение c # - PullRequest
0 голосов
/ 17 мая 2018

У меня есть ListView , который загружает файл .txt с некоторыми телефонными номерами, и когда я нажимаю кнопку удаления, он удаляет выбранную строку из ListView .Когда я нажимаю кнопку, чтобы удалить, кнопка удаляет строку, но не сохраняет файл с обновленным списком. Я предоставлю больше информации, если потребуется.

Спасибо !!

вот кнопка удаления

 public void Deletar_lista()
        {
            var caminho = Directory.GetCurrentDirectory();
            caminho += "\\telefones.txt";

            listView1.Items.RemoveAt(listView1.SelectedIndices[0]);

        }

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Мне удается заставить его работать. Вот что я сделал:

int ll_count = -1;    
            var caminho = Directory.GetCurrentDirectory();
            caminho += "\\telefones.txt";
            if (MessageBox.Show("Deseja mesmo deletar o numero?", "Usuario", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
            {
                string[] lines = File.ReadAllLines(caminho);
                using (StreamWriter writer = new StreamWriter(caminho))
                {

                    foreach (string line in lines)
                    {
                        ll_count++;

                        if (ll_count != listView1.SelectedIndices[0])
                        {
                            writer.WriteLine(line);
                        }
                    }
                }

                listView1.Items.RemoveAt(listView1.SelectedIndices[0]);
0 голосов
/ 17 мая 2018

У меня есть только небольшой код для продолжения, но кажется, что вы удаляете только элемент из ListView.Ваше приложение не будет автоматически знать, что вы хотите сохранить обновленное содержимое ListView в файл.

Чтобы сделать это, попробуйте следующее:

string[] lines = System.IO.File.ReadAllLines(caminho);

using (System.IO.StreamWriter writer = new System.IO.StreamWriter(caminho))
{
    foreach (string line in lines)
    {
        if (!line.Contains(listView1.SelectedIndices[0].ToString()))
        {
            writer.WriteLine(line);
        }
    }
}

Это читает все строкииз файла, и если выбранная строка равна вашей удаленной записи, она не запишет ее в файл.

...