灰色空间

常用链接

统计

最新评论

2011年8月26日 #

XML 操作(判断用户登录)

    private string usernames = "";
    private string passwords = "";
    private XmlDocument XmlDoc;
    protected void Page_Load(object sender, EventArgs e)
    {
        usernames = Request.QueryString["username"];
        passwords = Request.QueryString["pwd"];
        if (!IsPostBack)
        {
            loadXml();
            XmlNodeList nodeList = XmlDoc.SelectSingleNode("Users").ChildNodes;
            foreach (XmlNode xn in nodeList)
            {
                XmlElement xe = (XmlElement)xn;
                if (xe.HasChildNodes)
                {
                    string username = "";
                    string pwd = "";
                    foreach (XmlNode xx in xe.ChildNodes)
                    {
                        XmlElement ee = (XmlElement)xx;
                        if (ee.Name == "username")
                        {
                            username = ee.InnerText;
                        }
                        if (ee.Name == "password")
                        {
                            pwd = ee.InnerText;
                        }
                    }
                    if (username == usernames)
                    {
                        if (xe.HasAttribute("Count") && xe.GetAttributeNode("Count").Value == "3"
                            && xe.HasAttribute("LoginDate")
                            && DateTime.Parse(xe.GetAttributeNode("LoginDate").Value).AddMinutes(1) >= DateTime.Now)
                        {
                            Response.Write("请一分钟后再尝试登陆");
                        }
                        if (pwd == passwords)
                        {
                            xe.RemoveAttribute("Count");
                            xe.RemoveAttribute("LoginDate");
                            XmlDoc.Save(Server.MapPath("User.xml"));
                            //Response.Redirect("Default2.aspx");
                            Response.Write("登陆成功");
                        }
                        else
                        {
                            if (xe.HasAttribute("Count"))
                            {
                                if (Convert.ToInt32(xe.Attributes["Count"].InnerText) <= 2)
                                    xe.Attributes["Count"].InnerText = (Convert.ToInt32(xe.Attributes["Count"].InnerText) + 1).ToString();
                                else if (Convert.ToInt32(xe.Attributes["Count"].InnerText) > 3)
                                    xe.Attributes["Count"].InnerText = "1";

                            }
                            else
                            {
                                xe.SetAttribute("Count", "1");
                            }
                            if (!xe.HasAttribute("LoginDate"))
                            {
                                xe.SetAttribute("LoginDate", DateTime.Now.ToString());
                            }
                            else if (DateTime.Parse(xe.GetAttributeNode("LoginDate").Value).AddMinutes(1) < DateTime.Now)
                            {
                                xe.RemoveAttribute("Count");
                                xe.RemoveAttribute("LoginDate");
                            }
                            XmlDoc.Save(Server.MapPath("User.xml"));
                        }
                    }
                }
            }
        }
    }

    public void loadXml()
    {
        XmlDoc = new XmlDocument();
        XmlDoc.Load(Server.MapPath("User.xml"));
    }

posted @ 2011-08-26 15:51 小桐 阅读(50) 评论(0) 编辑

2009年4月28日 #

时间同步显示

<html>
<head>
<script language="javascript">
window.onload=function(){
showtime();
}
</script>
</head>

<SCRIPT >

function showtime()
{
today=new Date();
var year=today.getYear();
var month=today.getMonth()+1;
var day=today.getDate();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var timeValue= hours;//((hours >12) ? hours -12 :hours);
timeValue += ((minutes < 10) ? ":0" : ":") + minutes+"";
//timeValue += (hours >= 12) ? "PM" : "AM";
timeValue+=((seconds < 10) ? ":0" : ":") + seconds+"";
var timetext=year+"-"+month+"-"+day+" "+timeValue
//document.write("<span onclick=\"document.getElementById('time').value='"+timetext+"'\">"+timetext+"</span>");
document.getElementById("liveclock").innerText = timetext; //div的html是now这个字符串
setTimeout("showtime()",1000); //设置过1000毫秒就是1秒,调用showtime方法
}
</SCRIPT>
<body>
<span id="liveclock"></span>
</body>
</html>

posted @ 2009-04-28 09:08 小桐 阅读(74) 评论(0) 编辑

2009年4月23日 #

JS验证表单大全

1. 长度限制
<script>
function test() 
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form> 

2. 只能是汉字 
<input onkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">

3." 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>

<input onkeydown="onlyEng();">

4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>

<input onkeydown="onlyNum();">

5. 只能是英文字符和数字
<input onkeyup="value="/oblog/value.replace(/[\W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

6. 验证油箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

8. 两次输入密码是否相同
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()

with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();
}
}
</script>
够了吧 :)
屏蔽右键 很酷 
oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
加在body中




2.1  表单项不能为空

<script  language="javascript">
<!--
function  CheckForm()
{  
if  (document.form.name.value.length  ==  0)  {  
alert("请输入您姓名!");
document.form.name.focus();
return  false;
}
return  true;
}
-->
</script>

2.2  比较两个表单项的值是否相同

<script  language="javascript">
<!--
function  CheckForm()
if  (document.form.PWD.value  !=  document.form.PWD_Again.value)  {  
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return  false;
}
return  true;
}
-->
</script>

2.3  表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script  language="javascript">
<!--
function  isNumber(String)
{  
var  Letters  =  "1234567890-";  //可以自己增加可输入值
var  i;
var  c;
if(String.charAt(  0  )=='-')
return  false;
if(  String.charAt(  String.length  -  1  )  ==  '-'  )
return  false;
for(  i  =  0;  i  <  String.length;  i  ++  )
{  
c  =  String.charAt(  i  );
if  (Letters.indexOf(  c  )  <  0)
return  false;
}
return  true;
}
function  CheckForm()
{  
if(!  isNumber(document.form.TEL.value))  {  
alert("您的电话号码不合法!");
document.form.TEL.focus();
return  false;
}
return  true;
}
-->
</script>


