Example #1
0
        //保存ボタンクリック時
        private void btnSave_Click(object sender, EventArgs e)
        {
            String strMyLearnCsvFilePath = sysInfo.ListMembers["CSV_DIRECTORY_PATH"].ToString() + "\\" + XmlDatas.ListConsts["LEARN_CSV_FILE"].ToString();

            try
            {
                // 形態要素の各項目更新
                updateMorhemeItems();

                //学習用Csv
                lstMyLearnSeedResult.Clear();
                lstMyLearnSeed.ForEach(delegate(MSeed mSeedWork)
                {
                    lstMyLearnSeedResult.Add(mSeedWork);
                });

                if (!MyUtils.outputCsvFile(strMyLearnCsvFilePath, lstMyLearnSeedResult))
                {
                    return;
                }
            }
            catch (IOException ioe)
            {
                MessageBox.Show(ioe.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            intReturnValue   = 1;
            mySeedInfoResult = new MSeed(mySeedInfo);

            Close();
        }
Example #2
0
        //設定
        private void btnSet_Click(object sender, EventArgs e)
        {
            if (inputCheck())
            {
                //Seed情報設定
                mySeedInfo.DictionaryMembers["HYOSO_TYPE"]      = txtHyosokei.Text;
                mySeedInfo.DictionaryMembers["HINSHI"]          = cmbHinshi.Text;
                mySeedInfo.DictionaryMembers["HINSHI_DETAIL_1"] = cmbHinshiDetail1.Text;
                mySeedInfo.DictionaryMembers["HINSHI_DETAIL_2"] = cmbHinshiDetail2.Text;
                mySeedInfo.DictionaryMembers["HINSHI_DETAIL_3"] = cmbHinshiDetail3.Text;
                mySeedInfo.DictionaryMembers["KATSUYO_KEI"]     = cmbKatsuyoukei.Text;
                mySeedInfo.DictionaryMembers["KATSUYO_TYPE"]    = cmbKatsuyoType.Text;
                mySeedInfo.DictionaryMembers["BASE_TYPE"]       = txtBaseType.Text;
                mySeedInfo.DictionaryMembers["YOMI"]            = txtYomi.Text;
                mySeedInfo.DictionaryMembers["HATSUON"]         = txtHatsuon.Text;
            }
            else
            {
                return;
            }

            intReturnValue   = 1;
            mySeedInfoResult = new MSeed(mySeedInfo);

            Close();
        }
        //選択された置換情報の優先順位を上げる
        private void btnSourceUp_Click(object sender, EventArgs e)
        {
            //1件選択されていない場合はエラー
            if (lstvwMorpemeReplaceInfoSource.SelectedItems.Count != 1)
            {
                MessageBox.Show(String.Format(XmlDatas.ListMessages["ERROR_4"], XmlDatas.ListNames["MORPHEME_REPLACE_INFO"], "1"));
                return;
            }

            int intSelectedIndex = lstvwMorpemeReplaceInfoSource.SelectedItems[0].Index;

            if (intSelectedIndex == 0)
            {
                return;
            }

            ListViewItem temp  = (ListViewItem)lstvwMorpemeReplaceInfoSource.Items[intSelectedIndex - 1].Clone();
            ListViewItem temp2 = (ListViewItem)lstvwMorpemeReplaceInfoSource.Items[intSelectedIndex].Clone();

            lstvwMorpemeReplaceInfoSource.Items.RemoveAt(intSelectedIndex - 1);
            lstvwMorpemeReplaceInfoSource.Items.Insert(intSelectedIndex - 1, temp2);
            lstvwMorpemeReplaceInfoSource.Items.RemoveAt(intSelectedIndex);
            lstvwMorpemeReplaceInfoSource.Items.Insert(intSelectedIndex, temp);

            MSeed temp3 = new MSeed(lstMorphemeReplaceSource[intSelectedIndex - 1]);
            MSeed temp4 = new MSeed(lstMorphemeReplaceSource[intSelectedIndex]);

            lstMorphemeReplaceSource.RemoveAt(intSelectedIndex - 1);
            lstMorphemeReplaceSource.Insert(intSelectedIndex - 1, temp4);
            lstMorphemeReplaceSource.RemoveAt(intSelectedIndex);
            lstMorphemeReplaceSource.Insert(intSelectedIndex, temp3);

            lstvwMorpemeReplaceInfoSource.SelectedItems.Clear();
            lstvwMorphemeReplaceInfo.Items[intSelectedIndex - 1].Selected = true;
        }
        //置換変換後編集ボタンクリック時
        private void btnDestinationEdit_Click(object sender, EventArgs e)
        {
            if (lstvwMorpemeReplaceInfoDestination.SelectedIndices.Count == 0)
            {
                MessageBox.Show(XmlDatas.ListMessages["ERROR_1"]);
                return;
            }

            frmEditSeed frmEdit  = new frmEditSeed();
            int         selected = lstvwMorpemeReplaceInfoDestination.SelectedIndices[0];

            setFrmEditSeed(frmEdit, 1, 1, selected, lstMorphemeReplaceDestination);

            frmEdit.ShowDialog();

            if (frmEdit.ReturnValue == 1)
            {
                lstMorphemeReplaceDestination[selected] = new MSeed(frmEdit.MySeedInfoResult);
                String[] strLineList = { frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["HYOSO_TYPE"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["HINSHI"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_1"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_2"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_3"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_KEI"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_TYPE"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["BASE_TYPE"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["YOMI"]].ToString(), frmEdit.MySeedInfoResult.DictionaryMembers[XmlDatas.ListItemNames["HATSUON"]].ToString() };
                lstvwMorpemeReplaceInfoDestination.Items[selected] = new ListViewItem(strLineList);
            }

            frmEdit.Close();
            frmEdit.Dispose();
        }
Example #5
0
        //Form表示後
        private void frmEditCsv_Shown(object sender, EventArgs e)
        {
            //品詞の設定
            cmbHinshi.Items.Clear();
            cmbHinshi.Items.Add(String.Empty);
            lstHinshi.ForEach(delegate(MHinshi mHinshiWork)
            {
                cmbHinshi.Items.Add(mHinshiWork.Name);
            });
            cmbHinshi.DropDownStyle = ComboBoxStyle.DropDown;
            cmbHinshi.SelectedIndex = 0;

            //品詞詳細1の設定
            setHinshiComboBoxes(cmbHinshiDetail1, lstHinshiSub1, lstHinSub1Selected, lstHinshi[0].Id, 1);

            //品詞詳細2の設定
            setHinshiComboBoxes(cmbHinshiDetail2, lstHinshiSub2, lstHinSub2Selected, lstHinSub1Selected[0].Id, 2);

            //品詞詳細3の設定
            setHinshiComboBoxes(cmbHinshiDetail3, lstHinshiSub3, lstHinSub3Selected, lstHinSub2Selected[0].Id, 3);

            //活用形の設定
            setKatsuyoComboBoxes(cmbKatsuyoukei, lstKatsuyo1, lstKatsuyo1Selected, lstHinshi[0].Id, 1);

            //活用型の設定
            setKatsuyoComboBoxes(cmbKatsuyoType, lstKatsuyo2, lstKatsuyo2Selected, lstKatsuyo1[0].Id, 2);

            lstvwAnalyze.Clear();
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["HYOSO_TYPE"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["HINSHI"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["HINSHI_DETAIL_1"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["HINSHI_DETAIL_2"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["HINSHI_DETAIL_3"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["KATSUYO_KEI"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["KATSUYO_TYPE"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["BASE_TYPE"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["YOMI"]);
            lstvwAnalyze.Columns.Add(XmlDatas.ListNames["HATSUON"]);
            lstvwAnalyze.Columns[0].Width = 150;
            lstvwAnalyze.Columns[7].Width = 150;
            lstvwAnalyze.Columns[8].Width = 150;
            lstvwAnalyze.Columns[9].Width = 150;

            //編集の場合の処理
            if (intEditMode == 1)
            {
                if (!SetInfosFromMSeedToControls(mySeedInfo))
                {
                    Close();
                    return;
                }

                mySeedInfoResult = new MSeed(mySeedInfo);
            }

            ControlButtons(intProcessMode);
        }
Example #6
0
        //閉じるボタンクリック時
        private void btnClose_Click(object sender, EventArgs e)
        {
            mySeedInfo = new MSeed(mySeedInfoResult);

            if (chkNoTranse.Checked)
            {
                intReturnValue = -5;
            }

            Close();
        }
        //frmEditSeedに値を設定する
        private void setFrmEditSeed(frmEditSeed frmEdit, int processMode, int editMode, int selected = -1, List <MSeed> lstSeed = null)
        {
            frmEdit.ListHinshi      = lstHinshi;
            frmEdit.ListHinshiSub1  = lstHinshiSub1;
            frmEdit.ListHinshiSub2  = lstHinshiSub2;
            frmEdit.ListHinshiSub3  = lstHinshiSub3;
            frmEdit.ListKatsuyo1    = lstKatsuyo1;
            frmEdit.ListKatsuyo2    = lstKatsuyo2;
            frmEdit.systemInfo      = sysInfo;
            frmEdit.ListMyLearnSeed = lstMyLearnSeed;
            frmEdit.ProcessMode     = processMode;
            frmEdit.EditMode        = editMode;

            //編集モードの場合
            if (editMode == 1)
            {
                MSeed editSeed = new MSeed();
                editSeed           = lstSeed[selected];
                frmEdit.MySeedInfo = new MSeed(editSeed);
            }
        }
Example #8
0
 //コピーコンストラクタ
 public MSeed(MSeed mSeedSource)
 {
     dicMembers.Clear();
     dicMembers.Add(XmlDatas.ListItemNames["SEED_NO"], mSeedSource.DictionaryMembers["SEED_NO"]);
     dicMembers.Add(XmlDatas.ListItemNames["HYOSO_TYPE"], mSeedSource.DictionaryMembers["HYOSO_TYPE"]);
     dicMembers.Add(XmlDatas.ListItemNames["LEFT_CONNECT_STATUS_NO"], mSeedSource.DictionaryMembers["LEFT_CONNECT_STATUS_NO"]);
     dicMembers.Add(XmlDatas.ListItemNames["RIGHT_CONNECT_STATUS_NO"], mSeedSource.DictionaryMembers["RIGHT_CONNECT_STATUS_NO"]);
     dicMembers.Add(XmlDatas.ListItemNames["COST"], mSeedSource.DictionaryMembers["COST"]);
     dicMembers.Add(XmlDatas.ListItemNames["HINSHI"], mSeedSource.DictionaryMembers["HINSHI"]);
     dicMembers.Add(XmlDatas.ListItemNames["HINSHI_DETAIL_1"], mSeedSource.DictionaryMembers["HINSHI_DETAIL_1"]);
     dicMembers.Add(XmlDatas.ListItemNames["HINSHI_DETAIL_2"], mSeedSource.DictionaryMembers["HINSHI_DETAIL_2"]);
     dicMembers.Add(XmlDatas.ListItemNames["HINSHI_DETAIL_3"], mSeedSource.DictionaryMembers["HINSHI_DETAIL_3"]);
     dicMembers.Add(XmlDatas.ListItemNames["KATSUYO_KEI"], mSeedSource.DictionaryMembers["KATSUYO_KEI"]);
     dicMembers.Add(XmlDatas.ListItemNames["KATSUYO_TYPE"], mSeedSource.DictionaryMembers["KATSUYO_TYPE"]);
     dicMembers.Add(XmlDatas.ListItemNames["BASE_TYPE"], mSeedSource.DictionaryMembers["BASE_TYPE"]);
     dicMembers.Add(XmlDatas.ListItemNames["YOMI"], mSeedSource.DictionaryMembers["YOMI"]);
     dicMembers.Add(XmlDatas.ListItemNames["HATSUON"], mSeedSource.DictionaryMembers["HATSUON"]);
     dicMembers.Add(XmlDatas.ListItemNames["CREATED_AT"], mSeedSource.DictionaryMembers["CREATED_AT"]);
     dicMembers.Add(XmlDatas.ListItemNames["UPDATED_AT"], mSeedSource.DictionaryMembers["UPDATED_AT"]);
     dicMembers.Add(XmlDatas.ListItemNames["DELETE_FLAG"], mSeedSource.DictionaryMembers["DELETE_FLAG"]);
     dicMembers.Add(XmlDatas.ListItemNames["DATA_COUNT"], mSeedSource.DictionaryMembers["DATA_COUNT"]);
 }
Example #9
0
        //選択をクリック時
        private void btnSelect_Click(object sender, EventArgs e)
        {
            if (lstvwAnalyze.SelectedItems.Count != 1)
            {
                MessageBox.Show(String.Format(XmlDatas.ListMessages["ERROR_4"].ToString(), XmlDatas.ListNames["MORPHEME"].ToString(), "1"));
                return;
            }

            MSeed seedWork = new MSeed();

            if (intAnalyzeMode == 0)
            {
                seedWork = lstAnalyzeSeed[lstvwAnalyze.SelectedItems[0].Index];
            }
            else
            {
                seedWork = lstMyLearnSeed[lstvwAnalyze.SelectedItems[0].Index];
            }

            if (!SetInfosFromMSeedToControls(seedWork))
            {
                return;
            }
        }
Example #10
0
        //解析リストか、学習用のリストにないことを確認する
        private Boolean IsAlreadyExist(MSeed mSeedWork)
        {
            Boolean bResult = false;
            Boolean bHit    = false;

            lstAnalyzeSeed.ForEach(delegate(MSeed mSeedDel)
            {
                if (mSeedWork.DictionaryMembers["HYOSO_TYPE"].ToString().Equals(mSeedDel.DictionaryMembers["HYOSO_TYPE"].ToString()) && mSeedWork.DictionaryMembers["HINSHI"].ToString().Equals(mSeedDel.DictionaryMembers["HINSHI"].ToString()))
                {
                    bHit = true;
                }
            });

            if (bHit)
            {
                MessageBox.Show(String.Format(XmlDatas.ListMessages["ERROR_5"].ToString(), XmlDatas.ListNames["MORPHEME"].ToString()));
                bResult = true;
            }

            bHit = false;
            lstMyLearnSeed.ForEach(delegate(MSeed mSeedDel)
            {
                if (mSeedWork.DictionaryMembers["HYOSO_TYPE"].ToString().Equals(mSeedDel.DictionaryMembers["HYOSO_TYPE"].ToString()) && mSeedWork.DictionaryMembers["HINSHI"].ToString().Equals(mSeedDel.DictionaryMembers["HINSHI"].ToString()))
                {
                    bHit = true;
                }
            });

            if (bHit)
            {
                MessageBox.Show(String.Format(XmlDatas.ListMessages["ERROR_5"].ToString(), XmlDatas.ListNames["MORPHEME"].ToString()));
                bResult = true;
            }

            return(bResult);
        }
Example #11
0
        //MSeedの情報を基に、各コントロールに値を設定する
        private Boolean SetInfosFromMSeedToControls(MSeed seedSetInfo)
        {
            Boolean bResult = false;

            txtHyosokei.Text = seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["HYOSO_TYPE"]].ToString();
            if (intProcessMode == 0)
            {
                txtLeftConnectStatusNo.Text  = seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["LEFT_CONNECT_STATUS_NO"]].ToString();
                txtRightConnectStatusNo.Text = seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["RIGHT_CONNECT_STATUS_NO"]].ToString();
                txtCost.Text = seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["COST"]].ToString();
            }
            else
            {
                txtLeftConnectStatusNo.Text  = String.Empty;
                txtRightConnectStatusNo.Text = String.Empty;
                txtCost.Text = String.Empty;
            }

            //品詞
            int intHinshiSelected = checkHinshiListWithCombo(cmbHinshi, lstHinshi, 0, -1, seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI"]].ToString(), null);

            if (intHinshiSelected < 0)
            {
                intHinshiSelected = 0;
            }

            //品詞詳細1
            int intHinshiSub1Selected = checkHinshiListWithCombo(cmbHinshiDetail1, lstHinshiSub1,
                                                                 1, lstHinshi[intHinshiSelected].Id, seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_1"]].ToString(), lstHinSub1Selected);

            if (intHinshiSub1Selected < 0)
            {
                intHinshiSub1Selected = 0;
            }

            //品詞詳細2
            int intHinshiSub2Selected = checkHinshiListWithCombo(cmbHinshiDetail2, lstHinshiSub2,
                                                                 2, lstHinshiSub1[intHinshiSub1Selected].Id, seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_2"]].ToString(), lstHinSub2Selected);

            if (intHinshiSub2Selected < 0)
            {
                intHinshiSub2Selected = 0;
            }

            //品詞詳細3
            int intHinshiSub3Selected = checkHinshiListWithCombo(cmbHinshiDetail3, lstHinshiSub3,
                                                                 3, lstHinshiSub2[intHinshiSub2Selected].Id, seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_3"]].ToString(), lstHinSub3Selected);

            if (intHinshiSub3Selected < 0)
            {
                intHinshiSub3Selected = 0;
            }

            //活用形
            int intKatsuyoSelected = checkKatsuyoListWithCombo(cmbKatsuyoukei, lstKatsuyo1,
                                                               1, lstHinshi[intHinshiSelected].Id, seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_KEI"]].ToString(), lstKatsuyo1Selected);

            if (intKatsuyoSelected < 0)
            {
                intKatsuyoSelected = 0;
            }

            //活用型
            int intKatsuyoTypeSelected = checkKatsuyoListWithCombo(cmbKatsuyoType, lstKatsuyo1,
                                                                   2, lstKatsuyo1[intKatsuyoSelected].Id, seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_TYPE"]].ToString(), lstKatsuyo2Selected);

            if (intKatsuyoTypeSelected < 0)
            {
                intKatsuyoTypeSelected = 0;
            }

            txtBaseType.Text = seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["BASE_TYPE"]].ToString();
            txtYomi.Text     = seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["YOMI"]].ToString();
            txtHatsuon.Text  = seedSetInfo.DictionaryMembers[XmlDatas.ListItemNames["HATSUON"]].ToString();

            bResult = true;

            return(bResult);
        }
Example #12
0
        //追加ボタン
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (inputCheck())
            {
                //Seed情報設定
                mySeedInfo.DictionaryMembers["HYOSO_TYPE"]      = txtHyosokei.Text;
                mySeedInfo.DictionaryMembers["HINSHI"]          = cmbHinshi.Text;
                mySeedInfo.DictionaryMembers["HINSHI_DETAIL_1"] = cmbHinshiDetail1.Text;
                mySeedInfo.DictionaryMembers["HINSHI_DETAIL_2"] = cmbHinshiDetail2.Text;
                mySeedInfo.DictionaryMembers["HINSHI_DETAIL_3"] = cmbHinshiDetail3.Text;
                mySeedInfo.DictionaryMembers["KATSUYO_KEI"]     = cmbKatsuyoukei.Text;
                mySeedInfo.DictionaryMembers["KATSUYO_TYPE"]    = cmbKatsuyoType.Text;
                mySeedInfo.DictionaryMembers["BASE_TYPE"]       = txtBaseType.Text;
                mySeedInfo.DictionaryMembers["YOMI"]            = txtYomi.Text;
                mySeedInfo.DictionaryMembers["HATSUON"]         = txtHatsuon.Text;

                if (intProcessMode == 0)
                {
                    if (IsAlreadyExist(mySeedInfo))
                    {
                        return;
                    }
                }

                //品詞リストにないものがあれば追加しておく。
                int indexHinshi = MyUtils.checkHinshiList(lstHinshi, 0, -1, mySeedInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI"]].ToString(), true);
                if (indexHinshi < -1)
                {
                    indexHinshi = lstHinshi.Count - 1;
                }

                //品詞詳細1リストにないものがあれば追加する
                int indexHinshiSub1 = MyUtils.checkHinshiList(lstHinshiSub1, 1, lstHinshi[indexHinshi].Id, mySeedInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_1"]].ToString(), true);
                if (indexHinshiSub1 < 0)
                {
                    indexHinshiSub1 = lstHinshiSub1.Count - 1;
                    lstHinSub1Selected.Add(lstHinshiSub1[indexHinshiSub1]);
                }

                //品詞詳細2リストにないものがあれば追加する
                int indexHinshiSub2 = MyUtils.checkHinshiList(lstHinshiSub2, 2, lstHinshiSub1[indexHinshiSub1].Id, mySeedInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_2"]].ToString(), true);
                if (indexHinshiSub2 < 0)
                {
                    indexHinshiSub2 = lstHinshiSub2.Count - 1;
                    lstHinSub2Selected.Add(lstHinshiSub2[indexHinshiSub2]);
                }

                //品詞詳細3リストにないものがあれば追加する
                int indexHinshiSub3 = MyUtils.checkHinshiList(lstHinshiSub3, 3, lstHinshiSub2[indexHinshiSub2].Id, mySeedInfo.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_3"]].ToString(), true);
                if (indexHinshiSub3 < 0)
                {
                    indexHinshiSub3 = lstHinshiSub3.Count - 1;
                    lstHinSub3Selected.Add(lstHinshiSub3[indexHinshiSub3]);
                }

                //活用形リストにないものがあれば追加しておく
                int indexKatsuyo1 = MyUtils.checkKatsuyoList(lstKatsuyo1, 1, lstHinshi[indexHinshi].Id, mySeedInfo.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_KEI"]].ToString());
                if (indexKatsuyo1 < 0)
                {
                    indexKatsuyo1 = lstKatsuyo1.Count - 1;
                    lstKatsuyo1Selected.Add(lstKatsuyo1[indexKatsuyo1]);
                }

                //活用型リストにないものがあれば追加しておく
                int indexKatsuyo2 = MyUtils.checkKatsuyoList(lstKatsuyo2, 2, lstKatsuyo1[indexKatsuyo1].Id, mySeedInfo.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_TYPE"]].ToString());
                if (indexKatsuyo2 < 0)
                {
                    indexKatsuyo2 = lstKatsuyo2.Count - 1;
                    lstKatsuyo2Selected.Add(lstKatsuyo2[indexKatsuyo2]);
                }

                if (intProcessMode == 0)
                {
                    //学習用の形態要素リストに追加
                    lstMyLearnSeed.Add(mySeedInfo);
                }
                else
                {
                    try
                    {
                        // 形態要素の各項目更新
                        updateMorhemeItems();
                        intReturnValue   = 1;
                        mySeedInfoResult = new MSeed(mySeedInfo);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        intReturnValue = 0;
                    }
                    Close();
                }
            }
        }
Example #13
0
        //解析開始
        private void btnAnalyze_Click(object sender, EventArgs e)
        {
            String strBatchWork  = Application.StartupPath + "\\" + "temp.bat";
            String strSourceWork = Application.StartupPath + "\\" + "temp.txt";
            String strDistWork   = Application.StartupPath + "\\" + "tempdist.txt";

            StreamWriter strwtrBatchWork  = null;
            StreamWriter strwtrSourceWork = null;
            StreamReader strrdrDistWork   = null;

            try
            {
                strwtrSourceWork = new StreamWriter(@strSourceWork, false, Encoding.GetEncoding("utf-8"));
                strwtrSourceWork.WriteLine(txtHyosokei.Text);
                strwtrSourceWork.Close();

                strwtrBatchWork = new StreamWriter(@strBatchWork, false, Encoding.GetEncoding("sjis"));
                strwtrBatchWork.WriteLine("C:\\MeCab\\bin\\mecab.exe -a " + strSourceWork + " -o " + strDistWork);
                strwtrBatchWork.WriteLine("Exit");
                strwtrBatchWork.Close();

                var startInfo = new ProcessStartInfo();
                startInfo.FileName        = System.Environment.GetEnvironmentVariable("ComSpec");
                startInfo.CreateNoWindow  = true;
                startInfo.UseShellExecute = false;
                startInfo.Arguments       = "/c " + @strBatchWork;

                Process process = Process.Start(startInfo);
                process.WaitForExit();
                process.Close();

                strrdrDistWork = new StreamReader(@strDistWork, Encoding.GetEncoding("utf-8"));
                int    intCountWork = 0;
                String strLineWork  = String.Empty;
                lstAnalyzeSeed.Clear();
                while (!strrdrDistWork.EndOfStream)
                {
                    strLineWork = strrdrDistWork.ReadLine();

                    if (intCountWork > 0)
                    {
                        MSeed seedWork = new MSeed();
                        if (seedWork.getFromCsvFile(strLineWork))
                        {
                            lstAnalyzeSeed.Add(seedWork);
                        }
                    }

                    intCountWork++;
                }

                intAnalyzeMode = 0;
                lstvwAnalyze.Items.Clear();
                lstAnalyzeSeed.ForEach(delegate(MSeed seedWork)
                {
                    String[] strLineList = { seedWork.DictionaryMembers[XmlDatas.ListItemNames["HYOSO_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_1"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_2"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HINSHI_DETAIL_3"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_KEI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["KATSUYO_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["BASE_TYPE"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["YOMI"]].ToString(), seedWork.DictionaryMembers[XmlDatas.ListItemNames["HATSUON"]].ToString() };
                    lstvwAnalyze.Items.Add(new ListViewItem(strLineList));
                });
            }
            catch (IOException ioe)
            {
                MessageBox.Show(ioe.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (strwtrBatchWork != null)
                {
                    strwtrBatchWork.Close();
                    strwtrBatchWork.Dispose();
                }

                if (strwtrSourceWork != null)
                {
                    strwtrSourceWork.Close();
                    strwtrSourceWork.Dispose();
                }

                if (strrdrDistWork != null)
                {
                    strrdrDistWork.Close();
                    strrdrDistWork.Dispose();
                }
            }
        }
Example #14
0
        //形態要素置換情報ファイル取得
        public static Boolean getMorphemeReplaceInfoFromFile(String strFilePath, ref List <MorphemeReplaceInfo> lstMorphemeReplaceinfo)
        {
            Boolean      bResult = false;
            StreamReader strrdr  = null;

            try
            {
                if (!File.Exists(@strFilePath))
                {
                    MessageBox.Show(String.Format(XmlDatas.ListMessages["ERROR_2"].ToString(), XmlDatas.ListNames["MORPHEME_REPLACE_INFO"].ToString()));
                    return(bResult);
                }

                strrdr = new StreamReader(@strFilePath, Encoding.GetEncoding("utf-8"));
                lstMorphemeReplaceinfo.Clear();
                String strLineWork = String.Empty;
                MorphemeReplaceInfo morphemeReplaceInfo = new MorphemeReplaceInfo();
                List <Boolean>      bIsRead             = new List <Boolean> {
                    false, false, false, false, false, false, false, false, false, false, false
                };


                while (!strrdr.EndOfStream)
                {
                    strLineWork = strrdr.ReadLine();
                    if (strLineWork.Equals(XmlDatas.ListConsts["EOS"]))
                    {
                        lstMorphemeReplaceinfo.Add(morphemeReplaceInfo);
                        morphemeReplaceInfo = new MorphemeReplaceInfo();
                        bIsRead             = new List <Boolean> {
                            false, false, false, false, false, false, false, false, false, false, false
                        };
                    }
                    else
                    {
                        if (!bIsRead[0])
                        {
                            morphemeReplaceInfo.MorphemeReplaceInfoName = strLineWork;
                            bIsRead[0] = true;
                        }
                        else if (!bIsRead[1])
                        {
                            morphemeReplaceInfo.ListSourceCount = int.Parse(strLineWork);
                            bIsRead[1] = true;
                        }
                        else if (!bIsRead[2])
                        {
                            MSeed mSeedWork = new MSeed();
                            mSeedWork.getFromCsvFile2(strLineWork);
                            morphemeReplaceInfo.ListSource.Add(mSeedWork);
                            if (morphemeReplaceInfo.ListSourceCount == morphemeReplaceInfo.ListSource.Count)
                            {
                                bIsRead[2] = true;
                            }
                        }
                        else if (!bIsRead[3])
                        {
                            morphemeReplaceInfo.ListDestinationCount = int.Parse(strLineWork);
                            bIsRead[3] = true;
                        }
                        else if (!bIsRead[4])
                        {
                            MSeed mSeedWork = new MSeed();
                            mSeedWork.getFromCsvFile2(strLineWork);
                            morphemeReplaceInfo.ListDestination.Add(mSeedWork);
                            if (morphemeReplaceInfo.ListDestinationCount == morphemeReplaceInfo.ListDestination.Count)
                            {
                                bIsRead[4] = true;
                            }
                        }
                        else if (!bIsRead[5])
                        {
                            if (strLineWork.Equals("True"))
                            {
                                morphemeReplaceInfo.IsLoop = true;
                            }
                            else
                            {
                                morphemeReplaceInfo.IsLoop = false;
                            }

                            bIsRead[5] = true;
                        }
                        else if (!bIsRead[6])
                        {
                            if (strLineWork.Equals("True"))
                            {
                                morphemeReplaceInfo.IsAuto = true;
                            }
                            else
                            {
                                morphemeReplaceInfo.IsAuto = false;
                            }

                            bIsRead[6] = true;
                        }
                        else if (!bIsRead[7])
                        {
                            if (strLineWork.Equals("True"))
                            {
                                morphemeReplaceInfo.IsTake = true;
                            }
                            else
                            {
                                morphemeReplaceInfo.IsTake = false;
                            }

                            bIsRead[7] = true;
                        }
                        else if (!bIsRead[8])
                        {
                            if (strLineWork.Equals("True"))
                            {
                                morphemeReplaceInfo.IsUseHyosoFile = true;
                            }
                            else
                            {
                                morphemeReplaceInfo.IsUseHyosoFile = false;
                            }

                            bIsRead[8] = true;
                        }
                        else if (!bIsRead[9])
                        {
                            morphemeReplaceInfo.HyosoIndex = int.Parse(strLineWork);

                            bIsRead[9] = true;
                        }
                        else if (!bIsRead[10])
                        {
                            morphemeReplaceInfo.HyosoFilePath = strLineWork;
                            morphemeReplaceInfo.ListHyoso.Clear();
                            StreamReader strrdr2 = null;

                            if (morphemeReplaceInfo.HyosoFilePath.Length > 0)
                            {
                                try
                                {
                                    strrdr2 = new StreamReader(@morphemeReplaceInfo.HyosoFilePath, Encoding.GetEncoding("utf-8"));
                                    while (!strrdr2.EndOfStream)
                                    {
                                        morphemeReplaceInfo.ListHyoso.Add(strrdr2.ReadLine());
                                    }
                                }
                                catch (IOException ioe)
                                {
                                    MessageBox.Show(ioe.Message);
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show(ex.Message);
                                }
                                finally
                                {
                                    if (strrdr2 != null)
                                    {
                                        strrdr2.Close();
                                        strrdr2.Dispose();
                                    }
                                }
                            }

                            bIsRead[10] = true;
                        }
                    }
                }

                bResult = true;
            }
            catch (IOException ioe)
            {
                MessageBox.Show(ioe.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (strrdr != null)
                {
                    strrdr.Close();
                    strrdr.Dispose();
                }
            }

            return(bResult);
        }