您的位置:首页 > 其它

汉字转化为拼音以及其他函数

2010-01-04 09:48 471 查看
**//// <summary>
/// 清空指定页面上所有的控件内容,包括TextBox,CheckBox,CheckBoxList,RadioButton,RadioButtonList。但是不清
/// 除如ListBox,DropDownList,因为这样的控件值对当前页面来说还可以用,一般这些控件里都是保存的字典数据。
/// Author:Kevin
/// 日期:2004-12-02
/// </summary>
/// <param name="page"> 指定的页面</param>
public static void ClearAllContent(System.Web.UI.Control page)
{
int nPageControls = page.Controls.Count;
for (int i = 0; i < nPageControls; i++)
{
foreach (System.Web.UI.Control control in page.Controls[i].Controls)
{
if (control.HasControls())
{
ClearAllContent(control);
}
else
{
if (control is TextBox)
(control as TextBox).Text = "";

if (control is CheckBox)
(control as CheckBox).Checked = false;

if (control is RadioButtonList)
(control as RadioButtonList).SelectedIndex = -1;

if (control is RadioButton)
(control as RadioButton).Checked = false;

if (control is CheckBoxList)
{
foreach (ListItem item in (control as CheckBoxList).Items)
{
item.Selected = false;
}
}
}//if..else
}//foreach
}//for
}


/// <summary>
/// 汉字转拼音缩写
/// Code By MuseStudio@hotmail.com
///
/// </summary>
/// <param name="str">要转换的汉字字符串</param>
/// <returns>拼音缩写</returns>
public string GetPYString(string str)
{
string tempStr = "";
foreach(char c in str)
{
if((int)c >= 33 && (int)c <=126)
{//字母和符号原样保留
tempStr += c.ToString();
}
else
{//累加拼音声母
tempStr += GetPYChar(c.ToString());
}
}
return tempStr;
}

/**//// <summary>
/// 取单个字符的拼音声母
/// Code By MuseStudio@hotmail.com
/// 2004-11-30
/// </summary>
/// <param name="c">要转换的单个汉字</param>
/// <returns>拼音声母</returns>
public string GetPYChar(string c)
{
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes(c);
int i = (short)(array[0] - '/0') * 256 + ((short)(array[1] - '/0'));

if ( i < 0xB0A1) return "*";
if ( i < 0xB0C5) return "a";
if ( i < 0xB2C1) return "b";
if ( i < 0xB4EE) return "c";
if ( i < 0xB6EA) return "d";
if ( i < 0xB7A2) return "e";
if ( i < 0xB8C1) return "f";
if ( i < 0xB9FE) return "g";
if ( i < 0xBBF7) return "h";
if ( i < 0xBFA6) return "g";
if ( i < 0xC0AC) return "k";
if ( i < 0xC2E8) return "l";
if ( i < 0xC4C3) return "m";
if ( i < 0xC5B6) return "n";
if ( i < 0xC5BE) return "o";
if ( i < 0xC6DA) return "p";
if ( i < 0xC8BB) return "q";
if ( i < 0xC8F6) return "r";
if ( i < 0xCBFA) return "s";
if ( i < 0xCDDA) return "t";
if ( i < 0xCEF4) return "w";
if ( i < 0xD1B9) return "x";
if ( i < 0xD4D1) return "y";
if ( i < 0xD7FA) return "z";

return "*";
}


//作用:把ListBox中的全部内容转换成一个字符串,各个字段间用,分隔
//
//参数:Lists,需要转换的ListBox.items
//
//返回值:转换好的字符串
//
public string ListToString(ListItemCollection Lists)
{
string result="";
for(int i=0;i<Lists.Count;i++)
{
if (i==0)
{
result=Lists[i].Text;
}
else
{
result=result+","+Lists[i].Text;
}
}
return result;
}

//
//作用:把string中的全部内容转换成ListItemCollection从而绑定到Listbox
//
//参数:str,需要转换的字符串
//
//返回值:转换好的ListItemCollection
//
public ListItemCollection StringToList(string str)
{
ListItemCollection lists=new ListItemCollection();
if(str=="")                                        //字符串为空
{
errPosition="ListItemCollection";
errMsg="字符串为空";
}
else if(str.IndexOf(",")==0)                        //首位为","
{
errPosition="ListItemCollection";
errMsg="首位为,";
}
else if(str.Substring(str.Length-1,1)==",")        //尾位为","
{
errPosition="ListItemCollection";
errMsg="尾位为,";
}
else
{
while (str.IndexOf(",")>0)
{
int position=str.IndexOf(",") ;
lists.Add(str.Substring(0,position));
str=str.Remove(0,position+1);
}
lists.Add(str);
}
return lists;
}

//
//作用:把源ListBox中的选中数据移动到目标ListBox
//
//参数:FromLists,源ListBox
//
public static void MoveListBoxSelectedItem
(ListItemCollection FromLists,ListItemCollection ToLists)
{
for(int i=FromLists.Count-1;i>=0;i--)
{
if (FromLists[i].Selected)
{
FromLists[i].Selected=false;
ToLists.Add(FromLists[i]);
FromLists.Remove(FromLists[i]);
}
}
}

//
//作用:把源ListBox中的全部数据移动到目标ListBox
//
//参数:FromLists,源ListBox
//
public static void MoveListBoxAllItem
(ListItemCollection FromLists,ListItemCollection ToLists)
{
for(int i=FromLists.Count-1;i>=0;i--)
{
FromLists[i].Selected=false;
ToLists.Add(FromLists[i]);
FromLists.Remove(FromLists[i]);
}
}

//
//作用:输入年月返回月份的天数的集合
//
//参数:YYYY年,MM月
//
//返回值:本月的天数的ArrayList
//
public static ArrayList GetDaysInMonth(int YYYY,int MM)
{
int day=DateTime.DaysInMonth(YYYY,MM);
ArrayList days=new ArrayList();
for (int i=1;i<=day;i++)
{
days.Add(i);
}
return days;
}

//
//作用:输入选中天数的集合,返回其中的最小和最大的天数
//
//参数:dates,把Calendar.SelectedDates传入即可
//
//返回值:两个数值的ArrayList,第一个为最小天数,第二个为最大天数
//
public static ArrayList GetMinMaxDate(SelectedDatesCollection dates)
{
ArrayList Result=new ArrayList();
DateTime min=new DateTime();
DateTime max=new DateTime();
for(int i=0;i<dates.Count;i++)
{
if (i>0)
{
if(dates[i]<min)
{
min=dates[i];
}
if(dates[i]>max)
{
max=dates[i];
}
}
else
{
min=dates[i];
max=dates[i];
}
}
Result.Add(min);
Result.Add(max);
return Result;
}

调用函数是碰到ListItemCollection 使用ListBox.Items做参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: