Флажки уберите и сделайте часть текста в списке - PullRequest
0 голосов
/ 21 апреля 2019

В моем скрипте C # есть список флажков, которые, когда отмечены, добавляют строку текста в текстовый файл. И когда снят флажок, удалите этот фрагмент текста из файла. Моя проблема в том, что я не знаю, как код распознает строку для удаления, поскольку они могут быть в любом порядке.

1 Ответ

1 голос
/ 21 апреля 2019

Я написал небольшую тестовую форму, которая будет делать то, что вы хотите. Вы можете заменить SNIPPET1 и SNIPPET2 своими собственными строками. В моей форме есть 2 флажка, каждый из которых будет добавлять или удалять фрагмент в зависимости от того, включен он или нет. Вы можете изменить код в соответствии с вашими потребностями.

Обратите внимание, что, как упоминалось выше, вам нужно использовать функцию String.Replace (), чтобы удалить текст из файла, заменив его пустой строкой

public partial class Form1 : Form
    {
        private const string SNIPPET1 = "Hello world";
        private const string SNIPPET2 = "I love Stack";
        private const string FILENAME = "output.txt";

        private string OutputFile
        {
            get
            {
                return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, FILENAME);
            }
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
            {
                AddSnippet(SNIPPET1);
            }
            else
            {
                RemoveSnippet(SNIPPET1);
            }
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked)
            {
                AddSnippet(SNIPPET2);
            }
            else
            {
                RemoveSnippet(SNIPPET2);
            }
        }

        private void AddSnippet(string snippet)
        {
            File.AppendAllText(OutputFile, snippet);
        }

        private void RemoveSnippet(string snippet)
        {
            // Read in the file
            var fileContents = File.ReadAllText(OutputFile);

            // Remove the snippet by replacing it with a blank string
            fileContents = fileContents.Replace(snippet, String.Empty);

            // Write file contents
            File.WriteAllText(OutputFile, fileContents);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...