2.4  表单项输入数值/长度限定

<script  language="javascript">
<!--
function  CheckForm()  
{  
if  (document.form.count.value  >  100  ||  document.form.count.value  <  1)
{  
alert("输入数值不能小于零大于100!");
document.form.count.focus();
return  false;
}
if  (document.form.MESSAGE.value.length<10)
{  
alert("输入文字小于10!");
document.form.MESSAGE.focus();
return  false;
}
return  true;
}
//-->
</script>

2.5  中文/英文/数字/邮件地址合法性判断

<SCRIPT  LANGUAGE="javascript">
<!--

function  isEnglish(name)  //英文值检测
{  
if(name.length  ==  0)
return  false;
for(i  =  0;  i  <  name.length;  i++)  {  
if(name.charCodeAt(i)  >  128)
return  false;
}
return  true;
}

function  isChinese(name)  //中文值检测
{  
if(name.length  ==  0)
return  false;
for(i  =  0;  i  <  name.length;  i++)  {  
if(name.charCodeAt(i)  >  128)
return  true;
}
return  false;
}

function  isMail(name)  //  E-mail值检测
{  
if(!  isEnglish(name))
return  false;
i  =  name.indexOf("  at  ");
j  =  name  dot  lastIndexOf("  at  ");
if(i  ==  -1)
return  false;
if(i  !=  j)
return  false;
if(i  ==  name  dot  length)
return  false;
return  true;
}

function  isNumber(name)  //数值检测
{  
if(name.length  ==  0)
return  false;
for(i  =  0;  i  <  name.length;  i++)  {  
if(name.charAt(i)  <  "0"  ||  name.charAt(i)  >  "9")
return  false;
}
return  true;
}

function  CheckForm()
{  
if(!  isMail(form.Email.value))  {  
alert("您的电子邮件不合法!");
form.Email.focus();
return  false;
}
if(!  isEnglish(form.name.value))  {  
alert("英文名不合法!");
form.name.focus();
return  false;
}
if(!  isChinese(form.cnname.value))  {  
alert("中文名不合法!");
form.cnname.focus();
return  false;
}
if(!  isNumber(form.PublicZipCode.value))  {  
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return  false;
}
return  true;
}
//-->
</SCRIPT>

2.6  限定表单项不能输入的字符

<script  language="javascript">
<!--

function  contain(str,charset)//  字符串包含测试函数
{  
var  i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return  true;
return  false;
}

function  CheckForm()
{  
if  ((contain(document.form.NAME.value,  "%\(\)><"))  ||  (contain(document.form.MESSAGE.value,  "%\(\)><")))
{  
alert("输入了非法字符");
document.form.NAME.focus();
return  false;
}
return  true;
}
//-->
</script>  

1. 检查一段字符串是否全由数字组成       
---------------------------------------       
<script language="Javascript"><!--           
function checkNum(str){return str.match(/\D/)==null}           
alert(checkNum("1232142141"))           
alert(checkNum("123214214a1"))           
// --></script>         
      
2. 怎么判断是否是字符         
---------------------------------------       
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");          
else alert("全是字符");      
           
3. 怎么判断是否含有汉字        
---------------------------------------        
if (escape(str).indexOf("%u")!=-1) alert("含有汉字");         
else alert("全是字符");           
    
4. 邮箱格式验证    
---------------------------------------      
//函数名:chkemail     
//功能介绍:检查是否为Email Address     
//参数说明:要检查的字符串     
//返回值:0:不是 1:是     
function chkemail(a)     
{ var i=a.length;     
var temp = a.indexOf('@');     
var tempd = a.indexOf('.');     
if (temp > 1) {     
if ((i-temp) > 3){     
if ((i-tempd)>0){     
return 1;     
}     
    
}     
}     
return 0;     
}     
    
5. 数字格式验证    
---------------------------------------      
//函数名:fucCheckNUM     
//功能介绍:检查是否为数字     
//参数说明:要检查的数字     
//返回值:1为是数字,0为不是数字     
function fucCheckNUM(NUM)     
{     
var i,j,strTemp;     
strTemp="0123456789";     
if ( NUM.length== 0)     
return 0     
for (i=0;i<NUM.length;i++)     
{     
j=strTemp.indexOf(NUM.charAt(i));     
if (j==-1)     
{     
//说明有字符不是数字     
return 0;     
}     
}     
//说明是数字     
return 1;     
}     
    
6. 电话号码格式验证    
---------------------------------------      
//函数名:fucCheckTEL     
//功能介绍:检查是否为电话号码     
//参数说明:要检查的字符串     
//返回值:1为是合法,0为不合法     
function fucCheckTEL(TEL)     
{     
var i,j,strTemp;     
strTemp="0123456789-()# ";     
for (i=0;i<TEL.length;i++)     
{     
j=strTemp.indexOf(TEL.charAt(i));     
if (j==-1)     
{     
//说明有字符不合法     
return 0;     
}     
}     
//说明合法     
return 1;     
}    
   
7. 判断输入是否为中文的函数   
---------------------------------------      
function ischinese(s){   
var ret=true;   
for(var i=0;i<s.length;i++)   
ret=ret && (s.charCodeAt(i)>=10000);   
return ret;   
}    
   
8. 综合的判断用户输入的合法性的函数  
---------------------------------------      
<script language="javascript">  
//限制输入字符的位数开始  
//m是用户输入,n是要限制的位数  
function issmall(m,n)  
{  
if ((m<n) && (m>0))  
  {  
  return(false);  
  }  
else  
{return(true);}  
}  
  
9. 判断密码是否输入一致  
---------------------------------------      
function issame(str1,str2)  
{  
if (str1==str2)  
{return(true);}  
else  
{return(false);}  
}  
  
10. 判断用户名是否为数字字母下滑线 
---------------------------------------      
function notchinese(str){ 
var reg=/[^A-Za-z0-9_]/g 
    if (reg.test(str)){ 
    return (false); 
    }else{ 
return(true);    } 


11. form文本域的通用校验函数
---------------------------------------      
作用:检测所有必须非空的input文本,比如姓名,账号,邮件地址等等。
该校验现在只针对文本域,如果要针对form里面的其他域对象,可以改变判断条件。

使用方法:在要检测的文本域中加入title文字。文字是在提示信息,你要提示给用户的该字段的中文名。比如要检测用户名
html如下<input name="txt_1" title="姓名">,当然,最好用可视化工具比如dreamweaver什么的来编辑域。
如果要检测数字类型数据的话,再把域的id统一为sz.
javascript判断日期类型比较麻烦,所以就没有做日期类型校验的程序了.高手可以补充。

程序比较草,只是提供一个思路。抛砖引玉! :)
哦,对了,函数调用方法:< form  onsubmit="return dovalidate()">

function dovalidate()
{
fm=document.forms[0] //只检测一个form,如果是多个可以改变判断条件
    for(i=0;i<fm.length;i++)
    {  
    //检测判断条件,根据类型不同可以修改
    if(fm[i].tagName.toUpperCase()=="INPUT" &&fm[i].type.toUpperCase()=="TEXT" && (fm[i].title!=""))
    
         if(fm[i].value="/blog/="")//
         {
         str_warn1=fm[i].title+"不能为空!";
         alert(str_warn1);
        fm[i].focus();
         return false;         
         }
         if(fm[i].id.toUpperCase()=="SZ")//数字校验
         {
                 if(isNaN(fm[i].value))
                { str_warn2=fm[i].title+"格式不对";
                alert(str_warn2);
                fm[i].focus();
                 return false;
                 }
        }
    }
    return true;
}


2 >表单提交验证类 


2.1 表单项不能为空

<script language="javascript">
<!--
function CheckForm()

if (document.form.name.value.length == 0) { 
alert("请输入您姓名!");
document.form.name.focus();
return false;
}
return true;
}
-->
</script>

2.2 比较两个表单项的值是否相同

<script language="javascript">
<!--
function CheckForm()
if (document.form.PWD.value != document.form.PWD_Again.value) { 
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return false;
}
return true;
}
-->
</script>

2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script language="javascript">
<!--
function isNumber(String)

var Letters = "1234567890-"; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )

c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
function CheckForm()

if(! isNumber(document.form.TEL.value)) { 
alert("您的电话号码不合法!");
document.form.TEL.focus();
return false;
}
return true;
}
-->
</script>


2.4 表单项输入数值/长度限定

<script language="javascript">
<!--
function CheckForm() 

if (document.form.count.value > 100 || document.form.count.value < 1)

alert("输入数值不能小于零大于100!");
document.form.count.focus();
return false;
}
if (document.form.MESSAGE.value.length<10)

alert("输入文字小于10!");
document.form.MESSAGE.focus();
return false;
}
return true;
}
//-->
</script>

2.5 中文/英文/数字/邮件地址合法性判断

<SCRIPT LANGUAGE="javascript">
<!--

function isEnglish(name) //英文值检测

if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) { 
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}

function isChinese(name) //中文值检测

if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) { 
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}

function isMail(name) // E-mail值检测

if(! isEnglish(name))
return false;
i = name.indexOf(" at ");
j = name dot lastIndexOf(" at ");
if(i == -1)
return false;
if(i != j)
return false;
if(i == name dot length)
return false;
return true;
}

function isNumber(name) //数值检测

if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) { 
if(name.charAt(i) < "0" || name.charAt(i) > "9")
return false;
}
return true;
}

function CheckForm()

if(! isMail(form.Email.value)) { 
alert("您的电子邮件不合法!");
form.Email.focus();
return false;
}
if(! isEnglish(form.name.value)) { 
alert("英文名不合法!");
form.name.focus();
return false;
}
if(! isChinese(form.cnname.value)) { 
alert("中文名不合法!");
form.cnname.focus();
return false;
}
if(! isNumber(form.PublicZipCode.value)) { 
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return false;
}
return true;
}
//-->
</SCRIPT>

2.6 限定表单项不能输入的字符

<script language="javascript">
<!--

function contain(str,charset)// 字符串包含测试函数

var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}

function CheckForm()

if ((contain(document.form.NAME.value, "%\(\)><")) || (contain(document.form.MESSAGE.value, "%\(\)><")))

alert("输入了非法字符");
document.form.NAME.focus();
return false;
}
return true;
}
//-->
</script>

posted @ 2009-04-23 10:56 小桐 阅读(22) 评论(0) 编辑

checkBox全选

<script  type="text/javascript">
   function SelectAllCheckboxes(spanChk)
   {
     var oItem=spanChk.children;
     var theBox=(spanChk.type=="checkbox")?spanChk:spanChk.children.tiem[0];
     xState=theBox.checked;
     elm=theBox.form.elements;
     for(i=0;i<elm.length;i++)
     if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
     {
       if(elm[i].checked!=xState)
       elm[i].click();
     }
   }
</script>
<asp:CheckBox ID="CheckBox1" runat="server" type="checkbox" onclick="javascript:SelectAllCheckboxes(this);" />

posted @ 2009-04-23 10:45 小桐 阅读(22) 评论(0) 编辑

简单的SQL语句!!

大概几天将要过生日的人

select customername   from customer   where datepart(month,getdate())=datepart(month,birthday) and
datepart(day,getdate()+2)=datepart(day,birthday)

光取年月日

