使用C#从文本文件中提取数据

本文关键字:提取 数据 文件 文本 使用 | 更新日期: 2023-09-27 18:22:10

我正在尝试使用c从文本文件中提取数据#文件的内容如下-

2002/01/10 00:44:51.53  40.4415 -126.0167  25.37  3.92   Md   56 269  147 0.29 NCSN   21208454 

现在我想把文本文件中的数据存储在这样的变量中——

日期=2002/01/10

时间=00:44:51.53

lat=40.4115,依此类推。

这是我使用的代码片段

     public class data
  {
  public string date, time;
  public double lat, lon,depth,mag;
  }
 class Program
 {
static void Main(string[] args)
{
    string dt;
    List<data> gd = new List<data>();
    using (StreamReader sr = new StreamReader("E:''op.html"))
    {
        while (sr.Peek() > 0)
        {
            string str;
            string[] arr;
            str = sr.ReadLine();
            arr = str.Split(' ');
            data d = new data();
            d.date = arr[0];
            //d.time = arr[1];
            //d.lat = Convert.ToDouble( arr[2]);
            //d.lon = Convert.ToDouble(arr[3]);
            //d.depth = Convert.ToDouble(arr[4]);
            //d.mag = Convert.ToDouble(arr[5]);

            Console.WriteLine(d.date);
            //Console.WriteLine(d.time);
            //Console.WriteLine(d.lat);
            //Console.WriteLine(d.lon);
            //Console.WriteLine(d.depth);
            //Console.WriteLine(d.mag);
            Console.ReadKey();
        }

但是我只得到d.date的值,不能得到其余的值。标有"//"的行引发错误"IndexOutOfBound"错误。。如何解决这个问题?

使用C#从文本文件中提取数据

您需要使用代理的身份验证信息将httpWReq.Proxy.Credentials设置为NetworkCredentials

public class data
{
    public string date, time,mag;
    public double lat, lon, depth;
}
class Program
{
    static void Main(string[] args)
    {
        string str;
        string dt;
        List<data> gd = new List<data>();
        using (StreamReader sr = new StreamReader("E:''op.html"))
        {
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                string [] arr = line.Split(new char[] {' '}, System.StringSplitOptions.RemoveEmptyEntries);
                while (sr.Peek() > 0)
                {
                    string[] s = new string[] { " " };
                    char[] c = new char[] { ' ' };
                    str = sr.ReadLine();
                    arr = str.Split(c);
                    data d = new data();
                    d.date = arr[0];
                    d.time = arr[1];
                    d.lon =Convert.ToDouble(arr[3]);
                    d.depth = Convert.ToDouble (arr[4]);
                    d.mag = arr[8];
                    //                    File.WriteAllText("E:''abc.txt",d.date);
                    Console.WriteLine(d.date);
                    Console.WriteLine(d.time);
                    //Console.WriteLine(d.lat);
                    Console.WriteLine(d.lon);
                    Console.WriteLine(d.depth);
                    Console.WriteLine(d.mag);
                    int x = arr[0].Length;
                    Console.WriteLine(x);
                    Console.ReadKey();
                }