2017-06-12 119 views
-2

我研究所有相关的标题/主题到这个问题,但似乎没有解决我的问题..它产生'Seperated_File.txt',但它是一个完全空白的文本文件。感谢您的回复。c#将我的数据表保存到一个[txt]文件

修订版(溶液)

 string[] lines = File.ReadAllLines(@"d:\Processed_Text.txt"); 
     DataTable dt = new DataTable(); 

     dt.Columns.Add("IP Address"); 
     dt.Columns.Add("Date"); 
     dt.Columns.Add("Time"); 
     dt.Columns.Add("GMT"); 
     dt.Columns.Add("Method"); 
     dt.Columns.Add("Resource"); 
     dt.Columns.Add("Port"); 
     dt.Columns.Add("Bytes"); 
     dt.Columns.Add("Services"); 
     dt.Columns.Add("Destination"); 
     dt.Columns.Add("Operating System"); 

     foreach (string line in lines) 
     { 
      string[] split = line.Split(' ', ':'); 


      split = split.Where(r => !string.IsNullOrWhiteSpace(r)).ToArray(); 

      Foo foo = new Foo(); 

      foo.IPAddress = split[0]; 
      foo.Date = split[1]; 
      foo.Time = string.Format("{0}:{1}:{2}", split[2], split[3], split[4]); 
      foo.GMT = split[5]; 
      foo.Method = split[6]; 
      foo.Resource = split[7]; 
      foo.Port = split[8]; 
      foo.Bytes = split[9]; 
      foo.Service = split[10]; 
      foo.Destination = split[11]; 
      foo.OS = split[12]; 

      dt.Rows.Add(foo.IPAddress, foo.Date, foo.Time, foo.GMT, foo.Method, foo.Resource, foo.Port, foo.Bytes, foo.Service, foo.Destination, foo.OS); 
     } 

      using (StreamWriter sw = new StreamWriter(@"d:\Seperated_Text.txt")) 
      foreach (DataRow dr in dt.Rows) 
     { 
      Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7], dr[8], dr[9], dr[10])); 
      sw.WriteLine(String.Join(",", dr.ItemArray)); 
      sw.WriteLine(dr); 

     } 
     Console.ReadLine(); 
    } 
+1

请张贴您的实际代码。你已经把结果与'vresult'混合在一起,你提到'sw',但它看起来像你实际上是指'objWriter'。编辑为 – itsme86

+1

,抱歉给您带来不便。以为我想展示什么样的尝试。 –

+0

更新:我的代码是解决方案..自己得到它。感谢您的回复。 –

回答

0

为了访问一个DataRow中的数据,你需要做的:

foreach (DataRow row in table.Rows) 
      { 
       Console.WriteLine($"{row.ItemArray[0]} | {row.ItemArray[1]} | {row.ItemArray[2]}"); 
      } 

或者如果你喜欢:

foreach (DataRow row in table.Rows) 
    { 
     Console.WriteLine($"{row["IP Address"]} | {row["Date"]} | {row["Time"]}"); 
    } 
+0

那么,从这里我可以直接将它保存为.txt文件吗? –

+0

那么你需要使用一个文件编写器,但是。你的问题似乎主要是因为你没有调用任何可见的数据,所以当你编写.txt文件时,没有什么可写的。 – gilliduck

+0

我使用streamwriter修复了它......谢谢你的回复:) –

0

该文件为空的原因是因为它已经存在,您不是追加使用StreamWriter的第二个参数:

bool append = true; 
using (StreamWriter sw = new StreamWriter(@"d:\Seperated_Text.txt", append)) 
+0

为什么我在我的文本文件的每一行都得到System.Data.DataRow?任何想法 –

+0

尝试使用toString:'dr [0] .ToString()' –

+0

它表示将annot从'method group'转换为'object':/ –

相关问题