アイビー先生の力も借りてみましたが、とっかかりの時点で使うInferColumnsメソッドがそもそもまあCSVが基本でSQLiteとかのデータ読込には対応してないので、前回リストに入れたものをデータビューにとかは出来ない。って事は、まあね、ソースをSQLiteからCSVとして抜き出して、それを元にすれば...ってこれするなら単純にモデルビルダーで行けるじゃんorz なのでautoMLについて調べる気力が失せました😨
なので、ちと方向転換して何をCSVとして吐き出すかがキーになりそうで、それを検討しながらまたCsvHelperのお世話になるんですが、既に忘れてます😖 出力用のクラスを
- internal class STSrc
- {
- public string JouCD { get; set; }
- public byte TrackCD { get; set; }
- public short Kyori { get; set; }
- public byte Tenko { get; set; }
- public byte Baba { get; set; }
- public long Chichi { get; set; }
- public float KishuSyoritsu { get; set; }
- public float ChokyosiSyoritsu { get; set; }
- public float Souha { get; set; }
- public STSrc
- (
- string JouCD,
- byte TrackCD,
- short Kyori,
- byte Tenko,
- byte Baba,
- long Chichi,
- float KishuSyoritsu,
- float ChokyosiSyoritsu,
- float Souha
- )
- {
- this.JouCD = JouCD;
- this.TrackCD = TrackCD;
- this.Kyori = Kyori;
- this.Tenko = Tenko;
- this.Baba = Baba;
- this.Chichi = Chichi;
- this.KishuSyoritsu = KishuSyoritsu;
- this.ChokyosiSyoritsu = ChokyosiSyoritsu;
- this.Souha = Souha;
- }
- }
として、このマッピング用に
- internal class STTable : ClassMap<STSrc>
- {
- private STTable()
- {
- Map(c => c.JouCD).Index(0).Name("競馬場コード");
- Map(c => c.TrackCD).Index(1).Name("トラックコード");
- Map(c => c.Kyori).Index(2).Name("距離");
- Map(c => c.Tenko).Index(3).Name("天候コード");
- Map(c => c.Baba).Index(4).Name("馬場状態コード");
- Map(c => c.Chichi).Index(5).Name("繁殖登録番号_父");
- Map(c => c.KishuSyoritsu).Index(6).Name("騎手勝率");
- Map(c => c.ChokyosiSyoritsu).Index(7).Name("調教師勝率");
- Map(c => c.Souha).Index(8).Name("走破タイム");
- }
- }
と準備して、
- List<STSrc> st = new List<STSrc>();
をリーダーループ前に宣言して、
- kaisaibi = rs.GetDateTime("KAISAIBI");
- jouCD = rs.GetString("JOUCD");
- rno = rs.GetByte("RNO");
- tracdCD = rs.GetByte("TRACKCD");
- ketto = rs.GetInt32("KETTO");
- syoritsu = GetSyoritsu(cmdCK, kaisaibi, jouCD, rno, ketto, tracdCD);
- // データクラス
- STSrc shinbaTime = new STSrc(
- jouCD,
- tracdCD,
- rs.GetInt16("KYORI"),
- rs.GetByte("TENKO"),
- rs.GetByte("BABA"),
- GetChichi(cmdU, ketto),
- syoritsu.Kishu,
- syoritsu.Chokyosi,
- rs.GetFloat("SOUHA")
- );
- st.Add(shinbaTime);
と回してリスト作ったら、
- var path = @"ShinbaTime.csv";
- var config = new CsvConfiguration(CultureInfo.InvariantCulture)
- {
- HasHeaderRecord = true
- };
- using (StreamWriter sw = new StreamWriter(path, false))
- using (var csv = new CsvWriter(sw, config))
- {
- csv.Context.RegisterClassMap<STTable>();
- csv.WriteRecords(st);
- }
とすればCSV出力は完了する。
CSVが出来たのでまあ普通にモデルビルダーが動かせるので試してみた。
0 件のコメント:
コメントを投稿