Ejemplo n.º 1
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            //using (var FE = new Variables.Dictionary.GetLessonContext(Properties.Settings.Default.ChineseStudyConnectionString))
            using (var fe = new ChineseStudyDataContext())
            {
                var newrow = new _3000_Character
                {
                    FEseq       = dataGridFE_3000.CurrentRow?.Cells[1].EditedFormattedValue.ToString(),
                    Zhuyin      = dataGridFE_3000.CurrentRow?.Cells[2].EditedFormattedValue.ToString(),
                    Traditional = dataGridFE_3000.CurrentRow?.Cells[3].EditedFormattedValue.ToString(),
                    English     = dataGridFE_3000.CurrentRow?.Cells[4].EditedFormattedValue.ToString(),
                    Numpinyin   = dataGridFE_3000.CurrentRow?.Cells[5].EditedFormattedValue.ToString(),
                    CritPinyin  = dataGridFE_3000.CurrentRow?.Cells[6].EditedFormattedValue.ToString(),
                    Simplified  = dataGridFE_3000.CurrentRow?.Cells[7].EditedFormattedValue.ToString(),
                    Cji         = dataGridFE_3000.CurrentRow?.Cells[8].EditedFormattedValue.ToString()
                };

                switch (newrow.FEseq.Length)
                {
                case 1:
                    newrow.FEseq = "00000" + newrow.FEseq;
                    break;

                case 2:
                    newrow.FEseq = "0000" + newrow.FEseq;
                    break;

                case 3:
                    newrow.FEseq = "000" + newrow.FEseq;
                    break;

                case 4:
                    newrow.FEseq = "00" + newrow.FEseq;
                    break;

                case 5:
                    newrow.FEseq = "0" + newrow.FEseq;
                    break;
                }

                fe._3000_Characters.InsertOnSubmit(newrow);
                fe.SubmitChanges();
                Close();
            }
        }
