0

Powerball 宝くじのテキスト ファイルを解析し、6 つの列をそれぞれ独自の配列に追加してから、少し試してみます。

データの例を次に示します。

Draw Date   WB1 WB2 WB3 WB4 WB5 PB  PP
04/03/2013  35  08  12  01  06  03  
03/30/2013  23  46  11  26  55  27  
03/27/2013  43  48  07  37  52  16  
03/23/2013  29  53  52  17  31  31  
03/20/2013  43  17  14  13  54  15  
03/16/2013  44  53  07  21  03  16  
...

これが私が念頭に置いていたことです:

int[] column1 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] column2 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] column3 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] column4 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] column5 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] column6 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

解析機能を少しだけ使用する必要があります。PHP の爆発関数のようなものがいいでしょう。

4

3 に答える 3

3

操作の基本モード: 行に分割し、セパレーターで分割し、データを操作します。単純な解析関数は次のようになります。

var cli = new WebClient();
var raw = cli.DownloadString("http://www.powerball.com/powerball/winnums-text.txt");
var lines = raw.Split('\n');
var records = from line in lines.Skip(1)
              let parts = line.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries)
              select new {
                Date = DateTime.Parse(parts[0], CultureInfo.InvariantCulture),
                Numbers = parts.Skip(1).Take(6).Select(x => int.Parse(x))
              };
于 2013-04-05T16:46:58.370 に答える
0

Split関数が必要だと思います

"text and stuffz".Split('\n');
于 2013-04-05T16:42:12.823 に答える
0

分割の代わりに固定幅のアプローチが好きな場合 (ただし、分割の方が簡単です)、部分文字列関数を使用できます。

DateTime date = DateTime.ParseExact(line.Substring(0, 10), "MM\\/dd\\/yyyy");
string[] nums = new string[6];
nums[0] = line.Substring(12, 2).Trim();
nums[1] = line.Substring(16, 2).Trim();
etc...

また

string[] nums = new[]
    {
        line.Substring(12, 2).Trim(),
        line.Substring(16, 2).Trim(),
        etc...
    };
于 2013-04-05T16:48:53.673 に答える