我有一个类似的文本文件:
0 06 1.2.3.4 A B
0 09 1.2.3.4 B A
0 19 1.2.3.4 C B
0 25 1.2.3.4 E C
1 15 1.2.3.4 A -
1 26 1.2.3.4 F C
1 30 1.2.3.4 B A
1 36 1.2.3.4 D B
第一个圆柱是Minute,第二个是Second,第三个是IP,第四个是URL,final是Refer .. 我有一节课要保存:
class LogEntry
{
private int minute;
private int second;
private string ip;
private string url;
public string Url
private string refer;
}
我必须逐行阅读,删除空格并将其保存到Class LogEntry 我怎样才能做到这一点? :( string path = ofd.FileName; TextReader reader = new StreamReader(path); string line = reader.ReadLine();
// string alltext = reader.ReadToEnd();
string[] a = line.Split(new Char[] { ' ' });
string b = "";
LogEntry entry = new LogEntry();
string c = String.Empty;
while ((c = reader.ReadLine()) != null)
{
foreach (string s in a)
{
if (s.Trim() != "")
{
entry.Minute = Convert.ToInt32(b);
entry.Second = Convert.ToInt32(b);
entry.Ip = b;
entry.Url = b;
entry.Refer = b;
b += s + "\n";
list.Add(entry);
}
}
}
}
}
答案 0 :(得分:1)
首先使用自动实现的属性而不是字段。
class LogEntry
{
public int Minute { get; set; }
public int Second { get; set; }
public string IP { get; set; }
public string Url { get; set; }
public string Reference { get; set; }
}
然后将File.ReadLines
方法与LINQ
一起使用并填充您的欲望:
var logEntries = File.ReadLines("path")
.Select(x => x.Split())
.Select(x => new LogEntry
{
Minute = int.Parse(x[0]),
Second = int.Parse(x[1]),
IP = x[2],
Url = x[3],
Reference = x[4]
}).ToList();
答案 1 :(得分:0)
好的,你有一个文本文件,里面有以下内容:
0 06 1.2.3.4 A B
0 09 1.2.3.4 B A
0 19 1.2.3.4 C B
0 25 1.2.3.4 E C
1 15 1.2.3.4 A -
1 26 1.2.3.4 F C
1 30 1.2.3.4 B A
1 36 1.2.3.4 D B
您需要的是一个包含您想要逐行读取的变量的类(分钟,秒,IP,URL,引用)。这些变量还必须具有get和set访问器或最常见的属性,这对于从文本文件保存到类是必不可少的。现在,您可以在此创建一个单独的代码,用于访问变量并保存class LogEntry
中包含的变量。请注意,类中的变量不具有在类中存储时不可取的属性。