登录注册
社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
主题 : [ZT]我和电脑亲密接触的心路历程
伍胥之 离线
级别: 军区司令员

显示用户信息 
楼主  发表于: 2010-03-19   

[ZT]我和电脑亲密接触的心路历程

管理提醒: 本帖被 卡拉 设置为精华(2010-06-13)
原题:[ZT]The Progamming career of a non-programmer [HGGXgN  
(卡拉注:可以译为“一个非程序员的编程生涯”)
[ 此帖被伍胥之在01-20-2011 21:41重新编辑 ]
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 a'=C/ s+  
wmbjL=f Ia  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : yDh(4w-~gk  
e]R`B}vO  
老五,I 服了U。 # hvLv  
AW3\>WC  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 0T-y]&uo  
v ).V&":  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean +c&n7  
nd)Z0%xo  
Dim regEX As New RegExp P&PP X#%  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 ]C.x8(2!f  
V/w:^@5+p  
Dim LastTitle0String As String, LastTitle0No As Long Exir?G}\  
Dim LastTitle1String As String, LastTitle1No As Long 9$[I~I#z  
Dim LastTitle2String As String, LastTitle2No As Long lR] z8 &  
Dim LastTitle3String As String, LastTitle3No As Long (bEX"U-  
Dim LastTitle4String As String, LastTitle4No As Long R  Fgy  
Dim LastTitle5String As String, LastTitle5No As Long 05et h  
Dim LastTabelString As String, LastTableNo As Long WmU5YZ(mAq  
Dim LastFigureString As String, LastFigureNo As Long a(}dF?M=  
UUb n7&  
Dim strSeperator As String ;M,u,KH)/  
|X&.+RI  
Sub ConvertWidth(fTEXT As String, rText As String) #sl_ BC9  
        Selection.Find.ClearFormatting Kjbt1n  
        Selection.Find.Replacement.ClearFormatting ShXk\"  
        Selection.Find.Wrap = wdFindContinue !O=?n<Ex"  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText %jaB>4.A:  
        DoEvents u{Jv6K,  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True ~3k& =3d]  
End Sub ,nn5LQ|l.j  
O^fg~g X  
Sub ClearDomain() OU)~ 02|\  
        With Selection.Find 52+;j[ ]/O  
            .ClearFormatting A)9[.fhx  
            .Replacement.ClearFormatting jwsl"zL  
            .Wrap = wdFindContinue 2kg<O%KA`c  
            Me.txtStatus.Text = "清除所有域代码" 6{h+(|.(  
            DoEvents \~V Z Y  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False +B^(,qKMN  
        End With / S  
End Sub !e~Yp0gX#  
-dX{ R_*  
Private Sub cmdCheck_Click() ~AbnksR  
    bContinue = True Ki#({~  
    Dim NoSeries1(1 To 16) As String }$DLa#\-  
    Dim NoSeries2(1 To 16) As String /Mk85C79  
    Dim NoSeries5(1 To 16) As String J6x# c`Y  
    Dim NoSeriesRM(1 To 16) As String (!F Uu  
    Dim paraTotal As Long, ParaText As String 8#%Sq=/+M  
    Dim ttString As String, ttNo As String =%u\x=u|  
     '[u=q -Lv  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long Cj~45)r  
sj;8[Xy's  
    Me.txtStatus.Visible = True \QF\Bh  
    Me.lbParaType.Visible = True Nda,G++5(  
    Me.cmdCheck.Enabled = False $Pa7B]A,Ae  
     f:$LVpXS-  
     ;8WgbR)ZLU  
     w)x`zVwO  
     :1%z;  
    Dim ParaType As String, rText As String !'uLV#YEZ  
     Wxjv=#3  
    Selection.WholeStory Cj).  
    Selection.NoProofing = True diXb8L7B;  
     !eb} jL  
    tm1 = Now Uh.XL=wY  
     $HjKELoJ<  
        ActiveWindow.View.Type = wdNormalView cG|)z<Z  
     -QH[gi{%`  
    NoSeries1(1) = "一" o m3$=  
    NoSeries1(2) = "二" =)Z!qjf1U  
    NoSeries1(3) = "三" (hywT)#+  
    NoSeries1(4) = "四" } sTo,F$  
    NoSeries1(5) = "五" p^^Ai  
    NoSeries1(6) = "六" eIVCg-l}  
    NoSeries1(7) = "七" OkSJob  
    NoSeries1(8) = "八" c&zZsJ"~  
    NoSeries1(9) = "九" NOOP_:(7H  
    NoSeries1(10) = "十" .Z=4,m>  
    NoSeries1(11) = "十一" cY/!z  
    NoSeries1(12) = "十二"  U)oH@/q  
    NoSeries1(13) = "十三" cG%ttfq\  
    NoSeries1(14) = "十四" iUuG}rqj  
    NoSeries1(15) = "十五" )c9]}:W&  
    NoSeries1(16) = "十六" e_C9VNP  
     ]W,K}~!   
    NoSeries2(1) = "㈠" g@WGd(o0)  
    NoSeries2(2) = "㈡" 0,)Ao8  
    NoSeries2(3) = "㈢" /<Nb/#8  
    NoSeries2(4) = "㈣" y/' ^r ?  
    NoSeries2(5) = "㈤" **\BP,]}  
    NoSeries2(6) = "㈥" a }6Fj&hj  
    NoSeries2(7) = "㈦" xw60l&s.\L  
    NoSeries2(8) = "㈧" L||_Jsu  
    NoSeries2(9) = "㈨" NwQexYm1_  
    NoSeries2(10) = "㈩" 8?qEv,W  
     (nP 6Xq  
    NoSeries5(1) = "①" ciKkazx.  
    NoSeries5(1) = "②" ~$g$31/  
    NoSeries5(3) = "③" V\axOz!  
    NoSeries5(4) = "④" u rGk_.f  
    NoSeries5(5) = "⑤" Zf~ [4Eeb  
    NoSeries5(6) = "⑥" 2u9^ )6/  
    NoSeries5(7) = "⑦" y w"Tw  
    NoSeries5(8) = "⑧" gcImk0NIY  
    NoSeries5(9) = "⑨" *SkUkqP9z  
    NoSeries5(10) = "⑩" w)bLdQ  
     aQax85  
     '& L;y  
    NoSeriesRM(1) = "I" Q;O\tl  
    NoSeriesRM(2) = "II" x<) %Gs}tb  
    NoSeriesRM(3) = "III" b XcDsP$.  
    NoSeriesRM(4) = "IV" s>sIji  
    NoSeriesRM(5) = "V" F?j;3@z[A  
    NoSeriesRM(6) = "VI" D;bQ"P-m47  
    NoSeriesRM(7) = "VII" Mwdh]I,#  
    NoSeriesRM(8) = "VIII" COS(pfC  
    NoSeriesRM(9) = "IX" ZdQm& ?  
    NoSeriesRM(10) = "X" y^; =+Z  
    NoSeriesRM(11) = "XI" XQEGMaZ  
    NoSeriesRM(12) = "XII" LS:3Dtq  
    NoSeriesRM(13) = "XIII" Ph&AP*Fq  
    NoSeriesRM(14) = "XIV" \=+ s3p5N  
    NoSeriesRM(15) = "XV" UA4Q9<>~  
    NoSeriesRM(16) = "XVI" z-G|EAON"/  
     x}TDb0V  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) OHnHSb'?\  
     A YHfe#!  
    If i = vbNo Then v4L#^Jw(^p  
        Exit Sub !Ju?REH   
    End If %gd=d0vm  
     .8is! TT  
    If Me.chkSuper.Value Then \Cx) ~bq<  
        Me.txtStatus.Text = "检查修改所有的上标格式" s:Us*i=H,  
     V43pZ]YZ>  
        CheckSuperScript $)| l#'r  
         Hfer\+RX  
    End If #8;|_RU  
     e_J_rx  
    If Me.chkStyle.Value Then 9kPwUAw  
        Me.txtStatus.Text = "设置样式,请稍候...." \GtZX!0  
        DoEvents :"ZH  
        CeateOrModifyStyle o{*8l#x8  
    End If 4!lbwqo  
     iKB8V<[\T  
     od>DSn3 T  
     @+",f]  
    ClearDomain m{={a5GD  
         U*8;ZXi  
     W5-p0,?[6  
     `n8) o%E9  
    If Me.chkLIST.Value Then  9H*$3  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" 6y)xMX  
     HtOo*\Ne  
        ConvertListToOrdinary dN>XZv  
    End If W38My j!  
     ,hK0F3?H>  
     8VvoPlo  
    Dim pType As String, trimpTEXT As String L K9vvQz  
    If Me.chkNum.Value = True Then 52B ye   
        Me.txtStatus.Text = "转换全角数字形式为半角" * [*#cMZ   
        ConvertWidth "1", "1" 5YIi O7@4  
        DoEvents +MC>?rr_u  
        ConvertWidth "2", "2" s-r$%9o5  
        DoEvents c L*D_)?8  
        ConvertWidth "3", "3" E0=-6j  
        DoEvents p7(xk6W  
        ConvertWidth "4", "4" EWN$ILdD  
        DoEvents e , zR  
        ConvertWidth "5", "5" <FH3 ePz  
        DoEvents >HnD'y*  
        ConvertWidth "6", "6" F#_7mC   
        DoEvents Uq)|]a&e  
        ConvertWidth "7", "7" IS7g{:}=p  
        DoEvents 84P^7[YX>  
        ConvertWidth "8", "8" q`09   
        DoEvents Kp"mV=RG2T  
        ConvertWidth "9", "9" !B?/6XRUx  
        DoEvents ~\hA-l36  
        ConvertWidth "0", "0" _1*EMq6  
        DoEvents  ,[ +  
        ConvertWidth "a", "a" %" $.2O@  
        DoEvents [(tgoh/  
        ConvertWidth "b", "b" AO;`k]0e  
        DoEvents iR4CY-  
        ConvertWidth "c", "c" Ze~ a+%Sb  
        DoEvents 9;Ezm<VQ  
        ConvertWidth "d", "d" 0 TSj]{[  
        DoEvents r&"}zyL  
        ConvertWidth "e", "e" xkl'Y*  
        DoEvents yhEU *\:  
        ConvertWidth "f", "f" }M f}gCEW  
        DoEvents Ig1cf9 :  
        ConvertWidth "g", "g" 9A\J*OU  
        DoEvents kgK7 T  
        ConvertWidth "h", "h" AW6]S*rh  
        DoEvents r6]r+!63"  
        ConvertWidth "i", "i" 3a#637%  
        DoEvents +8[h&  
        ConvertWidth "j", "j" >82Q!HaH  
        DoEvents ))!Z2 PfD  
        ConvertWidth "k", "k" /woa[7Xe  
        DoEvents \~xsBPX+x  
        ConvertWidth "l", "l" wpY%"x#-+=  
        DoEvents .CI]8O"3y  
        ConvertWidth "m", "m" uf`o\wqU  
        DoEvents N;D (_:^  
        ConvertWidth "n", "n" e~J% NU'&  
        ConvertWidth "o", "o" iAf, :g  
        ConvertWidth "p", "p" ezlp~z"_k  
        ConvertWidth "q", "q" IGql^,b  
        ConvertWidth "r", "r" 2Iz@lrO6  
        ConvertWidth "s", "s" N!;Y;<Ro_  
        ConvertWidth "t", "t" a#!Vi93  
        ConvertWidth "u", "u" }K;@$B6,@  
        ConvertWidth "v", "v" HeGGAjc  
        ConvertWidth "w", "w" >U"f1q*$  
        ConvertWidth "x", "x" ]*}*zXN/E  
        ConvertWidth "y", "y" -9-%_=6  
        ConvertWidth "z", "z" +n9&q#ah  
        ConvertWidth "A", "A" Pf)<6?T  
        ConvertWidth "B", "B"  AO;+XP=  
        ConvertWidth "C", "C" ,{itnKJC  
        ConvertWidth "D", "D" *%ZfE,bu8<  
        ConvertWidth "E", "E" O<f_-n@G|  
        ConvertWidth "F", "F" 7* ^\mycv  
        ConvertWidth "G", "G" 8nES=<rz  
        ConvertWidth "H", "H" =0,")aa!  
        ConvertWidth "I", "I" Rjo6Pd{d<  
        ConvertWidth "J", "J" e@p` -;<  
        ConvertWidth "K", "K" j3`:;'L  
        ConvertWidth "L", "L" ?`\<t$M  
        ConvertWidth "M", "M" - J!F((jt  
        ConvertWidth "N", "N" 4'+/R%jk"  
        ConvertWidth "O", "O" i1vBg}WHN  
        ConvertWidth "P", "P" 4_PMl6qo  
        ConvertWidth "Q", "Q" P>L-,R(7e  
        ConvertWidth "R", "R" (W3R3>;  
        ConvertWidth "S", "S" e kI1j%fO  
        ConvertWidth "T", "T" S7wZCQe  
        ConvertWidth "U", "U" "rc}mq  
        ConvertWidth "V", "V" r f;R"Uc  
        ConvertWidth "W", "W" 8[f]9P/i  
        ConvertWidth "X", "X" |Uy hH^  
        ConvertWidth "Y", "Y" 30FYq?  
        ConvertWidth "Z", "Z" @)VJ,Ql$Y  
        ConvertWidth "^l", "^p" `;*=2M<c  
        ConvertWidth "(", "(" ]S,I}NP  
        ConvertWidth ")", ")" CJjma=XH  
     h'UWf"d  
    End If oX3Q9)  
FlVGi3  
    With ActiveDocument |\?-k  
        Dim tbl As Table 3X0^xUA6  
        For Each tbl In .Tables aChY5R  
            tbl.Rows.Alignment = wdAlignRowCenter BAm H2"  
            tbl.Range.Font.NameFarEast = "楷体" ZH_ J+  
            tbl.Range.Font.NameAscii = "Times New Roman" }K"=sE  
            tbl.Range.Font.Size = 10.5 GOH@|2N  
        Next ,a$LT   
        Set tbl = Nothing U@D=.6\B  
    End With G7%Nwe~Y  
     XPUH\I=  
     ICq;jfML  
    With ActiveDocument 8 gOK?>'9  
         sPkT>q  
        For i = 1 To .TablesOfContents.Count o [ar.+[  
            .TablesOfContents(i).Delete I" sKlMD  
        Next !Si ZA"  
         4x8mJ4[H^  
         t]eB3)FX  
         QwOQS %  
        paraTotal = .Paragraphs.Count sXoBw.^Ir_  
        paraCounter = 1 bL *;N3#E  
         sdS<-! %u4  
        LastTitle0No = 0 xkUsZ*X8B  
        LastTitle1No = 0 Gpe h#Q4x  
        LastTitle2No = 0 7_#v_ A^  
        LastTitle3No = 0 n{Jvx >);  
        LastTitle4No = 0 X /5tZ@  
        LastTableNo = 0 "793R^Tz  
        LastFigureNo = 0 FjiLc=RXXz  
         ?Dd2k%o  
        Dim Sec As Long F1Egcx/$V  
         /;HytFP  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) 3h 0w8(k;  
        If Sec = 0 Then 'r1&zw(  
            Exit Sub v.r$]O  
        End If b)@D*plS&  
         $C#~c1w  
        k = 0 Y0|~]J(B  
        Do While (paraCounter < paraTotal) And bContinue *i5&x/ds  
            k = k + 1 ]o,)#/' $  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then seAkOIc  
                Exit Do h]@Xucc  
            End If L$@RSKYp  
            paraCounter = paraCounter + 1 nkN]z ^j  
            If k Mod 20 = 0 Then $Ae/NwIlc  
                Me.lbCounter.Caption = paraCounter UfcM2OmbK  
                DoEvents K<Yh'RvTD  
            End If \iowAo$  
        Loop !n uXK  
         2Y  6/,W  
         ^Po\:x%o  
        Do While (paraCounter < paraTotal) And bContinue (nBJ,v)  
             1%EY!14G+  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) !3yR?Xem}  
            ShapeHeight = 0 ,Hy s9I  
            ShapeWidth = 0 Qg9{<0{u  
           {j:{wW.  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth zb9 d{e   
             h3@mN\=h'  
            Select Case ParaType %*}JDx#@  
                Case "【】表格内容"  PJk Mn  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" d UjdQ  
                Case "章" 1`aFL5[0$  
                    LastTitle0No = LastTitle0No + 1 6mRvuJ%  
                    '新一章开始,复位其下属标题编号 >@ H:+0h-  
                    LastTitle1No = 0 cO(|>&tJ  
                    LastTitle2No = 0 ;HqK^[1\  
                    LastTitle3No = 0 rX;(48Y  
                    LastTitle4No = 0 f+<-Jc  
                     oVC~RKA*  
                    k = Val(ttNo) 1 f[!=p  
                    If k = 0 Then '非数字编号章节 ;=h^"et  
                        If ttNo <> NoSeries1(LastTitle0No) Then ?1PY]KNaK  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString NTAPx=!1*  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText iy$]9Wf6=@  
                        End If }b\d CGVr  
                    Else i9.5 2  
                        If Val(ttNo) <> LastTitle0No Then db#y]>^l  
                            rText = "第" & LastTitle0No & ttString LgUaX  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText @ULr)&9  
                        End If Grjm9tbX}  
                         CUxSmN2[  
                    End If 6"_FjS3Sl  
                     Ypv"u0  
                    '章段落设置 *vBcT.|,  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 zI7-xqZ  
                    .Paragraphs(paraCounter).Style = "QLNU章节" {_(;&\5  
                    .Paragraphs(paraCounter).Range.Select 7!MW`L/`  
                    Selection.EndKey unit:=wdLine IUu[`\b=  
                    tc = Replace(rText, vbCr, "") qQpR gzw  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False FpW{=4yk  
                Case "一级标题" %j^=  
                    LastTitle1No = LastTitle1No + 1 !(SaE'  
                    '新一级标题开始,复位其下属标题编号 g-*@I`k[  
                    LastTitle2No = 0 xZ,g6s2o  
                    LastTitle3No = 0 f0wQn09  
                    LastTitle4No = 0 B*D`KA  
                     sF|<m)Kt{W  
                    If ttNo <> NoSeries1(LastTitle1No) Then ^=R>rUCmv  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString  Nu9mK  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText KY|Q#i|pM  
                    End If [xI@)5Xk  
                   .4KXe"~E  
                     H,H'bd/  
                    '一级标题段落设置  格式:一、标题内容 ,HMB`vF  
                    .Paragraphs(paraCounter).Range.Text = rText ^lf;Lc  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" <7TpC@"/g  
                    .Paragraphs(paraCounter).Range.Select %f{kT<XHu  
                    Selection.EndKey unit:=wdLine R )?8A\<E  
                    tc = Replace(rText, vbCr, "") zyCl`r[}  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 6x[gg !;85  
                Case "二级标题" ^8V]g1]fiG  
                    LastTitle2No = LastTitle2No + 1 /1MO]u\  
                    '新二级标题开始,复位其下属标题编号 Q3oVl^q  
                    LastTitle3No = 0 vRT1tOQ$  
                    LastTitle4No = 0 o"UqI  
                     =gfLl1wY[  
                    If ttNo <> NoSeries1(LastTitle2No) Then _Dk;U*2  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString )}u.b-Nt.  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText \f{C2d/6j  
                    End If vNJ!i\bX  
                     7J>n;8{%?  
                    '二级标题段落设置 格式:(一)、标题内容 25YJH1x  
                    .Paragraphs(paraCounter).Range.Text = rText }GGFJ"  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" 1YM04*H  
                     SrHRpxy  
                    .Paragraphs(paraCounter).Range.Select 2!" N9Adt  
                    Selection.EndKey unit:=wdLine '>`bp25>  
                    tc = Replace(rText, vbCr, "") pazFVzT  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False 5jYRIvM[Q~  
                 -} Z  
                Case "三级标题" Wgx lQXi-B  
                    LastTitle3No = LastTitle3No + 1 .}CP Z3y  
                    '新三级标题开始,复位其下属标题编号 pOS.`rSK  
                    LastTitle4No = 0 xQJdt $]U@  
                     @ @# G.  
                    If Val(ttNo) <> LastTitle3No Then C@Wm+E~;8  
                            rText = LastTitle3No & ". " & ttString <[a9"G 7  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText Sm ,%>  
                         \" .3x PkE  
                    End If })"9TfC  
                    '三级标题段落设置 格式:1. 标题内容 C=hE@  
                    .Paragraphs(paraCounter).Range.Text = rText qvYw[D#.  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" \>I&UFfH)4  
                    .Paragraphs(paraCounter).Range.Select :5CwRg  
                    Selection.EndKey unit:=wdLine 'M G)noN5  
                    tc = Replace(rText, vbCr, "") 9B*SWWAj  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False /"/$1F%{  
                Case "四级标题" %W`pTvF  
                    LastTitle4No = LastTitle4No + 1 WVwNjQ2PM  
                     u4.-AY {  
                    If Val(ttNo) <> LastTitle4No Then U 2\{ ( y  
                            rText = "(" & LastTitle4No & "). " & ttString roRZE[ya  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText U<#i\4W  
                     pu`|HaQaE  
                    End If vx-u+/\  
                    '四级标题段落设置 格式:(1). 标题内容 Iqo4INGIi  
                    .Paragraphs(paraCounter).Range.Text = rText KUuwScb\  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" NrL%]dl3/  
                    .Paragraphs(paraCounter).Range.Select <'B`b  
                    Selection.EndKey unit:=wdLine o.k#|q  
                    tc = Replace(rText, vbCr, "") 7i/?+|  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False y l3iU:+V  
                 j4brDlo?@  
                Case "表格标题" QZ{:#iuig  
                    LastTableNo = LastTableNo + 1 =2`s Uw}  
                     (dO4ww@O  
                    If ttNo <> CStr(LastTableNo) Then L2K4nTA  
                            rText = "表" & LastTableNo & ". " & ttString 5IMh$!/uc  
                            ErrMsg.AddItem "表格编号错误:" & ParaText yil{RfBEr_  
                   ^M?uv{354  
                    End If B>~E6j7[Mp  
                     | dXS+R1  
                    '表格名称段落设置 格式:表1. 表格名称 YR[Ii?  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" jkPXkysm  
                    xe = Replace(rText, vbCr, "") [0IeEjL  
                    .Paragraphs(paraCounter).Range.Select q+LjWZ+O  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 IlS{>6  
                    Selection.Range.Text = xe Ui1K66{  
                    Selection.EndKey B V Pf8!-  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False m0\(a_0V  
                 TWxMexiW  
                Case "表格首行" ?rHc%H  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" Wxp^*._q3I  
                Case "图片标题" ^. Pn)J  
                    LastFigureNo = LastFigureNo + 1 m'429E]\S  
                     1 k  H  
                    If ttNo <> CStr(LastFigureNo) Then >xH3*0 Lp  
                            rText = "图" & LastFigureNo & ". " & ttString !^\|r<2M  
                            ErrMsg.AddItem "表格编号错误:" & ParaText ; G E0iSC  
                   KE(kR>OB]  
                    End If f Z\Ev%F  
                    '图片名称段落设置 格式:图1. 图名称 $'[( DwLS  
                    .Paragraphs(paraCounter).Range.Text = rText %7V?7BE  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" R$w=+%F  
                    .Paragraphs(paraCounter).Range.Select 7 H<_ wW  
                    Selection.EndKey unit:=wdLine w1s#8 :  
                    xe = Replace(rText, vbCr, "") AY *  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False t$UFR7XE  
                Case "正文" ew"[]eZ:ut  
                     '正文名称段落设置 u`   
                    .Paragraphs(paraCounter).Style = "QLNU正文" tpCEWdn5  
               Case "文献条目" =@ON>SmPs  
                    With .Paragraphs(paraCounter) [!aHP ?-  
                        '.Range.Select Vuz!~kLYIn  
                        'Selection.ClearFormatting 1uD}V7_y"  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” qLPI^g,  
                        .Style = "QLNU参考文献" wBmbn=>#S  
                    End With $]%k <|X  
               Case "图表注解" My5X%)T>P  
                    With .Paragraphs(paraCounter) *W i(%  
                        .Range.Font.NameFarEast = "楷体" JXvHsCd?  
                        .Range.Font.NameAscii = "Times New Roman" (1TYJ. Z  
                        .Range.Font.Size = 9 '小5号字 NGb`f-:jw  
                         r%xNfTa  
                        .Alignment = wdAlignParagraphCenter 9`vse>,-hg  
                        .LeftIndent = 0 i&?~QQP`  
                        .RightIndent = 0 Q>z0?%B  
                        .FirstLineIndent = 0 Y3-15:-  
                        .LineSpacing = 12 5Pv>`E2^  
                        .LineSpacingRule = wdLineSpaceExactly ~[,E i k  
                        .LineUnitAfter = 0 W;0_@!?mr}  
                        .LineUnitBefore = 0 12k)Ek9  
                        .OutlineLevel = wdOutlineLevelBodyText I:Z38xz-[  
                        .PageBreakBefore = False XvdK;  
                        .RightIndent = 0 \W$>EH  
                        .WordWrap = True n){\KIU/O  
                        .LineUnitAfter = 0.5 Zi|'lHr  
                         57r\s 8  
                    End With !X#=Pt[,  
                Case Else %Cm4a49FNi  
                    '不作处理 OO\UF6MCU  
            End Select A}oR,$D-  
             VoP(!.Ua>7  
            '含有inlineshape的段落处理 az19-QIcg  
            If ShapeHeight > 30 Then 'MC) %N,  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 [;tbNVZK  
            End If i2swots  
             "w|GIjE+  
            If (ShapeWidth + ShapeHeight) > 150 Then |NM.-@1  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" 0eb`9yM  
            End If 4$y|z{[< 5  
             [ 9$>N  
            '段落计数器递 tb_}w@:kU  
            paraCounter = paraCounter + 1 XFM6.ye  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter i>0bI^H  
            Me.txtStatus.Text = ParaText gE8>5_R|  
            DoEvents QMkLAZ  
        Loop vbA9 V<c&  
    End With 7Qq>?H -  
     mk[=3!J  
    msg = "" HK ;C*;vC%  
     8 A2k-X,  
    For i = 0 To Me.ErrMsg.ListCount - 1 =I*"vwc?  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) 1_<'S34  
    Next w+ _'BU1#  
      ^mG-O  
     ..n-&(c32  
     a0.)zgWr  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg LR`/pet  
    Me.cmdCheck.Enabled = True #>!!#e!*  
    Me.txtStatus.Visible = True 9fe~Q%x=u  
    Me.lbParaType.Visible = False N(F9vZOs  
     WlG/7$  
    bContinue = False B\N,%vsx#U  
End Sub @3b0hi4  
~Ilgc CF  
Sub CheckPara(ByRef ChKRange As Range, ParaType As String, ReplaceTEXT As String, TitleString As String, TitleNo As String, shpCounter As Long, MaxShpHeight As Long, TotalShpWidth As Long) dyu~T{  
    Dim pTEXT As String BDcl1f T  
     b}k`'++2,  
    pTEXT = ChKRange.Text T\2cAW5  
     7(wY4T  
    ParaType = "其它" k.0$~juu  
    TitleString = pTEXT Na [bCt  
    TitleNo = "N/A" m T\]  
     b/<n:*$   
    shpCounter = ChKRange.InlineShapes.Count sd#a_  
    If shpCounter <> 0 Then GKm)wOb(*S  
        MaxShpHeight = 0: TotalShpWidth = 0 vY.p~3q :)  
        For i = 1 To shpCounter m#8mU,7  
            k = ChKRange.InlineShapes(i).Height F5E KWP  
            l = ChKRange.InlineShapes(i).Width ;.m"y-  
            If k > MaxShpHeight Then <;_X=s`f,  
                MaxShpHeight = k _D z4 }:9  
            End If ~sk 4v:-  
            TotalShpWidth = TotalShpWidth + l `bivAL  
        Next y'Wz*}8pr  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then a*?? !  
            Exit Sub 79S=n,O  
        End If (8{h I  
    End If w' U;b  
     qzV:N8+,`  
    '空行 = "Dmfy7  
    If Len(pTEXT) <= 2 Then ~2 =B:;  
        Exit Sub zJtYy4jI)  
    End If ;2& (]1X  
     9I.="b=J)  
         !_zmm$bR  
    '是否为表格中的文字 i) :Q{[D  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then 6B|IbQ^  
        ParaType = "表格内容" Y$% Ze]~  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) 6``!DMDt/P  
        If k = 1 Then "y5c)l(Rg  
            ParaType = "表格首行" _.\p^ HM  
        End If P^.L0T5g  
        Exit Sub j >P>MdZtk  
    End If \}G/F!  
     h5B'w  
    '例外情况:脚注 5qUyOkI  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then ^bS&[+9E  
        ParaType = "脚注" Vx?a&{3]-  
        Exit Sub 3O$Q>.0w/  
    End If ;Wb W\,P'  
     N<O^%!buR  
    '例外情况:尾注 @YV-8;hO  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then }JvyjE  
        ParaType = "尾注" ]LNP"vi;  
        Exit Sub L# (o(4g2  
    End If &K|CH? D  
     -YRF^72+  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then s{hJ"lv:  
        ParaType = "页眉页脚" V"\t  
        Exit Sub VxaJ[s3PQ&  
    End If .pG_j]  
     Hz+edM UL  
     6(X(f;MEl  
    With regEX 'KM@$2tK^q  
        .Global = True B ljZ&wZW  
         7 2luTR Q  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" 3kQky  
        If regEX.Test(pTEXT) Then hb[K.`g  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") )I`B+c:  
            TitleString = regEX.Replace(pTEXT, "$3") XCQ =`3f  
            TitleNo = regEX.Replace(pTEXT, "$1") }0c'hWMZ}  
            ParaType = "章" NcFHvK  
            Exit Sub <C]s\ "o-`  
        End If eX $u  
         eV}Ow`~I5  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" \$GlB+ iCx  
        If regEX.Test(pTEXT) Then 265df Y9Pu  
            ParaType = "一级标题" '6[0NuB  
            regEX.Execute (pTEXT) }!5"EL(L80  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") L?<V KT  
            TitleString = regEX.Replace(pTEXT, "$3") /R@eOl}D  
            TitleNo = regEX.Replace(pTEXT, "$1") -*+7-9A I  
            Exit Sub D0tI  
        End If sIg{a( 1/  
         Q+Jzab  
        '全角或半角括号中的数字 E3sl"d;~  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" zjB8~ku#  
        If regEX.Test(pTEXT) Then +>37 'PD  
            ParaType = "二级标题" >`\~=ivrD  
            regEX.Execute (pTEXT) 1;g>?18@  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") YV 2T$#7u  
            TitleString = regEX.Replace(pTEXT, "$5") iv:[]o   
            TitleNo = regEX.Replace(pTEXT, "$2") #L[Atx  
            Exit Sub e3\*Np!rTQ  
        End If (t fADaJM  
         YzsHec  
        '阿拉伯数字  1. 2. JKXs/r;:  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" ,in`JM<o  
        If regEX.Test(pTEXT) Then YDdmT 7Ow  
            ParaType = "三级标题" #t po@pJsE  
            regEX.Execute (pTEXT) *|ubH?71%Y  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 ;S2^f;q~$  
            TitleString = regEX.Replace(pTEXT, "$3") !V#(g./W  
            TitleNo = regEX.Replace(pTEXT, "$1") %A:<rO85o  
            Exit Sub Y|>y]x  
        End If MhWmY[  
         eBBqF!WDb  
        '全角或半角括号中的阿拉伯数字 k G4v>  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" 7WKb| /#;  
        If regEX.Test(pTEXT) Then UC\CCDV#^  
            ParaType = "四级标题" 0x[v)k9"0  
            regEX.Execute (pTEXT) ]Dd=q6  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") \:%e 6M  
            TitleString = regEX.Replace(pTEXT, "$5") wHAoO#`wn5  
            TitleNo = regEX.Replace(pTEXT, "$2") FE" ksi 9  
            Exit Sub Z2j M.[hq  
        End If |^8l8u  
         5fDVJE "9"  
        '表格名称 ?%{v1(  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" 349W0>eOT  
        If regEX.Test(pTEXT) Then ?tV$o,11  
            ParaType = "表格标题" bK<'J=#1  
            regEX.Execute (pTEXT) ;| )&aTdH  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) 3g^_Fq'  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) z3[ J>  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) H Y\-sl^  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 yM= % a3  
            Exit Sub rAM{<  
        End If oj;Rh!O  
         5@F1E8T  
        '图片名称 _cQTQ  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" MXq+aS{  
        If regEX.Test(pTEXT) Then cxp>4[gH  
            ParaType = "图片标题" ( O "Wa  
            regEX.Execute (pTEXT) e4j:IK>  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") )zf &`T  
            TitleString = regEX.Replace(pTEXT, "$3") Myg &H(~  
            TitleNo = regEX.Replace(pTEXT, "$1") d[6[3B  
            Exit Sub pa`"f&JO  
        End If )Gh"(]-<  
         }L'BzSU@G  
        '参考文献 4D0=3Vy  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 *[9FPya  
        If regEX.Test(pTEXT) Then ~bf-uHx  
            ParaType = "文献条目" tF+m/}PM^  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") 9l+'V0?`  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") )C|[j@MD  
            Exit Sub ~$Xz~#~  
        End If GNgPf"}K  
         Akb#1Ww4  
        prfx = Left(pTEXT, 2) XFUlV;ek  
        If prfx = "注:" Or prfx = "注:" Then xf_NHKZ)  
            ParaType = "图表注解" 8rx?mX,}  
            Exit Sub T;-&3  
        End If Q~MV0<{  
         m+?$cyA>v  
         Z Ql ja  
        ParaType = "正文" [>U'P1@ql  
         [z5pqd-  
    End With Mxc0=I'a  
End Sub /2Y t\=S=  
&O/;YGEAB  
Sub ConvertListToOrdinary() wi|'pKG  
    Dim st As Paragraph Cd?a C  
    With ActiveDocument [u`v'*0d  
        For i = .Paragraphs.Count To 1 Step -1 G0Eqo$W)S  
            Set st = .Paragraphs(i) 96fbMP+7R  
            lst = st.Range.ListFormat.ListString ?h2!Z{[0b  
            If lst <> "" Then fb0i6RC~&  
                st.Range.ListFormat.RemoveNumbers ?suxoP%  
                st.Range.InsertBefore lst & " " ?>92OuG%W?  
            End If ^7G@CBic"  
        Next @A GM=v  
    End With k2(B{x}L  
    Set st = Nothing 8 ' M4 3n  
End Sub BGh1hyJ8d  
,qz$6oxh\  
Private Sub UserForm_Activate() u!S^lV@  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" iO4Yfj#?  
    Me.lbTotal.Font.Bold = True | :7O  
    Me.txtStatus.Visible = False R7+3$F5B  
    Me.cmdCheck.Enabled = True \fj* .[,  
Bv k 8b  
End Sub 7_xQa$U[  
_a|-_p  
7O',X Y  
Sub CheckSuperScript() ^`XQ>-wWue  
    Selection.Find.ClearFormatting =]X_wA;%  
    Selection.Find.Replacement.ClearFormatting JPJ&k( P  
    With Selection.Find omisfu_~E  
        .Text = "[【\[[〖](*)[】\]〗]]" zy^t95/m  
        .Replacement.Text = "[\1]" 4^/MDM@  
        .Replacement.Font.Superscript = True P|`pJYe  
        '.Replacement.Font.Color = wdColorBlue j *B,b4  
        .Forward = True cv})^E$x  
        .Wrap = wdFindContinue C@3a/<6m  
        .FORMAT = True ,UNCBnv1  
        .MatchCase = False HRS^91aK  
        .MatchWholeWord = False v0+mh]  
        .MatchByte = False /@h)IuW  
        .MatchAllWordForms = False |=&[sC  
        .MatchSoundsLike = False b*i_'k}*<g  
        .MatchWildcards = True 5 Sm9m*/  
    End With o/I'Qi$v-  
    Selection.Find.Execute Replace:=wdReplaceAll >r J9^rS  
End Sub >NwS0j$j@  
[Q9#44@{S;  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) !6{; z/Hy  
    bContinue = False lgWEB3f .  
    Set regEX = Nothing U.g7'`Z<  
End Sub W@Et  
' 5`w5swbc  
Sub CeateOrModifyStyle() xF.n=z  
' E}LYO:  
' jrJ!A(<)  
Dim stl As Style BC.~wNz6  
     XRA RgWj  
    Options.Pagination = False 6AD#x7drj  
     )(V|d$n  
    On Error Resume Next #29m <f_n  
    For Each stl In ActiveDocument.Styles | >X5@  
        stl.Delete rWsUWA T*  
    Next 2NMS '"8  
    On Error GoTo 0 =]i[gs)B  
     eLPWoQXt  
    Set stl = Nothing @#m@ .   
     *|n-Hr  
    DoEvents ]@LeyT'cY  
    On Error Resume Next \JjZ _R  
     WD.td  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph .nh }f}j  
     'b1k0 9'  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph c~ x  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph nsW #  
     jNV)=s^ed[  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph moz*=a  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph Vcjmj  
     <vS3 [(  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph Ns ezUk8'  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph .xG3`YH  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph '&v.h#<  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph "Bn8WT2?  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph ul@G{N{L   
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph L{PH8Xl_  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph Y]MB/\gj  
     gkkT<hEV=  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph s9^r[l@W0U  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph uknX py))  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph X$mCn#8m  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph Lh`B5  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph /<zBjvr%%  
     V&e 9?5@  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph 1j4tR#L  
    On Error GoTo 0 Q1hHK'3w  
    DoEvents fib#)KE  
     qr dA4S  
    'BaseStyle p SMF1Oy  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False vNo(`~]c  
    With ActiveDocument.Styles("BaseStyle").Font *DBm"{q%&k  
        .NameFarEast = "宋体" A<$~Q;r2a  
        .NameAscii = "Times New Roman" 'Z ;8-1M?O  
        .NameOther = "宋体" r2!\Ts5v  
        .Size = 10.5 dZMf5=tb  
        .Bold = wdUndefined X 0\O3l* j  
        .Italic = wdUndefined hJ|zX  
        .Subscript = wdUndefined :xwyE(w  
        .Subscript = wdUndefined $?`-} wY  
         T)N_~f|  
        .Underline = wdUnderlineNone 0o-. m  
        .UnderlineColor = wdColorAutomatic VDy2 !0  
        .StrikeThrough = False =emcs%  
        .DoubleStrikeThrough = False oJ4OVfknD  
         K9 G1>*  
        .Outline = False QT`|"RI%  
        .Emboss = False Vd%%lv{v  
        .Shadow = False MuI>ZoNF  
        .Hidden = False WK$d<:"  
        .SmallCaps = False =Pj+^+UM  
        .AllCaps = False nev@ykP6  
        .Color = wdColorAutomatic )(CZK&<  
        .Engrave = False I!-"SuBy4J  
        .Scaling = 100 % )o'9  
        .Kerning = 1 =o_Ua^mr  
        .Animation = wdAnimationNone #M/^n0E  
        .DisableCharacterSpaceGrid = False `_;sT8  
        .EmphasisMark = wdEmphasisMarkNone )O}q{4,}  
    End With ^ \"@r%|  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat k{Ad(S4J&  
        .LeftIndent = 0 1 >}x9D  
        .RightIndent = 0 -2DvKW$  
        .SpaceBefore = 0 NAg9EaWja{  
        .SpaceBeforeAuto = False r~2 >_LK  
        .SpaceAfter = 0 I j w{g%  
        .SpaceAfterAuto = False u([|^~H]  
         (Mzv"FN]  
        .LineSpacingRule = wdLineSpaceSingle yq7gBkS  
        .Alignment = wdAlignParagraphJustify Hs6?4cgj  
         LZR x>q^  
        .WidowControl = False ZsnFuk#W  
        .KeepWithNext = False B :X,vE  
        .KeepTogether = False gPT<%F  
        .PageBreakBefore = False M0) q  
        .NoLineNumber = False M_BG :P5  
         B r`a;y T  
        .FirstLineIndent = CentimetersToPoints(0) 'GyO  
        .OutlineLevel = wdOutlineLevelBodyText *Rx&#9  
        .CharacterUnitLeftIndent = 0 Xg4i H5!E  
        .CharacterUnitRightIndent = 0 2oBT _o%/J  
        .CharacterUnitFirstLineIndent = 0 oeKVcVP|'&  
        .LineUnitBefore = 0 nXRT%[o &  
        .LineUnitAfter = 0 O-uno{Fd*  
        .AutoAdjustRightIndent = True ~6nY5  
        .DisableLineHeightGrid = True !vfb gK  
         arWP]%E0W  
        .FarEastLineBreakControl = True .dwy+BzS  
        .WordWrap = True sV']p#HK0  
        .Hyphenation = False bfV&z+Rv-5  
         f\+E&p.  
        .HangingPunctuation = True \-`,fat  
        .HalfWidthPunctuationOnTopOfLine = True 1U?,}w   
        .AddSpaceBetweenFarEastAndAlpha = True KA#P_e{<@  
        .AddSpaceBetweenFarEastAndDigit = True a*kvU"]  
        .BaseLineAlignment = wdBaselineAlignBaseline `W=3_  
    End With ! )x2   
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False \img   
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll D,hZVKa  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese R"2wop  
    ActiveDocument.Styles("BaseStyle").NoProofing = False _A/q bm  
     Z~S%|{&Br  
    '一级标题题样式 VY1&YR}Y  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") _/c1b>kcso  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" on^m2pQ *p  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False |$:y8H'J  
    With ActiveDocument.Styles("QLNU一级标题").Font ; <NK  
        .NameFarEast = "黑体" ?zP/i(1y  
        .NameAscii = "Arial Black" &2P=74\=  
        .NameOther = "黑体" .D8|_B  
        .Name = "黑体" :MPfCiAv  
        .Size = 16              '三号 'X%5i2  
        .Bold = True 4 AWL::FU5  
        .Italic = wdUndefined /XVjcD66c  
        .Subscript = wdUndefined |d)*,O4s  
        .Superscript = wdUndefined zhdS6Gk+  
    End With ;n\$'"K&;  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat ye^*Z>|  
         gfr+`4H>v  
        .LeftIndent = CentimetersToPoints(0) chC= $(5 t  
        .RightIndent = CentimetersToPoints(0) tEam6xNf,  
        .FirstLineIndent = CentimetersToPoints(0) T9'd?nw9  
         gJFx#s0?6.  
        .LineSpacingRule = wdLineSpaceSingle E3 vYVuw  
        .Alignment = wdAlignParagraphCenter P Y&(ObC  
         7{ JIHY+  
        .WidowControl = True ;udV"7C  
        .KeepWithNext = True UE\Z] t!  
        .KeepTogether = True *Ei(BrL/;  
        .OutlineLevel = wdOutlineLevelBodyText w\}@+w3b~  
         !E@4^A80\W  
        .LineUnitBefore = 0.5 d8C44q+ds  
        .LineUnitAfter = 0.5 I%<LLkQ  
    End With `qs[a}%'>"  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False , RKl  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll iwVsq_[]L  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese G^%FP!'D?  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True })F.Tjf*  
    DoEvents ASU.VY  
     =F<bAZ  
    '二级 ]. E/s(p  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") b/soU2?^  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" AY x*Ngn  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False B?gFFU61  
    With ActiveDocument.Styles("QLNU二级标题").Font *}h#'+  
        .NameFarEast = "黑体" [:BD9V  
        .NameAscii = "Arial Narrow" jY1^I26E  
        .NameOther = "黑体" '>:c:Tewy  
        .Name = "黑体" $o%:ST4  
        .Size = 15        '小三号 k[Ue}L|  
        .Bold = False ks|c'XQb  
        .Outline = False pf8M0,AY  
        .Italic = wdUndefined nl)l:A+q8  
        .Subscript = wdUndefined VFI\2n`  
        .Superscript = wdUndefined P P-U.  
    End With k}&7!G@T  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat nRHxbE}::  
        .LeftIndent = CentimetersToPoints(0) )45#lE3TH  
        .RightIndent = CentimetersToPoints(0) q]2t3aY%  
        .FirstLineIndent = CentimetersToPoints(0) $a#-d;  
         xg;I::hE7X  
        .LineSpacingRule = wdLineSpaceSingle 2L(\-]%f  
        .Alignment = wdAlignParagraphLeft T0e- X  
         3YO %$  
        .WidowControl = True mDdL7I  
        .KeepWithNext = True dTrz7ayH  
        .KeepTogether = True [k<.BCE  
        .PageBreakBefore = False 4K(oOxc9.  
        .OutlineLevel = wdOutlineLevelBodyText Kl/n>qEt  
         `i5\(cdl  
        .LineUnitBefore = 0.5 1@:BUE;jZ  
        .LineUnitAfter = 0.5 j;yKL-ycB  
         UP .4#1I  
    End With $<da<}b  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False \=&F\EV  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll q|zips,  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese I83 _x|$FZ  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True !)4'[5t"U  
    DoEvents uc>]-4  
     = 9!|%j  
    '三级标题样式 $n= w  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") /g)(  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" <ebC]2j8cK  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False w.o>G2u  
    With ActiveDocument.Styles("QLNU三级标题").Font ,CxIA^  
        .NameFarEast = "宋体" zL!}YR@&u"  
        .NameAscii = "Times New Roman" 'ju'O#A9  
        .NameOther = "黑体" S Rb-eDk'  
        .Name = "黑体" {oftZ Xwf  
        .Size = 14               '四号 wLa8&E[  
        .Bold = False PJF1+I.%c#  
        .Outline = False #V$h?`qhwr  
        .Italic = wdUndefined K41Gn  
        .Subscript = wdUndefined "$#<+H>O  
        .Superscript = wdUndefined d=C&b]  
    End With ty\F~]Oo  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat 8|) $;.  
        .LeftIndent = CentimetersToPoints(0) z]/!4+  
        .RightIndent = CentimetersToPoints(0) BVzMgn ;  
        .FirstLineIndent = CentimetersToPoints(0) Whl^~$+f  
         34F;mr"yp  
        .LineSpacingRule = wdLineSpaceSingle _Kwp8_kTr  
        .Alignment = wdAlignParagraphLeft SVn $!t  
         !nDiAjj  
        .WidowControl = True hX)PdRk#  
        .KeepWithNext = True ,<s /K  
        .KeepTogether = True b*)F7{/Z  
        .PageBreakBefore = False N;` jz(r  
        .OutlineLevel = wdOutlineLevelBodyText :|a$[g5  
         9<Ks2W.N  
        .CharacterUnitLeftIndent = 0 2DNB?,uP,'  
        .CharacterUnitRightIndent = 0 S;^'Ek"Z.  
        .CharacterUnitFirstLineIndent = 2 M(U<H;Csk  
         Ws/\ lD  
        .LineUnitBefore = 0.5 LsxRK5   
        .LineUnitAfter = 0 6an= C_Mb`  
    End With !~Ptnr`;  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False po@Agyg5  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll (91 YHhk{  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese eq(1'?7]`G  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True  rrP_7D  
    DoEvents hw({>cH\  
     F*-+5nJ&@  
    '四级标题样式 3}2;*:p4Y  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") {YK7';_E*  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" Y[0mTL4IO  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False 25Uw\rKeO  
    With ActiveDocument.Styles("QLNU四级标题").Font 0.kC|  
        .NameFarEast = "宋体" HChlkj'7w0  
        .NameAscii = "Times New Roman" 1|dXbyUd  
        .NameOther = "宋体" 4TRF-f  
        .Name = "宋体" yu}yON  
        .Size = 12               '小四号 | Di7 ,$c  
        .Bold = True ^{Fo,7  
        .Outline = False kB9@ &t +  
        .Italic = wdUndefined : "^/?Sd  
        .Subscript = wdUndefined `-w,6  
        .Superscript = wdUndefined ] ^53Qbrv  
    End With t{-*@8Ke  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat 8o i{%C&-  
         0uu)0:  
        .LeftIndent = CentimetersToPoints(0) xzXNcQ  
        .RightIndent = CentimetersToPoints(0) WBWIHv{j  
        .FirstLineIndent = CentimetersToPoints(0) ntQW+!s;P  
         4Mr Uo9L$s  
        .LineSpacingRule = wdLineSpaceSingle Bn{i+8I  
        .Alignment = wdAlignParagraphLeft #.{ddY{  
         m.68ctaa  
        .WidowControl = True &!F"3bD0  
        .KeepWithNext = True _BoYy JQH  
        .KeepTogether = True aTwBRm  
        .PageBreakBefore = False ]E $bK  
        .OutlineLevel = wdOutlineLevelBodyText /'a\$G"%6  
         *?pnTQs^  
        .CharacterUnitLeftIndent = 0 7.kgQ"?&  
        .CharacterUnitRightIndent = 0 FQ"ED:lks  
        .CharacterUnitFirstLineIndent = 2 ue1g(;  
         N u3B02D*  
        .LineUnitBefore = 0 ye-[l7  
        .LineUnitAfter = 0 Y|6gg  
         K5Hz A1^  
    End With qVW3oj<2  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False 9@8'*a{`m  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll ;}H*|"z;!  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese .*B@1q   
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True > dJ[1s]  
    DoEvents }5AA}=  
     N~ajrv}kd  
    '正文校式 u7S C_3R  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") @E4ya$A)F  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" /@64xrvIl=  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False G 2`hEX%  
    With ActiveDocument.Styles("QLNU正文").Font c_T+T/O  
         =I0J1Ob  
        .NameFarEast = "宋体" mu2|%$C;$  
        .NameAscii = "Times New Roman" 'cqY-64CJZ  
        .NameOther = "宋体" M(1cf(<+  
        .Name = "宋体" XS$#\UQ  
         o@L2c3?c5  
        .Size = 12               '小四号 AC*SmQ\>!  
         ; +1ooeU  
        .Bold = wdUndefined D*/fY=gK  
        .Italic = wdUndefined 7+;.Q  
        .Subscript = wdUndefined I9e3-2THfj  
        .Superscript = wdUndefined qpjiQ,\:b  
         "R\D:Olb#  
        .Outline = False Y;"jsK{$  
        .Emboss = False C; ?<WtH  
        .Shadow = False 2UG>(R:  
        .Hidden = False 8 ,W*)Q  
         d;nk>6<|  
        .DisableCharacterSpaceGrid = True cTQ._|M  
    End With jx} 7/  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat :F_>`{  
         _*cKu>,O  
        .LeftIndent = CentimetersToPoints(0) 0oe2X1.%  
        .RightIndent = CentimetersToPoints(0) " {X0&  
        .FirstLineIndent = CentimetersToPoints(0) WfHa  
         |kY  
        .LineSpacingRule = wdLineSpaceExactly %]1te*_  
        .LineSpacing = 20 1)3'Y2N*  
        .Alignment = wdAlignParagraphLeft ; xL8W  
         vVZ+u4y  
        .WidowControl = False $Wu|4]o>9  
        .KeepWithNext = False ?{P$|:ha  
        .KeepTogether = False .X5A7 m  
        .PageBreakBefore = False A;k#8&;  
        .Hyphenation = False LLL;SNY  
         {e5-  
        .OutlineLevel = wdOutlineLevelBodyText u2OrH3E4E3  
         X%5 `B2Wu  
       }USOWsLSt  
        .CharacterUnitLeftIndent = 0 y@SI)&D  
        .CharacterUnitRightIndent = 0 MDZPp;\)  
        .CharacterUnitFirstLineIndent = 2 H43d[@h  
         i91k0q*di  
        .LineUnitBefore = 0 -p"}K~lt:  
        .LineUnitAfter = 0 /9,y+"0SQz  
        .SpaceBefore = 0 >)HKruSW.  
        .SpaceAfter = 0 a'g&1N0Rc  
         .Fx3WryF  
        .DisableLineHeightGrid = True 2UIZ<#|D>s  
    End With oIniy{  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False m/ q`k  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll E#Ol{6  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese  @{Dfro  
    ActiveDocument.Styles("QLNU正文").NoProofing = True 4+89 M  
    DoEvents Tb!FO"o  
     \E'z+0  
    '图片段落样式 *zMt/d*<&  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") ;oO_5[,M  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" $rJgBN   
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False >S8 n 8U  
    With ActiveDocument.Styles("QLNU图片段落").Font BSL+Gjj~}  
        .Size = 12               '小四号 %f?Zg44  
        .Italic = wdUndefined CM6! 1 7  
        .Subscript = wdUndefined `(/xj{"Fr}  
        .Superscript = wdUndefined T oT('  
    End With RXo6y(^  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat wD /jN:  
         9e4`N"#,lI  
        .LeftIndent = CentimetersToPoints(0) #ro$$I;  
        .RightIndent = CentimetersToPoints(0) gtIEpYN+  
        .FirstLineIndent = CentimetersToPoints(0) >[&ser  
         ,4=mlte"  
        .LineSpacingRule = wdLineSpaceSingle <rvM)EJv|  
        .Alignment = wdAlignParagraphCenter IgRi(q^b-  
        .KeepWithNext = True [dXa,  
        .OutlineLevel = wdOutlineLevelBodyText q VavP6I  
         4|4 *rhwp  
        .CharacterUnitLeftIndent = 0 x|gYxZ  
        .CharacterUnitRightIndent = 0 &?TXsxf1Zh  
        .CharacterUnitFirstLineIndent = 0 ,g4T>7`&U%  
         1h#/8 X  
        .LineUnitBefore = 0 Dk&(QajL  
        .LineUnitAfter = 0 EnmMFxu<  
    End With l;$FR4}d  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False '-mzt~zGOY  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll A]1dR\p  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese l](!2a=[  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True 1<cx!=w'  
    DoEvents O0s,)8+z5D  
     I Bko"|e@  
     b|*+!v:I>T  
    '第X章 5A^8?,F@  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") F'"-aB ~  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" / U!xh3  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False -zWNQp$  
    With ActiveDocument.Styles("QLNU章节标题").Font hUX8j9N>  
        .NameFarEast = "黑体" KEdqA/F>  
        .NameAscii = "Arial Black" C ^c <s  
        .NameOther = "Arial Black"  vY"I  
        .Name = "黑体" _pzYmQ  
        .Size = 16 \qTp#sF  
        .Bold = True +_25E.>ml  
        .UnderlineColor = wdColorAutomatic ^*+j7A.n  
        .Outline = False 0~P]Fw^w  
        .Italic = wdUndefined {c~w Ms#  
        .Subscript = wdUndefined mwMu1#  
        .Superscript = wdUndefined  FLZ9Rg  
        .Scaling = 100 H?FiZy*[Y  
        .DisableCharacterSpaceGrid = True n/`!G?kvI  
    End With #K*p1}rf  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat Gm &jlN  
        .LineSpacingRule = wdLineSpaceSingle @ 'c(q=K;  
        .Alignment = wdAlignParagraphCenter cB_9@0r[S  
        .WidowControl = True r;{ggwY&J  
        .KeepWithNext = True  ^6b5}{>  
        .KeepTogether = True [XH,~JZJj  
        .PageBreakBefore = True ko|M 2\  
        .OutlineLevel = wdOutlineLevelBodyText WYP\J1sy  
         "a(e2H2&T4  
        .LeftIndent = CentimetersToPoints(0) H/k]u)Gtv  
        .RightIndent = CentimetersToPoints(0) s>1\bio*I  
        .FirstLineIndent = CentimetersToPoints(0) N<<O(r  
         BS?i!Bm7  
        .CharacterUnitLeftIndent = 0 stMxlG"d  
        .CharacterUnitRightIndent = 0 0:-z+`RHE  
        .CharacterUnitFirstLineIndent = 0 cP4C<UG  
         Ov4=!o=  
        .LineUnitBefore = 1 'n^?DPvD  
        .LineUnitAfter = 0.5 e&E7_  
         {NcJL< ;tS  
        .AutoAdjustRightIndent = False LK !sk5/  
        .DisableLineHeightGrid = True  @' %XdH  
        .FarEastLineBreakControl = True i[MBO`FF  
        .WordWrap = True ]HB1JJiS~  
    End With 1]Cb i7  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False OH@gwC  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll .Wr7*J[V.  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese Q&lb]U+\u  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True 6)W8HX~+  
    DoEvents W7(5z  
     kw} E0uY  
    '表格标题 I Wm@pfC+g  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") LpI4R  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" .JTRFk{W  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False ,izp^,`  
    With ActiveDocument.Styles("QLNU表格标题").Font c}|} o^  
        .NameFarEast = "楷体" ^uphpABpD  
        .NameAscii = "Arial" (/Jy9 =~  
        .Name = "楷体" LE~vSm^#  
        .Size = 10.5 D=Nt 0y  
        .Bold = True V|F/ynJfA  
        .Underline = wdUnderlineNone !I\eIV>0b  
        .Italic = wdUndefined P)XR9&o':  
        .Subscript = wdUndefined T XT<6(  
        .Superscript = wdUndefined tOte [~,  
        .Color = wdColorAutomatic LN5BU,4=  
    End With VKfpk^rU  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat UtC<TBr  
         #f;6Ia>#  
        .LineSpacingRule = wdLineSpaceSingle TaaCl#g$?  
        .Alignment = wdAlignParagraphCenter r _FI5f  
        .KeepWithNext = True cvf?ID84  
        .KeepTogether = True 1f 1D^|  
        .OutlineLevel = wdOutlineLevelBodyText Jr%F#/  
         6xY6EC  
        .LeftIndent = CentimetersToPoints(0) OoRg:"9{#  
        .RightIndent = CentimetersToPoints(0) *_m ER`  
        .FirstLineIndent = CentimetersToPoints(0) c<~DYe;;  
         &;W K=#  
        .CharacterUnitLeftIndent = 0 eu8a<  
        .CharacterUnitRightIndent = 0 |`kk mq  
        .CharacterUnitFirstLineIndent = 0 VC_F Cz  
         I,05'edCQ  
        .LineUnitBefore = 1 k {vd1,HZ  
        .LineUnitAfter = 0 O*lIZ,!n  
         wDSwcNS  
    End With 7xY&7 x(v  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False 68w~I7 D>  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll DZLEx{cm  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese 9i lJ  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True ,aq>9\ pi  
    DoEvents lqgR4  !  
+?*.Emzl@  
    '表格首行 ;8 *"c  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") x^i97dZS^"  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False $P)-o?eer  
    With ActiveDocument.Styles("QLNU表格首行").Font Jt0/*^'  
        .NameFarEast = "楷体" XMykUr e|  
        .NameAscii = "Times New Roman" M?;YpaSe+  
        .Name = "楷体" W5e >Z&&  
        .Size = 9 ;Jb% 2?+=!  
        .Bold = True ^|vP").aQm  
        .Underline = wdUnderlineNone h,-i\8gq  
        .Italic = wdUndefined m( dW["8D  
        .Subscript = wdUndefined :8hXkQ  
        .Superscript = wdUndefined p&0 G  
    End With ux*G*QZ  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat H#WqO<<v  
        .LineSpacingRule = wdLineSpaceSingle !6sR|c"~j  
        .Alignment = wdAlignParagraphCenter aIr"!. 4  
         6' \M:'<0e  
        .LeftIndent = CentimetersToPoints(0) Os]. IL$  
        .RightIndent = CentimetersToPoints(0) k2_y84;D  
        .FirstLineIndent = CentimetersToPoints(0) uZ@qlq 8  
         ;% i-:<ac  
         [} d39  
        .CharacterUnitLeftIndent = -0.5 a+CJJ3 T-  
        .CharacterUnitRightIndent = -0.5 EP<{3f y  
        .CharacterUnitFirstLineIndent = -0.5 p2fzbBt  
         {zc*yV\  
        .LineUnitBefore = 0 LaZ @4/z!  
        .LineUnitAfter = 0 <Wj /A/  
        .SpaceBefore = 0 |Q@(<'8=  
        .SpaceAfter = 0 #6mw CA|  
         Im};wJ&  
    End With O3d  Qno  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False C OL"/3r  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll jq_4x[  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese DY/%|w*L  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True nB[B FVkU  
    DoEvents 'PW/0k  
&B1!,joH~  
    '表格内容 4PR&67|AH_  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") 7L6^IK  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False w@YPG{"j  
    With ActiveDocument.Styles("QLNU表格内容").Font Fo5UG2E&  
        .NameFarEast = "楷体" "4T36b  
        .NameAscii = "Times New Roman" kmlO}0  
        .Name = "楷体" F9(jx#J~t  
        .Size = 9 33 a}M;vx  
        .Bold = False [H9<JdUZ  
        .Underline = wdUnderlineNone @at*E%T[  
        .Italic = wdUndefined  BPKrRex  
        .Subscript = wdUndefined Xk:3w,  
        .Superscript = wdUndefined 7Up-a^k^`  
    End With kp!(e0n  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat \ f VX<L  
        .LineSpacingRule = wdLineSpaceSingle Y t_t>  
        .Alignment = wdAlignParagraphCenter ep`8LQf  
         6/p9ag]  
        .LeftIndent = CentimetersToPoints(0) M\Wg|gpy  
        .RightIndent = CentimetersToPoints(0) KV'3\`v@LY  
        .FirstLineIndent = CentimetersToPoints(0) mq(K_  
         9"/=D9o9  
        .CharacterUnitLeftIndent = -0.5 G=CP17&h6  
        .CharacterUnitRightIndent = -0.5 ^vzXT>t-M  
        .CharacterUnitFirstLineIndent = -0.5 %kH,Rl\g  
        .LineUnitBefore = 0 %m/5! "  
        .LineUnitAfter = 0 jaVx9FR +  
        .SpaceBefore = 0 zW hzU|=8  
        .SpaceAfter = 0 o)CW7Y#?,  
    End With Cv&>:k0V  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False t-iQaobF  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll 1Mx2%  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese .)1u0 (?  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True a^X% (@Sg  
    DoEvents }N,v&  B  
*IF ~ab2  
    '图片标题 y 1Wb/ d  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ' %rn-|)  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" 7C_U:x  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False Gg:W%&#  
    With ActiveDocument.Styles("QLNU图片标题").Font rJtk4hOF  
        .NameFarEast = "楷体" -- IewW  
        .NameAscii = "Times New Roman" vDR> Q&/K  
        .Name = "楷体" =%u=ma;  
        .Size = 10.5 RUut7[r  
        .Bold = True LW/> %  
        .Underline = wdUnderlineNone sebuuL.l0<  
        .Italic = wdUndefined LJ9#!r@H  
        .Subscript = wdUndefined B[f:T%  
        .Superscript = wdUndefined P8 w56  
        .Outline = False *13-)yfd  
        .Shadow = False *$JS}Pax  
        .Color = wdColorAutomatic 8u"C7} N_  
    End With Fa </  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat UIZ9" Da  
        .LineSpacingRule = wdLineSpaceSingle v0;dk(  
        .Alignment = wdAlignParagraphCenter N ;n55N  
         RaymSh  
        .KeepWithNext = wdUndefined I8IH\5k  
        .KeepTogether = True  gF;C% }  
        .OutlineLevel = wdOutlineLevelBodyText ;7JyL|2  
         j.V7`x  
        .LeftIndent = CentimetersToPoints(0) s%m?Yh3  
        .RightIndent = CentimetersToPoints(0) qjf4G[]!  
        .FirstLineIndent = CentimetersToPoints(0) eSW}H_3  
         X)c0 y3hk  
        .CharacterUnitLeftIndent = 0 })q8{Qj!  
        .CharacterUnitRightIndent = 0 $%ztP Ta  
        .CharacterUnitFirstLineIndent = 0 cA]PZ*]{BN  
         BHNJH  
        .LineUnitBefore = 0 n n">   
        .LineUnitAfter = 0 b `cH.v  
    End With p}K+4z   
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False w2`JFxQ^x  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll NjdDImz.;s  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese _?bF;R  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True P`_Q-vu  
    DoEvents  ZLf(m35  
k>E/)9%ep2  
    '目录项 qV``' _=<  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") b=L|GV@$  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" ?8<R)hJa<  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False SpEu>9g&  
    With ActiveDocument.Styles("QLNU目录项").Font q'Y)Y(d  
        .NameFarEast = "黑体" Z%SDN"+'g  
        .NameAscii = "Times New Roman" q^QLNKOH"  
        .NameOther = "Times New Roman" 9/R=_y-  
        .Name = "黑体" O31.\ZR2  
        .Size = 10.5 M{Vi4ehOq  
        .Bold = False 0f5)]  
        .Italic = wdUndefined =}e{U&CX  
        .Underline = wdUnderlineNone 9IacZ  
        .Color = wdColorAutomatic Jx Rn)D  
        .Superscript = wdUndefined ]*{tno  
        .Subscript = wdUndefined 0nR_I^  
    End With jT-tsQ .,  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat \@^` G  
         8lCo\T5"  
        .LineSpacingRule = wdLineSpaceSingle wqX!7rD/g)  
        .Alignment = wdAlignParagraphLeft <){J|O  
         =jU#0FAO  
        .WidowControl = False 1=~##/at  
        .KeepWithNext = False KJV],6d  
        .KeepTogether = False /q"8sj/  
        .PageBreakBefore = False OPv~1h<[  
        .NoLineNumber = False Rp}Sm,w(  
        .OutlineLevel = wdOutlineLevelBodyText E-?JHJloU  
         :<1PCX2  
        .LeftIndent = CentimetersToPoints(0) _Pl5?5eZj  
        .RightIndent = CentimetersToPoints(0) nv: VX{%  
        .FirstLineIndent = CentimetersToPoints(0) xp\6,Jyh  
         xR&Le/3+  
        .CharacterUnitLeftIndent = 0 =feVT2*  
        .CharacterUnitRightIndent = 0 Dk g-y9  
        .CharacterUnitFirstLineIndent = 0 "`[4(j  
         Z[\nyj  
        .LineUnitBefore = 0 Z22#lF\N  
        .LineUnitAfter = 0 !4$o*{9Lx:  
    End With _M- PF$  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False /BM{tH  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll d#I; e  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot S9qc34\^=  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese yoBR'$-=  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True S;nlC  
    DoEvents VlxHZ  
     NnY+=#j7 L  
    '参考文献 <sjz_::V8R  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") UGA` `;f  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" ;4`%?6%  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False #!4 HSBf  
    With ActiveDocument.Styles("QLNU参考文献").Font bHz H0v]:  
        .NameFarEast = "宋体" d! _8+~  
        .NameAscii = "Times New Roman" Wr4Ob*2iD  
        .NameOther = "Times New Roman" -e*(+  
        .Name = "Times New Roman" &>}f\ch/  
        .Size = 12 /86PqKU(P  
        .Bold = False IBh?vh  
        .Italic = wdUndefined E/>kvs%  
        .Subscript = wdUndefined ksAu=X:  
        .Superscript = wdUndefined B+ZhQW  
        .Underline = wdUnderlineNone ] ; B`'Ia  
        .UnderlineColor = wdColorAutomatic "?"+1S  
        .Color = wdColorAutomatic #[~f 6s9D  
        .Engrave = False #ePtfRzJ  
    End With j[fY.>yt&  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat KFM)*Icg\8  
         ]Lm?3$u$  
        .LineSpacingRule = wdLineSpaceExactly j3/K;U/SGJ  
        .LineSpacing = 16 % +M,FgW  
        .Alignment = wdAlignParagraphLeft !XF:.|  
        .WidowControl = False KU.F4I8}q  
        .KeepWithNext = False A$::|2~  
        .KeepTogether = False e:|Bn>*  
        .PageBreakBefore = False nYnv.5  
        .OutlineLevel = wdOutlineLevelBodyText >WY\P4)k  
         FyllVrK  
        .LeftIndent = CentimetersToPoints(0) (;++a9GK  
        .RightIndent = CentimetersToPoints(0) 1?".R]<{2T  
        .FirstLineIndent = CentimetersToPoints(0) 73+)> "x>  
         uCf _O~  
        .CharacterUnitLeftIndent = 0 qtS+01o  
        .CharacterUnitRightIndent = 0 oUN;u*  
        .CharacterUnitFirstLineIndent = -2 QU)AgF[  
         |vh{Kb@  
        .LineUnitBefore = 0 [-3x*?Ju  
        .LineUnitAfter = 0 N8m3 Wy  
        .SpaceBefore = 0 )zo:Bo .<  
        .SpaceAfter = 0 s { 0c .M  
         IvB)d}p  
    End With Pbakw81!~  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False 'L veCi_  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll p8E6_%Rw  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS 0NyM|  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True )'$'?Fn  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese 9Pdo l!  
    DoEvents ]_:j+6i  
wf,w%n  
    ' nSbcq>3  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") %I%OHs  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" a]?o"{{+  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False #]s&[O43  
    With ActiveDocument.Styles("QLNU论文题目").Font $HFimU,V=0  
        .NameFarEast = "黑体" T<u QhPMw  
        .NameAscii = "Arial Black" EN@<z;  
        .NameOther = "Arial Black" -Dr)+Y  
        .Name = "Arial Black" j\uPOn8k  
        .Size = 16 "jP{m; p  
        .Bold = False 2zbV9Bhq  
        .Italic = wdUndefined ;PWx#v+vwF  
        .Superscript = wdUndefined ?.69nN  
        .Subscript = wdUndefined @kB^~Wf  
        .Underline = wdUnderlineNone .J2tm2]"EZ  
        .UnderlineColor = wdColorAutomatic PO]c&}/  
        .Color = wdColorAutomatic %OT?2-d  
HP[M"u  
    End With *|3G"B{w6  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat WC wM+D  
        .LineSpacingRule = wdLineSpaceSingle 7[YulC-pH  
        .Alignment = wdAlignParagraphCenter |@pn=wW  
        .WidowControl = True - D^v:aC  
        .KeepWithNext = True RJ$x{$r[  
        .KeepTogether = True sN@=Ri?\  
        .PageBreakBefore = True K,f- w2!  
        .NoLineNumber = False B3@\Ua)  
        .OutlineLevel = wdOutlineLevelBodyText SfGl*2  
         ac/<N%  
        .LeftIndent = CentimetersToPoints(0) C+aL8_(R  
        .RightIndent = CentimetersToPoints(0) rjwP#  
        .FirstLineIndent = CentimetersToPoints(0) ^ZDpG2(zk  
         7DW HADr  
        .CharacterUnitLeftIndent = 0 4inM d![  
        .CharacterUnitRightIndent = 0 QfI@=Kbg%#  
        .CharacterUnitFirstLineIndent = 0 t ;bU#THM  
         x^6b$>1  
        .LineUnitBefore = 1 Rj])c^ZA'*  
        .LineUnitAfter = 1 G`FY[^:  
         ^wb$wtL('  
        .BaseLineAlignment = wdBaselineAlignAuto f9?f!k  
    End With je5GZFQw  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False lQf38u||  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll dC 8,  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS #CNK [y  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True crr#tad.  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese U oG+du[  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True #;s5=aH  
    DoEvents C{FE*@U.  
     I{uwT5QT-  
    '中文摘要 }+GIrEDI d  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") {3|h^h_R  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" _K<Z  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False *ZV=4[#bT  
    With ActiveDocument.Styles("QLNU中文摘要").Font h0zv @, u  
        .NameFarEast = "宋体" YC =:W  
        .NameAscii = "Times New Roman" Tu}?Q. pKo  
        .NameOther = "Times New Roman" unAu8k^  
        .Name = "Times New Roman" }/.GB5Ej  
        .Size = 12 i-`J+8|d  
        .Bold = wdUndefined OEXa^M4x   
        .Superscript = wdUndefined sx@ %3j  
        .Subscript = wdUndefined p!H'JNG  
        .Italic = wdUndefined rHD_sC*  
        .Underline = wdUnderlineNone *.A{p ;JC(  
        .UnderlineColor = wdColorAutomatic +y9WJ   
        .Color = wdColorAutomatic A%% Vyz  
    End With ]}>uvl^l  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat DkeFDzQ5  
        .LineSpacingRule = wdLineSpaceExactly VK^m]??s_  
        .LineSpacing = 20 W$Op/  
        .Alignment = wdAlignParagraphLeft t}f,j^`e  
         K]C@seF`  
        .WidowControl = False }"6 PM)s  
        .KeepWithNext = False ;hJz'&UWQ  
        .KeepTogether = True h7o?z!  
        .PageBreakBefore = False ^;.&=3N,+  
        .NoLineNumber = False LAU\.d  
        .OutlineLevel = wdOutlineLevelBodyText )|E 617g  
         ]5:0.$5  
        .LeftIndent = CentimetersToPoints(0) "4/J4'-   
        .RightIndent = CentimetersToPoints(0) )o_Pnq9_  
        .FirstLineIndent = CentimetersToPoints(0) Tu_4kUCR!f  
         b' fcWp0  
        .CharacterUnitLeftIndent = 0 s=83a{#K  
        .CharacterUnitRightIndent = 0 uN9J?j*ir  
        .CharacterUnitFirstLineIndent = 2 uu;1B. [b  
        .LineUnitBefore = 0 e>!=)6[*  
        .LineUnitAfter = 0 :a'[ 4w  
         2#`9OLu8X  
    End With nn{PhyK  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False a0 8Wt  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll R}HNi(%"  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS 3 cF4xUIZ  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True w)xfP^M#  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese \'-E[xNcWI  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True T6I$7F  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete noQS bI @  
    DoEvents XywsjeI4  
     2HF_kYZ  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ja+PVf  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" }MW+K&sIh  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False whh#J (  
    With ActiveDocument.Styles("QLNU英文标题").Font >A ?,[p`<  
        .NameFarEast = "黑体" D;+sStZK3  
        .NameAscii = "Arial Narrow" G?5Vj_n  
        .Name = "Arial Narrow" zT ; +akq  
        .Size = 16 y5`$Aa4~  
        .Bold = True -~WDv[ [  
        .Bold = wdUndefined lka Wwjv_D  
        .Superscript = wdUndefined 3u~V&jl  
        .Subscript = wdUndefined o'Kl+gw4  
        .Italic = wdUndefined 3&KRG}5  
         $`6Q\=*R/  
        .Underline = wdUnderlineNone HAdDr!/`  
        .UnderlineColor = wdColorAutomatic 9UE)4*5  
        .StrikeThrough = False u/(~ew I  
        .DoubleStrikeThrough = False J @^Ypq  
    End With v)%0`%nSR  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat 6QG"~>v7'(  
        .LineSpacingRule = wdLineSpaceSingle R 9b0D>Lxt  
        .Alignment = wdAlignParagraphCenter 4O:y ?D/e  
        .WidowControl = True *8I &|)x  
        .KeepWithNext = False {&0u:  
        .KeepTogether = False 2dJP|T9H  
        .PageBreakBefore = False ] Wx?k7T  
        .NoLineNumber = False =.ReM_.  
        .FirstLineIndent = CentimetersToPoints(0) 0vrx5E!  
        .OutlineLevel = wdOutlineLevelBodyText g& ?{^4t]  
         ],l\HHQ  
        .LeftIndent = CentimetersToPoints(0) eR>|1s%^  
        .RightIndent = CentimetersToPoints(0) QpiA~ 4  
        .FirstLineIndent = CentimetersToPoints(0) TWSx9ii!M:  
         vhKHiw9L  
        .CharacterUnitLeftIndent = 0 (svKq(X  
        .CharacterUnitRightIndent = 0 5L J0V  
        .CharacterUnitFirstLineIndent = 0 /SD (g@G,  
         -X_dY>>s  
        .LineUnitBefore = 1 Rh#QPYPq  
        .LineUnitAfter = 1 '))K' u  
         ;U]Ym48  
    End With )h`8</#m{  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False b;I zK'  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll :'X:cL  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS hK 1 H'~c  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True ^~J F7u  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese Tga%-xr+  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True kB-]SD#  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete j kV9$W0  
    DoEvents KK, t!a  
_o'a|=Osx>  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") vX<^x2~9(  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" fHiS'R  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False .njk^,N  
    With ActiveDocument.Styles("QLNU英文摘要").Font F-%Hw  
        .NameFarEast = "宋体" bO+]1nZ.  
        .NameAscii = "Arial" *IWWD\U  
        .NameOther = "Arial" %abc -q  
        .Name = "Arial" yz^4 TqJ  
        .Size = 12 >.&E-1[ +:  
        .Bold = wdUndefined XS=f>e1<W  
        .Italic = wdUndefined HJjx!7h  
        .Superscript = wdUndefined /|>?!;   
        .Subscript = wdUndefined c)4L3W-x=  
    End With sny$[!)  
     IH3Nkpsg  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat yy M`J7]J  
         3#N`n |UgC  
        .LineSpacingRule = wdLineSpaceExactly - `{T?  
        .LineSpacing = 20 UOn:@Qn  
         A\ r}V-  
        .Alignment = wdAlignParagraphJustify c;.jo?RR2  
         n<e1=L  
        .WidowControl = False =2e{T J/  
        .KeepWithNext = False ,C0D|q4/!.  
        .KeepTogether = False _ @OS,A  
        .PageBreakBefore = False fxknfgbg  
        .NoLineNumber = False Hd57Iw  
         Hb3t|<z  
        .OutlineLevel = wdOutlineLevelBodyText -1}&\=8M  
         <HH\VG\H6  
        .LeftIndent = CentimetersToPoints(0) )LTX.Kg  
        .RightIndent = CentimetersToPoints(0) /Csk"IfuO  
        .FirstLineIndent = CentimetersToPoints(0) r-$VPW  
         9Xh1i`.D  
        .CharacterUnitLeftIndent = 0 =B0AG9Fz  
        .CharacterUnitRightIndent = 0 qFN`pe,  
        .CharacterUnitFirstLineIndent = 2 RwUosh\W  
         3@wio[  
        .LineUnitBefore = 0 lx :.9>  
        .LineUnitAfter = 1 ([dJ'OPx$  
         z>z9xG'  
    End With BKKW3PT  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False gubw&W  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll ;L[N.ZY!  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS rUh2[z8:  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False TGHyBPJb  
    DoEvents ^X ~S}MX  
00/ RBs 5  
    Options.Pagination = True 2hsRYh  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." cy0j>-z  
    DoEvents $V,ZH* g  
    ActiveDocument.Repaginate Q!70D)O$  
mv>-X J+  
End Sub zx7A}rs3oX  
~- eB  
"x AIK  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: Rk#p zD  
jHk.]4&0  
用VBA控制WORD自己修订学生毕业文的格式。 Yf_/c*t\5  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? gts09{"}Y  
2=,d.1E3d  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
97楼  发表于: 2015-09-06   
下一次练手,也是VB,不过只是用CCD测量济钢中板车间轧机出来的板的宽度。 W&HxMi  
duc\/S'  
这一次,我自己做了一个二进制的尺子,用CCD在一个盒子里读尺。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
96楼  发表于: 2015-09-06   

>M^:x-mib  
XB a^ A  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
95楼  发表于: 2015-09-06   

从这里里分离出来的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 \+&)9 !K  
第6车皮 dj}|EW4  

nZM]EWn  
qRz /$|.  
第9车皮 j%}9tM6[  
qpzyl~g:C  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
93楼  发表于: 2015-09-06   

一共这么多文件。 u|k_OUTq  
X&Sah}0V&  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 I!Mkss xc  
KTwP.!<v  
Main2.bas SLp nVD:'1  
0uIBaW3s  
Attribute VB_Name = "SubMain" s(e1kk}"  
Option Explicit |?hsMN  
irP*:QM  
'采集文件与临时文件 4n1 g@A=y  
Public Const TmpFile As String = "d:\30-0600.dat" `b%^_@Fb  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 F Yb]9MX  
N8=-=]0G  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long L+eK)Q  
Public hBCFile As Long  '记录采集参数的文件 'I:_}q  
Public Const TmpBMP As String = "d:\1.bmp" 87m`K Str7  
Public hTmpFile As Long Hs{x Z:  
mx#)iHY  
#%L_wJB-  
'采集窗口参数常量 j?g#8L;W\w  
Public Const FrameH As Long = 280& hegH^IN M  
Public Const FrameW As Long = 768& T_#8i^;D  
Public Const pFrameSize As Long = FrameW * FrameH IRTWmT jT  
B?Rkz  
'标志区范围,用于识别车辆 7xR:\FBa^  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X 8iM:ok  
Public Const mkW As Integer = 28  '识别标志立柱宽度 n xR\tBv  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) nc1?c1s,f  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) .~TI%&#  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 F&B E+b/#  
'车缝检测位置常数 jVHS1Vsei  
Public Const sSize As Long = 32& W|(<z'S  
Public Const sPos As Long = 310& y=jZ8+M   
Public Const sPosL As Long = 200& }*O8]lG  
Public Const sPosR As Long = 500& *SlWA)9 Y  
'车缝检测框位置 O^ 5C  
Public Slice(1 To sSize, 1 To FrameH) As Byte =k ; X}/  
Public SliceL(1 To sSize, 1 To FrameH) As Byte (cV1Pmn  
Public SliceR(1 To sSize, 1 To FrameH) As Byte |;^$IZSsz  
Public avSL As Integer, avSLR As Integer, avSLL As Integer u9u'5xAO  
7Jd&9&O U  
[nlq(DGJhp  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 \ Co Z+  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 t< RPDQ>  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 )-Z*/uF^  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long e@S\7Ks  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte A PrrUo  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 :nfy=*M#  
k ~F ,n  
J)|I/8!#  
UUa@7|x  
'一次连续采集的帧数 [xQ.qZ[h&  
Public tFrames As Long 2izBB,# "  
}lCQ+s!  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 pbIVj3-lY  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 <q Q@OUI   
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize 5 +j):_  
B~J63Os/  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte ;e9&WEG_\  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte V|*3*W  
Public pWorkSpace(1 To FrameW * FrameH) As Long 9l:[jsk<d  
Public Const pBufferSize As Long = FrameW * FrameH * 2 XQmg^x[,A  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 *P&lAyt6  
ZwiXeD+4  
Public hBoard As Long   '采集卡标识 J3B+WD]  
Public mBufferAddr As Long  '缓存地址 2=%]Ax"R  
Public BufferSize As Long  '缓存大小(字节) }o\} qu*  
Public iCurrentCard As Long `B,R+==G:  
Public CapStatus As Long !89hO4 0r  
Public iFrames As Long Ekh)l0 l  
Public currentBr As Byte, currentContr As Byte fzAkUv o  
madbl0[y.  
Public hMEM As Long, mStatus As Long TI0=nfj  
Public Const hMemSize As Long = pFrameSize * 4 91DevizXx  
Public hMemWork As Long {xTh!ih2 -  
Public Const hMemWorkSize As Long = pFrameSize * 5 x}=Q)|)]  
} :gi<#-:G  
WP= uHg  
B}K<L\S  
'串口接收轨道衡数据 Og?GYe^_  
Public WeightFromCom As String <7zz" R  
Public bReceiveComplete As Boolean ,]y_[]636  
Y{Lxo])e  
/zr)9LQY0  
Public Type GrayBMPHeader e AaS }g 0  
  Tag As Integer 0}|%pmY`  
  FileLength As Long    '文件大小 NLUO{'uUW  
  Reserve1 As Long '(ZT }N  
  DataOffset As Long    '图像数据偏移量  =WEDQ\ c  
  BMPHeaderSize As Long  '文件头长 m9 ]Ge]  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… JNP6qM  
                        'the following sizes are possible: 0%,?z`UY  
                        '28h - windows 3.1x, 95, nt, … 5KIhk`S  
                        '0ch - os/2 1.x Hw6 2'%  
                        'f0h - os/2 2.x  ?sR(  
l )'*jZ  
  ImageWidth As Long           '图像宽(像素数) z sR5"Vi=  
  ImageHeight As Long          '图像高(像素数) -Rr !J37  
  PlaneNumber As Integer  '图像层数 ^upd:q  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap c>Ri6=C  
                                        '4 - 16 color bitmap Ll VbY=EX7  
                                        '8 - 256 color bitmap S@y?E}  
                                        '16 - 16bit (high color) bitmap rV?@Kgxi  
                                        '24 - 24bit (true color) bitmap Vs Z7 n~e  
                                        '32 - 32bit (true color) bitmap -.L )\  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) 6$zd2N?  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) Vn\jUEC  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) :)kHXOb.  
                                    '3 - bitfields (also identified by bi_bitfields) 2Uu!_n}tNF  
  IMAGESIZE As Long  '图像数据字节数 g1]bI$;  
  hResolution  As Long  '水平分辩率  像素数/米 }wI +e Mr  
  vResolution  As Long  '垂直分辩率 2OqEyXh  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 v yt|x5  
  ImportantColors As Long txQr|\4k  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 B@ ms Gb C  
End Type .CNwuN\  
x5rLGt  
W1ndb:  
vj]h[=:  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader H^vA}F`  
Public sRECT As RECT }([}A`@  
bQ&%6'ck  
&5[+p{2  
Public conn As ADODB.Connection %c%`< y<~L  
Public rsTrain As ADODB.Recordset g`tV^b")  
Public rsOperater As ADODB.Recordset pRUQMPn (  
Public rsGoods As ADODB.Recordset 8 @RJ>  
Public rsGood2 As ADODB.Recordset Md8<IFi9]Q  
Public rsSender As ADODB.Recordset SwaPRAF  
Public rsReceover As ADODB.Recordset Y]5MM:mI  
Public rsTrainTMP As ADODB.Recordset A]drNFE  
1s(i\&B  
q!~DCv df  
'打开采集卡 T[c-E*{hR  
'设置参数 d<WNN1f  
'设置为实时单帧采集到缓存方式 8U7d d[  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 zz(EH<>  
tCPK_Wws?Z  
,}9 tJY@ E  
Sub Main() 4]- 7S l,  
  Dim i As Integer, status As Long _j*I\  
     3\C+g{}e  
   InitBMPinfo hF`<I.z}  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 {+3g*s/HI  
    BMPHeader.Tag = &H4D42 AS[j)x!  
    BMPHeader.ImageWidth = FrameW T2 1?~jS  
    BMPHeader.ImageHeight = FrameH [/l&:)5W>  
    BMPHeader.BMPHeaderSize = &H28 \+0l#t$  
    BMPHeader.PlaneNumber = 1 p _3xW{I  
    BMPHeader.bpp = 8 ,) aUp4*  
    BMPHeader.Compression = 0 8!@}\6qM  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 nE2?3S>  
    BMPHeader.vResolution = &H1274 d>Nh<PqH6  
    BMPHeader.ColorsinBMP = 256 <(yAat$H  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP A>HCX 4i  
    BMPHeader.DataOffset = Len(BMPHeader) x"cB8bZ!$  
    For i = 0 To 255 `O;4 b#!g  
      BMPHeader.Pallate(i) = RGB(i, i, i) }z|9F(I   
    Next i 5g$>J)Ry  
    BMPHeader.IMAGESIZE = FrameH * FrameW hTcU %Nc  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE nHp(,'R/  
={;+0Wjb8  
t~44ub6GN`  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) ?IoA;GBg  
     W5~!)Ec  
    BMP1.ImageWidth = FrameW ;d_<6|*M  
    BMP1.ImageHeight = FrameH * 2 kLpq{GUv:  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight 6s ~!B{Q  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE dJdOh#8+Xi  
nV`W0r(f'  
  '确定标志位置,为pilarX, pilarY确定初始值 X\i;j!;d  
   PilarW = mkW {z;4t&5  
   PilarH = mkH  '此两项为固定值 K8_\U0 K  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) c++q5bg@)  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 <s$T7Zk  
   8#o2qQ2+  
   b):aqRwP  
  '连续采集记录文件 Sq:J'%/z  
  ' 建立一个缓冲区为页对齐方式的文件 1?.NJ<)F  
  If Dir(TmpFile) <> "" Then Kltqe5  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ tF./Jx]_  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) u`Y~r<?P(  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 B7'yc`)H  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 ELG9ts+5Uj  
  Else  obPG]*3  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ y0/FyQs  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) ]!a?Lr  
  End If p{ ``a=  
  If hFile = 0 Then ]&`=p{Z  
    MsgBox TmpFile & ": File Open Error", vbOKOnly U;"J8  
    Exit Sub _>?.MUPB  
  End If ASr@5uFR  
  '采集参数记录文件 s<aG  
hBCFile = FreeFile() n.R "n9v`  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile .j=mT[N,I  
    !$!%era`  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 PAxR?2m{  
If hMEM = 0 Then ]<c\+9  
    fStatus = GetLastError b*{UO  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ ?5,I`9  
     & "请向技术人员报告该错误代码。", vbOKOnly :Gx5vo  
    CloseHandle hFile tDfHO1pS  
    Exit Sub >J_ P[v  
End If )UVekkq>Q  
XD_!5+\H1  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) |YfJ#Agm+  
If hMemWork = 0 Then !@ y/{~Gu  
    fStatus = GetLastError /W LZyT2  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ 3TS:H1n  
     & "请向技术人员报告该错误代码。", vbOKOnly F2EX7Crj  
     '释放已成功分配的内存  acQHqR  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) ,ei=w,O  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) \C$cbI=;+  
     HS\'{4P  
    CloseHandle hFile eV }H  
    Exit Sub vL^ +X`.td  
End If "pH;0[r]  
Dk8@x8  
' Test writing h(4\k?C5  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& U}5]Vm$]  
     ~ t N/  
   '初始化采集卡参数 rls{~ZRl  
   iCurrentCard = -1 dxtG3  
   hBoard = okOpenBoard(iCurrentCard) {y%@1q%"  
   Debug.Print hBoard XV`8Vb  
   If hBoard = 0 Then up0=Y o@  
      ExitGrabber "}H2dn2n  
      End yF|+oTp  
   End If 8s-X H  
   okGetBufferSize hBoard, mBufferAddr, BufferSize "ctZ"*  
   If mBufferAddr = 0 Then OK47Q{.gh  
     MsgBox "缓存不存在!" 4T v=sP  
     ExitGrabber J |UFuD  
   End If (NJ.\m  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) *& R|0I{>  
   }m7$,'C%P  
   ^D9 w=f#a  
   currentBr = 128: currentContr = 128 DnW/q  
   '设置视频输入参数 0[N1SY\lj  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 {k[dg0UV  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input eX!yIqAR  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 _9Rj,  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 9- 24c  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 H\9ePo\b~  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 q(1hY"S"}b  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) GZY:EHuz[  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) lLglF4  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) mQ:YHtHE.F  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 {eQijW2Z3  
   BlcsDB =ka  
   '设置采集参数 ,]das  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 }1lZW"{e[  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 'm-5  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度  =Mxu,A  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 l m(mY$B*_  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 9jNh%raG|  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 }qZ^S9  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 xh!T,| IR  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 JLjs`oq h  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 aH8]$e8_,\  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 C',uY7}<  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 -9o7a_Z  
   >RpMw!NT  
   AI9922}*  
   okCloseBoard hBoard K, *-Y)v2W  
   Sleep 50 YN KvR  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 \$F#bIjC  
   Cn5;h(r  
   '设置数据传送方式 *O)i)["  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 y-gXGvZ  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 _u6MSRX[6$  
   /WK1(B:  
   sRECT.Right = -1   '用于获得当前设置值 I }8b]  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) RUVrX`u*(  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom 6VJS l%X  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 Neii$  
   sRECT.Left = 0 W{j(=<|<  
   sRECT.Top = 0 ]k+(0 qxG  
   sRECT.Right = sRECT.Left + FrameW KDA2 H>  
   sRECT.Bottom = sRECT.Top + FrameH * 2 ]&P 4QT)f  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) Hc8!cATQk  
   {/>uc,8O  
   sRECT.Right = -1   '检查新设置值 2:e7'}\D.  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) %,aSD#l`f  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom EV-# E  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) *m`x/_y+  
   'SrDc'?  
   If TESTSignal = False Then %P(2uesd  
      'ExitGrabber Dqd2e&a\  
   End If HYY+Fv5  
   8=?U7aw  
   %5@> nC?`[  
   t"e%'dFv  
   '设为实时采集状态 (*V!V3E3#  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) kr!>rqN5  
   Ag8lI+ h  
   (<}?}{YX0  
   '单帧采集 !:tr\L {  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 4-$kc wA  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) _?$w8 S%  
   okCaptureTo hBoard, BUFFER, 0, 1 'single D-x*RRkpp  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 hPCSAo!|  
   '   Sleep 20 v!3Oq.ot  
   'Loop M &H,`gm  
   okGetCaptureStatus hBoard, True 8+32hg@^F  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize ej=}OH4  
   '写入768*576测试图象 `G:hC 5B  
   ArrayToBMP TmpBMP G{Uqp'=G  
   Wc;N;K52   
   '打开数据库 h%v qt~0  
   Set conn = New ADODB.Connection @3FQMs4  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ $*Wa A`(U  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ 1|:;~9n<t  
      "; Mode=Read|Write" gi)C5 J4  
   conn.Open fGe"1MfU  
   +~M.Vs X  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) 7| j rk  
   frmRecord.Visible = True %kgT=<E'  
   frmQuery.Visible = True C 20VSwd  
   Load frmReceiveFromComm r@wE?hK  
   m#RMd,'X  
   '调试参数 TB84}  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then `49!di[  
     SignalBox.Visible = True ((^v sKT  
   End If |8 GLS4.]t  
   If InStr(UCase(Command()), "/COMM") > 0 Then ^BW8zu@=O  
     frmReceiveFromComm.Visible = True 1(% 6X*z  
   End If #cb9g    
ejbtdU8N<  
End Sub 8H8Q  
r/HG{XH`  
Sub ExitGrabber() Kq+vAp).  
  '关闭数据库 ?`6Mfpvj96  
  '关闭采集卡 ;<xPzf  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) Vf=,@7  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) 'GO *6$/  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT)  u bZ`Y$  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) J{L d)Q,^  
  okStopCapture hBoard Fx)><+-  
  okCloseBoard hBoard Ay%]l| Gm  
  CloseHandle hFile ) M(//jX  
  Close #hBCFile P\z1fscnK  
  conn.Close g9d/nR X&  
  End ~*Y/#kPY  
End Sub lh!8u<yv*  
o? K>ji!  
Function ArrayToBMP(ByVal File As String) O -P`HKr  
Dim BytesWrite As Long .SSPJY(  
*/$]kE  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ .G"T;w 6d  
  CREATE_ALWAYS, 0&, 0&) 5-S-r9  
HW"5MZ8E  
If hTmpFile = 0 Then 'A1y~x#2B  
   ArrayToBMP = False -Hy> z  
   Exit Function _)4zm  
End If A.r.tf}:  
%>y!N!.F  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN x@pzgqi3  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& O(_f&a  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN s t#^pWL  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& mJH4M9WJ]  
]5MT-qU  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN Q trU_c2k  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& + EKp*Vje  
%+UTs 'I  
If BytesWrite < pFrameSize Then zgn`@y2  
  ArrayToBMP = False z(>:LX"xz  
End If ]I;owk,  
-OKXfN]  
CloseHandle hTmpFile gI@nE:(m  
IA}.{zY~|  
End Function _eH@G(W(  
.v9i|E=<~  
Function ArrayToBMP1(ByVal File As String) 3Gw*K-.  
DQ0 UY  
Dim BytesWrite As Long Q^?$2ck=  
%O7?:#_  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ %%h.`p1  
  CREATE_ALWAYS, 0&, 0&)  ;CV'  
'[HU!8F  
If hTmpFile = 0 Then )5o6*(Y  
   ArrayToBMP1 = False w[EE A_\  
   Exit Function %z"$?Iv  
End If PMvm4<  
T~p>Ed9  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN kY'C'9p  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0&  x_/H  
$%ww$3  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN $d&7q5[  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& v^[!NygShs  
2o W'B^-  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN &[yYgfsp  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& DLe>EU;vS  
<\d2)Iv  
If BytesWrite < pBufferSize Then 2&A X_#P  
  ArrayToBMP1 = False c]ga) A(  
End If ~i>'3j0@k  
V=Bmpg  
CloseHandle hTmpFile ^nQJo"g\  
eQqCRXx  
End Function wGHVq fm5  
87KSV"IU8  
'使用该过程建立的文件要求在用后关闭 "Zm xHMf  
Public Function ArrayToBMP2(File As String) As Boolean `;m0GU68  
UM0#S}  
Dim BytesWrite As Long j2 >WHh  
Cwji,*  
ArrayToBMP2 = True \fYPz }wt  
(@O,U  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ @9k/od@mW  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) zNEN[  
?4Rq +  
If hTmpFile = 0 Then l9 H-N*Wx  
   ArrayToBMP2 = False 8Kn}o@Yd  
   Exit Function : >$v@d  
End If yDpv+6(a  
/~?[70B}E  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN ?b(DDQMf  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& |;U3 pq)  
Oj2=&uz  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN f.R;<V.)  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& ?~]mO v>  
";n%^I}  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN n~i^+pD@  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& v)*eLX$  
5\ }QOL  
If BytesWrite < pFrameSize Then .l,NmF9   
  ArrayToBMP2 = False Ct3+ga$  
End If !wro7ilMB  
1D~B\=LL}  
CloseHandle hTmpFile u=(.}  
NG4@L1f%  
End Function Vu<mOuh  
s(MdjWw   
Private Function TESTSignal() As Boolean q s9r$o.\l  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long ?9*[\m?-  
Y &i&H=U  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) ZMK1V)ohn  
-W|~YK7e  
If extsign = 1 Then S@4bpnhK  
   TESTSignal = True zT hut!O  
Else -, $:^4  
    If extsign = 0 Then HEK?z|Ne  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly bW3Ah?0N  
        TESTSignal = False z 34+1d  
        Exit Function T%YN(f  
    End If ;\T~Hc}&;  
End If ^vOEG;TR<-  
B5;94YIN  
'测试视频输入类型 e.!~7c_z?  
'video type ZCf d<NS?  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 oL9ELtb ]s  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) 1X?q4D"  
If videotype = 1 Then KkR.p,/  
        '"隔行信号(Interlaced)" S7R*R}  
Else H;FzWcm  
   If videotype = 0 Then }F3}"Ik'L  
       '"逐行信号(Non-interlaced)" iciRlx.$c  
   Else QX. U:p5C  
     If videotype = -1 Then Z/;8eb*B7  
       ' "不支持" g+C~}M_7  
     End If ;*20b@  
   End If ya;(D 8x)  
End If Nk9w ; z&  
T 7M ];@q  
'测试垂直扫描线数 q+lCA#Sx  
'video scanlines a6/ETQ  
scanlines = -1 Ti#x62X{  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) Jp~[Dm  
    If scanlines = -1 Then  Y@b|/+  
        ' "不支持" 7~H$p X  
    Else ~UsE"5  
        'Trim(Str(ScanLines)) + " 行数/幅" #"o`'5  
    End If QCfR2Nn}  
SMQC/t]HT  
'测试帧频 2nSz0 .  
'video field frequency ^4{{ +G)j  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) n+Ng7  
    If fieldfrq = -1 Then H\|H]:CE  
        'lblSignal(8) = "不支持" hXx:D3h  
    Else u$^r(.EV  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" eHyIFoaC/  
    End If g{m~TVm'  
End Function 9*CRMkPrd  
m`@~ZIa?>B  
\Fu(IuD  
Sub PicIdentify() z7Z!wIzJ  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 Uz `OAb  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 1_G+sDw$  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 hCj8y.X|E(  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 ORfMp'uP=  
R ggZ'.\  
  Dim fPTR As Long, cFrame As Long )Qo^Mz  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer H.[(`wi!I  
     !Jaj2mS.N  
,Fu[o6x<^  
cFrame = 0 ip*UujmNyR  
.5#+)] l  
!nF. whq  
Do While cFrame < tFrames R>,_C7]u  
   9}d^ll&  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) D:N\K/p  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) * a VT  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize e&9v`8}   
   T<mP.T,$!  
  frmRecord.RText.Text = Str(cFrame) 1EliR uJ  
  frmRecord.RText.Refresh _ wZr `E)  
       M7(]NQ\TQ  
  If CheckMark = True Then : p7PiqQ  
   ArrayToBMP TmpBMP @^b>S6d "  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) cvV8 ;  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" o~VZ%B  
   m!Aw,*m+*  
   DrawSlice BR~+CBH  
   Ja%isIdh  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) }y%mG&KSz  
   'If i = vbNo Then _^F%$K6  
   '  Exit Do $oi8 <8Y  
   'End If v0%FG9Gk  
   'cFrame = cFrame + 1 nA+gqY6 6|  
   $ Vsf? ID  
  End If 08nA}+k  
  DoEvents p4Xhs@.k  
  cFrame = cFrame + 1 Dh9C9<Ta:  
Loop "s\himoa  
End Sub NcIr; }  
XeAH.i<  
G-DOI  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean Qgl5Jr.  
Ys@\~?ym+  
'如标志区模式反差存在则为TRUE,否则返回FALSE I"WmDC`1  
P m|S>r  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long ban;HGGNG{  
CheckMark = True qK&h$;~*y  
   2K{)8 ;^  
'复制标志区 vVbS 4_  
For i = 1 To mkH |b|bL 7nx  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW 4/&.N]  
Next i  '5P:;zw  
?a~#`<  
For j = 1 To PilarW * PilarH / 2 `Fb%vYf  
   mTop = mTop + MKpilar(j) Mbtk:GuY  
Next j PkF'#W%  
n<>] 7-  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH RM!VAFH   
   mBot = mBot + MKpilar(j) F'njtrO3  
Next j 3MHByT %  
e]7J_9t@  
mTop = mTop / PilarW / PilarH * 2 ^<Sy{KY  
mBot = mBot / PilarW / PilarH * 2 ER<Z!*2  
a &hj|  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 sTECNY=l  
W0# VDe]>  
'平均值极值化 va;fT+k=  
  For j = 1 To PilarH * PilarW x< ) T,c5Y  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) K`kWfPwp  
  Next j VCUsvhI  
   G5$YXNV  
mTop = 0: mBot = 0 q>VvXUyK,  
For j = 1 To PilarH * PilarW / 2 (KphAA8  
  mTop = mTop + MKpilar(j) PtOYlZTe?  
Next j XC[bEp$  
B|- W  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW {Ytqs(`   
  mBot = mBot + MKpilar(j) y~r tYI  
Next j l'"Ici#7Ls  
V}q=!zz  
2L7ogyrU/A  
  mTop = mTop / PilarH / PilarW * 3 ^FK-e;J  
  mBot = mBot / PilarH / PilarW * 3 sW@_q8lG  
   }[By N).  
NO.5Vy  
If mBot > iWhite And mTop < iBlk Then C*Dco{ EQ>  
  CheckMark = True J-~:W~Qx4N  
Else _RG2I)P  
  CheckMark = False oBWa\N  
End If r59BBW)M  
End Function qD5)AdCGO  
ajD/)9S  
Sub Capture1Frame() #lx(F3  
   okCaptureTo hBoard, BUFFER, 0, 1 'single ,<=_t{^  
   okGetCaptureStatus hBoard, True - !s=`9o  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize 3}i(i0+  
End Sub _z& H O  
3x E^EXV  
lD?]D&  
Sub CopyMark(iBlk As Integer, iWhite As Integer) ??g = `yH  
'复制标志区并返回标志区暗区与亮区的亮度平均值 *6]_ 6xO  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long, mMid As Single, bsTotal As Long l gTw>r   
   /Au7X'}  
'复制标志区 uSNlI78D  
For i = 1 To mkH Kl*/{&,P  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW /m+.5Qz9)@  
Next i ~@'DYZb- H  
7iH%1f  
For j = 1 To mkW * mkH / 2 mUwGr_)wj  
   mTotal = mTotal + MKpilar(j) I<$m%  
Next j #80r?,q  
w;V+)r?w  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 ]{pH,vk-  
||rZ+<  
mTotal = 0 #(r1b'jfP  
For j = mkW * mkH / 2 + 1 To mkW * mkH &=v5M9GR]  
   mTotal = mTotal + MKpilar(j) s"0Hz"[^=  
Next j 8"J6(KS  
4 _Idf  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 nbU?:=P  
~> 5  
'背景亮度 | < - t  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW Trml?zexD  
  For i = 1 To 4 * FrameW W^1)70<y  
    bsTotal = bsTotal + BsLine(i) 6i*LP(n  
  Next i ^ V8?6E  
  bsAV = bsTotal / FrameW / 4 QQX7p!~E  
3aEO9v,n  
End Sub VKHzGfv  
a O(&<  
Cq<k(TKAX  
Sub AdjIMGbright(Optional bInit As Boolean = True) h2ou ]  
b @)nB  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) O|0}m  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 -|/*S]6kK  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 Rj /y.g  
     ^a;412  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer WD?COUEox  
   J"yq)0  
  '按标准亮度与对比度采集一帧,确定背景亮度 vN`JP`IBx  
  currentContr = 128   '初始对比度 -y)g}D%  
  currentBr = 128   '初始亮度 DV jsz  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 +ZPn[|  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 wXU gxa  
  DoEvents X6EnC57  
  Capture1Frame =_,j89E  
  '获得图像上缘4行象素 KvuM{UI5  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW 3 bl l9Ey  
  CopyMark iBlack, iBright   '图像标志区亮度 WlnS.P\+E  
  For i = 1 To 4 * FrameW Ct9*T`Gl  
    bsTotal = bsTotal + BsLine(i) "$N 4S9U  
  Next i "l 1z@  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 C: a</Sl  
   =42NQ{%@;  
  Select Case bsAV e2M jV8Bs  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 ^ &VN=Y6z  
       currentBr = 150 B3V+/o6  
       currentContr = 60 Eilo;-E l  
     Case 61 To 80   '有可见背景 bODyJ7=[  
       currentBr = 140 $3{I'r]  
       currentContr = 70 c$ R<j'7  
     Case 81 To 100  '有清晰背景 _qq>-{-Ym  
       currentBr = 128 Z}$1~uyw  
       currentContr = 80 U#F(%b-LC  
     Case 100 To 150  '有明亮背景 N PE7AdB8  
       currentBr = 140                '5:30-6:00钟实测数据 ]Kp -2KW  
       currentContr = 50 ^uWj#  
     Case 151 To 180 2B=+p83<  
       currentBr = 130 "AHuq%j  
       currentContr = 60 t$b{zv9C  
     Case 181 To 220  '背景全为白色 jI,?*n<  
       currentBr = 110 / 7yd&6`I  
       currentContr = 130 hquN+eIDH  
     Case 221 To 255  '背景全为白色 r*W&SU9Z  
       currentBr = 100 !i?aRI/6  
       currentContr = 100 SI/p8 ^  
  End Select S *K0OUq  
   &8QkGUbS<  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 d0N/!;  
        Case 100 To 150 K{]\}7+   
          currentBr = currentBr - 10 $D(q  
        Case 151 To 255 qwHP8GU  
          currentBr = currentBr - 20 ;2iDa  
  End Select aDjYT/`l  
   'V(9ein^Q  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 (, 2U?p  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 >Mk#19j[/  
End Sub 8Z(\iZ5Rgj  
e^Glgaf  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) bn 0Rv  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long 5tm:|.`SQ  
     t%]b`ad  
    For i = 1 To 8 iGsD!2  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& NUGiDJ+[  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& dZ'H'm;,!  
    Next i 6B`,^8Lp  
     }n$I #G}\/  
    For j = 1 To 1024 xX2/uxi8  
      L1 = L1 + LeftBK(j, 0) :V:siI Dn  
      L2 = L2 + LeftBK(j, 1) )VFS&|#\  
      R1 = R1 + RightBK(j, 0) PZO8< d  
      R2 = R2 + RightBK(j, 1)  !yf7y/qY  
    Next j =fy'w3m  
    diffL = Abs(L1 - L2) / 1024 o.KE=zp&z  
    diffR = Abs(R1 - R2) / 1024 mA0|W# NB  
End Sub !eGUiE=  
tf?"AY4  
Function CheckSlice() As Boolean </)QCl'd  
  CopySlice avSL, avSLR, avSLL y_N h5  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then CeW}z kcT  
    CheckSlice = True RWINdJZ  
  Else  '' Pfs<!  
    CheckSlice = False vB1nj<]&z  
  End If 5Z(#)sa0Og  
End Function C+Pw  
h9WyQl7  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) AWz|HF#-  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long F)hUT@  
  For i = 1 To FrameH pJ H@v &a  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize be:=-B7!  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize 1c}LX.9K  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize !vH={40]  
  Next i 3C(V<R?  
  For i = 1 To FrameH oq9gG)F  
    For j = 1 To sSize BZAF;j  
       total = total + Slice(j, i) .+dego:  
       totalL = totalL + SliceL(j, i) X16r$~Pb  
       totalR = totalR + SliceR(j, i) wGAeOD  
    Next j Q@? {|7:  
  Next i yU< "tgE  
  avSL = total / FrameH / sSize ) >8k8E  
  avSLR = totalR / FrameH / sSize { ^ @c96&  
  avSLL = totalL / FrameH / sSize uw9w{3]0f  
End Sub C'xWRSDO  
lxXIu8  
Sub DrawSlice() fIm=^}?fwK  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B 1ppU ?#  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B P_%kYcX'  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B }-15^2  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) u13v@<HGc  
End Sub ,U#FtOec  
Sub DrawMark(pic As Control) 3pI)  
   Dim i As Long, j As Long E j/P:nB  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B .[>UkM0  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B %n:ymc $}  
   For i = 1 To PilarH 95hdQ<W  
     For j = 1 To PilarW 7DCu#Y[  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) 5!}fd/}Uk  
     Next j W,s Pg\G 3  
   Next i @sLB _f  
End Sub k{w  
_ cD-E.E%  
Function avIMG() As Integer C+X- Cp  
  Dim i As Long, j As Long, totalIMG As Long )SsO,E+t=U  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize f^9ntos|  
  For i = 1 To pFrameSize z)XI A)i6  
    totalIMG = totalIMG + pBuffer(i) pQ9~^  
  Next i xzOM\ Nq?O  
  avIMG = totalIMG / pFrameSize $%0A#&DVh  
End Function X(fT[A_2C  
^DOQ+  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer J#*R]LU|  
  Dim i As Long, j As Long, totalIMG As Long C&-]Rf fA  
  For i = 1 To FrameH :`20i*  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth F@ Cxjz  
  Next i G.sf> .[  
  For i = 1 To FrameH * barWidth 8c0ugM   
    totalIMG = totalIMG + pBuffer(i) C#D8 E.W  
  Next i 6`U]%qx_I  
  avRegion = totalIMG / pFrameSize e{7"7wn=  
End Function |&0zAP"\  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 ~e#QAaXD#5  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 Q]<6i  
.rs\%M|X  
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long /aX 5G  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Tmr %r'i3  
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long '//declare has changed zaMKwv}BR  
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long '//declare has changed {}1KI+s9\  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long QTT2P(Pz  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 $61j_;WF`  
]q CCCI`  
e<1)KqG  
Private Const GENERIC_READ = &H80000000 APM!xX=N  
Private Const GENERIC_WRITE = &H40000000 %Tm8sQ)1  
?QG?F9?  
Private Const FILE_SHARE_READ = &H1 #AUV&pI[  
Private Const FILE_SHARE_WRITE = &H2 *#g[ jl4  
Private Const OPEN_EXISTING = 3 d+Au`'{>  
MZK%IC>  
Private Const INVALID_HANDLE_VALUE = -1 DZ5QC  aA  
pCt0[R;?  
'//file seek d<+@cf_9  
Private Const FILE_BEGIN = 0  j2%?-(U  
Private Const FILE_CURRENT = 1 68, (+vkB  
Private Const FILE_END = 2 Ch,%xs.)G  
$KMxq=  
Private Const ERROR_SUCCESS = 0& UhVJ !NrT  
a? P$8NLr  
'//device io control b?deZ2"L#  
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long) As Long 8xQjJ  
cOo@UU P   
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 {u{8QKeC  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 *e}1KcJ  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 bo04y)Iz  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 YMD&U   
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C \YrvH  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 9 Z79  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F mdy+ >e <  
N,~"8YSo  
'//type _5&LV2  
Private Type LARGE_INTEGER I4\ c+f9  
    lowpart As Long 3?:?dy(3z  
    highpart As Long &&K"3"um  
End Type :]+p#l  
#8;#)q_[u  
Private Enum MEDIA_TYPE gq[`g=x  
    Unknown M&~cU {9c  
    F5_1Pt2_512 /Ym!%11`  
    F3_1Pt44_512 sTChbks  
    F3_2Pt88_512 FvaelB  
    F3_20Pt8_512 :1,xs e  
    F3_720_512 1J @43>u{  
    F5_360_512 1y}tPkOe7O  
    F5_320_512 IBSoAL  
    F5_320_1024 kQQhZ8Ch  
    F5_180_512 6*tbil_G+  
    F5_160_512 6V^KOG  
    RemovableMedia ]#t5e>o|  
    FixedMedia z)0%gd|  
End Enum 'e5,%"5(c  
0D:eP``  
Private Type DISK_GEOMETRY MR-cOPn  
    Cylinders           As LARGE_INTEGER o]O  
    MediaType           As MEDIA_TYPE "?SR+;Y:q  
    TracksPerCylinder   As Long X Cf!xIv  
    SectorsPerTrack     As Long ]n$&|@  
    BytesPerSector      As Long A.@Af+  
End Type C8bv%9  
y&{ Z"+B5  
'//private vars 8jz[;.jP",  
Private hDisk           As Long             'disk handle nk^-+olm  
Private lpGeometry      As DISK_GEOMETRY    'disk info }&:F,q*  
Private lBufferSize     As Long             'the buffer size of read/write z}f;_NX  
~u+|NtF  
Public Function OpenDisk(ByVal FileName As String) As Boolean  &j_:VP  
'// 打开磁盘 ``* !b >)  
    hDisk = CreateFile(FileName, _ rN5;W  
                        GENERIC_READ Or GENERIC_WRITE, _ ct-;L' a  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ @!:_r5R~N  
                        ByVal 0&, _ w\2yippI  
                        OPEN_EXISTING, _ KM jnY2  
                        0, _ \B1<fF2  
                        0) 6kM'f}t[C  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) h(H b+7g  
End Function k>mqKzT0$+  
Y%A KN  
Public Function CloseDisk() As Boolean Y~+`F5xX<  
'//关闭磁盘 -|x YT+?%  
    CloseDisk = CloseHandle(hDisk) M +Jcg b]  
End Function dpI9DzA;  
bJ6@ B<  
Public Function GetDiskGeometry() As Boolean *&sXC@^@^  
'//获取磁盘参数 PML +$  
    Dim dwOutBytes      As Long Xsit4Ma  
    Dim bResult         As Boolean yNk E>  
     DA -W =Cc  
    bResult = DeviceIoControl(hDisk, _ z(dX<  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ `UH 1B/  
                                ByVal 0&, 0, _ I!uGI  
                                lpGeometry, Len(lpGeometry), _ g1zX^^nd,V  
                                dwOutBytes, _ <rAk"R ^  
                                ByVal 0&) [tY +P7j9)  
     q26%Z)'nf  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack $dgez#TPL  
    GetDiskGeometry = bResult 6A \Z221E  
End Function 08JVX'X-mr  
ps=+wg?]  
Public Sub GetDiskInfo(MediaType As Long, _ g7),si*  
                        Cylinders As Long, _ _z(ydL*  
                        TracksPerCylinder As Long, _ <"rckPv_H  
                        SectorsPerTrack As Long, _ 1ps_zn(  
                        BytesPerSector As Long) # 5C)k5  
'//返回磁盘的参数 At=l>  
    MediaType = lpGeometry.MediaType V|mz]H#|  
    Cylinders = lpGeometry.Cylinders.lowpart xPJ kadu  
    TracksPerCylinder = lpGeometry.TracksPerCylinder qtLXdSc  
    SectorsPerTrack = lpGeometry.SectorsPerTrack X*Dt<i};v  
    BytesPerSector = lpGeometry.BytesPerSector %*`yd.L0W  
5xF R7%_&  
End Sub KQ\ d$fX  
d?_LNSDo  
Public Property Get BufferSize() As Long sM8AORd  
'//返回每次读/写的缓冲大小 P2^((c  
    BufferSize = lBufferSize JD1D(  
End Property zgR@-OtFZ  
Yt% E,U~g  
I}{Xv#@o  
Public Function LockVolume() As Boolean *Ul L\  
'// 将卷锁定 Y^P'slY{%  
    Dim dwOutBytes  As Long #w:6<$  
    Dim bResult     As Boolean RS`~i8e'  
     l5bd);L tq  
    bResult = DeviceIoControl(hDisk, _ Y%iimbBY|  
                                FSCTL_LOCK_VOLUME, _ mbm|~UwD  
                                ByVal 0&, 0, _ }4M4D/=  
                                ByVal 0&, 0, _ jQ[M4)>_k`  
                                dwOutBytes, _ maopr$r  
                                ByVal 0&) ^&-H"jF  
    LockVolume = bResult dx It.h   
End Function ^S'tMT_  
A7X-),D  
WCPl}7>  
Public Function UnlockVolume() As Boolean 7TN94@kCF  
'// 将卷解锁 bu|ecv  
    Dim dwOutBytes As Long SXI3y  
    Dim bResult As Boolean N2_9V~!  
     en6oFPG   
    bResult = DeviceIoControl(hDisk, _ L_4Zx sIv  
                                FSCTL_UNLOCK_VOLUME, _ ;\gsd'i  
                                ByVal 0&, 0, _ +m8gS; 'R4  
                                ByVal 0&, 0, _ 7 /$s!pV  
                                dwOutBytes, _ ;4rTm@6  
                                ByVal 0&) <DjFMTCN  
    UnlockVolume = bResult '5n67Hl 1  
End Function U%,N"]`  
|+0XO?,sZ  
:5M7*s)e16  
Public Function DismountVolume() As Boolean Q]]5\C.  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 .0zNt  
    Dim dwOutBytes As Long u/8urxp y  
    Dim bResult As Boolean J}vxK H#=  
     _hb@O2f  
    bResult = DeviceIoControl(hDisk, _ /P-Eg86V'  
                                FSCTL_DISMOUNT_VOLUME, _  U|HF;L  
                                ByVal 0&, 0, _ %Kq`8  
                                ByVal 0&, 0, _ %95'oW)lo  
                                dwOutBytes, _ o>'1ct  
                                ByVal 0&) H!NyM}jsr  
    DismountVolume = bResult 0 w#[?.  
End Function Xu8_<%  
/kY|PY  
8Qg,U X  
Public Function ReadDisk(ByVal Cylinders As Long, _ -n`igC  
                    ByVal Tracks As Long, _ 3_]<H<w  
                    db() As Byte) As Boolean &]?X"K  