select CONVERT (varchar(10),birthday,112) from customer
100---114 全是日期的样式
102 是 1985.10.18
111 是 1985/10/18


光取月日
select substring(Convert(varchar(10),birthday,102),6,5) from customer---------12.22
select substring(Convert(varchar(10),birthday),1,5) from customer       ---------12 22



两张表简单的连接
select customername from customer  a   join users  b  on  a.userid=b.userid   
where b.realname='张倩'  and  a.typeid=4

条件SQL语句!!

   string sqlCommand = " Select g.CustomerID,  g.CustomerName,g.PhoneNo,g.ZmoneNo,g.School,g.birthday,sd.LeagueName,g.create_dt,ww.realname,t.storename  from Customer g  join Store t on g.StoreID=t.StoreID join Users ww on g.ManagerID=ww.UserID join Users k on g.UserID=k.UserID join League sd on g.LeagueID=sd.LeagueID where {where}";
      


        string WHERE = "1=1";
        if (!string.IsNullOrEmpty(d.PhoneNo))
            WHERE += " and g.PhoneNo='" + d.PhoneNo + "'";
        if (!string.IsNullOrEmpty(d.Interest))
            WHERE += " and g.Interest like '%" + d.Interest + "%'";
        if (d.StoreID != 0)
            WHERE += " and g.StoreID='" + d.StoreID + "'";
        if (d.LeagueID != 0)
            WHERE += " and g.LeagueID='" + d.LeagueID + "'";
        DateTime date = new DateTime(1900, 1, 1);
        if (!string.IsNullOrEmpty(d.ZmoneNo))
            WHERE += " and g.ZmoneNo='" + d.ZmoneNo + "'";
        if (d.create_dt > date)
            WHERE += " and g.create_dt>='" + d.create_dt + "'";
        if (d.endTime > date)
            WHERE += " and g.create_dt<='" + d.endTime + "'";

        WHERE += "  order by g.CreateTime asc";
     
  
        sqlCommand = sqlCommand.Replace("{where}",WHERE);
       
        
       SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText =sqlCommand ;
        SqlDataAdapter sdr = new SqlDataAdapter(cmd);
        con.Close();
        return sdr;

 

简单sql函数用法

select datediff(day{month,year},开始时间参数,结束时间参数) from table  两个时间段所隔的天数  返回Int类型

 

 

两个时间段内,将要过生日的人数,多表连接
select customername,gender,phoneno,interest,storename ,address,substring(Convert(varchar(10),birthday,102),6,5) birthday from customer a join  store b on a.storeid=b.storeid
where (datepart(month,Convert(varchar(10),'2008-07-10',102))<datepart(month,birthday) or
datepart(month,Convert(varchar(10),'2008-07-10',102))=datepart(month,birthday)
and datepart(day,Convert(varchar(10),'2008-07-10',102))<=datepart(day,birthday))

and (datepart(month,Convert(varchar(10),'2008-10-18',102))>datepart(month,birthday)  or
datepart(month,Convert(varchar(10),'2008-10-18',102))=datepart(month,birthday)
and datepart(day,Convert(varchar(10),'2008-10-18',102))>=datepart(day,birthday)

and storename=(select storename  from  store,users where store.storeid=users.storeid and username='13992068309') )

 

posted @ 2009-04-23 10:44 小桐 阅读(35) 评论(0) 编辑

Js获取当前日期时间及其它操作

24var myDate = new Date();
  • myDate.getYear();        //获取当前年份(2位)
  • myDate.getFullYear();    //获取完整的年份(4位,1970-????)
  • myDate.getMonth();       //获取当前月份(0-11,0代表1月)
  • myDate.getDate();        //获取当前日(1-31)
  • myDate.getDay();         //获取当前星期X(0-6,0代表星期天)
  • myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)
  • myDate.getHours();       //获取当前小时数(0-23)
  • myDate.getMinutes();     //获取当前分钟数(0-59)
  • myDate.getSeconds();     //获取当前秒数(0-59)
  • myDate.getMilliseconds();    //获取当前毫秒数(0-999)
  • myDate.toLocaleDateString();     //获取当前日期
  • var mytime=myDate.toLocaleTimeString();     //获取当前时间
  • myDate.toLocaleString( );        //获取日期与时间
  • 日期时间脚本库方法列表
  • Date.prototype.isLeapYear 判断闰年
  • Date.prototype.Format 日期格式化
  • Date.prototype.DateAdd 日期计算
  • Date.prototype.DateDiff 比较日期差
  • Date.prototype.toString 日期转字符串
  • Date.prototype.toArray 日期分割为数组
  • Date.prototype.DatePart 取日期的部分信息
  • Date.prototype.MaxDayOfDate 取日期所在月的最大天数
  • Date.prototype.WeekNumOfYear 判断日期所在年的第几周
  • StringToDate 字符串转日期型
  • IsValidDate 验证日期有效性
  • CheckDateTime 完整日期时间检查
  • daysBetween 日期天数差
  • js代码:
  • //---------------------------------------------------  
  • // 判断闰年  
  • //---------------------------------------------------  
  • Date.prototype.isLeapYear = function()   
  • {   
  •     return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));   
  • }   
  •   
  • //---------------------------------------------------  
  • // 日期格式化  
  • // 格式 YYYY/yyyy/YY/yy 表示年份  
  • // MM/M 月份  
  • // W/w 星期  
  • // dd/DD/d/D 日期  
  • // hh/HH/h/H 时间  
  • // mm/m 分钟  
  • // ss/SS/s/S 秒  
  • //---------------------------------------------------  
  • Date.prototype.Format = function(formatStr)   
  • {   
  •     var str = formatStr;   
  •     var Week = ['日','一','二','三','四','五','六'];  
  •   
  •     str=str.replace(/yyyy|YYYY/,this.getFullYear());   
  •     str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100));   
  •   
  •     str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0' + this.getMonth());   
  •     str=str.replace(/M/g,this.getMonth());   
  •   
  •     str=str.replace(/w|W/g,Week[this.getDay()]);   
  •   
  •     str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());   
  •     str=str.replace(/d|D/g,this.getDate());   
  •   
  •     str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());   
  •     str=str.replace(/h|H/g,this.getHours());   
  •     str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());   
  •     str=str.replace(/m/g,this.getMinutes());   
  •   
  •     str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds());   
  •     str=str.replace(/s|S/g,this.getSeconds());   
  •   
  •     return str;   
  • }   
  •   
  • //+---------------------------------------------------  
  • //| 求两个时间的天数差 日期格式为 YYYY-MM-dd   
  • //+---------------------------------------------------  
  • function daysBetween(DateOne,DateTwo)  
  • {   
  •     var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));  
  •     var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);  
  •     var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));  
  •   
  •     var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));  
  •     var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);  
  •     var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));  
  •   
  •     var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);   
  •     return Math.abs(cha);  
  • }  
  •   
  •   
  • //+---------------------------------------------------  
  • //| 日期计算  
  • //+---------------------------------------------------  
  • Date.prototype.DateAdd = function(strInterval, Number) {   
  •     var dtTmp = this;  
  •     switch (strInterval) {   
  •         case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));  
  •         case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));  
  •         case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));  
  •         case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));  
  •         case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));  
  •         case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
  •         case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
  •         case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
  •     }  
  • }  
  •   
  • //+---------------------------------------------------  
  • //| 比较日期差 dtEnd 格式为日期型或者 有效日期格式字符串  
  • //+---------------------------------------------------  
  • Date.prototype.DateDiff = function(strInterval, dtEnd) {   
  •     var dtStart = this;  
  •     if (typeof dtEnd == 'string' )//如果是字符串转换为日期型  
  •     {   
  •         dtEnd = StringToDate(dtEnd);  
  •     }  
  •     switch (strInterval) {   
  •         case 's' :return parseInt((dtEnd - dtStart) / 1000);  
  •         case 'n' :return parseInt((dtEnd - dtStart) / 60000);  
  •         case 'h' :return parseInt((dtEnd - dtStart) / 3600000);  
  •         case 'd' :return parseInt((dtEnd - dtStart) / 86400000);  
  •         case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));  
  •         case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);  
  •         case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();  
  •     }  
  • }  
  •   
  • //+---------------------------------------------------  
  • //| 日期输出字符串,重载了系统的toString方法  
  • //+---------------------------------------------------  
  • Date.prototype.toString = function(showWeek)  
  • {   
  •     var myDate= this;  
  •     var str = myDate.toLocaleDateString();  
  •     if (showWeek)  
  •     {   
  •         var Week = ['日','一','二','三','四','五','六'];  
  •         str += ' 星期' + Week[myDate.getDay()];  
  •     }  
  •     return str;  
  • }  
  •   
  • //+---------------------------------------------------  
  • //| 日期合法性验证  
  • //| 格式为:YYYY-MM-DD或YYYY/MM/DD  
  • //+---------------------------------------------------  
  • function IsValidDate(DateStr)   
  • {   
  •     var sDate=DateStr.replace(/(^\s+|\s+$)/g,''); //去两边空格;   
  •     if(sDate==''return true;   
  •     //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为''   
  •     //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式   
  •     var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,'');   
  •     if (s==''//说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D   
  •     {   
  •         var t=new Date(sDate.replace(/\-/g,'/'));   
  •         var ar = sDate.split(/[-/:]/);   
  •         if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())   
  •         {   
  •             //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
  •             return false;   
  •         }   
  •     }   
  •     else   
  •     {   
  •         //alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。');   
  •         return false;   
  •     }   
  •     return true;   
  • }   
  •   
  • //+---------------------------------------------------  
  • //| 日期时间检查  
  • //| 格式为:YYYY-MM-DD HH:MM:SS  
  • //+---------------------------------------------------  
  • function CheckDateTime(str)  
  • {   
  •     var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;   
  •     var r = str.match(reg);   
  •     if(r==null)return false;   
  •     r[2]=r[2]-1;   
  •     var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);   
  •     if(d.getFullYear()!=r[1])return false;   
  •     if(d.getMonth()!=r[2])return false;   
  •     if(d.getDate()!=r[3])return false;   
  •     if(d.getHours()!=r[4])return false;   
  •     if(d.getMinutes()!=r[5])return false;   
  •     if(d.getSeconds()!=r[6])return false;   
  •     return true;   
  • }   
  •   
  • //+---------------------------------------------------  
  • //| 把日期分割成数组  
  • //+---------------------------------------------------  
  • Date.prototype.toArray = function()  
  • {   
  •     var myDate = this;  
  •     var myArray = Array();  
  •     myArray[0] = myDate.getFullYear();  
  •     myArray[1] = myDate.getMonth();  
  •     myArray[2] = myDate.getDate();  
  •     myArray[3] = myDate.getHours();  
  •     myArray[4] = myDate.getMinutes();  
  •     myArray[5] = myDate.getSeconds();  
  •     return myArray;  
  • }  
  •   
  • //+---------------------------------------------------  
  • //| 取得日期数据信息  
  • //| 参数 interval 表示数据类型  
  • //| y 年 m月 d日 w星期 ww周 h时 n分 s秒  
  • //+---------------------------------------------------  
  • Date.prototype.DatePart = function(interval)  
  • {   
  •     var myDate = this;  
  •     var partStr='';  
  •     var Week = ['日','一','二','三','四','五','六'];  
  •     switch (interval)  
  •     {   
  •         case 'y' :partStr = myDate.getFullYear();break;  
  •         case 'm' :partStr = myDate.getMonth()+1;break;  
  •         case 'd' :partStr = myDate.getDate();break;  
  •         case 'w' :partStr = Week[myDate.getDay()];break;  
  •         case 'ww' :partStr = myDate.WeekNumOfYear();break;  
  •         case 'h' :partStr = myDate.getHours();break;  
  •         case 'n' :partStr = myDate.getMinutes();break;  
  •         case 's' :partStr = myDate.getSeconds();break;  
  •     }  
  •     return partStr;  
  • }  
  •   
  • //+---------------------------------------------------  
  • //| 取得当前日期所在月的最大天数  
  • //+---------------------------------------------------  
  • Date.prototype.MaxDayOfDate = function()  
  • {   
  •     var myDate = this;  
  •     var ary = myDate.toArray();  
  •     var date1 = (new Date(ary[0],ary[1]+1,1));  
  •     var date2 = date1.dateAdd(1,'m',1);  
  •     var result = dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd'));  
  •     return result;  
  • }  
  •   
  • //+---------------------------------------------------  
  • //| 取得当前日期所在周是一年中的第几周  
  • //+---------------------------------------------------  
  • Date.prototype.WeekNumOfYear = function()  
  • {   
  •     var myDate = this;  
  •     var ary = myDate.toArray();  
  •     var year = ary[0];  
  •     var month = ary[1]+1;  
  •     var day = ary[2];  
  •     document.write('< script language=VBScript\> \n');  
  •     document.write('myDate = DateValue(''+month+'-'+day+'-'+year+'') \n');  
  •     document.write('result = DatePart('ww', myDate) \n');  
  •     document.write(' \n');  
  •     return result;  
  • }  
  •   
  • //+---------------------------------------------------  
  • //| 字符串转成日期类型   
  • //| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd  
  • //+---------------------------------------------------  
  • function StringToDate(DateStr)  
  • {   
  •   
  •     var converted = Date.parse(DateStr);  
  •     var myDate = new Date(converted);  
  •     if (isNaN(myDate))  
  •     {   
  •         //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';  
  •         var arys= DateStr.split('-');  
  •         myDate = new Date(arys[0],--arys[1],arys[2]);  
  •     }  
  •     return myDate;  
  • }  
  •                   实际页面应用

    function display() { 

  • var weekName= new Array("日","一","二","三","四","五","六"); //将中文星期表示方法保存在数组weekName中 
  • var today=new Date();//以当前时间和日期来创建DATE对象 var time=today.toLocaleString();//按本地计算机设置获取当前系统日期及时间 
  • var week=weekName[today.getDay()];//获取当前日期对应的中文星期; 
  • var listdate="当前操作员:【"+''+"】"+''+""+"当前时间:"+time+" 星期"+week;//定义显示方式 
  • document.getElementById("clock").innerHTML=listdate; setTimeout("display()",1000);//每一秒重新运行一下DISPLAY() }
  •  

    posted @ 2009-04-23 10:31 小桐 阅读(2043) 评论(0) 编辑

    confirm弹出一个包含"确定"与"取消"的对话方块.

    confirm 是一种 javascript 语言.
  •   主要用处是,他可以弹出一个包含"确定""取消"的对话方块.
  •   用法:confirm(msg)
  •   msg 是提示信息
  •   如果用户按下了确定,返回true;或者按下了取消,返回false
  •   例如:
  •   <script type="text/javascript">
  •   <!--
  •   var OKNO = confirm("Selecting")
  •   alert(OKNO);//弹出对话方块
  •   //-->
  •   </script>
    1. if(confirm('删除后将无法恢复,真的要删除吗?'))
    2.   {
    3.     commandDel.execute();
    4.   }
  • posted @ 2009-04-23 10:28 小桐 阅读(52) 评论(0) 编辑

    2009年2月5日 #

    随机数概率解决思路

    C#中可以实现,也比较好维护,很方便修改,思路很简单,返回1-100之间的随机数,如果在60之间  
      那么就确定是60%概率中的分支,如果在60+25之间则执行概率25的分支……  
       
      //参数分别为3种概率所对应的100分数,本例中value=60,value2=25,value3=15  
      private   int   panduan(int   value1,int   value2,int   value3   )      
      {  
      System.Random   rm=new   Random();  
      int   result;  
      int   rmvalue   =   rm.Next(1,101);  
      if   (rmvalue<=value1)  
      {  
      result=1;  
      }  
      else   if(rmvalue<=value1+value2)  
      {  
      result=2;  
      }  
      else  
      {  
      result=3;  
      }  
      return   result;  
       
      }  
       
      //调用函数判断显示哪个  
      if   (panduan(65,25,15)==1)  
      {  
      }  
      else   if(panduan(65,25,15)==2)  
      {  
      }  
      else  
      {  
      }  

    1.   数字生成的概率相同,   学过离散数学的应该知道,   指定范围内的随机数中间的出现概率高,两头的低.   要想得到的数字的概率相同,   只需将范围扩大后取其中间的部分即可.   例如:   要0-6的随机数,   首先,生成0-54的随机数,   然后,   从生成的数字中取24-30之间的数字,   在减24.   这样一来,   所得到的随机数的每个数的概率基本相同.  
      2.   指定每个数字出现的概率.   这种实现也不难,   首先声明100个长度的数组,   将制定的数字按比例放到里面.   其次,   按1所说的方法生成0-99之间相同概率的数.然后将相应坐标里的数取出返回.   例如:   生成0-1的随机数(其中,   0出现的概率是30%,1是70%).    

           I)     int   a[10]   =   {   0,   0,   0,   1,   1,   1,   1,   1,   1,   1};  
          II)     int   iIndex   =   GetSameRandam(0,   9);  
        III)     return   a[iIndex];

    关机命令: System.Diagnostics.Process.Start("shutdown", "-f -s");

     

     

    posted @ 2009-02-05 16:12 小桐 阅读(942) 评论(0) 编辑

    2008年8月7日 #

    简单实用方法!!

     简单验证码生成!!

     

    protected void Page_Load(object sender, EventArgs e)
        {
          
                string CharList = "0123456789";
                int[] size = { 10, 12, 14 };
                string[] fm = { "宋体", "楷体_GB2312", "黑体" };
                int lastSize = 0;

                DateTime dt = System.DateTime.Now;
                Random rand = new Random();
                int x = rand.Next(10000, 100000);
                string src = x.ToString();
                Bitmap bmp = new Bitmap(100, 20);

                Graphics g = Graphics.FromImage(bmp);
                g.FillRectangle(Brushes.White, 0, 0, 100, 20);
                Color lastcolor = Color.Blue;
                bool info = false;
                for (int i = 0; i < 5; i++)
                {
                  char  ch=CharList[Convert.ToInt32(src[i].ToString())];
                        
                 

                  string temp = "";
                  temp += ch;
                  int sz = size[rand.Next(0, 3)];
                  if (i == 3 && !info) //总共5字,到了第4个还没的重叠的话那第四个要设成14号字
                      //保证重叠发生
                      sz = 14;
                  int cr = rand.Next(0, 200);
                  int cg = rand.Next(0, 200);
                  int cb = rand.Next(0, 200);
                  Color c = Color.FromArgb(cr, cg, cb);
                  int sub = 0;
                  if (lastSize == 14)
                  {//如果上一个字是14号,那么下一字向左入侵保证重叠
                      //对大字号重叠的可视性要比小字号强.
                      //重叠时最好将当前字符的颜色设为上一字符颜色
                      c = lastcolor;
                      info = true;
                      sub = 8;
                     
                  }
             
                   
                    this.lblMessage.Text+=ch.ToString();
                 
                  g.DrawString(ch.ToString(),
               new Font(new FontFamily(fm[rand.Next(0, fm.Length)]), sz),
               new SolidBrush(c),
               new Point(i * 20 - sub, 0));
                  //这里因为字号不同,间隔也不同,但每个字的起始点相同,可以修改根据上一个字
                  //的大小再调整起始点.
                  lastSize = sz;
                  lastcolor = c;
                  Response.Cookies.Add(new HttpCookie("code", this.lblMessage.Text.ToString()));
                 
                }
                this.lblMessage.Text = "";
                bmp.Save("d:/aaa.gif");
                this.Image1.ImageUrl = "d:/aaa.gif";
            }
            protected void Button1_Click(object sender, EventArgs e)
            {
                if (Request.Cookies["code"] == null)
                {
                    this.Label1.Text = "您的浏览器设置已被禁用 Cookies,您必须设置浏览器允许使用 Cookies 选项后才能使用本系统。";
                   
                    return;
                }

                if (Request.Cookies["code"].Value.ToString().Trim()==this.TextBox1.Text.Trim())
                {
                    Label1.Text = "验证码正确!!";
                    Response.Cookies["code"].Value =null;
                   
                }

                else
                    Label1.Text = "验证码错误,请输入正确的验证码。当前的验证码为" + Request.Cookies["code"].Value.ToString().Trim();
              
                    return;
            }


    验证码原理:
    在生成验证码图片的时候,同时生成了一个Session,其值就是验证码图片中的数字值。

    同时,提供输入框让用户输入,提交输入值后,与已有的Session值进行比较,根据判断结果做相应判断。

     

    随机生成中文汉字的基本原理!!

     

    static void Main(string[] args)
            {
                Encoding gb = Encoding.GetEncoding("gb2312");

                //调用函数产生4个随机中文汉字编码
                object[] bytes = CreateRegionCode(4);

                //根据汉字编码的字节数组解码出中文汉字
                string str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[])));
                string str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[])));
                string str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[])));
                string str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[])));

                //输出的控制台
                Console.WriteLine(str1 + str2 + str3 + str4);
                Thread.Sleep(3000);

            }
             public static object[] CreateRegionCode(int strlength)
            {
                //定义一个字符串数组储存汉字编码的组成元素
                string[] rBase=new String [16]{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
               
                Random rnd=new Random();
           
                //定义一个object数组用来
                object[] bytes=new object[strlength];
     
                /**//*每循环一次产生一个含两个元素的十六进制字节数组,并将其放入bject数组中
                 每个汉字有四个区位码组成
                 区位码第1位和区位码第2位作为字节数组第一个元素
                 区位码第3位和区位码第4位作为字节数组第二个元素
                */
                for(int i=0;i<strlength;i++)
                {
                    //区位码第1位
                    int r1=rnd.Next(11,14);
                    string str_r1=rBase[r1].Trim();
     
                    //区位码第2位
                    rnd=new Random(r1*unchecked((int)DateTime.Now.Ticks)+i);//更换随机数发生器的种子避免产生重复值
                    int r2;
                    if (r1==13)
                    {
                        r2=rnd.Next(0,7);
                    }
                    else
                    {
                        r2=rnd.Next(0,16);
                    }
                    string str_r2=rBase[r2].Trim();
     
                    //区位码第3位
                    rnd=new Random(r2*unchecked((int)DateTime.Now.Ticks)+i);
                    int r3=rnd.Next(10,16);
                    string str_r3=rBase[r3].Trim();
     
                    //区位码第4位
                    rnd=new Random(r3*unchecked((int)DateTime.Now.Ticks)+i);
                    int r4;
                    if (r3==10)
                    {
                        r4=rnd.Next(1,16);
                    }
                    else if (r3==15)

                    {
                        r4=rnd.Next(0,15);
                    }
                    else
                    {
                        r4=rnd.Next(0,16);
                    }
                    string str_r4=rBase[r4].Trim();
     
                    //定义两个字节变量存储产生的随机汉字区位码
                    byte byte1=Convert.ToByte(str_r1 + str_r2,16);
                    byte byte2=Convert.ToByte(str_r3 + str_r4,16);
                    //将两个字节变量存储在字节数组中
                    byte[] str_r=new byte[]{byte1,byte2};
     
                    //将产生的一个汉字的字节数组放入object数组中
                    bytes.SetValue(str_r,i);
                   
                  }
     
                return bytes;
     
                }

     

       #region 从excel中导入数据到ds
           private DataSet BindDsFromExcel(string strFileDir)
             {
               string strConn;
               strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+strFileDir+";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
              OleDbConnection OleConn = new OleDbConnection(strConn);
               OleConn.Open();
                sql = "SELECT * FROM [Sheet1$]";
              OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql,OleConn);
                DataSet  OleDsExcle = new DataSet();
               OleDaExcel.Fill(OleDsExcle,"aa");
               OleConn.Close();
               return OleDsExcle;
           }

            #endregion

     

    破解图片的方法 

     

      GF.OCR OCR1;
            private void button1_Click(object sender, EventArgs e)
            {
                CookieContainer currentcookie = new CookieContainer();
                string htmldoc = httpService.getpage("http://www.xx.com", ref currentcookie, null);
                //   webBrowser1.DocumentText=htmldoc;

                OCR1 = new OCR();
                OCR1.Abort = false;
                OCR1.ActivationKey = "Demo";
                OCR1.AllCharacterFile = "AllCharacters.nn";
                OCR1.AllCharacterMapFile = "AllCharacters.map";
                OCR1.AnalyzeLowerCaseCharacters = true;
                OCR1.AnalyzeNumericCharacters = true;
                OCR1.AnalyzeSpecialCharacters = true;
                OCR1.BarcodeType = GF.BarcodeTypes.Code39Extended;

                OCR1.BitmapImageFile = "";
                OCR1.Brightness = 7;
                OCR1.CheckSum = true;
                OCR1.DefaultFolder = "";
                OCR1.Despeckle = 1;
                OCR1.ErrorCharacter = '?';
                OCR1.ErrorCorrection = true;
                OCR1.ExtendedPictureBox = null;
                OCR1.Language = GF.LanguageType.English;
                OCR1.LowerCaseCharacterFile = "NumericCharacters.nn";
                OCR1.LowerCaseCharacterMapFile = "NumericCharacters.map";
                OCR1.MaximumCharacters = 5000;
                OCR1.MaximumHeight = 150;
                OCR1.MaximumSize = 10000;
                OCR1.MaximumWidth = 150;
                OCR1.NumericCharacterFile = "NumericCharacters.nn";
                OCR1.NumericCharacterMapFile = "NumericCharacters.map";
                OCR1.OCRType = GF.OCRTypes.Text;
                OCR1.OrderID = "Demo";
                OCR1.ProductName = "Demo";
                OCR1.RegistrationCodes = "Demo";
                OCR1.RemoveHorizontal = 0;
                OCR1.RemoveVertical = 0;
                OCR1.SectionHorizontalSpace = 1.5;
                OCR1.SectionVerticalSpace = 1.5;
                OCR1.SpecialCharacterFile = "NumericCharacters.nn";
                OCR1.SpecialCharacterMapFile = "NumericCharacters.map";
                OCR1.Statistics = false;
                OCR1.UpperCaseCharacterFile = "NumericCharacters.nn";
                OCR1.UpperCaseCharacterMapFile = "NumericCharacters.map";
                string resultString = null;
                try
                {
                    resultString = Regex.Match(htmldoc, @"(?<url>/m4center/verifyImage"?statusID="d*&amp;bindID="d*&amp;serverID="d*)").Value;

                    resultString = "http://www.xx.com/" + resultString;
                    this.toolStripStatusLabel1.Text = resultString;
                    Image img = httpService.getStream(resultString, ref currentcookie, null);
                    pictureBox1.Image = img;
                                                      //  上 右  下
                    Rectangle cloneRect = new Rectangle(13, 4, 78, 27);        //
                    Bitmap bimg = (Bitmap)img;
                    bimg = bimg.Clone(cloneRect, img.PixelFormat);

                    pictureBox2.Image = bimg;

                   // int dgGrayValue = 150;
                    int dgGrayValue =vc.GetDgGrayValue(bimg);
                   vc.GrayScale(bimg);
                  
                  // vc.ClearNoise(dgGrayValue, bimg);

                   vc.ClearNoise(dgGrayValue, 1, bimg);

                //vc.BlackWhite(bimg, dgGrayValue);
                
                    
                   pictureBox3.Image = bimg;
                  
                 

                    
                    OCR1.BitmapImage = bimg;
                    OCR1.Process();
                    this.toolStripStatusLabel1.Text = OCR1.Text;
                    OCR1.Dispose();
                    return;
                }
                catch (ArgumentException ex)
                {
                    // Syntax error in the regular expression
                }

            //送值  

    string postdata = string.Format("service=direct/0/Login/form&sp=S0&Form0=serialField,passwordField,annexPwdField,

    submit&serialField={0}&passwordField={1}&annexPwdField={2}&submit=+%B5%C7%C2%BC+",

         mobile.Trim(), passwd, vcode);
      string htmldoc = httpService.postpage(homepageurl, postdata, ref currentcookie, proxy);
              
              


            }
        }

     

    posted @ 2008-08-07 11:31 小桐 阅读(158) 评论(0) 编辑

    2008年7月18日 #

    【ASP.NET】防止ASP.NET按钮多次提交的办法

    posted @ 2008-07-18 09:02 小桐 阅读(256) 评论(0) 编辑