如何从.txt文件创建的列表中删除一行?

时间:2019-01-14 21:24:55

标签: c#

我需要从.txt文件创建的列表中删除一行。

我已经创建了要从.txt文件打开的列表,可以看到该列表,可以添加新客户端,并且此客户端将保存到相同的.txt文件中,因此下次我打开它-我可以看到“更新列表”。

public static void ShowClientList()
{
    string file =File.ReadAllText(@"C:\Users\Adminl\Documents\clients.txt");
    Console.WriteLine(file);
    Console.WriteLine();
}

public static void AddClient()
{
    Console.WriteLine("Civ");
    string civility = Console.ReadLine();                        
    Console.WriteLine("Name");
    string name = Console.ReadLine();                        
    Console.WriteLine("Surname");
    string surname = Console.ReadLine();                        
    Console.WriteLine("Age");
    string age = Console.ReadLine();                        
    Console.WriteLine("Telephone No");
    string telephone = Console.ReadLine();                       

    string appendText = civility +','+" "+ name + ',' + " " + surname + ',' + " " + age + ',' + " " + telephone + Environment.NewLine; // This text is always added, making the file longer over time if its not deleted

    string path = @"C:\Users\Adminl\Documents\clients.txt"; // FILE that either exist or no

    File.AppendAllText(path, appendText);
}

我的意思是我有一个带有客户端(先生,约翰,史密斯,25、777-00-666的客户端)的.txt文件,我想从列表中删除此客户端或删除\更新参数之一( (例如电话号码,最后一个)。谢谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我认为您最好将此文件反序列化为包含这些属性的对象列表,然后可以进行修改,最后可以再次将其持久化。

答案 1 :(得分:0)

如果您只是使用文本文件,这会很乏味。但是为了这个问题:

您可以使用class ModalBottomSheetDemo extends StatelessWidget { static const String routeName = '/material/modal-bottom-sheet'; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Modal bottom sheet'), actions: <Widget>[MaterialDemoDocumentationButton(routeName)], ), body: Center( child: RaisedButton( child: const Text('SHOW BOTTOM SHEET'), onPressed: () { showModalBottomSheet<void>(context: context, builder: (BuildContext context) { return Container( child: Padding( padding: const EdgeInsets.all(32.0), child: Text('This is the modal bottom sheet. Tap anywhere to dismiss.', textAlign: TextAlign.center, style: TextStyle( color: Theme.of(context).accentColor, fontSize: 24.0 ) ) ) ); }); } ) ) ); } } 来读取文件中的所有内容,并以逗号分隔(基于StringBuilder的格式,并在追加到StringBuilder时跳过该行,然后重新写入文件。

(Mr, John, Smith, 25, 777-00-666)