c# – 在文件中格式化文本表,将每行合并两行
发布时间:2020-12-16 01:56:10 所属栏目:百科 来源:网络整理
导读:我正在尝试将一些信息写入文本文件,但第二行在行之间创建空格 代码 : private void CreateDriversList(){ StreamWriter w = new StreamWriter(contentDirectory + "" + "Drivers.txt"); w.WriteLine("Module Name Display Name Driver Type Link Date");
我正在尝试将一些信息写入文本文件,但第二行在行之间创建空格
代码 : private void CreateDriversList() { StreamWriter w = new StreamWriter(contentDirectory + "" + "Drivers.txt"); w.WriteLine("Module Name Display Name Driver Type Link Date"); w.WriteLine("============ ====================== ============= ======================"); //Declare,Search,and Get the Properties in Win32_SystemDriver System.Management.SelectQuery query = new System.Management.SelectQuery("Win32_SystemDriver"); System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(query); foreach (System.Management.ManagementObject ManageObject in searcher.Get()) { w.WriteLine(ManageObject["Name"].ToString()); w.WriteLine(" " + ManageObject["DisplayName"].ToString()); } w.Close(); } 一旦我添加了这条线: w.WriteLine(" " + ManageObject["DisplayName"].ToString()); 文本文件中的结果如下: Module Name Display Name Driver Type Link Date ============ ====================== ============= ====================== 1394ohci 1394 OHCI Compliant Host Controller 3ware 3ware ACPI Microsoft ACPI Driver acpiex Microsoft ACPIEx Driver acpipagr 在我添加行之前,文本文件是这样的: Module Name Display Name Driver Type Link Date ============ ====================== ============= ====================== 1394ohci 3ware ACPI acpiex acpipagr AcpiPmi 我只是想现在添加显示名称行,所以我添加了空格,因此行将在显示名称下开始,然后在行之间添加空格. 我怎么解决呢? ** 最后,文本文件应如下所示: Module Name Display Name Driver Type Link Date ============ ====================== ============= ====================== 1394ohci 1394 OHCI Compliant Ho Kernel 7/26/2012 5:26:46 AM 3ware 3ware Kernel 3/8/2012 10:33:45 PM ACPI Microsoft ACPI Driver Kernel 9/20/2012 9:09:16 AM acpiex Microsoft ACPIEx Drive Kernel 7/26/2012 5:25:57 AM acpipagr ACPI Processor Aggrega Kernel 7/26/2012 5:27:16 AM AcpiPmi ACPI Power Meter Drive Kernel 7/26/2012 5:27:33 AM acpitime ACPI Wake Alarm Driver Kernel 7/26/2012 5:27:37 AM 并在显示名称行中,也可能在moudle名称行中,以确保名称将在一行全名. 例如,在显示名称中:1394 OHCI Compliant Ho ** Module Name Display Name Driver Type Link Date ============ ====================== ============= ====================== 1394ohci 1394 OHCI Compliant Host Controller 3ware 3ware ACPI Microsoft ACPI Driver acpiex Microsoft ACPIEx Driver acpipagr ACPI Processor Aggregator Driver AcpiPmi ACPI Power Meter Driver 解决方法
你已经在循环中调用了WriteLine两次 – 所以它为每个项添加了两行.您只想添加一行,例如
w.WriteLine("{0} {1}",ManageObject["Name"],ManageObject["DisplayName"]); 这不会填充空格,所以你需要在composite format string中包含一个对齐方面.你想要左边填充,所以你需要一个负对齐,看起来你想在空格前有12个字符,所以: w.WriteLine("{0,-12} {1}",ManageObject["DisplayName"]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |