如何读取文本文件并将其导入sql数据库?

时间:2014-02-26 08:08:58

标签: c# readline

我有.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));

所以新的问题是我如何解析线?

3 个答案:

答案 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;
}