代码之家  ›  专栏  ›  技术社区  ›  Sneh

在WPF中编辑文本文件中的某些文本

c#
  •  0
  • Sneh  · 技术社区  · 7 年前

    我对使用表单和C#是个新手,我尝试着做一个作业来创建一个电话簿。我的电话簿里有不同的选择

    • 添加联系人
    • 显示所有联系人
    • 编辑某个联系人。

    当文本存储在文本文件中时,我在如何进行编辑方面遇到了问题。我有以下代码为我的添加,其中添加了姓名,电话号码和电子邮件。如何从保存在文本文件中的联系人列表中编辑其中一个姓名?

    private void addButton_Click(object sender, RoutedEventArgs e)
    {
        TextWriter writer = new StreamWriter("D:\\class1.txt", append: true);
        try
        {
                string Name01 = firstName.Text;
                string Name02 = lastName.Text;
                string Phone1 = mobile.Text; 
                string Phone2 = homePhone.Text;
                string emailadd = email.Text;
                string Informtion = Name01 + "\n" + Name02 + "\n" + Phone1 + "\n" + Phone2 + "\n" + emailadd;
                writer.WriteLine("---------------");
                writer.WriteLine(Informtion);
                MessageBox.Show("Success!! Contact information added for: " +Name01 + " " +Name02);
            }
            catch (Exception ex)
            {
                throw ex;
            }  
            finally
            {
                writer.Close();
                writer.Dispose();
            }
        }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Dean Kuga    7 年前

    您的文本文件似乎没有结构化。以编程方式搜索和编辑非结构化文本非常困难。

    尝试使用XML或JSON格式的文本,这将使您能够更轻松地处理条目,特别是如果您使用专门为处理这两种格式的条目而开发的许多开放源代码库中的一个。。。

    以XML为例:

    <?xml version="1.0" encoding="UTF-8"?>
    <SnomIPPhoneDirectory>
      <Title>PhoneList - Snom</Title>
      <DirectoryEntry>
        <Name>Friend, First</Name>
        <Telephone>555-456-7890</Telephone>
      </DirectoryEntry>
      <DirectoryEntry>
        <Name>Person, Second</Name>
        <Telephone>555-654-0987</Telephone>
      </DirectoryEntry>
      <SoftKeyItem>
        <Name>F1</Name>
        <Label>Dial</Label>
        <SoftKey>F_ENTER</SoftKey>
      </SoftKeyItem>
    </SnomIPPhoneDirectory>
    

    使用.NET framework中内置的库甚至XML功能,以面向对象的方式处理电话簿条目是很简单的,因为您不必进行任何字符串解析。