'//按柱面和磁道来读取磁盘数据 L9=D,C~  
    Dim iPos    As Long s s*% 3<  
    Dim lRead   As Long :W\xZ  
     g, %xGQ4+  
    iPos = Cylinders * Tracks * lBufferSize eHjn<@  
     *Tt*\ O  
    If SeekAbsolute(0, iPos) Then )KLsa`RV:  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) i@C$O.m(  
    End If !7 O!)WJ  
End Function bqt*d)$  
QQwD) WG  
Public Function WriteDisk(ByVal Cylinders As Long, _ utvZ<zz`  
                     ByVal Tracks As Long, _ uKcwVEu  
                     db() As Byte) As Boolean 0H-~-z8Y  
'//按柱面和磁道来写磁盘数据 5z>kz/uxW  
    Dim iPos    As Long m% {4  
    Dim lRead   As Long 9(/ ;Wutj"  
     ' `*{ig  
    iPos = Cylinders * Tracks * lBufferSize S^Z[w|1  
     dw v( 8  
    If SeekAbsolute(0, iPos) Then kr C4O2Fkj  
        WriteDisk = WriteBytes(lBufferSize, db()) F9Ag687w  
    End If d:"]*EZ [  
End Function UA|A>c  
-&ic%0|f  
< +QXGz1  
'///////////////////////////////////////////////////////////////////////////////////// u0@i3Po  
'//file system domaD"C  
x{X(Y]*1S  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean PmGW\E[ni  
'//seek file <6s?M1J  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte SOI$Mx  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) =k1 ,jn+  
    If LowPos = -1 Then E.kjYIH8  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) 8SGFzb! h  
    Else vNhi5EU  
        SeekAbsolute = True 2y&m8_s-p  
    End If v{}i`|~J  
     s=+,F<;x.U  
End Function D{{ ME8  
c v b:FK  
R{5xb  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean R`F54?th  
'//read data to array x}W,B,q  
    Dim RetVal    As Long f(h nomn  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) ORV~F0d<  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF ZgcJxWC<  
    ReadBytes = Not (RetVal = 0) Qw{L D+r(  
     Qv%"iSe~J  
End Function E,[@jxP  
]S6`",+)<f  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean E2s lpo  
'//write data from array AAr[xo iYp  
    Dim RetVal As Long DUk&`BSJ  
    Dim BytesToWrite As Long 5;5DEMe  
    Dim BytesWritten As Long Dg$Z5`%k8  
     }T?0/N3y&  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) `;ofQ z4  
     Z. ))=w6G  
    WriteBytes = Not (RetVal = 0) pb(YA/  
End Function 3+_ .I{  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 bm>,$GW(  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ E*ug.nxy  
DWORD dwCB; zqDIwfW  
LARGE_INTEGER  offset; iwnctI  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); Lbka*@  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); nVF?. c  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ @hlT7C)xK  
DWORD error = GetLastError(); ;/ iBP2  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); ^T[8j/9o^  
return FALSE; }dl[~iKW  
} y\DR,$Py  
return TRUE; :Rh?#yO 5  
} +0016UgS#  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : }Ut*Y*  
mRe BS  
介个真的看不懂。 ^gb3DNV~y  
你说你老啦,喜欢怀旧了,才想起来填坑。 'OI Ol  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 sb Wn1 T U  
@6eM{3E.  
(yjx+K_[  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : T5* t~`bfU  
佩服,玩也玩得这么专业! !S0$W?*  
x=1Iuc;&3  
KIyhvY~  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : M]FA y"E  
伍SIR,再次抱拳佩服 PxuE(n V[  
:%_*C09  
Hz?C9q3BX  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : mP!=&u fcU  
引用第19楼伍胥之于06-14-2010 12:33发表的  : kGz0`8U Ru  
E#?Bn5-uBs  
,, 8hU7P  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 t@#+vs@  
eo#2n8I>=1  
我连一级也没有考过。 [-ONs  
.
Eo\pNz#)  
w^{qut.  
引用
@2yoy&IO  
矬子里拔将军... ,,FO6+4f  
你们那里的俗语是吧? fGZZ['E  
Ch] `@(l  
我们这里说"矮子里拔长脚"..应该是同一个意思... 71S~*"O0f  
bD2):U*Fzo  
有趣....各地有表达意思一样却方式不同的俗语.... ^bD)Tg5K  
xE$>;30b_  
UyFvj4SU  
你的文章写的有脸皮,没屁眼的, B//2R)HS  
让看客大为不满... 9Dat oi  
nj90`O.K  
你等着,,估计你以后接到的午夜凶铃就多了... aXv [~  
I{/}pr>  
$Ph T:  
我到现在也没有接到你的午夜凶铃呢! g6AEMer  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : jqzG=/0~{  
每个人的故事对其他人都是故事, OMY^'g%w  
自己的故事也是其中之一. bMA\_?  
跳出来看, ZwFVtR  
不过是众人中的一个人的故事. GJr1[  
'K!u}py  
所以,接着听故事. Ye=c;0V(w  
3D}rxI8N  
女人们有兴趣的就等老伍开个新帖或者跟贴, F.Sc2n@7-  
听他痛说恋爱革命历史.... mXSs:FqE!  
6_=t~9sY  
杂家接着听他自学程序员历史, uo TTHj7cq  
高级程序员考了吗? ku3(cb!2  
%2 I >0  
dED&-e#  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! Jan~R ran  
iB XS   
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 FjU -t/  
{Mv$~T|e7  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 Fkvf[!Ci  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : NRMEZ\*L  
哦, 打倒忽悠大家的家伙.      :zQNnq:|  
Ya29t 98Pk  
h'"~t#r  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : Y'Yu1mH)  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 4"s/T0C  
&HtG&RvQf  
3 p!t_y|SX  
其实标题没有什么,卡总既然改了就不必再改回了。 Vx%!j&  
P-\65]`C  
主要是当初写的时候真是顶着锅盖写的。 |4!G@-2V:I  
42=/$V  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

验证问题:
3 * 6 = ? 正确答案:18
按"Ctrl+Enter"直接提交