private bool ThemVaoChu(DinhNghiaKieuGo dnkg, int trungDau) { if ((dnkg >= DinhNghiaKieuGo.khongDau) && (dnkg <= DinhNghiaKieuGo.nang)) { this.KiemTraViTriDau(); if ((this.chu.vitriDau == -1) || (this.chu.nguyenAm.Length == 0)) { return(false); } if (this.chu.dau == ((Dau)((int)dnkg))) { if (this.chu.dau == Dau.khongDau) { return(false); } this.chu.trungdau = trungDau; this.chu.dau = Dau.khongDau; this.chu.vitriThanhPhan = 2; } if (this.chu.trungdau == -1) { this.chu.dau = (Dau)dnkg; } return(true); } this.mocCu = this.chu.moc; if (dnkg == DinhNghiaKieuGo.DauMuChungAOE) { char[] anyOf = new char[] { 'a', 'A', 'o', 'O', 'e', 'E' }; if (this.chu.nguyenAm.IndexOfAny(anyOf) < 0) { return(false); } this.chu.moc = '^'; } else if (dnkg == DinhNghiaKieuGo.AThanh6) { char[] chArray2 = new char[] { 'a', 'A' }; char[] chArray3 = new char[] { 'o', 'O', 'e', 'E' }; if ((this.chu.nguyenAm.IndexOfAny(chArray2) < 0) || (this.chu.nguyenAm.IndexOfAny(chArray3) >= 0)) { return(false); } this.chu.moc = '^'; } else if (dnkg == DinhNghiaKieuGo.EThanh6) { char[] chArray4 = new char[] { 'E', 'e' }; char[] chArray5 = new char[] { 'a', 'A', 'o', 'O' }; if ((this.chu.nguyenAm.IndexOfAny(chArray4) < 0) || (this.chu.nguyenAm.IndexOfAny(chArray5) >= 0)) { return(false); } this.chu.moc = '^'; } else if (dnkg == DinhNghiaKieuGo.OThanh6) { char[] chArray6 = new char[] { 'O', 'o' }; char[] chArray7 = new char[] { 'a', 'A', 'e', 'E' }; if ((this.chu.nguyenAm.IndexOfAny(chArray6) < 0) || (this.chu.nguyenAm.IndexOfAny(chArray7) >= 0)) { return(false); } this.chu.moc = '^'; } else if ((dnkg == DinhNghiaKieuGo.UThanh7OThanh7AThanh8) || (dnkg == DinhNghiaKieuGo.UOASimple)) { char[] chArray8 = new char[] { 'a', 'A' }; if (((((this.chu.nguyenAm.Length == 0) || (this.chu.nguyenAm[0] == 'u')) || (this.chu.nguyenAm[0] == 'U')) || ((this.chu.nguyenAm.IndexOfAny(chArray8) < 0) && (this.chu.nguyenAm[0] == 'o'))) || (this.chu.nguyenAm[0] == 'O')) { char[] chArray9 = new char[] { 'u', 'o', 'U', 'O' }; if (this.chu.nguyenAm.IndexOfAny(chArray9) < 0) { return(false); } if (this.chu.nguyenAm.Length == 1) { this.chu.UODau = true; } this.chu.moc = '*'; } else { if (this.chu.nguyenAm.IndexOfAny(chArray8) < 0) { return(false); } this.chu.moc = '('; } } else if (dnkg == DinhNghiaKieuGo.UThanh7OThanh7) { char[] chArray10 = new char[] { 'u', 'o', 'U', 'O' }; if (this.chu.nguyenAm.IndexOfAny(chArray10) < 0) { return(false); } if (this.chu.nguyenAm.Length == 1) { this.chu.UODau = true; } this.chu.moc = '*'; } else if (dnkg == DinhNghiaKieuGo.AThanh8) { char[] chArray11 = new char[] { 'a', 'A' }; if (this.chu.nguyenAm.IndexOfAny(chArray11) < 0) { return(false); } this.chu.moc = '('; } if (((this.chu.moc == '*') && (this.mocCu == '*')) && (this.chu.UODau && (this.chu.nguyenAm.Length == 2))) { this.mocCu = '-'; this.chu.UODau = false; } if (this.chu.moc == this.mocCu) { this.chu.trungdau = trungDau; this.chu.moc = '-'; this.chu.vitriThanhPhan = 2; if ((this.mocCu == '*') && (dnkg == DinhNghiaKieuGo.UThanh7OThanh7AThanh8)) { if (this.chu.nguyenAm[0] == 'U') { this.chu.amCuoi = this.chu.amCuoi + this.kieuGo[10].ToString().ToUpper(); } else { this.chu.amCuoi = this.chu.amCuoi + this.kieuGo[10].ToString().ToLower(); } if (this.chu.UOA) { this.chu.nguyenAm = this.chu.nguyenAm.Substring(1); } } } return(true); }
public string Convert(string nguon) { this.s = this.value = ""; this.chu.Reset(); this.i = 0; while (this.i < nguon.Length) { if (this.chu.vitriThanhPhan == 0) { this.viTriDauMoc = this.TimKiemKieuGo(nguon[this.i]); if (this.viTriDauMoc == DinhNghiaKieuGo.DThanhD) { if (this.chu.amDau.ToLower() == "d") { this.chu.D9 = true; this.chu.vitriThanhPhan = 1; } else { this.chu.amDau = this.chu.amDau + nguon[this.i]; } } else if (this.viTriDauMoc == DinhNghiaKieuGo.UThanh7OThanh7AThanh8) { this.chu.vitriThanhPhan = 1; this.chu.moc = '*'; char ch = nguon[this.i]; char ch2 = nguon[this.i]; if (ch.ToString() == ch2.ToString().ToLower()) { this.chu.nguyenAm = "u"; } else { this.chu.nguyenAm = "U"; } this.chu.UOA = true; } else if (this.KiemTraNguyenAm(nguon[this.i])) { this.chu.vitriThanhPhan = 1; this.chu.nguyenAm = nguon[this.i].ToString(); } else { this.chu.amDau = this.chu.amDau + nguon[this.i]; } } else if (this.chu.vitriThanhPhan == 1) { this.viTriDauMoc = this.TimKiemKieuGo(nguon[this.i]); if (((this.chu.nguyenAm.Length > 0) && this.KiemTraNguyenAm(nguon[this.i])) || ((this.viTriDauMoc == DinhNghiaKieuGo.UThanh7OThanh7AThanh8) && (this.chu.nguyenAm.Length == 1))) { if (((this.chu.amDau == "g") || (this.chu.amDau == "G")) && ((this.chu.nguyenAm[0] == 'i') || (this.chu.nguyenAm[0] == 'I'))) { this.chu.amDau = this.chu.amDau + this.chu.nguyenAm[0]; this.chu.nguyenAm = this.chu.nguyenAm.Substring(1); } else if (((this.chu.amDau == "q") || (this.chu.amDau == "Q")) && ((this.chu.nguyenAm[0] == 'u') || (this.chu.nguyenAm[0] == 'U'))) { this.chu.amDau = this.chu.amDau + this.chu.nguyenAm[0]; this.chu.nguyenAm = this.chu.nguyenAm.Substring(1); } } if ((this.viTriDauMoc == DinhNghiaKieuGo.UThanh7OThanh7AThanh8) && (this.chu.nguyenAm.Length == 0)) { char ch4 = nguon[this.i]; char ch5 = nguon[this.i]; if (ch4.ToString() == ch5.ToString().ToLower()) { this.chu.nguyenAm = "u"; } else { this.chu.nguyenAm = "U"; } this.chu.UOA = true; } if ((this.viTriDauMoc >= DinhNghiaKieuGo.khongDau) && (this.TimKiemAmDau() || (this.ktChinhTa != 2))) { if (this.viTriDauMoc == DinhNghiaKieuGo.DThanhD) { if ((this.chu.amDau == "d") || (this.chu.amDau == "D")) { if (this.chu.D9) { this.chu.D9 = false; this.chu.trungdau = this.i; this.chu.vitriThanhPhan = 2; this.chu.amCuoi = nguon[this.i].ToString(); } else { this.chu.D9 = true; } } else { this.chu.vitriThanhPhan = 2; this.chu.amCuoi = this.chu.amCuoi + nguon[this.i]; } } else if (!this.ThemVaoChu(this.viTriDauMoc, this.i)) { if (this.KiemTraNguyenAm(nguon[this.i])) { this.chu.nguyenAm = this.chu.nguyenAm + nguon[this.i]; } else { this.chu.vitriThanhPhan = 2; this.chu.amCuoi = this.chu.amCuoi + nguon[this.i]; } } } else if (this.KiemTraNguyenAm(nguon[this.i])) { this.chu.nguyenAm = this.chu.nguyenAm + nguon[this.i]; } else { this.chu.vitriThanhPhan = 2; this.chu.amCuoi = this.chu.amCuoi + nguon[this.i]; } if (this.chu.trungdau >= 0) { this.chu.vitriThanhPhan = 2; this.chu.amCuoi = nguon[this.i].ToString(); } } else if (this.chu.vitriThanhPhan == 2) { this.viTriDauMoc = this.TimKiemKieuGo(nguon[this.i]); if (((this.viTriDauMoc >= DinhNghiaKieuGo.khongDau) && (this.TimKiemAmDau() || (this.ktChinhTa == 0))) && (this.TimKiemPhuAmCuoi() && (this.chu.trungdau == -1))) { if (this.viTriDauMoc == DinhNghiaKieuGo.DThanhD) { if ((this.chu.amDau == "d") || (this.chu.amDau == "D")) { if (this.chu.D9) { this.chu.D9 = false; this.chu.trungdau = this.i; this.chu.vitriThanhPhan = 2; this.chu.amCuoi = this.chu.amCuoi + nguon[this.i]; } else { this.chu.D9 = true; } } else { this.chu.amCuoi = this.chu.amCuoi + nguon[this.i]; } } else if (!this.ThemVaoChu(this.viTriDauMoc, this.i) || (this.chu.trungdau >= 0)) { this.chu.amCuoi = this.chu.amCuoi + nguon[this.i]; } } else { this.chu.amCuoi = this.chu.amCuoi + nguon[this.i]; } if (((this.ktChinhTa != 0) && (this.chu.trungdau < 0)) && ((this.chu.amCuoi.Length > 0) && this.KiemTraNguyenAm(this.chu.amCuoi[this.chu.amCuoi.Length - 1]))) { return(nguon); } } this.i++; } if (this.chu.D9) { if (this.chu.amDau != "D") { if (this.chu.amDau != "d") { return(nguon); } this.s = this.bangMa[0x48]; } else { this.s = this.bangMa[0x91]; } } else { this.s = this.chu.amDau; } this.value = this.ChuyenSangTiengViet(); if (this.value != null) { return(this.s + this.value + this.chu.amCuoi); } if (this.chu.nguyenAm == "") { return(this.s + this.chu.amCuoi); } return(nguon); }