我有.txt文件我想阅读文档,我想将它存储到db。
这是我的txt文件:
0 79 142
1 202 135
4 122 125
5 152 123
6 110 122
7 165 121
8 100 124
9 176 121
11 138 159
12 121 155
13 154 154
17 139 181
19 119 182
20 160 179
22 141 221
我想读取第一个整数,即0,然后是79,142。之后我会存储79 - > 0-X和142-> 0-Y
然后202 - > 1-X和135 - > 1-Y,这将继续这样..
我尝试了memoryStream但是它读作一个字符串..而且我对C#也不是很好..
这是我试过的......
int counter = 0;
string line;
System.IO.StreamReader file =
new System.IO.StreamReader(@"C:\Users\musa\Desktop\test\00002fa001d_931230_AP.txt");
while ((line = file.ReadLine()) != null)
{
System.Console.WriteLine(line);
counter++;
}
file.Close();
MessageBox.Show(Convert.ToString(counter));
所以新的问题是我如何解析线?
答案 0 :(得分:1)
只需将其作为字符串读取并使用.Split('')将字符串拆分为单独字符串的数组。你可以将它们转换成整数。
答案 1 :(得分:1)
您是否考虑过使用StreamReader?
using (StreamReader sr = new StreamReader(path))
{
while (sr.Peek() >= 0)
{
Match match = Regex.Match(sr.ReadLine(), @"^(?<Index>\d+)\s(?<X>\d+)\s(?<Y>\d+)$");
// You can now access the Index, X and Y by using the following statement
// match.Groups["Index"];
// match.Groups["X"];
// match.Groups["Y"];
}
}
答案 2 :(得分:1)
您可以使用int.Parse将字符串解析为int
var coords=File.ReadAllText(path)
.Split(new char[]{'\r',\n'},StringSplitOptions.RemoveEmptyEntries)
.Select(i=>
new
{
X=int.Parse(i.Split(' ')[1]),
Y=int.Parse(i.Split(' ')[2])
}
);
你现在可以迭代coords
foreach(var coordinate in coords)
{
coordinate.X;
coordinate.Y;
}