/// <summary>個々の単語の情報をファイル内に書き込みます。</summary> /// <param name="w">書き込む単語の情報を格納している 英単語の練習.Word を指定。</param> public void writeWordData(英単語の練習.Word w) { xtw.WriteStartElement("word"); { xtw.WriteAttributeString("name", this.escape(w.word + ((w.pron == "")?"":"|" + w.pron))); xtw.WriteAttributeString("mean", this.escape(w.mean)); xtw.WriteStartElement("part"); { xtw.WriteAttributeString("value", this.escape(w.part.partString)); xtw.WriteAttributeString("conjugate", this.escape(w.strConjugate)); } xtw.WriteEndElement(); string nm; //typ nm 参照語の情報を指定する文字列を格納 int rwl, exl; //rwl は参照の、 exl は例文の、数を表します。 if ((rwl = w.referWord.Count) != 0) { for (int i = 0; i < rwl; i++) //if( 〜=0)はいらないかも(Count=0になることはない?) { refWord rfword = (refWord)w.referWord[i]; if ((nm = rfword.word.Trim()) != "") { if (rfword.pron != "") { nm += "|" + rfword.pron; } xtw.WriteStartElement("ref"); xtw.WriteAttributeString("type", rfword.typeString); xtw.WriteAttributeString("name", this.escape(nm)); if (rfword.mean != "") { xtw.WriteAttributeString("mean", this.escape(rfword.mean)); } xtw.WriteAttributeString("part", rfword.part.partString); xtw.WriteEndElement(); } } } if ((exl = w.example.Length) != 0) { for (int i = 0; i < exl; i++) //if( 〜=0)はいらないかも(length=0になることはない?) { if (w.example[i].Trim() != "") { xtw.WriteElementString("xmp", this.escape(w.example[i])); } } } xtw.WriteStartElement("exam"); { xtw.WriteAttributeString("shutsudai", w.shutsudai.ToString()); xtw.WriteAttributeString("seikai", w.seikai.ToString()); } xtw.WriteEndElement(); } xtw.WriteEndElement(); }
public refWord(string word, string type, string part, string mean) { string[] word2 = word.Split(new char[] { '|' }, 2); this = new refWord(word2[0], type, part, mean, (word2.Length == 2)?word2[1]:""); }
//===================================== // constructor //------------------------------------- public refWord(string word) { this = new refWord(word, "reference", "noun", "", ""); }
//================================ // Word functions //-------------------------------- public System.Windows.Forms.ListViewItem ToListViewItem() { System.Windows.Forms.ListViewItem return1 = new System.Windows.Forms.ListViewItem(); System.Drawing.Color cBlack = System.Drawing.Color.Black; System.Drawing.Font cFont0 = new System.Drawing.Font("MS UI Gothic", 9); //System.Drawing.Font cFont1=new System.Drawing.Font("HG丸ゴシックM-PRO",9); //System.Drawing.Font cFont2=new System.Drawing.Font("HG正楷書体-PRO",9); //---情報の調整 //-------単語 if (return1.SubItems.Count != 0) { return1.SubItems[0].Text = (this.word == "")?" ":this.word; } //-------品詞 return1.SubItems.Add(this.part.IDLetter, this.part.ForeColor, this.part.BackColor, cFont0); switch (this.part.partNumber) { case 0: return1.ImageIndex = 0; break; //n case 1: return1.ImageIndex = 2; break; //a case 2: return1.ImageIndex = 1; break; //v case 3: return1.ImageIndex = 3; break; //ad default: return1.ImageIndex = 0; break; } //-------意味・参照 return1.SubItems.Add(this.mean); string refer; int len; //string refer;int len; if ((len = this.referWord.Count) == 0) { refer = ""; } else { refWord rfword = (refWord)this.referWord[0]; refer = rfword.word; if (len > 1) { for (int ir = 1; ir < len; ir++) { rfword = (refWord)this.referWord[ir]; refer += "," + rfword.word; } } } return1.SubItems.Add(refer); //-------出題・正解・正解率 return1.SubItems.Add(this.shutsudai.ToString()); return1.SubItems.Add(this.seikai.ToString()); double num = System.Int32.Parse(return1.SubItems[5].Text); double den = System.Int32.Parse(return1.SubItems[4].Text); if (den == 0) { return1.SubItems.Add("不定", cBlack, System.Drawing.Color.Silver, cFont0); } else { double vNum = System.Math.Round(num / den * 100); int vColGB = (int)(127.5 * (1 + vNum / 100)); System.Drawing.Color vCol = System.Drawing.Color.Yellow; if (vColGB > 255) { System.Windows.Forms.MessageBox.Show("次の単語に異常が見られます - " + return1.SubItems[0].Text); //vColGB=255; } else { vCol = System.Drawing.Color.FromArgb(255, vColGB, vColGB); } return1.SubItems.Add(vNum.ToString() + "%", cBlack, vCol, cFont0); } //-例文 string exampletext; if ((len = this.example.Length) == 0) { exampletext = ""; } else { exampletext = this.example[0]; if (len > 1) { for (int ir = 0; ir < len; ir++) { exampletext += "\n" + this.example[ir]; } } if (exampletext != "") { return1.ImageIndex += 5; } } return1.SubItems.Add(exampletext); return1.UseItemStyleForSubItems = false; return(return1); }