C# 将我的数据表保存到 [txt] 文件中



我研究了这个问题的所有相关标题/主题,但似乎都没有解决我的问题......它产生"Seperated_File.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();
    }

为了访问 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"]}");
    }

文件为空的原因是因为它已经存在,并且您没有使用 StreamWriter 的第二个参数进行追加

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

最新更新