コード例 #1
0
        private void CheckTextMillons(StringBuilder phrase)
        {
            String aux = "";

            if (!phrase.Equals("") && ParamMillions.Length > 6)
            {
                if (digits.Count.Equals(2))
                {
                    aux = ParamMillions.ToString().Substring(0, Iter - (digits[0].ToString().Length + digits[1].ToString().Length) + 1);
                    CheckAppearTimesMillons(aux);
                }
                else
                {
                    aux = ParamMillions.ToString().Substring(0, ParamMillions.Length - digits[0].ToString().Length + 1);
                    CheckAppearTimesMillons(aux);
                }
            }
        }
コード例 #2
0
        private void WriteNumber(string number)
        {
            StringBuilder phrase      = new StringBuilder("");
            StringBuilder alternative = new StringBuilder("");

            digits.Insert(0, number);
            for (int i = 0; i < number.Length; i++)
            {
                Iter++;
                ParamThousands++;
                if (ParamMillions.Length < Iter)
                {
                    ParamMillions.Append("0");
                }
                if (!phrase.Equals(new StringBuilder("")) &&
                    !number[i].ToString().Equals("0"))
                {
                    phrase.Append(" e ");
                }
                if (!alternative.Equals(new StringBuilder("")) &&
                    !number[i].ToString().Equals("0"))
                {
                    alternative.Append(" e ");
                }
                if ((number.Length - 1 - i) > 1)
                {
                    if (number[i].ToString().Equals("1") &&
                        (!number[i + 1].ToString().Equals("0") || !number[i + 2].ToString().Equals("0")))
                    {
                        phrase.Append("cento");
                        alternative.Append("cento");
                    }
                    else
                    {
                        if (hundreds.ContainsKey(number[i].ToString() + "00"))
                        {
                            phrase.Append(hundreds[number[i].ToString() + "00"]);
                            alternative.Append(hundreds[number[i].ToString() + "00"]);
                        }
                    }
                }
                else if ((number.Length - 1 - i) == 1)
                {
                    if (number[i].ToString().Equals("1"))
                    {
                        if (number[i + 1].ToString().Equals("0"))
                        {
                            phrase.Append(tens[number[i].ToString() + number[i + 1].ToString()]);
                            alternative.Append(tens[number[i].ToString() + number[i + 1].ToString()]);
                        }
                        else
                        {
                            if (number[i + 1].ToString().Equals("4"))
                            {
                                alternative.Append(alternativeSpecials[number[i].ToString() + number[i + 1].ToString()]);
                            }
                            else
                            {
                                alternative.Append(specials[number[i].ToString() + number[i + 1].ToString()]);
                            }
                            phrase.Append(specials[number[i].ToString() + number[i + 1].ToString()]);
                        }
                        i++;
                        Iter++;
                        ParamThousands++;
                        if (ParamMillions.Length < Iter)
                        {
                            ParamMillions.Append("0");
                        }
                    }
                    else
                    {
                        if (tens.ContainsKey(number[i].ToString() + "0"))
                        {
                            phrase.Append(tens[number[i].ToString() + "0"]);
                            alternative.Append(tens[number[i].ToString() + "0"]);
                        }
                    }
                }
                else
                {
                    if (units.ContainsKey(number[i].ToString()))
                    {
                        phrase.Append(units[number[i].ToString()]);
                        alternative.Append(units[number[i].ToString()]);
                    }
                }
            }
            phrase      = CheckTextThousands(phrase);
            alternative = CheckTextThousands(alternative);
            CheckTextMillons(phrase);
            ResetParameters();
            InsertSentence(sentence, phrase.ToString());
            InsertSentence(alternativeSentence, alternative.ToString());
        }