-2

電話帳を開発する必要があります。

連絡先データをテキスト ファイルに書き込み、コンソールで作業しています。そのテキスト ファイル内の連絡先を検索および削除するには、どのようなオプションが必要ですか?

これは私が連絡先を挿入する方法です:

public class Writer
{
    public void  writer (string name,string lastname,string number)
    {
        StreamWriter Wrt = new StreamWriter("D:\\Sample.txt",true);
        Wrt.Write(name);
        Wrt.Write(lastname);
        Wrt.Write(number);
        Wrt.Write("#");
        Wrt.Write("");
        Wrt.Close();
    }
}
4

1 に答える 1

0

各行は連絡先に対応していますよね?連絡先を削除するための基準は何ですか?名前と姓を探している場合は、これを行うことができます。

string line = null; 
string Criteria = name + " " lastname;

using (StreamReader reader = new StreamReader("C:\\input"))
{ 
  using (StreamWriter writer = new StreamWriter("C:\\output"))
  { 
    while ((line = reader.ReadLine()) != null)
    { 
      if (line.Contains(Criteria)) 
        continue; 

      writer.WriteLine(line); 
    } 
  } 
} 

これにより、ファイルが読み取られ、保持するすべての連絡先が別のファイルに書き込まれます。

ただし、同じファイルを保持したい場合(または連絡先情報が複数行にある場合)。ファイル全体を読み取ってメモリに保存し、不要なファイルを削除してから、ファイルを再度書き込むことができます。

//Method with a class containing the info because informations are on several lines
Contact[] contacts = MethodToRead("filename.txt"); 
Contact[] filteredContacts = methodFilterContacts(contacts ); 
foreach(Contact c in filteredContacts)
{
     //Call your write method mentionned
     Writer.writer(c.name, c.lastname, c.number);
}

//Method if contact on only one line
string[] contactLines = File.ReadAllLines("filename.txt"); 
string[] filteredContactLines = methodFilterContacts(contactLines ); 
//This will write everything as is
File.WriteAllLines("filename.txt", filteredContactLines ); 

それはあなたがあなたのテキストファイルを保持したい場合でした。以前に提案したように、xmlを使用して、保守が容易なファイルの書き込みと読み取りを行うことができます。xmlの基本を知っている場合、または少し挑戦する(そしてそれに時間がかかる)場合は、それがより良い方法かもしれません。

于 2012-04-18T03:25:17.233 に答える