เขียนมาหลายครั้งแล้วไม่เคยจำซักที T_T เอามาลงไว้เตือนความจำซักหน่อย
หน้าตาของบรรทัดใน Text File มันคั่นด้วย Space หลายตัวติดกัน ใช้ string.Split(‘ ‘) อาจจะไม่เวิร์คเท่าไหร่ เพราะจะได้ empty string ติดมาด้วย
:
1.0000000e+000 2.4924448e+000 2.6646541e+000 ..
1.0000000e+000 -2.6678309e+000 -1.0957386e+000 ..
1.0000000e+000 -2.6132891e+000 -1.6032095e+000 ..
:
ส่วนอันนี้เป็นโค้ดสำหรับ parse ตัดมาเฉพาะใจความสำคัญ
string line;
int count = 0;
Regex regex = new Regex("[0-9e+-.]+");
while (count < maxLines && (line = tr.ReadLine()) != null)
{
int type = -1;
List<double> values = new List<double>();
MatchCollection matches = regex.Matches(line);
foreach (Match m in matches)
{
double d = double.Parse(m.Groups[0].Value);
if (type == -1) type = (int)d;
else values.Add(d);
}
count++;
Entry e = new Entry()
{
Type = type,
Data = values.ToArray()
};
list.Add(e);
}
92efe7c9-cea2-4808-9da9-8c200e05c2b7|0|.0
.NET
regular expression, c#