Codingnow20 Ответов: 1

Как заменить текст в текстовом файле


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

я попытался записать его в файл вот так
private void buttonclick(object sender,EventArgs e)
{
                counter += 1;
                TextBox tb = new TextBox();
                Label labl = new Label();
                Label num = new Label();
                tb.Text = textbox.Text;
                labl.Text ="hello";
                num.Text = counter.ToString();
                string currentEntry = num.Text + "|" + tb.Text.Replace("|", "~") + "|" 
                                 + labl.Text + "|";
                File.AppendAllText("savedpass.txt", currentEntry);
                this.Hide();
}
Я хочу заменить tb.text каким-то неизвестным значением, введенным пользователем.
Как мне это сделать ??

Что я уже пробовал:

я уже пробовал
using (StreamReader sr = new StreamReader("savedpass.txt"))
                {
                    string line = "";
                    while ((line = sr.ReadLine()) != null)
                    {
                        string[] lineData = line.Split('|');
                        string num = lineData[1];
                        ReplaceInFile("savedpass.txt",textbox.text,num);
                        
                    }
                    sr.Close();
                }
но он приходит с ошибкой файл используется другим процессом

1 Ответов

Рейтинг:
4

OriginalGriff

Что ты пытаешься сделать?
Вы создаете текстовое поле, которое никогда не отображается, устанавливаете его свойство Text из другого текстового поля, создаете две метки, которые никогда не отображаются, а затем скрываете все, чтобы быть в безопасности...

Попробовать это:

private void buttonclick(object sender,EventArgs e)
    {
    string currentEntry = string.Format("{0}|{1}|{2}", 
                                        ++counter, 
                                        textBox.Text.Replace("|", "~"), 
                                        "hello");
    File.AppendAllText("savedpass.txt", currentEntry);
    this.Hide();
    }

Что касается вашего кода "What I have tried", то, конечно же, вы получаете ошибку "file in use" - вы, вероятно, используете этот файл! Либо в именах файлов есть ошибка, и у вас действительно есть "savedpass.txt" в обоих местах, или ваш метод ReplaceInFile не освобождает файл должным образом.
using (StreamReader sr = new StreamReader("savedpass.txt"))
    {
    string line = "";
    while ((line = sr.ReadLine()) != null)
        {
        string[] lineData = line.Split('|');
        string num = lineData[1];
        ReplaceInFile("savepass.txt",textbox.text,num);
        
        }
    sr.Close();
    }


Codingnow20

@OriginalGriff я обновил свой вопрос извините за недоразумение, но я попробую ваш код.