Esempio n. 1
0
        public static int LibScsMain(String spec, ref String Buff, ref String Cource)
        {
            switch (spec)
            {
            case "YS":
                JVData_Struct.JV_YS_SCHEDULE JvSche = new JVData_Struct.JV_YS_SCHEDULE();
                conv.JvConv JvConv = new conv.JvConv();

                String res = "";
                JvSche.SetDataB(ref Buff);
                if (JvConv.JvConvJyoCdToString(JvSche.id.JyoCD, ref res) == 0)
                {
                    return(0);                                                               //競馬場コードが不明のときはエラー
                }
                Cource = res;
                return(1);

            case "RA":
                JVData_Struct.JV_RA_RACE JvRace = new JVData_Struct.JV_RA_RACE();
                conv.JvConv JvConv1             = new conv.JvConv();
                JvRace.SetDataB(ref Buff);
                String resRA = "";
                if (JvConv1.JvConvJyoCdToString(JvRace.id.JyoCD, ref resRA) == 0)
                {
                    return(0);                                                                  //競馬場コードが不明のときはエラー
                }
                Cource = resRA;
                return(1);
            }
            return(1);
        }
Esempio n. 2
0
        bool getDbDataJvLink(DateTime datetimeTarg, List <string> listdbDate)
        {
            JVData_Struct.JV_RA_RACE     jvRaRace    = new JVData_Struct.JV_RA_RACE();
            JVData_Struct.JV_SE_RACE_UMA jvSeRaceUma = new JVData_Struct.JV_SE_RACE_UMA();
            string   retbuff;
            long     cntLoop     = 0;
            bool     isExistData = false;
            int      size        = 40000;
            int      count       = 256;
            int      option;
            string   strDate;
            double   bunbo;
            DateTime DateTimeStart;

            if (listdbDate.Count > 0)
            {
                strDate       = listdbDate[listdbDate.Count - 1];
                DateTimeStart = DateTime.Parse(listdbDate[listdbDate.Count - 1].Insert(4, "/").Insert(7, "/"));
                option        = 1;
            }
            else
            {
                TimeSpan timeSpan = new TimeSpan(365 * 4, 0, 0, 0); //365*4
                strDate       = (datetimeTarg - timeSpan).ToString("yyyyMMdd");
                DateTimeStart = datetimeTarg - timeSpan;
                option        = 4;
            }
            bunbo = (datetimeTarg - DateTimeStart).TotalDays;

            _form1.prgJVRead.Maximum = 100;
            _form1.prgJVRead.Value   = 0;
            if (!cCommon.isJVOpen("RACE", strDate, option))
            {
                return(false);
            }

            do
            {
                retbuff = cCommon.loopJVRead(size, count, true);
                if (retbuff == "" || retbuff == "END")
                {
                    break;
                }
                if (retbuff.Substring(0, 2) == "RA")
                {
                    jvRaRace.SetDataB(ref retbuff);

                    // 中央競馬以外は除外
                    int intJyoCD;
                    if (!int.TryParse(jvRaRace.id.JyoCD, out intJyoCD))
                    {
                        continue;
                    }
                    else if (intJyoCD < 1 || intJyoCD > 10)
                    {
                        continue;
                    }

                    // プログレスバー更新
                    DateTime dateTimeJv = DateTime.Parse((retbuff.Substring(11, 8)).Insert(4, "/").Insert(7, "/"));
                    if (dateTimeJv > datetimeTarg)
                    {
                        continue;
                    }
                    double bunshi = (dateTimeJv - DateTimeStart).TotalDays;
                    if (bunshi < 0)
                    {
                        bunshi = 0;
                    }
                    _form1.prgJVRead.Value = (int)(bunshi / bunbo * 100);
                    if (_form1.prgJVRead.Value < _form1.prgJVRead.Maximum)
                    {
                        _form1.prgJVRead.Value++;
                        _form1.prgJVRead.Value--;
                    }
                    _form1.rtbData.Text = jvRaRace.id.Year + jvRaRace.id.MonthDay;
                    _form1.rtbData.Refresh();

                    // DBにデータがある場合は除外
                    if (isExistDateList(listdbDate, jvRaRace.id.Year + jvRaRace.id.MonthDay))
                    {
                        isExistData = true;
                        //_form1.axJVLink1.JVSkip();
                        continue;
                    }

                    isExistData = false;

                    // テキストボックス更新
                    string codeName = this.objCodeConv.GetCodeName("2001", jvRaRace.id.JyoCD, 1);
                    _form1.rtbData.Text = jvRaRace.id.Year +
                                          jvRaRace.id.MonthDay + " " +
                                          codeName + " " +
                                          "取得中";
                    _form1.rtbData.Refresh();

                    listRaceInfo.Add(new clsDbInfo()
                    {
                        strdate = jvRaRace.id.Year + jvRaRace.id.MonthDay,
                        nameJyo = codeName,
                        racenum = jvRaRace.id.RaceNum,
                        raceId  = jvRaRace.id.Year + jvRaRace.id.MonthDay +
                                  jvRaRace.id.JyoCD + jvRaRace.id.RaceNum,
                    });
                }
                else if (retbuff.Substring(0, 2) == "SE")
                {
                    if (isExistData)
                    {
                        _form1.axJVLink1.JVSkip();
                        continue;
                    }
                    jvSeRaceUma.SetDataB(ref retbuff);

                    // 中央競馬以外は除外
                    int intJyoCD;
                    if (!int.TryParse(jvSeRaceUma.id.JyoCD, out intJyoCD))
                    {
                        continue;
                    }
                    else if (intJyoCD < 1 || intJyoCD > 10)
                    {
                        continue;
                    }

                    string codeName = objCodeConv.GetCodeName("2001", jvSeRaceUma.id.JyoCD, 1);
                    foreach (clsDbInfo RaceInfo in listRaceInfo)
                    {
                        if (RaceInfo.strdate ==
                            jvSeRaceUma.id.Year + jvSeRaceUma.id.MonthDay &&
                            RaceInfo.nameJyo == codeName &&
                            RaceInfo.racenum == jvSeRaceUma.id.RaceNum)
                        {
                            listdbInfo.Add(new clsDbInfo()
                            {
                                strdate = RaceInfo.strdate,
                                nameJyo = RaceInfo.nameJyo,
                                racenum = RaceInfo.racenum,
                                Bamei   = jvSeRaceUma.Bamei.Trim(),
                                Umaban  = jvSeRaceUma.Umaban,
                                raceId  = RaceInfo.raceId,
                            });
                            break;
                        }
                    }
                }
                else
                {
                    _form1.axJVLink1.JVSkip();
                }
                cntLoop++;
            }while (cntLoop <= 1000000);
            _form1.prgJVRead.Maximum++;
            _form1.prgJVRead.Value =
                _form1.prgJVRead.Maximum;
            _form1.prgJVRead.Maximum--;

            int retJVClose = _form1.axJVLink1.JVClose();

            if (retJVClose != 0)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// JVReading処理
        /// </summary>
        /// <param name="endDate">終了日</param>
        public static void JVReading(string endDate)
        {
            bool reading = true;
            int nCount = 0;
            object buffObj = new byte[0];
            int buffsize = 110000;
            string endTimeStamp = endDate + "235959";
            string timeStamp;
            string buffname;

            if (JVDataAccessType == eJVDataAccessType.eRACE)
            {
                ProgressUserState.Maxinum = ReadCount;
                ProgressUserState.Value = 0;
                ProgressUserState.Text = "データ読み込み中...";
                MainBackgroundWorker.ReportProgress(0, ProgressUserState);
            }

            do
            {
                //---------------------
                // JVLink読込み処理
                //---------------------
                buffObj = new byte[0];
                int nRet = AxJVLink.JVGets(ref buffObj, buffsize, out buffname);
                timeStamp = AxJVLink.m_CurrentFileTimeStamp;
                byte[] buff = (byte[])buffObj;
                string buffStr = System.Text.Encoding.GetEncoding(932).GetString(buff);

                // 正常
                if (0 < nRet)
                {
                    string recordSpec = JVData_Struct.MidB2S(ref buff, 1, 2);
                    buffObj = new byte[0];
                    buff = new byte[0];

                    if (0 <= endTimeStamp.CompareTo(timeStamp))
                    {
                        switch (recordSpec)
                        {
                            case "RA":
                                JVData_Struct.JV_RA_RACE race = new JVData_Struct.JV_RA_RACE();
                                race.SetDataB(ref buffStr);
                                OutputRaceData(eOutput.Umanushi, race);
                                break;

                            case "SE":
                                JVData_Struct.JV_SE_RACE_UMA raceUma = new JVData_Struct.JV_SE_RACE_UMA();
                                raceUma.SetDataB(ref buffStr);
                                OutputRaceUmaData(eOutput.Umanushi, raceUma);
                                break;

                            default:
                                if (JVDataAccessType == eJVDataAccessType.eRACE)
                                {
                                    // 対象外recspecのファイルをスキップする。
                                    AxJVLink.JVSkip();
                                    nCount++;
                                    ProgressUserState.Value = nCount;
                                    ProgressUserState.Text = "データ読み込み中...";
                                    MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                                }
                                break;
                        }
                    }
                    else
                    {
                        // 対象外recspecのファイルをスキップする。
                        AxJVLink.JVSkip();
                        nCount++;
                        ProgressUserState.Value = nCount;
                        ProgressUserState.Text = "データ読み込み中...";
                        MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                    }
                }
                // ファイルの切れ目
                else if (-1 == nRet)
                {
                    if (JVDataAccessType == eJVDataAccessType.eRACE)
                    {
                        nCount++;
                        ProgressUserState.Value = nCount;
                        ProgressUserState.Text = "データ読み込み中...";
                        MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                    }
                }
                // 全レコード読込み終了(EOF)
                else if (0 == nRet)
                {
                    if (JVDataAccessType == eJVDataAccessType.eRACE)
                    {
                        ProgressUserState.Value = ProgressUserState.Maxinum;
                        ProgressUserState.Text = "データ読み込み完了";
                        MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                    }

                    reading = false;
                }
                // エラー
                else if (-1 > nRet)
                {
                    // エラーファイルをスキップする。
                    AxJVLink.JVSkip();
                    nCount++;
                    ProgressUserState.Value = nCount;
                    ProgressUserState.Text = "データ読み込み中...";
                    MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                }

                System.Threading.Thread.Sleep(10);
            }
            while (true == reading);
        }
Esempio n. 4
0
 public void FunctionMain(JVData_Struct.JV_RA_RACE JvDate)
 {
 }
Esempio n. 5
0
 private void setDate(JVData_Struct.JV_RA_RACE JvDate)
 {
 }
Esempio n. 6
0
        private List <List <string> > GetRaceNumInfoX(DateTime datetimeTarg, string collplace)
        {
            List <List <string> > stringListList = new List <List <string> >();
            List <string>         stringList     = new List <string>();

            try
            {
                int size  = 110000;
                int count = 256;
                JVData_Struct.JV_RA_RACE jvRaRace = new JVData_Struct.JV_RA_RACE();
                this.tmrDownload.Enabled = false;
                this.prgJVRead.Value     = 0;
                string   dataspec      = "RACE";
                TimeSpan timeSpan      = new TimeSpan(1, 0, 0, 0);
                string   str           = (datetimeTarg - timeSpan).ToString("yyyyMMdd");
                int      option        = DateTime.Now > datetimeTarg.AddYears(1) ? 4 : 1;
                int      readcount     = 0;
                int      downloadcount = 0;
                int      num1          = this.AxJVLink1.JVOpen(dataspec, str + "000000", option, ref readcount, ref downloadcount, out string _);
                if (num1 != 0)
                {
                    int num2 = (int)MessageBox.Show("JVOpen エラー:" + (object)num1);
                }
                else
                {
                    this.prgJVRead.Maximum = readcount;
                    if (readcount > 0)
                    {
                        bool flag1 = false;
                        bool flag2 = false;
                        do
                        {
                            System.Windows.Forms.Application.DoEvents();
                            string buff     = new string(char.MinValue, size);
                            string filename = new string(char.MinValue, count);
                            switch (this.AxJVLink1.JVRead(out buff, out size, out filename))
                            {
                            case -503:
                                int num3 = (int)MessageBox.Show(filename + "が存在しません。");
                                flag1 = true;
                                goto case -3;

                            case -203:
                                int num4 = (int)MessageBox.Show("JVOpen が行われていません。");
                                flag1 = true;
                                goto case -3;

                            case -201:
                                int num5 = (int)MessageBox.Show("JVInit が行われていません。");
                                flag1 = true;
                                goto case -3;

                            case -3:
                                continue;

                            case -1:
                                ++this.prgJVRead.Value;
                                goto case -3;

                            case 0:
                                this.prgJVRead.Value = this.prgJVRead.Maximum;
                                flag1 = true;
                                goto case -3;

                            default:
                                if (buff.Substring(0, 2) == "RA")
                                {
                                    jvRaRace.SetDataB(ref buff);
                                    string   s        = (jvRaRace.id.Year + jvRaRace.id.MonthDay).Insert(4, "/").Insert(7, "/");
                                    DateTime dateTime = DateTime.Parse(s);
                                    if (flag2 && dateTime > datetimeTarg)
                                    {
                                        flag1 = true;
                                    }
                                    if (jvRaRace.head.DataKubun != "9" && s == datetimeTarg.ToString("yyyy/MM/dd"))
                                    {
                                        string codeName = this.objCodeConv.GetCodeName("2001", jvRaRace.id.JyoCD, (short)1);
                                        if (collplace == codeName)
                                        {
                                            flag2 = true;
                                            stringList.Add(jvRaRace.id.RaceNum);
                                            stringList.Add(jvRaRace.Kyori);
                                            stringListList.Add(stringList);
                                            stringList = new List <string>();
                                            goto case -3;
                                        }
                                        else
                                        {
                                            goto case -3;
                                        }
                                    }
                                    else
                                    {
                                        goto case -3;
                                    }
                                }
                                else
                                {
                                    this.AxJVLink1.JVSkip();
                                    goto case -3;
                                }
                            }
                        }while (!flag1);
                    }
                }
            }
            catch (Exception ex)
            {
                return((List <List <string> >)null);
            }
            int num6 = this.AxJVLink1.JVClose();

            if (num6 != 0)
            {
                int num7 = (int)MessageBox.Show("JVClose エラー:" + (object)num6);
            }
            this.prgJVRead.Value = this.prgJVRead.Maximum;
            return(stringListList);
        }
Esempio n. 7
0
        private List <string> GetPlaceInfoReal(DateTime datetimeTarg)
        {
            List <string> stringList = new List <string>();

            JVData_Struct.JV_RA_RACE jvRaRace = new JVData_Struct.JV_RA_RACE();
            int      size     = 110000;
            int      count    = 256;
            string   dataspec = "0B15";
            TimeSpan timeSpan = new TimeSpan(0, 0, 0, 0);

            string str  = (datetimeTarg - timeSpan).ToString("yyyyMMdd");
            int    num1 = this.AxJVLink1.JVRTOpen(dataspec, str);

            if (num1 != 0)
            {
                int num2 = (int)MessageBox.Show("JVOpen エラー:" + (object)num1);
            }
            else
            {
                bool flag   = false;
                bool isFind = false;
                do
                {
                    System.Windows.Forms.Application.DoEvents();
                    string buff     = new string(char.MinValue, size);
                    string filename = new string(char.MinValue, count);
                    switch (this.AxJVLink1.JVRead(out buff, out size, out filename))
                    {
                    case -503:
                        int num3 = (int)MessageBox.Show(filename + "が存在しません。");
                        flag = true;
                        goto case -3;

                    case -203:
                        int num4 = (int)MessageBox.Show("JVOpen が行われていません。");
                        flag = true;
                        goto case -3;

                    case -201:
                        int num5 = (int)MessageBox.Show("JVInit が行われていません。");
                        flag = true;
                        goto case -3;

                    case -3:
                        continue;

                    case -1:
                        ++this.prgJVRead.Value;
                        goto case -3;

                    case 0:
                        this.prgJVRead.Value = this.prgJVRead.Maximum;
                        flag = true;
                        goto case -3;

                    default:
                        if (buff.Substring(0, 2) == "RA")
                        {
                            jvRaRace.SetDataB(ref buff);
                            DateTime dateTime = DateTime.Parse((jvRaRace.id.Year + jvRaRace.id.MonthDay).Insert(4, "/").Insert(7, "/"));
                            int      num6     = dateTime > datetimeTarg ? 1 : 0;
                            string   codeName = this.objCodeConv.GetCodeName("2001", jvRaRace.id.JyoCD, (short)1);
                            if (dateTime.Date == datetimeTarg.Date)
                            {
                                isFind = false;
                                foreach (string ele in stringList)
                                {
                                    if (ele == codeName)
                                    {
                                        isFind = true;
                                    }
                                }
                                if (!isFind)
                                {
                                    stringList.Add(codeName);
                                    goto case -3;
                                }
                            }
                            else
                            {
                                goto case -3;
                            }
                        }
                        goto case -3;
                    }
                }while (!flag);
            }
            int num7 = this.AxJVLink1.JVClose();

            if (num7 != 0)
            {
                int num8 = (int)MessageBox.Show("JVClose エラー:" + (object)num7);
            }
            this.prgJVRead.Value = this.prgJVRead.Maximum;
            return(stringList);
        }
Esempio n. 8
0
        private void RunJvReadFuncToRAData(JVData_Struct.JV_RA_RACE buff, int funcNumber)
        {
            JvRaceDataMasterStructures RaceMaster = new JvRaceDataMasterStructures();

            if (funcNumber == 0)
            {
                //開催日データ・セット
                setkaisaiDate(RaceData.id.MonthDay);

                RaceNum.Add((libJvSysConv.LibJvConvCourceNum2String(RaceData.id.JyoCD) + RaceData.id.RaceNum + "R")); //場名+レース番号+R
                String Old   = Func.ChgYearOldString(RaceData.JyokenInfo.SyubetuCD, 1);                               //3歳以上
                String Joken = Func.CngRaceCla(RaceData.JyokenInfo.JyokenCD);                                         //500万下
                String TD    = Func.CngTrackCdtoString(1, RaceData.TrackCD);                                          //芝・ダート

                DefData.Date       = RaceData.id.MonthDay;
                DefData.Kai        = Int32.Parse(RaceData.id.Kaiji);
                DefData.Nichi      = Int32.Parse(RaceData.id.Nichiji);
                DefData.RaceCourse = Func.ChgJyoCDtoString(RaceData.id.JyoCD);            //場名
                DefData.RaceNumber = Int32.Parse(RaceData.id.RaceNum);                    //レース番号
                DefData.TD         = Func.CngTrackCdtoString(1, RaceData.TrackCD);        //芝・ダート
                DefData.Distance   = Int32.Parse(RaceData.Kyori);                         //距離

                //コース・距離
                Track.Add(TD);
                Distance.Add(RaceData.Kyori);


                if (RaceData.RaceInfo.Hondai.TrimEnd().Equals(""))
                {
                    //条件レース
                    DefData.RaceName = Old + Joken;
                    HName.Add(Old + Joken);
                }
                else
                {
                    String Name = RaceData.RaceInfo.Hondai.TrimEnd();
                    if (RaceData.GradeCD.Equals(" ") || RaceData.GradeCD.Equals("E"))
                    {
                        /* 重賞レース以外 → 条件入れる */
                        HName.Add(Name + "(" + Old + Joken + ")");
                        DefData.RaceName = Name;
                    }
                    else
                    {
                        //重賞レース → グレード入れる
                        HName.Add(Name + "(" + Func.ChgGradeCdToString(RaceData.GradeCD) + ")");
                        DefData.RaceName = Name + "(" + Func.ChgGradeCdToString(RaceData.GradeCD) + ")";
                    }
                }

                JyoMei = Func.ChgJyoCDtoString(RaceData.id.JyoCD);
                tmp.Add(DefData);
                KaisaiInfo.MaxRaceCounter++;    //最大レース数

                /* 開催情報 */
                FunctionKaisaiDateInfo(JyoMei);

                ArrayDefData.Add(DefData);
            }
            else if (funcNumber == 1)
            {
                /* 過去のデータ */
                return;
            }
        }
Esempio n. 9
0
        private int JvReadFuncToRCOVData()
        {
            String  buff       = null;
            int     buffsize   = 2000;
            String  fName      = null;
            int     skipCount  = 0;
            int     boolStatus = 0;
            Boolean eof        = false;

            do
            {
                int ret = JvMain.ReadJv(out buff, out buffsize, out fName);

                if (ret == -1)
                {
                    /* ファイルの切り替え */
                    if (eof == true)
                    {
                        break;
                    } //2日分の開催データ取得完了

                    JvMain.SkipJv();
                }
                else if (buff == null)
                {
                    break;  //エラー
                }
                else if (ret == 0)
                {
                    if (eof == true)
                    {
                        /* ファイル読み込みの終了 */
                        break;
                    }
                    else
                    {
                        skipCount++;        //3回以上スキップしたら終了する。
                        JvMain.SkipJv();
                        continue;
                    }
                }
                if (buff == null)
                {
                    JvMain.SkipJv();
                    continue;
                }

                JvRaceDataMasterStructures MasterDataSe = new JvRaceDataMasterStructures();
                switch (buff.Substring(0, 2))
                {
                case "SE":
                    /* 相手馬 */
                    JVData_Struct.JV_SE_RACE_UMA Se = new JVData_Struct.JV_SE_RACE_UMA();

                    Se.SetDataB(ref buff);
                    MasterDataSe.Common.Waku   = Int32.Parse(Se.Wakuban);
                    MasterDataSe.Common.Umaban = Int32.Parse(Se.Umaban);
                    MasterDataSe.Common.Bamei  = Se.Bamei;
                    MasterDataSe.Common.Jokkey = Se.KisyuRyakusyo;
                    MasterDataSe.Common.Omosa  = Int32.Parse(Se.Futan);
                    MasterDataSe.Rank          = Se.KakuteiJyuni;
                    if (Se.KakuteiJyuni.Equals("01"))
                    {
                        MasterDataSe.AiteUma = "(" + Se.ChakuUmaInfo[0].Bamei + ")";
                    }
                    else
                    {
                        MasterDataSe.AiteUma = Se.ChakuUmaInfo[0].Bamei;
                    }
                    MasterDataSe.Bataiju     = Se.BaTaijyu;
                    MasterDataSe.Zougen      = Se.ZogenFugo;            /* + - */
                    MasterDataSe.BataijuDiff = Se.ZogenSa;

                    MasterDataSe.final3F        = Se.HaronTimeL3;
                    MasterDataSe.DiffTime       = Se.TimeDiff;
                    MasterDataSe.Conner.conner1 = Int32.Parse(Se.Jyuni1c);
                    MasterDataSe.Conner.conner2 = Int32.Parse(Se.Jyuni2c);
                    MasterDataSe.Conner.conner3 = Int32.Parse(Se.Jyuni3c);
                    MasterDataSe.Conner.conner4 = Int32.Parse(Se.Jyuni4c);
                    MasterDataSe.Time           = Se.Time;


                    tmpFormPerfomanceSE.Add(MasterDataSe);
                    break;

                case "RA":
                    /* 頭数・馬場状態 */
                    JVData_Struct.JV_RA_RACE Race = new JVData_Struct.JV_RA_RACE();
                    Race.SetDataB(ref buff);
                    String TrackCD = Race.TenkoBaba.SibaBabaCD + Race.TenkoBaba.DirtBabaCD;
                    MasterDataSe.SyusouTosu = Int32.Parse(Race.SyussoTosu);
                    MasterDataSe.BabaJotai  = TrackCD;

                    tmpFormPerfomanceRA.Add(MasterDataSe);
                    break;

                case "UM":
                    JVData_Struct.JV_UM_UMA    Uma        = new JVData_Struct.JV_UM_UMA();
                    JvRaceDataMasterStructures MasterData = new JvRaceDataMasterStructures();
                    Uma.SetDataB(ref buff);
                    MasterDataSe.Common.Bamei = Uma.Bamei;
                    MasterDataSe.Blood.fHorse = Uma.Ketto3Info[0].Bamei;
                    MasterDataSe.Blood.mHours = Uma.Ketto3Info[1].Bamei;
                    MasterDataSe.Blood.BMS    = Uma.Ketto3Info[4].Bamei;
                    MasterDataSe.Blood.BMS1   = Uma.Ketto3Info[12].Bamei;
                    tmpFormPerfomance.Add(MasterDataSe);
                    break;
                }
            }while (boolStatus == 0 && skipCount < 10);

            /* 結合処理を加える */
            //  JointmpFormPerfomanceData();
            return(0);
        }
Esempio n. 10
0
        void setDataRA(ClassCSV cCSV, string retbuff, DateTime datetimeTarg)
        {
            DateTime dateTime;
            string   strShortJyo;
            string   strJyo;
            long     rowTarget;
            string   tmpBaba;
            string   tmpTenko;

            JVData_Struct.JV_RA_RACE mRaData =
                new JVData_Struct.JV_RA_RACE();
            mRaData.SetDataB(ref retbuff);
            dateTime = DateTime.Parse(
                (mRaData.id.Year +
                 mRaData.id.MonthDay).Insert(4, "/").Insert(7, "/"));
            if (dateTime.ToShortDateString() != datetimeTarg.ToShortDateString())
            {
                return;
            }
            strJyo = cCommon.JyoCord(mRaData.id.JyoCD);
            if (strJyo == "")
            {
                return;
            }
            strShortJyo = cCommon.Jyo2ShortJyo(strJyo);
            if (strShortJyo == "")
            {
                return;
            }
            rowTarget = cCSV.getDataRow(strShortJyo,
                                        int.Parse(mRaData.id.RaceNum));
            // 発走時刻
            cCSV.setData(rowTarget, 5,
                         mRaData.HassoTime.Substring(0, 2) + ":" +
                         mRaData.HassoTime.Substring(2, 2));
            // 馬場状態
            if (cCSV.getData(rowTarget, 9).Contains("ダート"))
            {
                tmpBaba = cCommon.BabaCord(mRaData.TenkoBaba.DirtBabaCD.Substring(0, 1));
            }
            else
            {
                tmpBaba = cCommon.BabaCord(mRaData.TenkoBaba.SibaBabaCD.Substring(0, 1));
            }
            if (tmpBaba != "")
            {
                tmpBaba = tmpBaba.Substring(0, 1);
            }
            if (tmpBaba != "未設定")
            {
                cCSV.setData(rowTarget, 13, tmpBaba);
            }
            // 天候
            tmpTenko = cCommon.TenkoCord(mRaData.TenkoBaba.TenkoCD);
            if (tmpTenko != "未設定")
            {
                cCSV.setData(rowTarget, 14, tmpTenko);
            }
            if (cCSV.getData(rowTarget, 13).Contains("(暫定)"))
            {
                cCSV.setData(rowTarget, 13, cCSV.getData(rowTarget, 13).Replace("(暫定)", ""));
            }
            if (cCSV.getData(rowTarget, 14).Contains("(暫定)"))
            {
                cCSV.setData(rowTarget, 14, cCSV.getData(rowTarget, 14).Replace("(暫定)", ""));
            }
        }
Esempio n. 11
-1
        /// <summary>
        /// JVUmaReadWriting処理
        /// </summary>
        public static void JVUmaReadWriting()
        {
            bool reading = true;
            int nCount = 0;
            object buffObj = new byte[0];
            int buffsize = 110000;
            string timeStamp;
            string buffname;
            DataTable umaDataTable = new DataTable();
            DataTable raceDataTable = new DataTable();
            DataTable raceUmaDataTable = new DataTable();

            // 初期化時
            if (JVRelayClass.Option == (int)JVRelayClass.eJVOpenFlag.SetupSkipDialog)
            {
                using (SQLiteCommand command = DbConn.CreateCommand())
                {
                    command.CommandText = "DELETE FROM uma";
                    command.ExecuteNonQuery();
                }
            }

            using (SQLiteCommand command = DbConn.CreateCommand())
            {
                command.CommandText = "SELECT * FROM uma";
                using (SQLiteDataAdapter da = new SQLiteDataAdapter(command))
                {
                    da.Fill(umaDataTable);
                }
            }
            raceDataTable.Columns.Add("RaceKey", typeof(string));
            raceDataTable.Columns.Add("RaceDate", typeof(string));
            raceDataTable.Columns.Add("DataKubun", typeof(string));
            raceDataTable.Columns.Add("GradeCD", typeof(string));
            raceDataTable.Columns.Add("SyubetuCD", typeof(string));
            raceUmaDataTable.Columns.Add("RaceKey", typeof(string));
            raceUmaDataTable.Columns.Add("RaceDate", typeof(string));
            raceUmaDataTable.Columns.Add("KettoNum", typeof(string));
            raceUmaDataTable.Columns.Add("KakuteiJyuni", typeof(string));

            if (umaDataTable.PrimaryKey.Length == 0)
            {
                umaDataTable.PrimaryKey = new[] { umaDataTable.Columns["KettoNum"] };
            }
            if (raceDataTable.PrimaryKey.Length == 0)
            {
                raceDataTable.PrimaryKey = new[] { raceDataTable.Columns["RaceKey"] };
            }
            if (raceUmaDataTable.PrimaryKey.Length == 0)
            {
                raceUmaDataTable.PrimaryKey = new[] { raceUmaDataTable.Columns["RaceKey"], raceUmaDataTable.Columns["KettoNum"] };
            }

            ProgressUserState.Maxinum = ReadCount;
            ProgressUserState.Value = 0;
            ProgressUserState.Text = "データ読み込み中...";
            MainBackgroundWorker.ReportProgress(0, ProgressUserState);

            do
            {
                //---------------------
                // JVLink読込み処理
                //---------------------
                buffObj = new byte[0];
                int nRet = AxJVLink.JVGets(ref buffObj, buffsize, out buffname);
                timeStamp = AxJVLink.m_CurrentFileTimeStamp;
                byte[] buff = (byte[])buffObj;
                string buffStr = System.Text.Encoding.GetEncoding(932).GetString(buff);

                // 正常
                if (0 < nRet)
                {
                    string recordSpec = JVData_Struct.MidB2S(ref buff, 1, 2);
                    buffObj = new byte[0];
                    buff = new byte[0];

                    switch (recordSpec)
                    {
                        case "UM":
                            {
                                JVData_Struct.JV_UM_UMA uma = new JVData_Struct.JV_UM_UMA();
                                uma.SetDataB(ref buffStr);
                                WriteDbUmaData(eOutput.Umanushi, uma, umaDataTable);
                            }
                            break;
                        case "RA":
                            {
                                JVData_Struct.JV_RA_RACE race = new JVData_Struct.JV_RA_RACE();
                                race.SetDataB(ref buffStr);
                                WriteDbRaceData(eOutput.Umanushi, race, raceDataTable);
                            }
                            break;
                        case "SE":
                            {
                                JVData_Struct.JV_SE_RACE_UMA raceUma = new JVData_Struct.JV_SE_RACE_UMA();
                                raceUma.SetDataB(ref buffStr);
                                WriteDbRaceUmaData(eOutput.Umanushi, raceUma, raceUmaDataTable);
                            }
                            break;
                        default:
                            // 対象外recspecのファイルをスキップする。
                            AxJVLink.JVSkip();
                            nCount++;
                            ProgressUserState.Value = nCount;
                            ProgressUserState.Text = "データ読み込み中...";
                            MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                            break;
                    }
                }
                // ファイルの切れ目
                else if (-1 == nRet)
                {
                    nCount++;
                    ProgressUserState.Value = nCount;
                    ProgressUserState.Text = "データ読み込み中...";
                    MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                }
                // 全レコード読込み終了(EOF)
                else if (0 == nRet)
                {
                    ProgressUserState.Value = ProgressUserState.Maxinum;
                    ProgressUserState.Text = "データ読み込み完了";
                    MainBackgroundWorker.ReportProgress(0, ProgressUserState);

                    reading = false;
                }
                // エラー
                else if (-1 > nRet)
                {
                    // エラーファイルをスキップする。
                    AxJVLink.JVSkip();
                    nCount++;
                    ProgressUserState.Value = nCount;
                    ProgressUserState.Text = "データ読み込み中...";
                    MainBackgroundWorker.ReportProgress(0, ProgressUserState);
                }

                System.Threading.Thread.Sleep(10);
            }
            while (true == reading);

            // データ整備
            if (raceUmaDataTable.Rows.Count > 0)
            {
                foreach (DataRow raceUmaDataRow in raceUmaDataTable.Select("", "RaceDate"))
                {
                    DataRow raceDataRow = raceDataTable.Rows.Find(raceUmaDataRow["RaceKey"]);
                    DataRow umaDataRow = umaDataTable.Rows.Find(raceUmaDataRow["KettoNum"]);
                    if (raceDataRow != null && umaDataRow != null)
                    {
                        string raceDate = umaDataRow["RaceDate"].ToString();
                        if ("" == raceDate || 0 > raceDate.CompareTo(raceUmaDataRow["RaceDate"].ToString()))
                        {
                            if (raceDataRow["DataKubun"].ToString() != "9" && raceDataRow["DataKubun"].ToString() != "0")
                            {
                                // レースを追加
                                umaDataRow["BeforeUmaClass"] = umaDataRow["UmaClass"];
                                umaDataRow["BeforeRaceDate"] = umaDataRow["RaceDate"];
                                umaDataRow["BeforeRaceDataKubun"] = umaDataRow["RaceDataKubun"];
                                umaDataRow["BeforeRaceGradeCD"] = umaDataRow["RaceGradeCD"];
                                umaDataRow["BeforeRaceSyubetuCD"] = umaDataRow["RaceSyubetuCD"];
                                umaDataRow["BeforeRaceKakuteiJyuni"] = umaDataRow["RaceKakuteiJyuni"];

                                umaDataRow["RaceDate"] = raceUmaDataRow["RaceDate"];
                                umaDataRow["RaceDataKubun"] = raceDataRow["DataKubun"];
                                umaDataRow["RaceGradeCD"] = raceDataRow["GradeCD"];
                                umaDataRow["RaceSyubetuCD"] = raceDataRow["SyubetuCD"];
                                umaDataRow["RaceKakuteiJyuni"] = raceUmaDataRow["KakuteiJyuni"];
                                umaDataRow["UmaClass"] = GetUmaClass(umaDataRow);
                            }
                        }
                        else if (0 == raceDate.CompareTo(raceUmaDataRow["RaceDate"].ToString()))
                        {
                            if (raceDataRow["DataKubun"].ToString() == "9" || raceDataRow["DataKubun"].ToString() == "0")
                            {
                                // レース中止、データ削除のため戻す
                                umaDataRow["UmaClass"] = umaDataRow["BeforeUmaClass"];
                                umaDataRow["RaceDate"] = umaDataRow["BeforeRaceDate"];
                                umaDataRow["RaceDataKubun"] = umaDataRow["BeforeRaceDataKubun"];
                                umaDataRow["RaceGradeCD"] = umaDataRow["BeforeRaceGradeCD"];
                                umaDataRow["RaceSyubetuCD"] = umaDataRow["BeforeRaceSyubetuCD"];
                                umaDataRow["RaceKakuteiJyuni"] = umaDataRow["BeforeRaceKakuteiJyuni"];

                                umaDataRow["BeforeUmaClass"] = null;
                                umaDataRow["BeforeRaceDate"] = null;
                                umaDataRow["BeforeRaceDataKubun"] = null;
                                umaDataRow["BeforeRaceGradeCD"] = null;
                                umaDataRow["BeforeRaceSyubetuCD"] = null;
                                umaDataRow["BeforeRaceKakuteiJyuni"] = null;
                            }
                            else
                            {
                                // レース結果の更新
                                if (umaDataRow["RaceDataKubun"].ToString() != raceDataRow["DataKubun"].ToString())
                                {
                                    umaDataRow["RaceDataKubun"] = raceDataRow["DataKubun"];
                                }
                                if (umaDataRow["RaceGradeCD"].ToString() != raceDataRow["GradeCD"].ToString())
                                {
                                    umaDataRow["RaceGradeCD"] = raceDataRow["GradeCD"];
                                }
                                if (umaDataRow["RaceSyubetuCD"].ToString() != raceDataRow["SyubetuCD"].ToString())
                                {
                                    umaDataRow["RaceSyubetuCD"] = raceDataRow["SyubetuCD"];
                                }
                                if (umaDataRow["RaceKakuteiJyuni"].ToString() != raceUmaDataRow["KakuteiJyuni"].ToString())
                                {
                                    umaDataRow["RaceKakuteiJyuni"] = raceUmaDataRow["KakuteiJyuni"];
                                }
                                if (umaDataRow["UmaClass"].ToString() != GetUmaClass(umaDataRow))
                                {
                                    umaDataRow["UmaClass"] = GetUmaClass(umaDataRow);
                                }
                            }
                        }
                    }
                }
            }

            // データ更新
            using (SQLiteTransaction tran = DbConn.BeginTransaction())
            {
                using (SQLiteCommand command = DbConn.CreateCommand())
                {
                    command.Transaction = tran;
                    command.CommandText = "SELECT * FROM uma";
                    using (SQLiteDataAdapter da = new SQLiteDataAdapter(command))
                    using (SQLiteCommandBuilder cb = new SQLiteCommandBuilder(da))
                    {
                        cb.SetAllValues = false;
                        cb.ConflictOption = ConflictOption.OverwriteChanges;
                        da.UpdateCommand = cb.GetUpdateCommand();
                        da.InsertCommand = cb.GetInsertCommand();
                        da.DeleteCommand = cb.GetDeleteCommand();
                        da.Update(umaDataTable);
                    }

                    command.CommandText = "DELETE FROM uma WHERE BirthYear <= '" + DiscardBirthYear + "'";
                    command.ExecuteNonQuery();

                    command.CommandText = "UPDATE timestamp SET date ='" + LastFileTimestamp + "'";
                    command.ExecuteNonQuery();
                }
                tran.Commit();
                JVRelayClass.DbTimeStamp = LastFileTimestamp;
            }
        }