困扰2个周的问题,写TXT文件排版问题,有字符和数字,汉字,时间排版乱掉,怎样判断取得 字符串中有没有字符或者数字
由于汉字占两个字节 
 字符和数字占一个字节 
 我如果按长度截取字符串就出现了下面的效果,谢谢   
 ------------------------------ 
 期货交易所、大连商品交易所和郑州商品交易所累计交易金额首次突 
 破22万亿,达到了22.21万亿元。八个月的数字即刷新了20 
 万亿元,创该交易所成立以来历史新高;大商所成交5万亿元;郑商 
 ...... 
 ------------------------------   
 就象上面文字的第二行一样,中间有数字时,就出现了问题 
 请问:   怎样才能知道我取得   这个字符串有没有字符或者数字,   
 这个问题已经困扰几个周了,分不够可以再加,谢谢
------解决方案--------------------byte[] b = System.Text.Encoding.GetEncoding( "GB2312 ").GetBytes(str);
------解决方案--------------------给你个ASP的参考,应该有帮助的 
  '功能:以汉字的长度为标准,返回字符的个数 
  '注:汉字长度为1等于两个ascii码在0-255的字符 
  '兴例:  "123在在在4256 " 假如现在想取前 
 function subStr(strOld,n) 
 	if trim(strOld)= " " then 
 		subStr= " "		 
 	elseif isnumeric(n)=false then 
 		subStr=strOld 
 	elseif n <=0  then 
 		subStr=strOld 
 	else 
 		dim strOld_i,strOld_y,strOld_length 
 		strOld_y=0	 ' 
 		strOld_length=len(strOld) 
 		for strOld_i=1 to strOld_length 
 			if asc(mid(strOld,strOld_i,1)) <0 or asc(mid(strOld,strOld_i,1))> 255 then	 '这种情况说明是汉字或双角字符 
 				strOld_y=strOld_y+2 
 			else 
 				strOld_y=strOld_y+1 
 			end if 
 			if strOld_y> =n then exit for 
 		next  		 
 		if strOld_y >  n then 
 			subStr=left(strOld,strOld_i-1) 
 		elseif strOld_y=n then 
 			subStr=left(strOld,strOld_i) 
 		else 
 			subStr=strOld 
 		end if  		 
 	end if	 
 end function
------解决方案--------------------你要按什么来截断,写了一个方法,是按字节长度截断的,试下   
 private string FormatString(string src, int len) 
 { 
     if (string.IsNullOrEmpty(src) || len  < 2) 
         return null;   
     int count = 0; 
     StringBuilder sb = new StringBuilder(); 
     StringBuilder fomatStr = new StringBuilder(); 
     string result = string.Empty; 
     int byteLen = -1;   
     for (int i = 0; i  < src.Length;i++) 
     { 
         char c = src[i]; 
         byteLen = System.Text.Encoding.Default.GetByteCount(new char[] { c });   
         if (c !=  '\n ') 
         { 
             if (count  < len - 2) 
             { 
                 count += byteLen; 
                 sb.Append(c); 
             } 
             else if (count == len - 2) 
             { 
                 if (byteLen == 1) 
                 { 
                     count += byteLen; 
                     sb.Append(c); 
                 } 
                 else if (byteLen == 2) 
                 { 
                     count = 0; 
                     sb.Append(c); 
                     fomatStr.Append(sb.ToString()); 
                     fomatStr.Append( "\n "); 
                     sb = new StringBuilder(); 
                 } 
             } 
             else if (count == len - 1) 
             { 
                 if (byteLen == 1) 
                 { 
                     count = 0; 
                     sb.Append(c); 
                     fomatStr.Append(sb.ToString()); 
                     fomatStr.Append( "\n "); 
                     sb = new StringBuilder(); 
                 } 
                 else if (byteLen == 2) 
                 { 
                     count = 2; 
                     fomatStr.Append(sb.ToString()); 
                     fomatStr.Append( "\n "); 
                     sb = new StringBuilder(); 
                     sb.Append(c);