Ejemplo n.º 2
0
        private void listPinyin_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (WorkTraditional.Text.Length == 0)
            {
                listNumPinyin.Items.Clear();
                listNumPinyin.Visible = false;

                listZhuyin.Items.Clear();
                listZhuyin.Visible = false;

                return;
            }

            _current = Cursor.Position;
            IList <string> checkBoPo;
            var            workPin = listNumPinyin.SelectedItem.ToString();

            var pinUsit = Traditional.TryGetPinBo(workPin, out checkBoPo);

            if (!pinUsit)
            {
                Status.Text = @"PinBo failed on: " + workPin;
                return;
            }

            string outCrit;
            var    critUsit = Traditional.TryGetBopoCrit(checkBoPo[0], out outCrit);

            if (!critUsit)
            {
                Status.Text = @"BopoCrit failed on: " + checkBoPo[0];
                return;
            }

            if (checkBoPo.Count >= 1)
            {
                WriteNumPinyin.Text = WriteNumPinyin.Text + listNumPinyin.SelectedItem + @" ";
                textBopo.Text       = checkBoPo[0];

                WorkNumPinyin.Text = "";

                WriteTraditional.Text += WorkTraditional.Text;

                IList <string> foundCrit;
                var            pincrit = Traditional.TryGetPinCrit(listNumPinyin.SelectedItem.ToString(), out foundCrit);

                if (!pincrit)
                {
                    Status.Text = @"PinCrit failed on: " + listNumPinyin.SelectedItem;
                    return;
                }

                WriteCritPinyin.Text = WriteCritPinyin.Text + foundCrit[0] + @" ";

                WriteZhuyin.Text   = WriteZhuyin.Text + checkBoPo[0] + @" ";
                WorkNumPinyin.Text = "";

                IList <string> foundSimp;
                var            charsimp = Traditional.TryGetCharSimp(WorkTraditional.Text, out foundSimp);

                if (!charsimp)
                {
                    Status.Text = @"CharSimp failed on: " + WorkTraditional.Text;
                    return;
                }

                WriteSimplified.Text = WriteSimplified.Text + foundSimp[0];

                listZhuyin.Items.Clear();
                listZhuyin.Visible = false;
                listNumPinyin.Items.Clear();
                listNumPinyin.Visible = false;
                //Status.Text = "";
                Cursor.Position = _current;

                try
                {
                    var chinChars = WorkTraditional.Text.ToCharArray();
                    var uniHex    = ExpandUnihex(chinChars);

                    using (var ceDictionary = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                    {
                        var definitions = from ed in ceDictionary.CeDictFulls
                                          where ed.Traditional == WorkTraditional.Text
                                          where ed.BoPoMoFo == checkBoPo[0]
                                          select ed;

                        foreach (var definition in definitions)
                        {
                            textDefinition.Text = definition.English;
                            break;
                        }
                    }

                    WorkTraditional.Text = "";
                    using (var uniHan = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                    {
                        var characters = from q in uniHan.UniHans
                                         where q.cp == uniHex
                                         select q;
                        try
                        {
                            foreach (var character in characters)
                            {
                                textCangjie.Text = character.kCangjie;
                                WriteCji.Text    = WriteCji.Text + textCangjie.Text + @" ";
                                break;
                            }
                        }
                        catch (System.Data.StrongTypingException ex)
                        {
                            textCangjie.Text = @"DBNull";
                            Status.Text      = ex.Message;
                        }
                    }
                }
                catch (System.Data.StrongTypingException ex)
                {
                    textDefinition.Text = @"OUTERex";
                    textCangjie.Text    = @"OUTERex";
                    Status.Text         = ex.Message;
                }
            }
            else
            {
                Status.Text     = @"Please select desired BoPoMoFo";
                WorkZhuyin.Text = "";
                listZhuyin.BeginUpdate();

                listZhuyin.Items.Clear();

                foreach (var t in checkBoPo)
                {
                    listZhuyin.Items.Add(t);
                }
                listZhuyin.EndUpdate();
                listZhuyin.Visible    = true;
                listNumPinyin.Visible = false;
            }
            //SendKeys.Send("\t");
        }
Ejemplo n.º 3
0
        private void WorkChinese_TextChanged(object sender, EventArgs e)
        {
            InputLanguage.CurrentInputLanguage = _myLanguages[Properties.Settings.Default.Studying];
            WorkTraditional.ImeMode            = ImeMode.On;

            IList <string> foundPin;
            IList <string> foundBo;

            if ((WorkTraditional.Text == "") || (WorkTraditional.Text == @" "))
            {
                Variables.InputsBopo = null;
                WorkTraditional.Text = "";
                return;
            }

            if ((Variables.InputsBopo != null) && (Variables.InputsBopo == "xxxx"))
            {
                Variables.InputsBopo = null;
                textBopo.Text        = "";
            }

            var pinUsit = Traditional.TryGetCharPin(WorkTraditional.Text, out foundPin);

            if (!pinUsit)
            {
                Status.Text          = @"CharPin failed on: " + WorkTraditional.Text;
                WorkTraditional.Text = "";
                textBopo.Text        = "";
                return;
            }

            var boUsit = Traditional.TryGetCharBo(WorkTraditional.Text, out foundBo);

            if (!boUsit)
            {
                Status.Text          = @"CharBo failed on: " + WorkTraditional.Text;
                WorkTraditional.Text = "";
                textBopo.Text        = "";
                return;
            }

            var boCount  = foundBo.Count;
            var pinCount = foundPin.Count;

            if ((Variables.InputsBopo != null) && (foundPin.Count > 1) && (foundBo.Count > 1))
            {
                var working = Variables.InputsBopo;
                textBopo.Text = "";

                for (var j = 0; j <= 3; j++)
                {
                    if (working.Substring(j, 1) != "x")
                    {
                        textBopo.Text += working.Substring(j, 1);
                    }
                }


                for (var i = 0; i < foundBo.Count; i++)
                {
                    if (textBopo.Text != foundBo[i])
                    {
                        continue;
                    }
                    foundBo[0] = foundBo[i];
                    boCount    = 1;

                    var pin1 = Traditional.TryGetBoPin(textBopo.Text, out foundPin);

                    if (!pin1)
                    {
                        Status.Text          = @"BoPin failed on: " + textBopo.Text;
                        WorkTraditional.Text = "";
                        textBopo.Text        = "";
                        return;
                    }

                    pinCount      = 1;
                    textBopo.Text = "";
                    break;
                }
            }

            if ((pinCount == 1) && (boCount == 1))
            {
                textBopo.Text          = foundBo[0];
                WriteZhuyin.Text      += foundBo[0];
                WriteZhuyin.Text      += @" ";
                WorkZhuyin.Text        = "";
                WriteTraditional.Text += WorkTraditional.Text;

                WriteNumPinyin.Text = WriteNumPinyin.Text + foundPin[0] + @" ";
                WorkNumPinyin.Text  = "";

                var chinChars = WorkTraditional.Text.ToCharArray();
                var uniHex    = ExpandUnihex(chinChars);

                using (var uniHan = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                {
                    var characters = from q in uniHan.UniHans
                                     where q.cp == uniHex
                                     select q;

                    try
                    {
                        foreach (var character in characters)
                        {
                            textCangjie.Text = character.kCangjie;
                            WriteCji.Text    = WriteCji.Text + textCangjie.Text + @" ";

                            textDefinition.Text = character.kDefinition;
                            break;
                        }
                    }
                    catch (System.Data.StrongTypingException ex)
                    {
                        textCangjie.Text = @"DBNull";
                        Status.Text      = ex.Message;
                    }
                }

                IList <string> foundCrit;
                var            critUsit = Traditional.TryGetPinCrit(foundPin[0], out foundCrit);

                if (!critUsit)
                {
                    Status.Text          = @"PinCrit failed on: " + foundPin[0];
                    WorkTraditional.Text = "";
                    textBopo.Text        = "";
                    return;
                }

                IList <string> foundSimp;
                var            simpUsit = Traditional.TryGetCharSimp(WorkTraditional.Text, out foundSimp);

                if (!simpUsit)
                {
                    Status.Text          = @"CharSimp failed on: " + WorkTraditional.Text;
                    WorkTraditional.Text = "";
                    textBopo.Text        = "";
                    return;
                }


                WriteCritPinyin.Text = WriteCritPinyin.Text + foundCrit[0] + @" ";
                WriteSimplified.Text = WriteSimplified.Text + foundSimp[0];

                listZhuyin.Items.Clear();
                listZhuyin.Visible = false;
                listNumPinyin.Items.Clear();
                listNumPinyin.Visible = false;

                //using (var ceDictionary = new ChineseStudyDataContext(Properties.Settings.Default.ChineseStudyConnection))
                //{
                //    var definitions = from ed in ceDictionary.CeDictFulls
                //                        where ed.Traditional == WorkTraditional.Text
                //                        where ed.BoPoMoFo == foundBo[0]
                //                        select ed;

                //    try
                //    {
                //        foreach (var definition in definitions)
                //        {
                //            textDefinition.Text = definition.English;
                //            break;
                //        }
                //    }
                //    catch (System.Data.StrongTypingException eng)
                //    {
                //        Status.Text = eng.Message;
                //        textDefinition.Text = @"DBNull";
                //    }
                //}

                WorkTraditional.Text = "";

                return;
            }

            listNumPinyin.BeginUpdate();
            listNumPinyin.Items.Clear();

            foreach (var t in foundPin)
            {
                listNumPinyin.Items.Add(t);
            }

            listNumPinyin.EndUpdate();
            listNumPinyin.Visible = true;



            listZhuyin.BeginUpdate();
            listZhuyin.Items.Clear();

            foreach (var t in foundBo)
            {
                listZhuyin.Items.Add(t);
            }

            listZhuyin.EndUpdate();
            listZhuyin.Visible = true;
        }
Ejemplo n.º 4
0
        private void button5_Click(object sender, EventArgs e)
        {
            if (radioACER0.Checked)
            {
                Properties.Settings.Default.ActiveSQL = Properties.Settings.Default.acer0;
                SetFolders("ACER0");
            }

            if (radioAMAZON1.Checked)
            {
                Properties.Settings.Default.ActiveSQL = Properties.Settings.Default.amazon1;
                SetFolders("AMAZON1");
            }

            if (radioBAX2ZAONV6.Checked)
            {
                Properties.Settings.Default.ActiveSQL = Properties.Settings.Default.bax2zaonv6;
                SetFolders("BAX2ZAONV6");
            }

            if (chkCharBopo.Checked)
            {
                FileStream   writing1    = new FileStream(OutputCharBopoName.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputLine1 = new StreamWriter(writing1, Encoding.UTF8);
                string       fileLine1   = "ID\tChar\tBopo\tCji";
                outputLine1.WriteLine(fileLine1);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var myChars = from q in myChineseStudy.CharBopos
                                  orderby q.Char, q.Bopo
                    select q;

                    foreach (var myChar in myChars)
                    {
                        fileLine1 = myChar.ID + "\t" + myChar.Char + "\t" + myChar.Bopo + "\t" + myChar.Cji;
                        outputLine1.WriteLine(fileLine1);
                    }
                }

                outputLine1.Close();
            }

            if (chkPinBopo.Checked)
            {
                FileStream   writing2    = new FileStream(OutputPinBopoName.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputLine2 = new StreamWriter(writing2, Encoding.UTF8);
                string       fileLine2   = "ID\tPin\tBopo";
                outputLine2.WriteLine(fileLine2);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var myBopos = from q in myChineseStudy.PinBopos
                                  orderby q.Bopo, q.Pin
                    select q;

                    foreach (var myBopo in myBopos)
                    {
                        fileLine2 = myBopo.ID + "\t" + myBopo.Pin + "\t" + myBopo.Bopo;
                        outputLine2.WriteLine(fileLine2);
                    }
                }

                outputLine2.Close();
            }

            if (chkPinMypin.Checked)
            {
                FileStream   writing3    = new FileStream(OutputPinMypinName.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputLine3 = new StreamWriter(writing3, Encoding.UTF8);
                string       fileLine3   = "ID\tPin\tMyPin";
                outputLine3.WriteLine(fileLine3);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var myPins = from q in myChineseStudy.PinMypins
                                 orderby q.MyPin, q.Pin
                    select q;

                    foreach (var mypin in myPins)
                    {
                        fileLine3 = mypin.ID + "\t" + mypin.Pin + "\t" + mypin.MyPin;
                        outputLine3.WriteLine(fileLine3);
                    }
                }

                outputLine3.Close();
            }

            if (chkFullFarEast.Checked)
            {
                FileStream   writing4    = new FileStream(OutputFullFarEastName.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputLine4 = new StreamWriter(writing4, Encoding.UTF8);
                string       fileLine4   = "ID\tBopo\tChar\tFeNumber\tEnglish\tHex\tCji";
                outputLine4.WriteLine(fileLine4);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var myFes = from q in myChineseStudy.FullFarEasts
                                orderby q.Char, q.Bopo
                    select q;

                    foreach (var myFe in myFes)
                    {
                        fileLine4  = myFe.ID.ToString();
                        fileLine4 += "\t";
                        fileLine4 += (String.IsNullOrEmpty(myFe.Bopo) ? " " : myFe.Bopo);
                        fileLine4 += "\t";
                        fileLine4 += myFe.Char;
                        fileLine4 += "\t";
                        fileLine4 += myFe.FeNumber ?? "0";
                        fileLine4 += "\t";
                        fileLine4 += (String.IsNullOrEmpty(myFe.English) ? " " : myFe.English);
                        fileLine4 += "\t";
                        fileLine4 += myFe.Hex;
                        fileLine4 += "\t";
                        fileLine4 += String.IsNullOrEmpty(myFe.Cji) ? " " : myFe.Cji;
                        outputLine4.WriteLine(fileLine4);
                    }
                }

                outputLine4.Close();
            }

            if (chkCeDict.Checked)
            {
                FileStream   writing5    = new FileStream(OutputCeDictName.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputLine5 = new StreamWriter(writing5, Encoding.UTF8);
                string       fileLine5   = "ID\tBopo\tChar\tFeNumber\tEnglish\tHex\tCji";
                outputLine5.WriteLine(fileLine5);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var myFes = from q in myChineseStudy.CeDicts
                                orderby q.Char, q.Bopo
                    select q;

                    foreach (var myFe in myFes)
                    {
                        fileLine5 = myFe.ID + "\t" + myFe.Bopo + "\t" + myFe.Char + "\t" + myFe.English + "\t" + myFe.Pinyin + "\t" + myFe.Hex;
                        outputLine5.WriteLine(fileLine5);
                    }
                }

                outputLine5.Close();
            }

            if (chk_3000_.Checked)
            {
                FileStream   writing6    = new FileStream(Output_3000_Name.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputLine6 = new StreamWriter(writing6, Encoding.UTF8);
                string       fileLine6   = "ID\tFEseq\tZhuyin\tTraditional\tEnglish\tNumPinyin\tCritPinyin\tSimplified\tCji";
                outputLine6.WriteLine(fileLine6);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var my3000S = from q in myChineseStudy._3000_Characters
                                  orderby q.FEseq
                                  select q;

                    char[] charsToTrim = { '\"' };
                    foreach (var my3000 in my3000S)
                    {
                        int fromFEseq;
                        var isInteger = int.TryParse(my3000.FEseq, out fromFEseq);
                        if (!isInteger)
                        {
                            textStatus.Text = "FEseq is non-integer; ID= " + my3000.ID + " FEseq = " + my3000.FEseq;
                            return;
                        }

                        var english = my3000.English.Trim(charsToTrim);

                        fileLine6 = my3000.ID + "\t" + my3000.FEseq + "\t" + my3000.Zhuyin + "\t" + my3000.Traditional + "\t" +
                                    english + "\t" + my3000.NumPinyin + "\t" + my3000.CritPinyin + "\t" + my3000.Simplified + "\t" + my3000.Cji;
                        outputLine6.WriteLine(fileLine6);
                    }
                }

                outputLine6.Close();
            }

            if (chkPinBopo.Checked)
            {
                FileStream   writing2    = new FileStream(OutputPinBopoName.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputLine2 = new StreamWriter(writing2, Encoding.UTF8);
                string       fileLine2   = "ID\tPin\tBopo";
                outputLine2.WriteLine(fileLine2);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var myBopos = from q in myChineseStudy.PinBopos
                                  orderby q.Bopo, q.Pin
                    select q;

                    foreach (var myBopo in myBopos)
                    {
                        fileLine2 = myBopo.ID + "\t" + myBopo.Pin + "\t" + myBopo.Bopo;
                        outputLine2.WriteLine(fileLine2);
                    }
                }

                outputLine2.Close();
            }

            if (chkCharBopoPinCrit.Checked)
            {
                FileStream   writing7    = new FileStream(OutputCharBopoPinCrit_Name.Text, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                StreamWriter outputline7 = new StreamWriter(writing7, Encoding.UTF8);
                string       fileline7   = "ID\tChar\tBopo\tPin\tCrit\tCji";
                outputline7.WriteLine(fileline7);

                using (ChineseStudyDataContext myChineseStudy = new ChineseStudyDataContext(Properties.Settings.Default.ActiveSQL))
                {
                    var myPinCrits = from q in myChineseStudy.CharBopoPinCrits
                                     orderby q.Cji, q.Char, q.Pin
                    select q;

                    foreach (var myPinCrit in myPinCrits)
                    {
                        fileline7 = myPinCrit.ID + "\t" + myPinCrit.Char + "\t" + myPinCrit.Bopo + "\t" + myPinCrit.Pin + "\t" + myPinCrit.Crit + "\t" + myPinCrit.Cji;
                        outputline7.WriteLine(fileline7);
                    }
                }

                outputline7.Close();
            }
        }