//保存ボタンクリック時 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(); }
//設定 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(); }
//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); }
//閉じるボタンクリック時 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); } }
//コピーコンストラクタ 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"]); }
//選択をクリック時 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; } }
//解析リストか、学習用のリストにないことを確認する 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); }
//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); }
//追加ボタン 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(); } } }
//解析開始 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(); } } }
//形態要素置換情報ファイル取得 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); }