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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 J(hA^;8:  
dqwWfn1lt  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : g 2#F _  
ReqE? CeV  
老五,I 服了U。 a^/K?lAB8  
G|V\^.f<  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 H oS|f0  
LO}z)j~W  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean ,=x RoXYB}  
oB3q AP  
Dim regEX As New RegExp LAos0bc)w\  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 DUQ9AT#3  
5C* ?1& !  
Dim LastTitle0String As String, LastTitle0No As Long OU6^+Ta  
Dim LastTitle1String As String, LastTitle1No As Long +yiU@K).0  
Dim LastTitle2String As String, LastTitle2No As Long 8e N%sm  
Dim LastTitle3String As String, LastTitle3No As Long CY5w $E  
Dim LastTitle4String As String, LastTitle4No As Long 7NeDs$  
Dim LastTitle5String As String, LastTitle5No As Long $oc9 |Q 7  
Dim LastTabelString As String, LastTableNo As Long dGa@<hg  
Dim LastFigureString As String, LastFigureNo As Long M!-q}5';  
Qv\bLR  
Dim strSeperator As String .2/,XwIr  
oN4G1U Kc  
Sub ConvertWidth(fTEXT As String, rText As String) !2wETs ?  
        Selection.Find.ClearFormatting ^ }tL nF  
        Selection.Find.Replacement.ClearFormatting 4"z;CGE7  
        Selection.Find.Wrap = wdFindContinue uGM>C"  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText iW":DOdi_  
        DoEvents D|"sE>  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True R^|!^[WE  
End Sub s ?5 d  
=J`gGDhGY-  
Sub ClearDomain() {DSyV:   
        With Selection.Find -#daBx ?  
            .ClearFormatting .dt#2a_5q  
            .Replacement.ClearFormatting DYkC'+TEX  
            .Wrap = wdFindContinue h k/+  
            Me.txtStatus.Text = "清除所有域代码" ([1=>Jw"  
            DoEvents y3Y2 QC(  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False QW,cn7  
        End With i{P%{hVb  
End Sub d`UF0T  
cu:-MpE  
Private Sub cmdCheck_Click() +fPNen4E  
    bContinue = True #*+;B93 )  
    Dim NoSeries1(1 To 16) As String y>%W;r)  
    Dim NoSeries2(1 To 16) As String  w}"!l G  
    Dim NoSeries5(1 To 16) As String ]u~Os<   
    Dim NoSeriesRM(1 To 16) As String |iAEDZn  
    Dim paraTotal As Long, ParaText As String |c=d;+  
    Dim ttString As String, ttNo As String e{:86C!d)  
     rAL1TU(vm  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long S'|lU@P Cl  
A}gYc c85Z  
    Me.txtStatus.Visible = True J&'>IA  
    Me.lbParaType.Visible = True \3L$I-]m  
    Me.cmdCheck.Enabled = False yg`E22  
     P`z7@9*j  
     eS* *L 3  
     FzA{U O  
     wXP_]-  
    Dim ParaType As String, rText As String +J%6bn)U  
     "Jf4N  
    Selection.WholeStory }Z^FEd"y  
    Selection.NoProofing = True PVZEB  
     QZ#3Bn%B5  
    tm1 = Now cgzy0$8dj\  
     JXlTN[O  
        ActiveWindow.View.Type = wdNormalView B*32D8t`u  
     ]X/O IfdWe  
    NoSeries1(1) = "一" ;B*L1'FF%t  
    NoSeries1(2) = "二" <xXiJU+  
    NoSeries1(3) = "三" ^NY+wR5Sn  
    NoSeries1(4) = "四" ,zc"udpKF  
    NoSeries1(5) = "五" /j$$0F>s7  
    NoSeries1(6) = "六" fmtuFr^a1  
    NoSeries1(7) = "七" PnI)n=(\  
    NoSeries1(8) = "八" tsB.oDMP  
    NoSeries1(9) = "九" pb~Ps#"Zg  
    NoSeries1(10) = "十" G,+xT}@wu  
    NoSeries1(11) = "十一" `CPZPp,l6`  
    NoSeries1(12) = "十二" -6(h@F%E  
    NoSeries1(13) = "十三" b8eDD+ulk  
    NoSeries1(14) = "十四" gQu\[e%mVo  
    NoSeries1(15) = "十五" "sdcP8])d  
    NoSeries1(16) = "十六" 8u4gx<;O  
     nR(#F9  
    NoSeries2(1) = "㈠" vM5k4%D  
    NoSeries2(2) = "㈡"  fF\*v  
    NoSeries2(3) = "㈢" XSD"/_xD  
    NoSeries2(4) = "㈣" 5%EaX?0h+  
    NoSeries2(5) = "㈤" GU2]/\W*a  
    NoSeries2(6) = "㈥" rve7YS'  
    NoSeries2(7) = "㈦" Hf;RIl2F  
    NoSeries2(8) = "㈧" o]dK^[/*  
    NoSeries2(9) = "㈨" \MfR #k0  
    NoSeries2(10) = "㈩" $:qI&)/  
     |}l@w +N3  
    NoSeries5(1) = "①" *QMF <ze  
    NoSeries5(1) = "②" t)YFTO"Jj  
    NoSeries5(3) = "③" Ar\IZ_Q  
    NoSeries5(4) = "④" 2=i+L z^  
    NoSeries5(5) = "⑤" e!T G< (S  
    NoSeries5(6) = "⑥" 8[vl 3C  
    NoSeries5(7) = "⑦" |G[{{qZM5  
    NoSeries5(8) = "⑧" TXA. 6e  
    NoSeries5(9) = "⑨" 9NJ= ~Ub-  
    NoSeries5(10) = "⑩" YhEiN. ~  
     ~3LhcU-  
     Iz 1*4@  
    NoSeriesRM(1) = "I" Rc$=+K#  
    NoSeriesRM(2) = "II" FEge+`{,  
    NoSeriesRM(3) = "III" ]!n*V/g  
    NoSeriesRM(4) = "IV" wa9'2a1?  
    NoSeriesRM(5) = "V" P9 W<gIO  
    NoSeriesRM(6) = "VI" Y+|L 3'H  
    NoSeriesRM(7) = "VII" ;JMOsn}8  
    NoSeriesRM(8) = "VIII" n P0Ziu'{  
    NoSeriesRM(9) = "IX" U{j5kX  
    NoSeriesRM(10) = "X" jI@bTS o  
    NoSeriesRM(11) = "XI" a.5zdoH_  
    NoSeriesRM(12) = "XII" %Y#[% ~|(  
    NoSeriesRM(13) = "XIII" P c/.*kOT  
    NoSeriesRM(14) = "XIV" >^M!@=/?J  
    NoSeriesRM(15) = "XV"  "Nk`RsW  
    NoSeriesRM(16) = "XVI" MBnK&GS  
     ?FkQe~FN{  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) .%-6&%1  
     #p11D= @[  
    If i = vbNo Then J[I"/sdk-  
        Exit Sub 8:;u v7p  
    End If oVKsic?  
     t't^E,E .@  
    If Me.chkSuper.Value Then 9\\@I =;  
        Me.txtStatus.Text = "检查修改所有的上标格式" z:0-aDe M  
     f(EYx)gZ  
        CheckSuperScript T2c_vY   
         B^E2UNRA  
    End If 3Yn:fsy  
     {s9y@c*15.  
    If Me.chkStyle.Value Then q g) Af  
        Me.txtStatus.Text = "设置样式,请稍候...." "~ .8eKRQ  
        DoEvents < P?3GT/  
        CeateOrModifyStyle D4YT33$tC  
    End If ~ex~(AWh  
     3C E 39W  
     }TXp<E"\  
     S jC)6mo  
    ClearDomain UXcH";*9b  
         `kaR@t  
     FCS5@l,'<  
     Om&{4a\  
    If Me.chkLIST.Value Then X3&SL~&>g  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" p,_6jdz  
     *y":@T  
        ConvertListToOrdinary f(w#LuW<  
    End If 75QXkJu  
     /6Jy'"+'0  
     X^?|Sz<^E  
    Dim pType As String, trimpTEXT As String eSQzjR*  
    If Me.chkNum.Value = True Then ,"v)vTt  
        Me.txtStatus.Text = "转换全角数字形式为半角" vV$hGS(f~  
        ConvertWidth "1", "1" 9-X{x95]  
        DoEvents 8`R +y  
        ConvertWidth "2", "2" M , .0[+  
        DoEvents ?=pZmvQg  
        ConvertWidth "3", "3" '#pMEVP  
        DoEvents mjkw&2  
        ConvertWidth "4", "4" vTe$77n  
        DoEvents &r 5&6p  
        ConvertWidth "5", "5" LOyCx/n  
        DoEvents 8AC. 2 v?_  
        ConvertWidth "6", "6" WF3DGqs_]  
        DoEvents 5bGjO&$l  
        ConvertWidth "7", "7" KoxGxHz^Y3  
        DoEvents v e6N  
        ConvertWidth "8", "8" hi4h0\L!}  
        DoEvents Ppi-skT  
        ConvertWidth "9", "9" "4Wp>B  
        DoEvents 0|K/=dh5+  
        ConvertWidth "0", "0" V PLCic,T  
        DoEvents khKv5K#)  
        ConvertWidth "a", "a" @8 oDy$j  
        DoEvents !#_h2a  
        ConvertWidth "b", "b" [~Z'xY y  
        DoEvents 0C"PC:h5  
        ConvertWidth "c", "c" KV) Hywl`  
        DoEvents l&e5_]+%  
        ConvertWidth "d", "d" m=("N  
        DoEvents $)kBz*C[  
        ConvertWidth "e", "e" W>t&N  
        DoEvents x):k#cu[L  
        ConvertWidth "f", "f" $9 &Q.Kpq>  
        DoEvents R9|2&pfm(M  
        ConvertWidth "g", "g" Bsih<`KF^  
        DoEvents 2f}K #i8   
        ConvertWidth "h", "h" QTrlQH&p  
        DoEvents X+'^ Sp  
        ConvertWidth "i", "i" ZmYSi$B  
        DoEvents /z.7: <gZ(  
        ConvertWidth "j", "j" b}}1TnS)  
        DoEvents n '0 $>Q  
        ConvertWidth "k", "k" D=q;+,Pc  
        DoEvents ~_# Y,)S!z  
        ConvertWidth "l", "l" y . ivz  
        DoEvents yccuTQvz  
        ConvertWidth "m", "m" iA^+/Lt  
        DoEvents mV! @oNCK  
        ConvertWidth "n", "n" f3%^-Uy*b  
        ConvertWidth "o", "o" K@$L~G  
        ConvertWidth "p", "p" f>"!-3  
        ConvertWidth "q", "q" #sm_.?P  
        ConvertWidth "r", "r" 'o#J>a~!9L  
        ConvertWidth "s", "s" 67K RM(S  
        ConvertWidth "t", "t" J4*:.8Ki  
        ConvertWidth "u", "u" N .Wdi  
        ConvertWidth "v", "v" Gn2 bZ%l  
        ConvertWidth "w", "w" fW4cHB 9|  
        ConvertWidth "x", "x" a2 klOX{  
        ConvertWidth "y", "y" _L `N^I.  
        ConvertWidth "z", "z" +|}K5q\  
        ConvertWidth "A", "A" ?( dYW7S  
        ConvertWidth "B", "B" a|6x!p2X  
        ConvertWidth "C", "C" 35N/v G0  
        ConvertWidth "D", "D" "Wn?8vR  
        ConvertWidth "E", "E" %M0mwty]  
        ConvertWidth "F", "F" n'&`9M['%d  
        ConvertWidth "G", "G" fEv< W  
        ConvertWidth "H", "H" Wc`J`&#.#  
        ConvertWidth "I", "I" U_ ?elz\  
        ConvertWidth "J", "J" n.)[MC}  
        ConvertWidth "K", "K" y}:)cA~o(y  
        ConvertWidth "L", "L" DS,FVh".|  
        ConvertWidth "M", "M" 44fq1<.K  
        ConvertWidth "N", "N" DESViQM  
        ConvertWidth "O", "O" CL@h!h554_  
        ConvertWidth "P", "P" vwqN; |F  
        ConvertWidth "Q", "Q" +~i+k~{`H  
        ConvertWidth "R", "R" +=B}R  
        ConvertWidth "S", "S" mC[U)` ey  
        ConvertWidth "T", "T" mrLx]og,  
        ConvertWidth "U", "U" _WjETyh [H  
        ConvertWidth "V", "V" yV+ E;  
        ConvertWidth "W", "W" 8.;';[  
        ConvertWidth "X", "X" Kn!0S<ssR  
        ConvertWidth "Y", "Y" &T|&D[@  
        ConvertWidth "Z", "Z" /qz "I-a  
        ConvertWidth "^l", "^p" R6WgA@Z|r  
        ConvertWidth "(", "(" 5{d9,$%8&  
        ConvertWidth ")", ")" >kDdWgRQ  
     ]zwqGA  
    End If :(?hLH.W[  
eV {FcJha  
    With ActiveDocument w;SH>Ax:  
        Dim tbl As Table $b i_i|?  
        For Each tbl In .Tables tM PX vE  
            tbl.Rows.Alignment = wdAlignRowCenter (Q+:N;  
            tbl.Range.Font.NameFarEast = "楷体" ~b6<uRnM.  
            tbl.Range.Font.NameAscii = "Times New Roman" R{OE{8;  
            tbl.Range.Font.Size = 10.5 sY;gh`4h  
        Next !$KhL.4P  
        Set tbl = Nothing jcv1z v.  
    End With @BHS5^|  
     ("J V:u.L+  
     v<J;S9u=  
    With ActiveDocument rM >V=|9,  
         U)I `:J+A  
        For i = 1 To .TablesOfContents.Count b]g&rwXYt  
            .TablesOfContents(i).Delete N;`[R>Z~  
        Next D8D !16_  
         (HrkUkw  
         Jr>S/]"  
         T m@1q!G  
        paraTotal = .Paragraphs.Count i\Q"a B"r  
        paraCounter = 1 V.gY1   
         b[[6X  
        LastTitle0No = 0 &6^W% r  
        LastTitle1No = 0 > *t>U8  
        LastTitle2No = 0 P VkN3J  
        LastTitle3No = 0 b-(UsY:  
        LastTitle4No = 0 - C'X4C+  
        LastTableNo = 0 =[)N6XV3  
        LastFigureNo = 0 64 \5v?C  
         g<T`F  
        Dim Sec As Long ,M/#Q6P0}  
         1-N X>E5  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) <% 3SI.  
        If Sec = 0 Then MkNURy>n&  
            Exit Sub  n wZr3r  
        End If ?"8A^ ^  
         <Ec)m69P  
        k = 0 {EoyMJgz  
        Do While (paraCounter < paraTotal) And bContinue g=YiR/O1QN  
            k = k + 1 kW2nrkF  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then R;TEtu7  
                Exit Do 72`/xryY  
            End If < 8 Y<w|Hh  
            paraCounter = paraCounter + 1 -IE P?NX  
            If k Mod 20 = 0 Then 9X {nJ"  
                Me.lbCounter.Caption = paraCounter ">vYEkZ3  
                DoEvents X-N$+[#  
            End If L5k>;|SA  
        Loop hp z*jyh8  
         "k1Tsd-  
         c>i*HN}Z|  
        Do While (paraCounter < paraTotal) And bContinue (~pEro]?+)  
             %`\_l  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) r?yJ  
            ShapeHeight = 0 97))'gC  
            ShapeWidth = 0 ,pa&he  
           AIxBZt7{b  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth ;`PkmAg  
             <sCq x/L  
            Select Case ParaType \Af|$9boHz  
                Case "【】表格内容" 6[2?m*BsN  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" ,fG_'3wb  
                Case "章" FvNSu"O~K1  
                    LastTitle0No = LastTitle0No + 1 } Ved  
                    '新一章开始,复位其下属标题编号 v.2Vg  
                    LastTitle1No = 0 J_[[BJ&}x  
                    LastTitle2No = 0 .kKwdqO+zB  
                    LastTitle3No = 0 5f*'wA  
                    LastTitle4No = 0 PD T\Q\J^X  
                     g\{! 21M  
                    k = Val(ttNo) 1DlcO>#@  
                    If k = 0 Then '非数字编号章节 Qhr]e u;z  
                        If ttNo <> NoSeries1(LastTitle0No) Then eZod}~J8  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString #HuA(``[d  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText B{o\RNU  
                        End If PUZXmnB  
                    Else BSu)O~s  
                        If Val(ttNo) <> LastTitle0No Then L,A-G"z0Z  
                            rText = "第" & LastTitle0No & ttString   6[|<  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText 73z|'0.  
                        End If s^?sJUj  
                         :6k DUFj}  
                    End If .q9|XDqQc  
                     ^RyTK|SQ  
                    '章段落设置 )(!Z90@  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 Ee\-q  
                    .Paragraphs(paraCounter).Style = "QLNU章节" . f<VmUca  
                    .Paragraphs(paraCounter).Range.Select g&F<Uv#mZ  
                    Selection.EndKey unit:=wdLine rWfurB5f  
                    tc = Replace(rText, vbCr, "") hCvLwZ?LF  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False =U7D}n hS-  
                Case "一级标题" aLk2#1$g  
                    LastTitle1No = LastTitle1No + 1 2au(8IWu  
                    '新一级标题开始,复位其下属标题编号 Y$$?8xr ~  
                    LastTitle2No = 0 8!%"/*P$  
                    LastTitle3No = 0 ?M-8Fp3 +  
                    LastTitle4No = 0 vgW1hWmHJ  
                     &aAo:pj  
                    If ttNo <> NoSeries1(LastTitle1No) Then JX0_UU  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString OUk5c$M(  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText KIBZQ.uG  
                    End If [O+^eE6h  
                   s>``- ]3  
                     ;ld~21#m  
                    '一级标题段落设置  格式:一、标题内容 jKV?!~/F  
                    .Paragraphs(paraCounter).Range.Text = rText {ZM2WFpE  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" $~@096`QL<  
                    .Paragraphs(paraCounter).Range.Select RGA*7  
                    Selection.EndKey unit:=wdLine e, 0I~:  
                    tc = Replace(rText, vbCr, "") -zLI!F 0  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False lvJ{=~u  
                Case "二级标题" v?TJ !o  
                    LastTitle2No = LastTitle2No + 1 f<sPh>n  
                    '新二级标题开始,复位其下属标题编号 s&`XK$p  
                    LastTitle3No = 0 XhD fI &  
                    LastTitle4No = 0 @gjdyz  
                     hGo |2@sc  
                    If ttNo <> NoSeries1(LastTitle2No) Then  wY_-  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString 8Pdn w/W  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText 2-c0/?_4  
                    End If UG'U D"  
                     g7LW?Ewr  
                    '二级标题段落设置 格式:(一)、标题内容 H'\EA(v+  
                    .Paragraphs(paraCounter).Range.Text = rText  <IDzv'  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" RrpF i'R  
                     v_h*:c  
                    .Paragraphs(paraCounter).Range.Select |j}F$*SE[  
                    Selection.EndKey unit:=wdLine 9w<Bm"G  
                    tc = Replace(rText, vbCr, "") J9=0?^v-:B  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False jsaCnm>&  
                 @OY-(cW  
                Case "三级标题" ZpctsCz]  
                    LastTitle3No = LastTitle3No + 1 Ml/p{ *p  
                    '新三级标题开始,复位其下属标题编号 *#^1rKGWK  
                    LastTitle4No = 0 yIf}b  
                     _%TeTNY#  
                    If Val(ttNo) <> LastTitle3No Then yj+b/9My   
                            rText = LastTitle3No & ". " & ttString 5t#]lg[06'  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText 7c]Ai  
                         b-zX3R;  
                    End If 7-IeJ6,D  
                    '三级标题段落设置 格式:1. 标题内容 UYrzsUjg&  
                    .Paragraphs(paraCounter).Range.Text = rText 8 (h  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" M*6@1.n  
                    .Paragraphs(paraCounter).Range.Select ViT 5Jn7  
                    Selection.EndKey unit:=wdLine N_Ld,J%g  
                    tc = Replace(rText, vbCr, "") 4"(zi5`e  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False Bg0cC  
                Case "四级标题" j"u)/A8*  
                    LastTitle4No = LastTitle4No + 1 "EhO )lR  
                     xy3%z  
                    If Val(ttNo) <> LastTitle4No Then T<?BIQz(}  
                            rText = "(" & LastTitle4No & "). " & ttString rPpAg  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText y/6LMAI  
                     *>$)#?t  
                    End If Od]xIk+E  
                    '四级标题段落设置 格式:(1). 标题内容 A y[L{!)2{  
                    .Paragraphs(paraCounter).Range.Text = rText dTQvz9C  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" (# iM0{  
                    .Paragraphs(paraCounter).Range.Select be%*0lr  
                    Selection.EndKey unit:=wdLine >D4Ez  
                    tc = Replace(rText, vbCr, "") V"j nrNs3  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False Rs[]i;  
                 -86:PL(I"  
                Case "表格标题" =?Md&%j  
                    LastTableNo = LastTableNo + 1 *+Q*&-$  
                     3(*s|V"  
                    If ttNo <> CStr(LastTableNo) Then PM>XT  
                            rText = "表" & LastTableNo & ". " & ttString K/+C6Y?  
                            ErrMsg.AddItem "表格编号错误:" & ParaText !D&MJThNy  
                   r K )  
                    End If ",V5*1w  
                     ld?.o/  
                    '表格名称段落设置 格式:表1. 表格名称 y+afUJT  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" "$pg mf2  
                    xe = Replace(rText, vbCr, "") i O|,,;_  
                    .Paragraphs(paraCounter).Range.Select }/0dfes  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 * .VZ(wX  
                    Selection.Range.Text = xe azc:C  
                    Selection.EndKey S)|b%mVwR  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False \o)4m[oF  
                 nnl9I4 -O  
                Case "表格首行" :=eUNH  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" ~Fb?h%w  
                Case "图片标题" RAbq_^Q  
                    LastFigureNo = LastFigureNo + 1 0%NI- Zyo  
                     Q b{5*>  
                    If ttNo <> CStr(LastFigureNo) Then m e{SVG{  
                            rText = "图" & LastFigureNo & ". " & ttString yP4.Z9  
                            ErrMsg.AddItem "表格编号错误:" & ParaText n1(X%%2  
                   Z?' |9FM  
                    End If "q/M8  
                    '图片名称段落设置 格式:图1. 图名称 jUSr t)o03  
                    .Paragraphs(paraCounter).Range.Text = rText 4H)" d  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" Ka\b_P&  
                    .Paragraphs(paraCounter).Range.Select #de^~  
                    Selection.EndKey unit:=wdLine XqH<)B ]  
                    xe = Replace(rText, vbCr, "") x.Ml~W[  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False i4rF~'h@  
                Case "正文" qDd/wR,44  
                     '正文名称段落设置 NP*0WT_gB  
                    .Paragraphs(paraCounter).Style = "QLNU正文" VVl-cU  
               Case "文献条目" E2kRt'~N  
                    With .Paragraphs(paraCounter) qJt gnk|  
                        '.Range.Select a\_,_psK  
                        'Selection.ClearFormatting Q 9<_:3  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” @\}36y  
                        .Style = "QLNU参考文献"  F]#fl%  
                    End With T=dvc}  
               Case "图表注解" zL8A?G)= M  
                    With .Paragraphs(paraCounter) R_n-&d 'PP  
                        .Range.Font.NameFarEast = "楷体" E}&jtMRUt  
                        .Range.Font.NameAscii = "Times New Roman" oz@6%3+  
                        .Range.Font.Size = 9 '小5号字 Yb{t!KL  
                         !r0P\  
                        .Alignment = wdAlignParagraphCenter nn%xN\~<  
                        .LeftIndent = 0 Rj`Y X0?+  
                        .RightIndent = 0 Qo *]l_UO;  
                        .FirstLineIndent = 0 *7ro [  
                        .LineSpacing = 12 K({,]<l5  
                        .LineSpacingRule = wdLineSpaceExactly kk+8NwM1  
                        .LineUnitAfter = 0 eJp-s" %  
                        .LineUnitBefore = 0 (k&aD2PH  
                        .OutlineLevel = wdOutlineLevelBodyText yv4PK*  
                        .PageBreakBefore = False Pv.@Y 30  
                        .RightIndent = 0 D+""o"%  
                        .WordWrap = True j)qh>y)  
                        .LineUnitAfter = 0.5 P< x  
                         <t37DnCgI  
                    End With IuW10}"9  
                Case Else }h6z&:qA[?  
                    '不作处理 (C@@e'e  
            End Select L]<4{8H.  
             F &}V65  
            '含有inlineshape的段落处理 rapca'&#  
            If ShapeHeight > 30 Then {hR2NUm  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 0|;=mYa4M  
            End If E/']M~Q  
             k"{U}Y/}  
            If (ShapeWidth + ShapeHeight) > 150 Then $7d"9s\$"  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" 9(j!#`O7&  
            End If UOOme)\>  
             R, 1,4XT  
            '段落计数器递 TeqsP1{?  
            paraCounter = paraCounter + 1 uK5x[m  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter nB0 ol-<  
            Me.txtStatus.Text = ParaText ? d\8Q't*  
            DoEvents N@0scfO6<  
        Loop We?:DM [  
    End With x)L@x Q  
     Dx'e+Bm  
    msg = "" [Cp{i<C  
     .p>8oOp  
    For i = 0 To Me.ErrMsg.ListCount - 1 = g}yA=.  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) nB& 8=.  
    Next =>*N W9c  
     ]]3D` F}  
     `,d7_#9'  
     epyfgg MT  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg 3vU (4}@  
    Me.cmdCheck.Enabled = True cyNLeg+O*  
    Me.txtStatus.Visible = True Q4q#/z  
    Me.lbParaType.Visible = False =C)1NJx&~  
     Zh^w)}(W  
    bContinue = False `oBzt |f5  
End Sub bp,CvQ'}a  
Kjw\SQ)2~  
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) _s8_i6 Y  
    Dim pTEXT As String 1PSb72h<  
      ?~IZ{!  
    pTEXT = ChKRange.Text {H2i+"cF  
     PM7/fv*,  
    ParaType = "其它" 54w-yY  
    TitleString = pTEXT CV"Y40  
    TitleNo = "N/A" "QS7?=>*F  
     55p=veq \  
    shpCounter = ChKRange.InlineShapes.Count E:k?*l  
    If shpCounter <> 0 Then >,3 3Jx  
        MaxShpHeight = 0: TotalShpWidth = 0 I r~X#$Upc  
        For i = 1 To shpCounter cC.DBYV+-  
            k = ChKRange.InlineShapes(i).Height 7!%"8Rl-  
            l = ChKRange.InlineShapes(i).Width Q>$L;1E*,  
            If k > MaxShpHeight Then {8RGW0 Y  
                MaxShpHeight = k y9)",G!  
            End If yk2j&}M  
            TotalShpWidth = TotalShpWidth + l 9#!tzDOtD  
        Next sN2l[Ous  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then {eUfwPAa3  
            Exit Sub >k|[U[@  
        End If Dzr5qP?#  
    End If e.V){}{V  
     ,RQ-w2j?  
    '空行 2wQ CQ"  
    If Len(pTEXT) <= 2 Then aK'r=NU  
        Exit Sub PK" C+o;:  
    End If SZvsJ)  
     to7) gOX(  
         i;Y^}2   
    '是否为表格中的文字 Xk'.t|  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then KK</5Aw9p  
        ParaType = "表格内容" ( Iew%U  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) J~.kb k  
        If k = 1 Then W(YJz#]6_  
            ParaType = "表格首行" <H6Uo#ao  
        End If <!^Z|E  
        Exit Sub *gVv74;;  
    End If {wI0 =U  
     NY x4& *le  
    '例外情况:脚注 n} {cs  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then =P{RHhWy;  
        ParaType = "脚注" Di*>PE@  
        Exit Sub M.xEiHz  
    End If e{&gF1" [  
     :xCobMs_/  
    '例外情况:尾注 rY}ofq7b  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then BL67sva;  
        ParaType = "尾注" YP l{5 =  
        Exit Sub 9lv 2  
    End If tO7{g  
     qv\yQ&pj  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then rej[G!   
        ParaType = "页眉页脚" p<4':s;*  
        Exit Sub wn`budH?c8  
    End If *Y Ox`z!R  
     ) |vFrR  
     whCv9)x  
    With regEX Ek3O{<  
        .Global = True g 7X>i:  
         ?9+;[X  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" 2+PIZ6=hN  
        If regEX.Test(pTEXT) Then 4<|u~n*JF  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") Q*: Ow]  
            TitleString = regEX.Replace(pTEXT, "$3") ]mSVjF3l  
            TitleNo = regEX.Replace(pTEXT, "$1") 7[L C*nrr  
            ParaType = "章" {y'k wU  
            Exit Sub {Hu0  
        End If &kvVMn ok  
         jLTs1`I/F  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" Sf9+TW  
        If regEX.Test(pTEXT) Then t A t+5H  
            ParaType = "一级标题" GcuZPIN%D  
            regEX.Execute (pTEXT) K-ebAaiC  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") k"J?-1L  
            TitleString = regEX.Replace(pTEXT, "$3") EcU9Tm `h  
            TitleNo = regEX.Replace(pTEXT, "$1") AI2CfH#:C  
            Exit Sub OK=t)6&b  
        End If Sgj6tH2M  
         TL>e[ PBO  
        '全角或半角括号中的数字 5 *_#"  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" ]7;;uhn`  
        If regEX.Test(pTEXT) Then 'mF}+v^   
            ParaType = "二级标题" |UG)*t/  
            regEX.Execute (pTEXT) xpz Jt2S  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") kel48B  
            TitleString = regEX.Replace(pTEXT, "$5") [z\*Zg  
            TitleNo = regEX.Replace(pTEXT, "$2") rQJoaP+\q  
            Exit Sub _wBPn6gg`  
        End If lV8Mr6m  
         F/8y p<_r  
        '阿拉伯数字  1. 2. &D : 88   
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" +Q.[W`goV  
        If regEX.Test(pTEXT) Then ?W()Do1tR  
            ParaType = "三级标题" I8y\D,  
            regEX.Execute (pTEXT) v;S JgZK  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 @ 55Y2  
            TitleString = regEX.Replace(pTEXT, "$3") +\4[email protected]  
            TitleNo = regEX.Replace(pTEXT, "$1") C$8=HM3  
            Exit Sub V6Y!0,w!a  
        End If 6%TV X  
         *3|KbCX  
        '全角或半角括号中的阿拉伯数字 L6T_&AiL$  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" eC?N>wHH  
        If regEX.Test(pTEXT) Then zx27aZ[  
            ParaType = "四级标题" Y%3j >_\;  
            regEX.Execute (pTEXT) _N6GV$Q  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") Eq t61O$x  
            TitleString = regEX.Replace(pTEXT, "$5") k.%F!sK  
            TitleNo = regEX.Replace(pTEXT, "$2") TUG3#PSnm*  
            Exit Sub -t]0DsPg  
        End If 8Xr"4;}f+  
         x)*[>d2yd  
        '表格名称 2s ngi@\  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" R##O9BSI8Z  
        If regEX.Test(pTEXT) Then Ch3##-  
            ParaType = "表格标题" 8MIHp[vm%  
            regEX.Execute (pTEXT) HM/ q B^  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3"))  l}JVRU{  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) WVZ\4y  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) 8g\.1<~  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 3I]5DW %-  
            Exit Sub Jm kJ^-A 6  
        End If 5gGr|d|(  
         [{YV<k N  
        '图片名称 gIeo7>u  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" &PbH!]yd  
        If regEX.Test(pTEXT) Then l<5!R;?$  
            ParaType = "图片标题" ~1p f ?  
            regEX.Execute (pTEXT) Y3?kj@T`i  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") )jg3`I@  
            TitleString = regEX.Replace(pTEXT, "$3") [*fnTy  
            TitleNo = regEX.Replace(pTEXT, "$1") N}\i!YUD  
            Exit Sub \2YhI0skW  
        End If ||qW'kNWM  
         <T['J]k%  
        '参考文献 &A~1Q#4  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 ;Bm{_$hf=  
        If regEX.Test(pTEXT) Then nN[,$`JD,  
            ParaType = "文献条目" !T}`h'  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") \a<E3 <  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") m9/a!|fBE  
            Exit Sub Ex<loVIrP$  
        End If 52 oR^ |  
         N'4*L=Ut  
        prfx = Left(pTEXT, 2) /Mv'fich(  
        If prfx = "注:" Or prfx = "注:" Then .fgoEB,(  
            ParaType = "图表注解" F)C8LH  
            Exit Sub YV+e];s  
        End If T"O!  
         g& {YHq^+  
         QFMS]  
        ParaType = "正文" xe d$z  
         gCmGFQE-f  
    End With X:YxsZQ 5Y  
End Sub uaiG (O   
<R2bz1!h.  
Sub ConvertListToOrdinary() "QMHY\C  
    Dim st As Paragraph pcE.  
    With ActiveDocument k,2% %m  
        For i = .Paragraphs.Count To 1 Step -1 t;'__">:q  
            Set st = .Paragraphs(i) t^q/'9Ai&J  
            lst = st.Range.ListFormat.ListString 5QlJX  
            If lst <> "" Then jsuQ R  
                st.Range.ListFormat.RemoveNumbers "YivjHa7H  
                st.Range.InsertBefore lst & " " yt?# T #  
            End If }G]]0Oi2  
        Next %lujme  
    End With h<?Vzl  
    Set st = Nothing x[]n \\a?  
End Sub ak%8|'}  
#p^D([k \  
Private Sub UserForm_Activate() sviGS&J9h  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" k vb"n}  
    Me.lbTotal.Font.Bold = True _$r+*nGDz  
    Me.txtStatus.Visible = False bp }~{]:b  
    Me.cmdCheck.Enabled = True 1Z`zdZs  
fSj^/>  
End Sub @ ~PL|Pp_  
3 Tt8#B  
74Lq!e3hMF  
Sub CheckSuperScript() &4DWLI  
    Selection.Find.ClearFormatting 56fcifXz@  
    Selection.Find.Replacement.ClearFormatting d6u L;eR  
    With Selection.Find 1_A< nt?'R  
        .Text = "[【\[[〖](*)[】\]〗]]" /Z^+K  
        .Replacement.Text = "[\1]" nF=h|rN  
        .Replacement.Font.Superscript = True dme_Ivt  
        '.Replacement.Font.Color = wdColorBlue wEdXaOEB5  
        .Forward = True a}6Wo=  
        .Wrap = wdFindContinue Q.x3_+CX  
        .FORMAT = True 'E9\V\bi  
        .MatchCase = False ZW2U9  
        .MatchWholeWord = False cEe>Lyt  
        .MatchByte = False ss*dM.b  
        .MatchAllWordForms = False (u *-(  
        .MatchSoundsLike = False 'Ic$p>  
        .MatchWildcards = True {&xKS WNc  
    End With /MA4Er r  
    Selection.Find.Execute Replace:=wdReplaceAll X4jtti  
End Sub 905 /4z'  
s+aeP  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) X"yLo8y8$  
    bContinue = False ALhu\x>AY  
    Set regEX = Nothing d35,[  
End Sub q?`bu:yS  
S^3I"B  
Sub CeateOrModifyStyle() B7cXbUAQs  
' ^*Sb)tu\ W  
' *\emRI>  
Dim stl As Style }_K7}] 1  
     ^X^4R1V)  
    Options.Pagination = False f)>=.sp  
     ?>2k>~xlQ  
    On Error Resume Next DEs/?JZG  
    For Each stl In ActiveDocument.Styles v=!]t=P)t  
        stl.Delete m!g f!  
    Next k5((@[  
    On Error GoTo 0 K?) &8S  
     b?y3m +V`  
    Set stl = Nothing Q~nc:eWD  
     )8yNqnD  
    DoEvents > xT8[  
    On Error Resume Next }=NjFK_6  
     r.[9/'>  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph tv5SQ+AI3  
     XJ.vj+XXb  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph J@52<.>6  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph ZZ#S\*  
     M5wj79'l"  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph t|1?mH9  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph  a(F%M  
     #5F\zeo@F?  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph %;GDg3L[p  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph {@k5e) Q  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph 60Y&)UR  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph 7Y:1ji0l  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph QD<f) JZK  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph ~h -0rE  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph ^[2A< g  
     _E3*;  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph 5MT$n4zKu  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph T C'tui  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph (,[Oy6o  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph :dK/}S0  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph 3#W>  
     LEG y1L  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph |*Hw6 m  
    On Error GoTo 0 ;: f.a(~c  
    DoEvents YeT[KjX  
     MC^H N w  
    'BaseStyle 7&E3d P  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False 5EM(3eY^q  
    With ActiveDocument.Styles("BaseStyle").Font 4&} LYSZl  
        .NameFarEast = "宋体" ,'[0tl}8K  
        .NameAscii = "Times New Roman" K%.\@l2Cp  
        .NameOther = "宋体" H{yeN 5   
        .Size = 10.5 :2}zovsdj  
        .Bold = wdUndefined 9%pq+?u9  
        .Italic = wdUndefined 2ACN5lyUS  
        .Subscript = wdUndefined tv5G']vO\  
        .Subscript = wdUndefined }PD? x4  
         I6~.s Tl  
        .Underline = wdUnderlineNone ml\A)8O]j/  
        .UnderlineColor = wdColorAutomatic }5\F<b^@Y  
        .StrikeThrough = False Y`w+?}(M  
        .DoubleStrikeThrough = False :A>cf}  
         z.--"cF  
        .Outline = False *zJ}=%)f  
        .Emboss = False 4Z,MqG >  
        .Shadow = False \IIR2Xf,K  
        .Hidden = False nKT\/}d  
        .SmallCaps = False fM6Pw6k  
        .AllCaps = False ) m[0,  
        .Color = wdColorAutomatic YRqIC -_  
        .Engrave = False YP/BX52 v  
        .Scaling = 100 eVS6#R]'m  
        .Kerning = 1 >2TDYB|;  
        .Animation = wdAnimationNone m!V ?xGKJ  
        .DisableCharacterSpaceGrid = False V0XQG}  
        .EmphasisMark = wdEmphasisMarkNone ;~3CuN8  
    End With xh,};TS(K  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat xM 'bb5  
        .LeftIndent = 0 \}Z5}~S  
        .RightIndent = 0 eNR>W>;'  
        .SpaceBefore = 0 K} LmU{/t/  
        .SpaceBeforeAuto = False  [td) v,  
        .SpaceAfter = 0 >:WnCkbp  
        .SpaceAfterAuto = False WL:C BE#  
         h@&& .S`B  
        .LineSpacingRule = wdLineSpaceSingle !ffdeWHR  
        .Alignment = wdAlignParagraphJustify HTA Jn_  
         f.4r'^  
        .WidowControl = False f%;8]a9  
        .KeepWithNext = False S{&,I2 aO  
        .KeepTogether = False N[:;f^bH49  
        .PageBreakBefore = False To.CY^M  
        .NoLineNumber = False nDhr;/"i  
         8HDYA$L  
        .FirstLineIndent = CentimetersToPoints(0) sA[hG*#/S  
        .OutlineLevel = wdOutlineLevelBodyText qS:hv&~  
        .CharacterUnitLeftIndent = 0 [LbUlNq^B@  
        .CharacterUnitRightIndent = 0 -A^18r  
        .CharacterUnitFirstLineIndent = 0  8c3Qd  
        .LineUnitBefore = 0 @lRTp  
        .LineUnitAfter = 0 ,3=|a|p  
        .AutoAdjustRightIndent = True [> Q+=(l  
        .DisableLineHeightGrid = True 9KkxUEkW  
         &Ba` 3V\M  
        .FarEastLineBreakControl = True UiO%y  
        .WordWrap = True Wxx? iW ,  
        .Hyphenation = False Cz` !j  
         >{C=\F#*L  
        .HangingPunctuation = True j#hFx+S  
        .HalfWidthPunctuationOnTopOfLine = True hCS|(8g  
        .AddSpaceBetweenFarEastAndAlpha = True h\k@7wgu  
        .AddSpaceBetweenFarEastAndDigit = True kr[p4X4  
        .BaseLineAlignment = wdBaselineAlignBaseline Gm~jC <  
    End With  Y[#EFM  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False @z[,w`  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll V.?N29CA|  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese MOi.bHCQJP  
    ActiveDocument.Styles("BaseStyle").NoProofing = False WBvh<wTw;  
     d0vn/k2I  
    '一级标题题样式 ' ,$Uw|N  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") /}t>o* x  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" CY"&@v1  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False ZCVwQ#Xe+  
    With ActiveDocument.Styles("QLNU一级标题").Font M{w[hV  
        .NameFarEast = "黑体" I&%{%*y  
        .NameAscii = "Arial Black" a\;Vly;  
        .NameOther = "黑体" [uqe|< :  
        .Name = "黑体" ~gg(i"V  
        .Size = 16              '三号 ]?tC+UKb  
        .Bold = True l];w,(u{  
        .Italic = wdUndefined ra2sYH1wr  
        .Subscript = wdUndefined O/ Yz6VQ  
        .Superscript = wdUndefined d^p af  
    End With X:PB }  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat LhO%^`vu  
         [$:M/5y9  
        .LeftIndent = CentimetersToPoints(0) D+.< kY.  
        .RightIndent = CentimetersToPoints(0) M$iDaEu-  
        .FirstLineIndent = CentimetersToPoints(0) 'RZ=A+%X  
         2O;Lw@W  
        .LineSpacingRule = wdLineSpaceSingle : .Y  
        .Alignment = wdAlignParagraphCenter >zx]% W  
         oe$&X&  
        .WidowControl = True qz[qjGdHg  
        .KeepWithNext = True |, #DB  
        .KeepTogether = True >U .  
        .OutlineLevel = wdOutlineLevelBodyText sxc^n aK0  
         7/C,<$Ep  
        .LineUnitBefore = 0.5 > ka*-8 ?  
        .LineUnitAfter = 0.5 $De14  
    End With nE;^xMOK!  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False nK[T.? Nz  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll Av6=q=D  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese HGIPz{/5U  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True >v--R8I*  
    DoEvents =A[:]),v  
     %c:v70*h=  
    '二级 #y;TSHx/  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") {EU?{ #  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" qM}Uk3N0  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False PW7{,1te,  
    With ActiveDocument.Styles("QLNU二级标题").Font NX.%Rj*  
        .NameFarEast = "黑体" b/;!yOF  
        .NameAscii = "Arial Narrow" {<$ D|<S  
        .NameOther = "黑体" tjLp;%6e  
        .Name = "黑体" Lxz!>JO>  
        .Size = 15        '小三号 NEp )V'  
        .Bold = False "  ,k(*  
        .Outline = False i;Y3pF0%P  
        .Italic = wdUndefined PY.4J4nn|  
        .Subscript = wdUndefined {P/ sxh:e  
        .Superscript = wdUndefined #x|xL7  
    End With _:" PBN9  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat V}=%/OY?  
        .LeftIndent = CentimetersToPoints(0) o^ Z/~N  
        .RightIndent = CentimetersToPoints(0) f+3ico]f@  
        .FirstLineIndent = CentimetersToPoints(0) }#'I,?_k  
         dRC RB  
        .LineSpacingRule = wdLineSpaceSingle ygI81\ D  
        .Alignment = wdAlignParagraphLeft FVY$A =G  
         _%M+!Ltz  
        .WidowControl = True Z8mSm[w  
        .KeepWithNext = True Em6P6D>S>,  
        .KeepTogether = True P}kBqMM  
        .PageBreakBefore = False uT1xvXfqP  
        .OutlineLevel = wdOutlineLevelBodyText TEB<ia3 +  
         ,zXP,(x  
        .LineUnitBefore = 0.5 )\K;Ncp[  
        .LineUnitAfter = 0.5 cl2+,!:  
         Z/ w}so  
    End With {p.D E  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False f[r?J/;P9  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll %*:X FB  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese ;zq3>A  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True sVzU>  
    DoEvents (p6$Vgdt  
     3jR>   
    '三级标题样式 0' m$hU}  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") MC\rx=cR\  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" cl\Gh  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False xbUL./uj  
    With ActiveDocument.Styles("QLNU三级标题").Font ''. P=  
        .NameFarEast = "宋体" GTYCNi66  
        .NameAscii = "Times New Roman" 4S9hz  
        .NameOther = "黑体" ppYIVI  
        .Name = "黑体" R k'5L  
        .Size = 14               '四号 |aWeo.;c  
        .Bold = False Q5K<ECoPk  
        .Outline = False M8Tj;ATr  
        .Italic = wdUndefined skSs|slp  
        .Subscript = wdUndefined y&A 0}>a:d  
        .Superscript = wdUndefined pk>p|q  
    End With A8|DB@ Bi  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat }253Q!f  
        .LeftIndent = CentimetersToPoints(0) 7tZvz `\  
        .RightIndent = CentimetersToPoints(0) +,8j]<wpo  
        .FirstLineIndent = CentimetersToPoints(0) ko7*9`  
         c qWX*&2_  
        .LineSpacingRule = wdLineSpaceSingle yLFZo"r  
        .Alignment = wdAlignParagraphLeft #k}x} rn<'  
         'J[ n}r  
        .WidowControl = True $nf5bo/;  
        .KeepWithNext = True ,q_'l?Pn  
        .KeepTogether = True { :@MBA 34  
        .PageBreakBefore = False 8,VX%CS#q  
        .OutlineLevel = wdOutlineLevelBodyText J~jxmh  
         S{uKm1a  
        .CharacterUnitLeftIndent = 0 yiT)m]E d  
        .CharacterUnitRightIndent = 0 <t~RGn3  
        .CharacterUnitFirstLineIndent = 2 H]I^?+)9  
         2D'b7zPJ3  
        .LineUnitBefore = 0.5 P }BU7`8  
        .LineUnitAfter = 0 uDe%M  
    End With  H8lh.K  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False Nd;) V  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll fCMFPhF  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese ='rSB.$Ctk  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True ' \8|`Zb  
    DoEvents o x|K2A  
     An.Qi=Cv  
    '四级标题样式 V?[dg^*0  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") n PAl8  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" !k5I#w:  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False \Ei(HmEU  
    With ActiveDocument.Styles("QLNU四级标题").Font ,V`zW<8  
        .NameFarEast = "宋体" 7NQ@q--3s  
        .NameAscii = "Times New Roman" A vh"(j  
        .NameOther = "宋体" BI|BfO%F$j  
        .Name = "宋体" 5u:{lcC.X  
        .Size = 12               '小四号 Tr\6 AN?o  
        .Bold = True jWUpzf)q=T  
        .Outline = False n "J+? ~9  
        .Italic = wdUndefined t%k1=Ow5i  
        .Subscript = wdUndefined +KcD Y1[  
        .Superscript = wdUndefined $T#yxx  
    End With M94zlW<  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat E\_Wpk  
         C<G`wXlP|  
        .LeftIndent = CentimetersToPoints(0) tMy<MO)Ei  
        .RightIndent = CentimetersToPoints(0) isF jJPe  
        .FirstLineIndent = CentimetersToPoints(0) \c1NIuJR  
         &x mYpQ  
        .LineSpacingRule = wdLineSpaceSingle 2SABu796j  
        .Alignment = wdAlignParagraphLeft 9y$"[d27;+  
         {e/6iSpT  
        .WidowControl = True 03)R_A  
        .KeepWithNext = True 3oo Tn-`{  
        .KeepTogether = True i!n Piac  
        .PageBreakBefore = False K|a ^<| S  
        .OutlineLevel = wdOutlineLevelBodyText vG2&qjY1  
         S7(Vc H  
        .CharacterUnitLeftIndent = 0 g %e"KnU  
        .CharacterUnitRightIndent = 0 U%PII>s'#  
        .CharacterUnitFirstLineIndent = 2 r.~^h^c]  
         C@P4}X0,=  
        .LineUnitBefore = 0 fR^ aFT  
        .LineUnitAfter = 0 g!![%*' b  
         ;)c 4  
    End With Yw!(]8PYdU  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False ,ve$bSp  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll P}2waJe  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese  ?|$IZ9  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True 9im<J'  
    DoEvents q@+#CUa&n  
     <+r<3ZBA  
    '正文校式 mh$Nwr/W:  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") n[f<]4<  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" <H]1 6  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False n !oxwA!  
    With ActiveDocument.Styles("QLNU正文").Font f7du 1k3  
         [t {ed)J  
        .NameFarEast = "宋体" rn8#nQ>QZ%  
        .NameAscii = "Times New Roman" Q>QES-.l  
        .NameOther = "宋体" ,Oj 53w=  
        .Name = "宋体" ;,&$ob*/  
         h%=>iQ%enc  
        .Size = 12               '小四号 ;ND)h pD+  
         wOg?.6<Kxa  
        .Bold = wdUndefined 6xC$R q  
        .Italic = wdUndefined ^_0l(ke  
        .Subscript = wdUndefined <\6<-x(H5  
        .Superscript = wdUndefined 5 0KB:1(g  
         Jx-dWfe  
        .Outline = False +\D?H.P  
        .Emboss = False A}h`%b  
        .Shadow = False *z3wm-z1&  
        .Hidden = False h ycdk1SN  
         }i\U,mH0_&  
        .DisableCharacterSpaceGrid = True ]+)cXJ}6#  
    End With Vmb `%k20'  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat iC`mj  
         F Cp\w1+  
        .LeftIndent = CentimetersToPoints(0) wF\5 X  
        .RightIndent = CentimetersToPoints(0) 7j//x Tr}a  
        .FirstLineIndent = CentimetersToPoints(0) No(p:Snbo  
          ohW qp2~  
        .LineSpacingRule = wdLineSpaceExactly 9FKowF_8  
        .LineSpacing = 20 $Y3mO ~  
        .Alignment = wdAlignParagraphLeft %fzZpd]v=,  
         %=G*{mK  
        .WidowControl = False ]ysEj3  
        .KeepWithNext = False i,R+C.6{  
        .KeepTogether = False I5$]{:L|9  
        .PageBreakBefore = False }$wWX}@  
        .Hyphenation = False U%qE=u-  
         P_y8[Y]?  
        .OutlineLevel = wdOutlineLevelBodyText `9>1 w d  
         i| /EA7  
       ?z/ )Hkw  
        .CharacterUnitLeftIndent = 0 (Z)F6sZ`8  
        .CharacterUnitRightIndent = 0 W&'[Xj  
        .CharacterUnitFirstLineIndent = 2 ?E2$  
         6~O9|s^38w  
        .LineUnitBefore = 0 9~lC/I')t  
        .LineUnitAfter = 0 QVq+';cG  
        .SpaceBefore = 0 4r+s" |  
        .SpaceAfter = 0 >vny9^_  
         ]hC6PKJU  
        .DisableLineHeightGrid = True F-&=N {+  
    End With }iBFo\vU  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False P)k!#*  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll PSR21;  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese xn BL{ []  
    ActiveDocument.Styles("QLNU正文").NoProofing = True xkPH_+4i8  
    DoEvents 6 h%%?  
     R{0nk   
    '图片段落样式 #y2IHO-  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") VKtZyhK"h  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" s<hl>vY_'  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False um}%<Cy[  
    With ActiveDocument.Styles("QLNU图片段落").Font  ]$=\zL  
        .Size = 12               '小四号 i p"LoCE  
        .Italic = wdUndefined gd=gc<zYP  
        .Subscript = wdUndefined mAZfo53  
        .Superscript = wdUndefined )^q7s&p/  
    End With dPx{9Y<FzU  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat *? <ygzX  
         +T,Yf/^Fn  
        .LeftIndent = CentimetersToPoints(0) 7#G8qh<  
        .RightIndent = CentimetersToPoints(0) x<lY&KQ0  
        .FirstLineIndent = CentimetersToPoints(0) !h[xeLlU  
         :Y\!~J3W  
        .LineSpacingRule = wdLineSpaceSingle ,+mH1#-3  
        .Alignment = wdAlignParagraphCenter 6|HxBC#4  
        .KeepWithNext = True {OBV+ }#  
        .OutlineLevel = wdOutlineLevelBodyText 6!Z>^'6  
         m R|;}u;d  
        .CharacterUnitLeftIndent = 0 DX\|*:,  
        .CharacterUnitRightIndent = 0 6.(L8.jv  
        .CharacterUnitFirstLineIndent = 0 !\(j[d#  
         \])-Bp ,  
        .LineUnitBefore = 0 /ZpwJc`e  
        .LineUnitAfter = 0 Jp#Onl+d6  
    End With #@^mA{Dt5  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False 3;t{V$  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll M&q3xo"w  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese wx]r{  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True w15Qqh lK  
    DoEvents I%#&@  
     ,!i!q[YkL9  
     9=FqI50{  
    '第X章 O3];1ud  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 3Gyw^_{J  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle"  }s>.Fh  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False ROWrkJI>i  
    With ActiveDocument.Styles("QLNU章节标题").Font O S%  
        .NameFarEast = "黑体" L';b908r2  
        .NameAscii = "Arial Black" {%! >0@7  
        .NameOther = "Arial Black" ]A%S&q  
        .Name = "黑体" UU;U,q  
        .Size = 16 -rXo}I,VI  
        .Bold = True `COnb@uD  
        .UnderlineColor = wdColorAutomatic !YZ$WiPl  
        .Outline = False :rcohzfa  
        .Italic = wdUndefined 6upCL:A~r  
        .Subscript = wdUndefined L?:fyNA3[  
        .Superscript = wdUndefined Kx<T;iJ}  
        .Scaling = 100 [)S7 `K;  
        .DisableCharacterSpaceGrid = True QswbIP/>:'  
    End With 8+=-!": ]  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat ~bsL W:.'  
        .LineSpacingRule = wdLineSpaceSingle >r8$vQGj  
        .Alignment = wdAlignParagraphCenter 1v2pPUH\  
        .WidowControl = True >v9@p7Dn  
        .KeepWithNext = True 4n 9c  
        .KeepTogether = True F&[MyXU4  
        .PageBreakBefore = True Xpp%j  
        .OutlineLevel = wdOutlineLevelBodyText -z6{!  
         <^v-y)%N:A  
        .LeftIndent = CentimetersToPoints(0) E|`JmfLQu  
        .RightIndent = CentimetersToPoints(0) 9~Ve}NB#z&  
        .FirstLineIndent = CentimetersToPoints(0) NBaXfWh  
         |Js?@  
        .CharacterUnitLeftIndent = 0 +61h!/<W  
        .CharacterUnitRightIndent = 0 "gQA|NHwV  
        .CharacterUnitFirstLineIndent = 0 Q}(D^rGP3  
         5U[ bn=n  
        .LineUnitBefore = 1 H-ewO8@  
        .LineUnitAfter = 0.5 7!kbe2/]'  
         DM[gjfMXu  
        .AutoAdjustRightIndent = False h F4gz*Q  
        .DisableLineHeightGrid = True FM=- ^l,  
        .FarEastLineBreakControl = True |w)S &+  
        .WordWrap = True zh6 0b{  
    End With 0[QVU,]<  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False ;mtv  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll +ia N[F$  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese .R! /?eN  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True pGHn   
    DoEvents bayDdR4T  
      L4 )  
    '表格标题 6f^q >YP  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 1O@y >cV  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" XxeyGs^%9  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False RX6s[uQ  
    With ActiveDocument.Styles("QLNU表格标题").Font }g]O_fN7~  
        .NameFarEast = "楷体" g$a 5  
        .NameAscii = "Arial" ^PrG5|,s  
        .Name = "楷体" jYJRG<*e  
        .Size = 10.5 q?TI(J+/  
        .Bold = True 7!r)[2l  
        .Underline = wdUnderlineNone f0Zn31c^  
        .Italic = wdUndefined ~P@6f K/M  
        .Subscript = wdUndefined b xFDB^  
        .Superscript = wdUndefined ?x-:JME0  
        .Color = wdColorAutomatic PYPDK*Ie  
    End With "(cMCBVYdA  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat Fmo^ ?~b  
         oy< q;'  
        .LineSpacingRule = wdLineSpaceSingle O\=c&n~`  
        .Alignment = wdAlignParagraphCenter lAZn0EU  
        .KeepWithNext = True PEIf)**0N  
        .KeepTogether = True Hs>|-iDs(  
        .OutlineLevel = wdOutlineLevelBodyText J*}Qnl+  
         Sn~h[s_(  
        .LeftIndent = CentimetersToPoints(0) S#g=;hD  
        .RightIndent = CentimetersToPoints(0) 2Ysl|xRo  
        .FirstLineIndent = CentimetersToPoints(0) ]Ac&h aAP  
         b$O1I[o  
        .CharacterUnitLeftIndent = 0 j 5{ "j  
        .CharacterUnitRightIndent = 0 Z.x9SEe1t  
        .CharacterUnitFirstLineIndent = 0 m:4Ec>?e  
         *B ]5K{N  
        .LineUnitBefore = 1 6O9?":3;  
        .LineUnitAfter = 0 ?jy6%Y#,i  
         8*[Q{:'.  
    End With S(MVL!Lm  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False rV6SN.  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll (Ymj  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese FXd><#U  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True W^sH|2g  
    DoEvents P S [ifC  
p^/6Rb"e  
    '表格首行 U|!L{+F  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") 2 5m6/Y  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False ,'>,N/JA  
    With ActiveDocument.Styles("QLNU表格首行").Font $EUlh^  
        .NameFarEast = "楷体" l$mfsm|{:  
        .NameAscii = "Times New Roman" pjaDtNb  
        .Name = "楷体" |WMP_sGn  
        .Size = 9 B33H,e)  
        .Bold = True qQ=\R1l  
        .Underline = wdUnderlineNone 8<X,6  
        .Italic = wdUndefined %"{jNC?  
        .Subscript = wdUndefined QT[yw6Z  
        .Superscript = wdUndefined ` fm^#Nw  
    End With Th%2pwvER  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat ujH ^ML  
        .LineSpacingRule = wdLineSpaceSingle E>2~cC*  
        .Alignment = wdAlignParagraphCenter q\q8xF~[p  
         X@cO` P  
        .LeftIndent = CentimetersToPoints(0) <-avC/M$d  
        .RightIndent = CentimetersToPoints(0) {L9WeosQ  
        .FirstLineIndent = CentimetersToPoints(0) NJ];Ck  
         +,$ SZO]  
         N sNk  
        .CharacterUnitLeftIndent = -0.5 e/* T,ZJ  
        .CharacterUnitRightIndent = -0.5 6B .x=  
        .CharacterUnitFirstLineIndent = -0.5 :3$$PdZ  
         uFH ]w] X  
        .LineUnitBefore = 0 ;wF 0s  
        .LineUnitAfter = 0 4,.B#: 8  
        .SpaceBefore = 0 ImZ!8#  
        .SpaceAfter = 0 E%tGwbi7  
         Qe,aIh  
    End With n$z+g>~N  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False AQR/nWwx  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll mYRW/8+g  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese B^yA+&3HI  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True QO|roE  
    DoEvents }Ud'j'QMy  
Ce/D[%  
    '表格内容 wlFK#iK  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") 3/ '5#$  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False ny}_^3  
    With ActiveDocument.Styles("QLNU表格内容").Font kjF4c6v  
        .NameFarEast = "楷体" ;]l`Q,*OXb  
        .NameAscii = "Times New Roman" *G8Z[ht%r  
        .Name = "楷体" cI'su?  
        .Size = 9 Z#%s/TL  
        .Bold = False CT/>x3o  
        .Underline = wdUnderlineNone ^fj30gw7\5  
        .Italic = wdUndefined 9\VV++}s>o  
        .Subscript = wdUndefined AO,^v+ $  
        .Superscript = wdUndefined Fh4Exl@6  
    End With a Z8f>t1Q  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat aUi^7;R&<  
        .LineSpacingRule = wdLineSpaceSingle y9U~4  
        .Alignment = wdAlignParagraphCenter &ZL4/e  
         q)3QmA~  
        .LeftIndent = CentimetersToPoints(0) x^Zm:Jrw~  
        .RightIndent = CentimetersToPoints(0) b$sT`+4q  
        .FirstLineIndent = CentimetersToPoints(0) OHv4Yy]$B  
         hd W7Qck"  
        .CharacterUnitLeftIndent = -0.5 QYEGiT   
        .CharacterUnitRightIndent = -0.5 a1shP};pK  
        .CharacterUnitFirstLineIndent = -0.5 u s8.nL/  
        .LineUnitBefore = 0 <m,bP c :R  
        .LineUnitAfter = 0 u{cb[M  
        .SpaceBefore = 0 oDWNOw  
        .SpaceAfter = 0 v0(_4U]/  
    End With 9 ^=kt 2[  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False >FS}{O2c  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll gnadx52FP  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese  K{9  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True ?u5jX J0L  
    DoEvents KMx '(  
7- |N&u  
    '图片标题 hh[x(O)TC~  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") -^JPY)\R  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" Myf2"\}  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False 9&zQ 5L>  
    With ActiveDocument.Styles("QLNU图片标题").Font p]qz+Z/  
        .NameFarEast = "楷体"  i (`Q{l  
        .NameAscii = "Times New Roman" WidLUv   
        .Name = "楷体" C@g/{?\  
        .Size = 10.5 'vV+Wu#[  
        .Bold = True R[l~E![!j  
        .Underline = wdUnderlineNone ]*D~>q"#\  
        .Italic = wdUndefined T^ - -:1  
        .Subscript = wdUndefined '$[a-)4  
        .Superscript = wdUndefined oA8A @,-L  
        .Outline = False o$#q/L  
        .Shadow = False &7 9F Uac  
        .Color = wdColorAutomatic Bkg./iP5x  
    End With I#'yy7J  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat !{CaW4  
        .LineSpacingRule = wdLineSpaceSingle d.Q<!Au3  
        .Alignment = wdAlignParagraphCenter c`/kx  
         p!EG:B 4  
        .KeepWithNext = wdUndefined Rm}G4Pq  
        .KeepTogether = True w~3z) ;  
        .OutlineLevel = wdOutlineLevelBodyText MkWbPm)  
         U#%+FLX@w  
        .LeftIndent = CentimetersToPoints(0) NU"L1dK @  
        .RightIndent = CentimetersToPoints(0) :jJ0 +Q  
        .FirstLineIndent = CentimetersToPoints(0) e?N3&ezp  
         jW{bP_,"  
        .CharacterUnitLeftIndent = 0 })j N 8px  
        .CharacterUnitRightIndent = 0 @ V_i%=go  
        .CharacterUnitFirstLineIndent = 0 L) UCVm  
         rP#&WSLVj  
        .LineUnitBefore = 0 !DD4Bqez  
        .LineUnitAfter = 0 2J (nJT"  
    End With w,j;XPp  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False z'*{V\  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll ts; ^,|h  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese ,BR W=  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True NZ?dJ"eq7  
    DoEvents )2 b-3lz  
89{`GKWX  
    '目录项 8@ f+?g*i  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") 3_>=Cv}  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" EHfB9%O7y  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False ikO9p|J  
    With ActiveDocument.Styles("QLNU目录项").Font 5lyHg{iqD  
        .NameFarEast = "黑体" gYloY=.Z$'  
        .NameAscii = "Times New Roman" wRZS+^hx  
        .NameOther = "Times New Roman" ] G^9PZ-  
        .Name = "黑体" & x$ ps  
        .Size = 10.5 sq@c?!'  
        .Bold = False GcG$>&,  
        .Italic = wdUndefined ^O}J',Fm%f  
        .Underline = wdUnderlineNone $-.*8*9  
        .Color = wdColorAutomatic PAH#yM2Ic  
        .Superscript = wdUndefined >>cL"m  
        .Subscript = wdUndefined 4>/i,_&K K  
    End With Gz4LjMQ &  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat LP/SblE  
         53?Ati\Y)  
        .LineSpacingRule = wdLineSpaceSingle g1 =>u  
        .Alignment = wdAlignParagraphLeft A p 3B'  
         fu?u~QZ8  
        .WidowControl = False ^V7)V)Z;0  
        .KeepWithNext = False CF v]wS  
        .KeepTogether = False \YHl(  
        .PageBreakBefore = False cYBjsN(!A|  
        .NoLineNumber = False -C8LM ls  
        .OutlineLevel = wdOutlineLevelBodyText ^])s\a$  
         Lt i2KY}/%  
        .LeftIndent = CentimetersToPoints(0) S4rm K&  
        .RightIndent = CentimetersToPoints(0) _w2KUvG-8  
        .FirstLineIndent = CentimetersToPoints(0) 7X>*B~(R  
         ! %B-y 9\  
        .CharacterUnitLeftIndent = 0 _:FD#5BZ1  
        .CharacterUnitRightIndent = 0 N36B*9m&p  
        .CharacterUnitFirstLineIndent = 0 ge1U1o  
         w_DaldK*  
        .LineUnitBefore = 0 NErvX/qK  
        .LineUnitAfter = 0 9Q1w$t~Y  
    End With PS0 /O k  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False A-*MH#QUKh  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll |XMWi/p  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot g`~;"%u7cn  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese b;nqhO[f}  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True b}*q* Bq  
    DoEvents ,(]k)ym/  
     sXtt$HID=  
    '参考文献 [[xnp;-;  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") Tm K8z  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" {1+meE  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False xe9 \5Gb}  
    With ActiveDocument.Styles("QLNU参考文献").Font [ua[A;K  
        .NameFarEast = "宋体" _#uRKy<`N  
        .NameAscii = "Times New Roman" c=^69>w  
        .NameOther = "Times New Roman" JSx[V<7m  
        .Name = "Times New Roman" Lhrlz,1  
        .Size = 12 c~}FYO$  
        .Bold = False c[$i )\0  
        .Italic = wdUndefined ;9q$eK%d  
        .Subscript = wdUndefined (j(9'DjP  
        .Superscript = wdUndefined cQsSJBZ[v5  
        .Underline = wdUnderlineNone V;Q@' <w  
        .UnderlineColor = wdColorAutomatic 0#ON}l)>  
        .Color = wdColorAutomatic m>?|*a,  
        .Engrave = False vu&ny&=`  
    End With Z-y oJZi  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat J% ZM V  
         g4{0  
        .LineSpacingRule = wdLineSpaceExactly 5DO}&%.xt  
        .LineSpacing = 16 a54S,}|  
        .Alignment = wdAlignParagraphLeft 0.c9 6&  
        .WidowControl = False PnL?zae  
        .KeepWithNext = False L">m2/ HG  
        .KeepTogether = False rbs&A{i  
        .PageBreakBefore = False @Y<fj^]k  
        .OutlineLevel = wdOutlineLevelBodyText j,Qb'|f5  
         ~f( #S*Ic  
        .LeftIndent = CentimetersToPoints(0) rv<qze;?|  
        .RightIndent = CentimetersToPoints(0) ,b?G]WQrHs  
        .FirstLineIndent = CentimetersToPoints(0) # %'%LY=  
         iRqLLMrn  
        .CharacterUnitLeftIndent = 0 +n)bWB%  
        .CharacterUnitRightIndent = 0 n57mh5mixM  
        .CharacterUnitFirstLineIndent = -2 $"k1^&&E  
         19RbIG/X  
        .LineUnitBefore = 0 y<#Hq1  
        .LineUnitAfter = 0 k(v &+v  
        .SpaceBefore = 0 \Ym!5,^o  
        .SpaceAfter = 0 [E"3 ?p  
         i[w&!mn%  
    End With OL^DuoB4q  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False yo$ A0Ti!w  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll T '9M  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS wUfPnAD.'  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True Cv/3-&5S  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese c(Fo-4K  
    DoEvents $Rn9*OKr  
!3o/c w9  
    ' %e_){28 n  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") t{`-G*^  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" R/ x-$VJ  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False A7eYKo q  
    With ActiveDocument.Styles("QLNU论文题目").Font P ?96;  
        .NameFarEast = "黑体" c{39,oF  
        .NameAscii = "Arial Black" L`fT;2  
        .NameOther = "Arial Black" >5zD0!bA  
        .Name = "Arial Black" Zu>CR_ C  
        .Size = 16  =vDpm,  
        .Bold = False [4@@b"H  
        .Italic = wdUndefined 5HTY ~&C  
        .Superscript = wdUndefined )Y"t$Iw"  
        .Subscript = wdUndefined Z=< D`  
        .Underline = wdUnderlineNone wRq f'  
        .UnderlineColor = wdColorAutomatic W)Y:2P<.  
        .Color = wdColorAutomatic >S S^qjh/  
)bpdj,  
    End With 2z1r|? l  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat V8b^{}nxt  
        .LineSpacingRule = wdLineSpaceSingle < y"lL>JR  
        .Alignment = wdAlignParagraphCenter ~ H"-km"@  
        .WidowControl = True R ;uP^  
        .KeepWithNext = True 6UuM `eu  
        .KeepTogether = True +vPCr&40  
        .PageBreakBefore = True ~q}]/0-m  
        .NoLineNumber = False 4{b/Nv:b  
        .OutlineLevel = wdOutlineLevelBodyText T+FlN-iy)  
         pK'D(t  
        .LeftIndent = CentimetersToPoints(0) iR8;^C.aT  
        .RightIndent = CentimetersToPoints(0) VTi; y{  
        .FirstLineIndent = CentimetersToPoints(0) ;<%d^   
         buWF6LFC  
        .CharacterUnitLeftIndent = 0 T b*Q4:r"  
        .CharacterUnitRightIndent = 0 +eop4 |Z  
        .CharacterUnitFirstLineIndent = 0 IxY!.d_s|~  
         IVeA[qA0  
        .LineUnitBefore = 1 1{ ehnH  
        .LineUnitAfter = 1 !\5)!B  
         A5O;C  
        .BaseLineAlignment = wdBaselineAlignAuto w(ic$  
    End With q^~w:$^ U  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False vkW;qt}yO  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll P(3$XMx  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS $N|Spp0  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True RLGIST`  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese ZW 5FL-I  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True };*&;GFe  
    DoEvents Xob(4  
     =,08D^xY  
    '中文摘要 f9'dZ}B  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") }/g1  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" L:jv%;DM  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False db3.X~Cn#s  
    With ActiveDocument.Styles("QLNU中文摘要").Font @v.?z2h  
        .NameFarEast = "宋体" 1-R4A7+3  
        .NameAscii = "Times New Roman" dbF9%I@  
        .NameOther = "Times New Roman" $c LZ,N24  
        .Name = "Times New Roman" h(^[WSa  
        .Size = 12 tMo=q7ig  
        .Bold = wdUndefined s8k4e6ak  
        .Superscript = wdUndefined .e}`n)z  
        .Subscript = wdUndefined -cUw}  
        .Italic = wdUndefined s&DAO r!i  
        .Underline = wdUnderlineNone '[bw7T  
        .UnderlineColor = wdColorAutomatic s5X51#J#~  
        .Color = wdColorAutomatic B<~BX [  
    End With ~c\2'  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat L_!}R  
        .LineSpacingRule = wdLineSpaceExactly [kPl7[OL  
        .LineSpacing = 20 n.o_._mu2  
        .Alignment = wdAlignParagraphLeft 7'@~TM  
         x7 xQrjE  
        .WidowControl = False 0_t9;;y :  
        .KeepWithNext = False t~Ic{%bdA  
        .KeepTogether = True 1W9uWkk_d  
        .PageBreakBefore = False 18y'#<X!  
        .NoLineNumber = False t,kai6UM  
        .OutlineLevel = wdOutlineLevelBodyText wqyF"^It"  
         :K!L-*>A9  
        .LeftIndent = CentimetersToPoints(0) nrM-\'  
        .RightIndent = CentimetersToPoints(0) '47E8PIJ|  
        .FirstLineIndent = CentimetersToPoints(0) a!PN`N28  
         ,{Z!T5 |  
        .CharacterUnitLeftIndent = 0 j'UW gwB  
        .CharacterUnitRightIndent = 0 ,ZnL38GW  
        .CharacterUnitFirstLineIndent = 2 q-e3;$  
        .LineUnitBefore = 0 *4l6+#W  
        .LineUnitAfter = 0 p#gf^Y5  
         =CaSd|   
    End With yWi?2   
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False B""=&(Yu  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll ,rhNXx  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS \x"BgLSE  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True T3-/+4$0v  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese u#3Cst8Y  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True X"T)X#:)  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete ETfoL.d$(  
    DoEvents 2V$YZSw6q  
     VZ2CWE)t  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") .;&4'ga 4  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" `>0(N.'T  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False vnX~OVz2  
    With ActiveDocument.Styles("QLNU英文标题").Font ;|oem\dKv  
        .NameFarEast = "黑体" mrlhj8W?!  
        .NameAscii = "Arial Narrow" Nm3CeU  
        .Name = "Arial Narrow" y"zZ9HQM  
        .Size = 16 f6#1sO4"  
        .Bold = True Nxm '* -A  
        .Bold = wdUndefined cn'r BY  
        .Superscript = wdUndefined qc6d,z/  
        .Subscript = wdUndefined >E>'9@Uh  
        .Italic = wdUndefined GEki34 n0  
         6{ pg^K  
        .Underline = wdUnderlineNone BqOMg$<\[  
        .UnderlineColor = wdColorAutomatic T`Xz*\}Zb  
        .StrikeThrough = False ZrWA,~;  
        .DoubleStrikeThrough = False x0xQFlGk  
    End With Qr~yHFc1y  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat quFNPdP  
        .LineSpacingRule = wdLineSpaceSingle |(9l_e|  
        .Alignment = wdAlignParagraphCenter ''.\DC~K  
        .WidowControl = True :/;;|lGw  
        .KeepWithNext = False P> 7PO~E.  
        .KeepTogether = False %O>_$ 4q  
        .PageBreakBefore = False Ko FWI_(b  
        .NoLineNumber = False )N&95\ u  
        .FirstLineIndent = CentimetersToPoints(0) ~VPE9D@  
        .OutlineLevel = wdOutlineLevelBodyText t5S!j2E  
         `V?NS,@$  
        .LeftIndent = CentimetersToPoints(0) <"LA70Hkk  
        .RightIndent = CentimetersToPoints(0) N$cAX^~  
        .FirstLineIndent = CentimetersToPoints(0) @%6"xnb `  
         N2Cf(  
        .CharacterUnitLeftIndent = 0 S#\Cyn2(t  
        .CharacterUnitRightIndent = 0 a!;K+wL >  
        .CharacterUnitFirstLineIndent = 0 p Acu{5#7  
          }]j# C  
        .LineUnitBefore = 1 AHLXmQl  
        .LineUnitAfter = 1 1*B'o<?P1  
         H8!lSRq  
    End With ,go$ 6   
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False PB@jh}  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll _No<fz8  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS }`uq:y  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True *(nu0  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese w5a; ts_x  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True Z'c9xvy5  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete 8ya|eJ]/L  
    DoEvents gq+#=!(2  
%v]-:5g'|  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") (z%OK[  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" 4& 9V  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False gy/bA  
    With ActiveDocument.Styles("QLNU英文摘要").Font F>5)Clq  
        .NameFarEast = "宋体" EOf*1/Ih  
        .NameAscii = "Arial" $XrX(l5  
        .NameOther = "Arial" ~|`jIqU  
        .Name = "Arial" #LG<o3An  
        .Size = 12 uHyc7^X>  
        .Bold = wdUndefined szy2"~hm  
        .Italic = wdUndefined g=S|lVQm  
        .Superscript = wdUndefined tU>4?`)E  
        .Subscript = wdUndefined 7i9wfc h$U  
    End With ;oRgg'k<  
     q}J Eesf  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat <;dFiI-GO#  
         SdJk no  
        .LineSpacingRule = wdLineSpaceExactly , L8(Vo`-  
        .LineSpacing = 20 *YTv"  
         L>,xG.oG  
        .Alignment = wdAlignParagraphJustify /ASpAl[J  
         4HyD=6V#  
        .WidowControl = False 6,skF^   
        .KeepWithNext = False  Kuh)3/7  
        .KeepTogether = False [<#` @Kr  
        .PageBreakBefore = False 2%j"E{J&  
        .NoLineNumber = False 6yMaW eT  
          OF`:);  
        .OutlineLevel = wdOutlineLevelBodyText -M`+hVs?  
         :Y&h'FGZm  
        .LeftIndent = CentimetersToPoints(0) 5+*CBG}  
        .RightIndent = CentimetersToPoints(0) ?O/!pUAu  
        .FirstLineIndent = CentimetersToPoints(0) .c_qMTm"  
         Aj@t*3  
        .CharacterUnitLeftIndent = 0 +< c(;Ucl?  
        .CharacterUnitRightIndent = 0 DcZ,a E]  
        .CharacterUnitFirstLineIndent = 2 "%+9p6/  
         *GM.2``e  
        .LineUnitBefore = 0 ?;p45y~n%  
        .LineUnitAfter = 1 oF5~|&C  
         8jga mG  
    End With *0%G`Q  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False [S[@ Q[zP@  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll Z]^O=kX 7k  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS f_ > lz  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False m?`$NJST  
    DoEvents \2)~dV:6+  
R9%"Kxm  
    Options.Pagination = True ]U5/!e  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." AXpyia7nU  
    DoEvents $eh>.c'&]  
    ActiveDocument.Repaginate \xOv9(  
?/Z5%?6  
End Sub :z+l=d:4  
:"Kr-Hm`  
 6Xt c3  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: f.Ms3))  
I>spJ5l s  
用VBA控制WORD自己修订学生毕业文的格式。 bH_zWk  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? SR { KL#NC  
a &tl@y1  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

Fs;_z9ej-u  
yX|0 R H  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 .3yxg}E>{  
第6车皮 ;33LuD<h.  

*T{P^q.s~[  
HCTjFW>C  
第9车皮 Ju.B!)uS#  
86N"EuH$  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 S.X*)CBB  
@,{', =L6  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 /?wH1 ,  
Mk~]0d  
Main2.bas kLw07&H  
kxp, ZP  
Attribute VB_Name = "SubMain" T 2^0Q9E?  
Option Explicit {Ex*8sU%p%  
N-4k 9l1  
'采集文件与临时文件 N1O.U"L;  
Public Const TmpFile As String = "d:\30-0600.dat" \KJ\>2Y  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 _H+|Ic  
-$js5 Gx1  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long -1 Ok_h"  
Public hBCFile As Long  '记录采集参数的文件 #A '|O\RGP  
Public Const TmpBMP As String = "d:\1.bmp" >u:t2DxE  
Public hTmpFile As Long u79,+H@ep  
s]z-d!G  
ufekhj  
'采集窗口参数常量 ^ A`@g4!  
Public Const FrameH As Long = 280& 39(]UO6^;  
Public Const FrameW As Long = 768& 3j iSvrfI  
Public Const pFrameSize As Long = FrameW * FrameH S uU_psF  
d!i#@XZ^  
'标志区范围,用于识别车辆 lSzLR~=Au  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X _b8?_Zq  
Public Const mkW As Integer = 28  '识别标志立柱宽度 }t^N|I  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) [spJ%AhV  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) toCxY+"nbU  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 oSOO5dk:z  
'车缝检测位置常数 =6sL}$  
Public Const sSize As Long = 32& 0[qU k(=}[  
Public Const sPos As Long = 310& tgPx!5U  
Public Const sPosL As Long = 200& ub0uxvz  
Public Const sPosR As Long = 500& |_^A$Hv  
'车缝检测框位置 ~Yw`w 2  
Public Slice(1 To sSize, 1 To FrameH) As Byte >5Rcj(-&l  
Public SliceL(1 To sSize, 1 To FrameH) As Byte N5%zbfKM  
Public SliceR(1 To sSize, 1 To FrameH) As Byte ,@1.&!F4it  
Public avSL As Integer, avSLR As Integer, avSLL As Integer RN3-:Zd_X  
~;*SW[4  
W+C@(}pt  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 4G4[IA u_  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 L-T3{I,3  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 <[e E5X(  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long VdZmrq;?/  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte 3 0fsVwE2  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 N=QeeAI}}m  
o"a ~  
dM nJ)R  
9$u'2TV  
'一次连续采集的帧数 CAhkv0?8  
Public tFrames As Long Gx]J6Z8  
3. kP,  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 _*SA_.0  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 IP]"D"  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize UtebSQ+h\  
5B lptC  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte (\UA+3$4  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte ?/ @~ d  
Public pWorkSpace(1 To FrameW * FrameH) As Long R\B-cU[,  
Public Const pBufferSize As Long = FrameW * FrameH * 2 Rt[zZv  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 ` 5.PPI\h2  
eXqS9`zKr  
Public hBoard As Long   '采集卡标识 +v`?j+6z  
Public mBufferAddr As Long  '缓存地址 qx$-% P  
Public BufferSize As Long  '缓存大小(字节) 'F- wC!  
Public iCurrentCard As Long Wx<fD()  
Public CapStatus As Long dBKceL v  
Public iFrames As Long 4t0B_o"  
Public currentBr As Byte, currentContr As Byte =&J 7 'nDP  
_rz*7-ks=  
Public hMEM As Long, mStatus As Long PsLMV:O9S  
Public Const hMemSize As Long = pFrameSize * 4 JToc ("V  
Public hMemWork As Long H~IN<3ko  
Public Const hMemWorkSize As Long = pFrameSize * 5 8Q%rBl.  
dvAvG.;U  
IU8/B+hM~  
zdoJ+zRtK  
'串口接收轨道衡数据 "AzA|zk')"  
Public WeightFromCom As String b`=\<u8  
Public bReceiveComplete As Boolean cnUYhxE+s  
8d90B9  
'<A:`V9M}v  
Public Type GrayBMPHeader d3$&I==;:  
  Tag As Integer fgmIx  
  FileLength As Long    '文件大小 5gPcsn"D  
  Reserve1 As Long pt rQ~m-  
  DataOffset As Long    '图像数据偏移量 -xc*R%k  
  BMPHeaderSize As Long  '文件头长 Nl3@i`;  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… 'ow`e j  
                        'the following sizes are possible: }T}9AQ}|  
                        '28h - windows 3.1x, 95, nt, … ~e ,D`Lv  
                        '0ch - os/2 1.x /~49.}yt  
                        'f0h - os/2 2.x I'_u4  
/WlpRf%  
  ImageWidth As Long           '图像宽(像素数) y3]7^+k  
  ImageHeight As Long          '图像高(像素数) 43"` gF]  
  PlaneNumber As Integer  '图像层数 r pv` %  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap dsx'l0q 'i  
                                        '4 - 16 color bitmap G8y:f%I!b  
                                        '8 - 256 color bitmap *<PQp   
                                        '16 - 16bit (high color) bitmap lm?1 K: +[  
                                        '24 - 24bit (true color) bitmap xMAfa>]{n  
                                        '32 - 32bit (true color) bitmap = lzRx%tm  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) 3=reN6Q  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) :+9KNyA  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) f#s /Ycp+  
                                    '3 - bitfields (also identified by bi_bitfields) rHir> p  
  IMAGESIZE As Long  '图像数据字节数 p@H3NX  
  hResolution  As Long  '水平分辩率  像素数/米 meHnT9a^  
  vResolution  As Long  '垂直分辩率 )jh4HMvmC  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 Jzg>Y?jN R  
  ImportantColors As Long dc .oK4G}  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 :3z`+5Y*  
End Type SxHj3,`#C  
J P2zom  
+wAH?q8f  
vgc #IEx@  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader FZW)C'j  
Public sRECT As RECT Kd?TIeFE  
F ;o ^.  
cK;,=\  
Public conn As ADODB.Connection qH3|x08  
Public rsTrain As ADODB.Recordset RJo"yB$1e6  
Public rsOperater As ADODB.Recordset SD"'  
Public rsGoods As ADODB.Recordset ^r u1QDT  
Public rsGood2 As ADODB.Recordset j{i3lGaN  
Public rsSender As ADODB.Recordset 6/m|Sg.m  
Public rsReceover As ADODB.Recordset .#M'  
Public rsTrainTMP As ADODB.Recordset L8&$o2+07r  
s)=fs#%  
{ *"I4  
'打开采集卡 y|BRAk&n  
'设置参数 Hl,.6 >F?  
'设置为实时单帧采集到缓存方式 ^ di[J^  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 ]}3AP!:  
k* ayzg3F>  
CnJrJ>l  
Sub Main() =@ '>|-w|  
  Dim i As Integer, status As Long . C g2Y  
     wF +9Iu  
   InitBMPinfo HAHv^  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 %>dCAj"  
    BMPHeader.Tag = &H4D42 7r`A6 \ !  
    BMPHeader.ImageWidth = FrameW 3HU_ ~%l  
    BMPHeader.ImageHeight = FrameH \"]vSx >  
    BMPHeader.BMPHeaderSize = &H28 gy Jx>i  
    BMPHeader.PlaneNumber = 1 |mSFa8G@  
    BMPHeader.bpp = 8 pZS0;T]W,  
    BMPHeader.Compression = 0 lG\6z"K  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 gD"]uj<  
    BMPHeader.vResolution = &H1274 QEe\1>1"&  
    BMPHeader.ColorsinBMP = 256 woctnT%"Q/  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP /B $9B  
    BMPHeader.DataOffset = Len(BMPHeader) 'l%b5:  
    For i = 0 To 255 K0|8h!WF+  
      BMPHeader.Pallate(i) = RGB(i, i, i) "k)}qI{  
    Next i %_rdO(   
    BMPHeader.IMAGESIZE = FrameH * FrameW @WV}VKm  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE =*VKp{5=  
mVg$z  
"ooq1 0P  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) {bxTODt@  
     d-=RS]j;j  
    BMP1.ImageWidth = FrameW )575JY `6K  
    BMP1.ImageHeight = FrameH * 2  As&=Pb9  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight qUH02" z@9  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE @a08*"lbp  
He#5d!cf:M  
  '确定标志位置,为pilarX, pilarY确定初始值 i'GBj,:  
   PilarW = mkW _vQtV]  
   PilarH = mkH  '此两项为固定值 W 6_~.m"b  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) *} pl  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 r#ISIgJXG  
   j-e gsKR  
   "f/Su(6{0  
  '连续采集记录文件 i8F^ N=  
  ' 建立一个缓冲区为页对齐方式的文件 39xAh*}G]  
  If Dir(TmpFile) <> "" Then VJK?"mX  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ sD|P*ir  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) t% -"h|  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 C@{#OOa  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 aZ[ aZU  
  Else .eg?FB'7  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ N$8do?  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) *hhPCYOm  
  End If 0b )^#+  
  If hFile = 0 Then 9] i$`y  
    MsgBox TmpFile & ": File Open Error", vbOKOnly DrfOz#a0Uu  
    Exit Sub y4%u< /  
  End If O]"3o,/]G  
  '采集参数记录文件 AY{-Hf&  
hBCFile = FreeFile() E?{{z4  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile Md~% e'  
   PGaB U3  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 b51{sL  
If hMEM = 0 Then =Kq/E De  
    fStatus = GetLastError mVJW"*}8  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ q .[hwm  
     & "请向技术人员报告该错误代码。", vbOKOnly N7S?m@  
    CloseHandle hFile 6}Se$XMl  
    Exit Sub X @;o<2^  
End If -dCM eC  
FtaO@5pS54  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) Q&zEa0^rG6  
If hMemWork = 0 Then y\=(;]S'  
    fStatus = GetLastError Q9-o$4#R[  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ lzJ[`i.  
     & "请向技术人员报告该错误代码。", vbOKOnly W'3&\}  
     '释放已成功分配的内存 E\3fL"lM  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) V-#OiMWa~  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) L/2{}l>D  
     < r6e23  
    CloseHandle hFile IO,ddVO  
    Exit Sub dKs^Dq  
End If {s=n "*Qp)  
<M(Jqb cWa  
' Test writing ,QDS_u$xi&  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& S,9}p 1  
     ;.Lf9XJ   
   '初始化采集卡参数 ikr|P&e#u  
   iCurrentCard = -1 PNm WZW*  
   hBoard = okOpenBoard(iCurrentCard) 8db J'  
   Debug.Print hBoard G+k[.  
   If hBoard = 0 Then L*;XjacI]  
      ExitGrabber (AHZmi V  
      End (7C&I- l  
   End If e(;1XqLM  
   okGetBufferSize hBoard, mBufferAddr, BufferSize 8Iz-YG~%3  
   If mBufferAddr = 0 Then 28 h3Ayw4  
     MsgBox "缓存不存在!" +~gqP k  
     ExitGrabber 3~zK :(  
   End If  U>0' K3_  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) udRum7XW 3  
   }LXS!Ff:  
   9}~WwmC|x  
   currentBr = 128: currentContr = 128 yc./:t1at>  
   '设置视频输入参数 }( x|  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2  $D`~X`  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input m!{}Y]FZn  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 u"rK5'  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 Y,-?oBY  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 4'&j<Ah[#  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 'dE G\?v9  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) ]_cBd)3P}  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) ooJ ^8L  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) 4WK@ap-~  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 Y)?dq(  
   3Uzb]D~u  
   '设置采集参数 KmuE#Ia  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 ,XD'f  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 2_^{Vez@I  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 h8IjTd]z{$  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 U}H2!et&,)  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 bjgf8427I  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 .rfufx9Sw  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 R|7yhsJq,  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 r"yA=d'c  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 K\Oz ~,z  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 )_*<uSl  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 v&BKl  
   %+PWcCmn  
   +UzFHiGy#  
   okCloseBoard hBoard nZ;h&N -_-  
   Sleep 50 : K%{?y  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 )XB31^  
   Sq9I]A  
   '设置数据传送方式 'b#`)w@/=  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 :}r^sD  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 Gp=X1 F  
   z^+`S:  
   sRECT.Right = -1   '用于获得当前设置值 ]dZ8]I<$C  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) /u9Md3q*'  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom 7qfo%n"  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 8.Q;o+NU  
   sRECT.Left = 0 R<}WNZl  
   sRECT.Top = 0 vmI2o'zi  
   sRECT.Right = sRECT.Left + FrameW it=4cHT  
   sRECT.Bottom = sRECT.Top + FrameH * 2 <E2+P,Lgw  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) mL\j^q,Y  
   ftVA  
   sRECT.Right = -1   '检查新设置值 k+X=8()k  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) <+MNv#1:w  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom YkRv~bc1]  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) wzX 1!?  
   j@4 yRl ^  
   If TESTSignal = False Then D`nW9i7  
      'ExitGrabber Ka[@-XH  
   End If Ri$wt.b  
   yo)a_rY  
   \Y)pm9!  
   ~vD7BO`  
   '设为实时采集状态 v 4@=>L  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) T[mo PD5  
   :D-xa!7  
   s?;rP,{:p  
   '单帧采集 *?/9lAm  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 goYRA_%cX  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) Q'f!392|  
   okCaptureTo hBoard, BUFFER, 0, 1 'single /O"IA4O  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 X~/hv_@  
   '   Sleep 20 .#"O VI]#  
   'Loop _xgF?#  
   okGetCaptureStatus hBoard, True zYf `o0U  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize I] qml2  
   '写入768*576测试图象 A;e[-5@  
   ArrayToBMP TmpBMP m'Jk!eo  
   4"$K66yk@  
   '打开数据库 @@L@r6  
   Set conn = New ADODB.Connection @(XX68  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ % K$om|]p  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ O34'c_ fZ  
      "; Mode=Read|Write" x+j5vzhG)  
   conn.Open zd) 2@jX=  
   R[eQ}7;+  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) xkv2#"*v  
   frmRecord.Visible = True E?c)WA2iH  
   frmQuery.Visible = True = > .EDL.  
   Load frmReceiveFromComm )9~1XiS,  
   F s^d-I  
   '调试参数 "=l<%em  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then *9"L?S(X#  
     SignalBox.Visible = True cswX?MN  
   End If 19)fN-0Z  
   If InStr(UCase(Command()), "/COMM") > 0 Then ;p~&G"-C`  
     frmReceiveFromComm.Visible = True EleK*l  
   End If 9N(<OY+Dgm  
D]+0X8@kH7  
End Sub 1:-^*  
%B^nQbNDM  
Sub ExitGrabber() SvUC8y  
  '关闭数据库 F$ kLft[:  
  '关闭采集卡 (2H e]M\  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) 3 y!yz3E  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ?b',kN,(  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) [@Hv,  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) S~WsGLF s  
  okStopCapture hBoard 9Y:JA]U&8  
  okCloseBoard hBoard VKtrSY}6T  
  CloseHandle hFile B_FfXFQm<  
  Close #hBCFile iz'#K?PF_  
  conn.Close rbP" n)0=  
  End 4:$?u}9[:[  
End Sub qaBjV6loy  
j% %l$i~  
Function ArrayToBMP(ByVal File As String) &1hJ?uM01  
Dim BytesWrite As Long )|>LSKT El  
&5&C   
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ :tP:X+?O  
  CREATE_ALWAYS, 0&, 0&) \>0F{-cR$  
zV)Ob0M7U  
If hTmpFile = 0 Then !"u) `I2  
   ArrayToBMP = False ? !H <V@a  
   Exit Function po~l8p>  
End If S>~QuCMY  
i2or/(u`  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN ZyE2=w7n  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& vkE[Ur>  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN x)6yWr[ri%  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& h.Cr;w,2R  
ZN)a}\]  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN .lMIJN&/  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& {7^7)^@  
b*4[)Yg4  
If BytesWrite < pFrameSize Then 76[O3%  
  ArrayToBMP = False "65@8xt==  
End If ,|?-\?I  
n7~!klF-  
CloseHandle hTmpFile o'.6gZ gk  
*wW/nr=\;  
End Function @;>TmLs  
S5:`fo^5  
Function ArrayToBMP1(ByVal File As String) |]7z  
5MJ`B: He+  
Dim BytesWrite As Long hw`+,_ g  
owA3>E5t&  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ .Z=D|&!  
  CREATE_ALWAYS, 0&, 0&) jEBZ"Jvb  
f o])=KM  
If hTmpFile = 0 Then xwxMVp`|o  
   ArrayToBMP1 = False /p~Wk4'  
   Exit Function *#j+,q!X  
End If XcJ'w  
csTX',c  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN K~nk:}3Ui  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& ?9qA" 5  
;^)(q<]  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN bK `'zi  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& y6KI.LWR9  
p#}38`  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN b&uo^G,  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& YH`/;H=$G/  
n8"S;:Zm  
If BytesWrite < pBufferSize Then azMrY<  
  ArrayToBMP1 = False t0Q/vp*/  
End If H27J kZ&  
XZhX%OT!  
CloseHandle hTmpFile ^6v ob  
KK-9[S-  
End Function \M>+6m@w  
)i&9)_ro  
'使用该过程建立的文件要求在用后关闭 zR)|%[sWwQ  
Public Function ArrayToBMP2(File As String) As Boolean 6T 2jVNg  
Tfc5R;Rw  
Dim BytesWrite As Long 3=9yR* *  
+O23@G?x  
ArrayToBMP2 = True jRXpEiM  
]E90q/s@c  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ fRo_rj _  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) >So)KB  
t5h]]TOz  
If hTmpFile = 0 Then )L#C1DP#  
   ArrayToBMP2 = False u/FnA-L4  
   Exit Function X<s']C9c  
End If {t: ZM UV  
pfW0)V1t  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN ^.Y"<oZSS  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& gBRhO^Sz  
o"@y=n/  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN }S6Sz&)  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& B\&;eZY'G  
VXvr`U\  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN TRG(W^<F  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& Sc "J5^  
!pI)i*V|  
If BytesWrite < pFrameSize Then M-KjRl  
  ArrayToBMP2 = False gkUG*Zw  
End If P/._ tQu6  
v#0R   
CloseHandle hTmpFile -ecP@,  
Xui${UYN  
End Function >'eOzMBn  
\RZF q<6>  
Private Function TESTSignal() As Boolean | ]`gps  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long )5P*O5kQ -  
+~J ?/  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) Z~o*$tF/  
0 1[LPN  
If extsign = 1 Then c_xtwdkL9  
   TESTSignal = True !Y_"q^5GG'  
Else #ej^K |Qx  
    If extsign = 0 Then x#"|Z&Dw0  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly 0N.tPF}  
        TESTSignal = False R}4o{l6  
        Exit Function <^VZ4$j  
    End If h d1H  
End If UD [S>{  
"HFS5Bj'  
'测试视频输入类型 l)E \mo 8  
'video type 1E!0N`E  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 yEt:g0Z \  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) Sv.z9@S  
If videotype = 1 Then <by}/lF0  
        '"隔行信号(Interlaced)" a#W:SgE?Y  
Else "iE9X.6NMu  
   If videotype = 0 Then '2=u<a B  
       '"逐行信号(Non-interlaced)" }* l V  
   Else @YmD 79  
     If videotype = -1 Then ' >> IMF  
       ' "不支持" le`&VdE^  
     End If y'4H8M2?  
   End If rAD5n, M]  
End If /=4P< &J  
Nd/iMV6V;  
'测试垂直扫描线数 W5*%n]s~  
'video scanlines #5O'XH5_  
scanlines = -1  SV.\B  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) W?{ :HV  
    If scanlines = -1 Then -CW&!oW  
        ' "不支持" b3e:F{n ^  
    Else ZjY_AbD  
        'Trim(Str(ScanLines)) + " 行数/幅" [6qa"Ie  
    End If NLM ]KT  
wzB*M}3  
'测试帧频 HGmgQ>q@M$  
'video field frequency =9n$ at$l@  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) RsU=fe,  
    If fieldfrq = -1 Then /zn|?Y[  
        'lblSignal(8) = "不支持" "/hM&  
    Else F.?`<7  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" )NZ6!3[@  
    End If sChMIbq!Av  
End Function }.|\<8_  
$enh>!mU  
.EVy?-   
Sub PicIdentify() 0~RsdQGqC  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 *!UY;InanX  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 O!='U!X@ P  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 KC o<%  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 Q17"hO>kC  
3ydOBeY  
  Dim fPTR As Long, cFrame As Long m` cw:  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer ]aq!@rDX  
     i](,s.  
]@1YgV  
cFrame = 0 hb9X<N+p  
rKq/=Avv  
u3kK!2cdP  
Do While cFrame < tFrames (5{|']G  
   8Q^yh6z  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) a_I!2w<I  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) \Q{@AC<?i  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize qVC_K/w 7  
   LU4\&fd  
  frmRecord.RText.Text = Str(cFrame) HyXw^ +tsj  
  frmRecord.RText.Refresh TCp!4-~,  
       *=0Wh@?0  
  If CheckMark = True Then h{.KPK\  
   ArrayToBMP TmpBMP "s2?cQv{#  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) [8.ufpZ  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" YE&"IH]lF  
   jD3,z*  
   DrawSlice ` =dD6r  
   c;e-[F7  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) 6cSMKbgZJ  
   'If i = vbNo Then } gyJaMA  
   '  Exit Do Z$0r+phQk=  
   'End If _:0<]<x?  
   'cFrame = cFrame + 1 z h0m3|9O  
   MK[l*=\s  
  End If 7P9n. [  
  DoEvents {6)fZpd)@  
  cFrame = cFrame + 1 Ken|!rL  
Loop ?UQVmE&  
End Sub T^N Y|Y/  
8YraW|H  
*x[B g]/  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean >b,o yM  
<Hhl=6op  
'如标志区模式反差存在则为TRUE,否则返回FALSE .%`|vGF  
NUb^!E"  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long dv-yZRU:  
CheckMark = True y4) M,+O5  
   Jl&bWp^3  
'复制标志区 g^8dDY[%  
For i = 1 To mkH :w(J=0Lt  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW 0IBVR,q  
Next i `LH!"M  
]P$8# HiX  
For j = 1 To PilarW * PilarH / 2 C<fWDLwYqV  
   mTop = mTop + MKpilar(j) NKLGbH  
Next j oT&JQ,i[2Q  
KgVit+4u/  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH wKum{X8  
   mBot = mBot + MKpilar(j) b$[_(QUw  
Next j %@$h?HP  
 m3 ;  
mTop = mTop / PilarW / PilarH * 2 y&9S+  
mBot = mBot / PilarW / PilarH * 2 i9k7rEW^  
&T]+g8''  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 B Hn `e~  
!^!<Xz ;  
'平均值极值化 m\7-/e2 a  
  For j = 1 To PilarH * PilarW v83uGEq(  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) >1a- }>r  
  Next j ~X5yHf3  
   IGT~@);  
mTop = 0: mBot = 0 >j oGG T  
For j = 1 To PilarH * PilarW / 2 c a_N76o!  
  mTop = mTop + MKpilar(j) Km]N scq1  
Next j 4 C[,S|J  
2ko7t9y&  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW 1O45M/5\o  
  mBot = mBot + MKpilar(j) UA{sUj+?  
Next j \8Mkb]QA  
[6 wI22  
!$AVl MnJ  
  mTop = mTop / PilarH / PilarW * 3  ?1r@r  
  mBot = mBot / PilarH / PilarW * 3 KoiU\r  
   \^;Gv%E  
 wxsJB2  
If mBot > iWhite And mTop < iBlk Then EG&^;uU  
  CheckMark = True +@]1!|@(  
Else p*!@z|F>U  
  CheckMark = False :7Rs$ -*Uk  
End If P~ _CDh.N  
End Function NmST1pMk  
p\:_E+lsU  
Sub Capture1Frame() {b^naE  
   okCaptureTo hBoard, BUFFER, 0, 1 'single Y_>z"T  
   okGetCaptureStatus hBoard, True y 4,2Xs9,  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize < .$<d  
End Sub J[Y A1  
=b32E^z,  
Y+iC/pd  
Sub CopyMark(iBlk As Integer, iWhite As Integer) riZFcVsB  
'复制标志区并返回标志区暗区与亮区的亮度平均值 I"Ji_4QV  
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 0ang~_  
   52m^jT Sx  
'复制标志区 p]`pUw{  
For i = 1 To mkH yt>Pf <AI  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW qh0)~JL4   
Next i zJI/j _~W  
Yc=y  Vh  
For j = 1 To mkW * mkH / 2 /`\-.S9  
   mTotal = mTotal + MKpilar(j) Y:^ =jV7  
Next j o}v # Df  
h@Ea$1'e,  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 "+_]N9%)  
|/arxb&  
mTotal = 0 GWjKZ1p  
For j = mkW * mkH / 2 + 1 To mkW * mkH ~D@ V@sX  
   mTotal = mTotal + MKpilar(j) 8jqt=}b  
Next j k(=\& T  
,M7sOp6}  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 tA#X@HIE  
9/}i6j8Z  
'背景亮度 H24g+<Tv  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW (J.(Fl>^  
  For i = 1 To 4 * FrameW =G}_PRn  
    bsTotal = bsTotal + BsLine(i) pPo?5s  
  Next i =t@m:  
  bsAV = bsTotal / FrameW / 4 |{PQ0DS  
u>& \@?(  
End Sub D\(,:_ge  
[2 2 IF  
l4U& CA y  
Sub AdjIMGbright(Optional bInit As Boolean = True) 2-llT  
HCHP15otfe  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) Qu!\Cx@  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 @EfCNOy  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 Sx;zvc  
     sl6p/\_w  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer Q[J,j+f<  
   }Bc'(2A;,  
  '按标准亮度与对比度采集一帧,确定背景亮度 ?MKf=! w  
  currentContr = 128   '初始对比度 "c!s\iuBU  
  currentBr = 128   '初始亮度 :m8ED[9b  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 s%GiM  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 ^Q!:0D*  
  DoEvents 7b+OIZB  
  Capture1Frame 6xdu}l=%  
  '获得图像上缘4行象素 )FWF T:P~  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW rctn0*MP  
  CopyMark iBlack, iBright   '图像标志区亮度 TzPx4L6?  
  For i = 1 To 4 * FrameW qqw6p j  
    bsTotal = bsTotal + BsLine(i) \^Y#"zXo1  
  Next i IS&`O= 7  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 ZhxMA*fL  
   `Kym {og  
  Select Case bsAV r{\cm Ds  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 UgJlXB|a%2  
       currentBr = 150 C$*`c6R  
       currentContr = 60 (&x~pv"+  
     Case 61 To 80   '有可见背景 ejgg.G ^  
       currentBr = 140 bIp;$ZHy`K  
       currentContr = 70 vR,HCI  
     Case 81 To 100  '有清晰背景 kUP[&/Lc  
       currentBr = 128 #Yw^n?~~  
       currentContr = 80 ~pzaX8!  
     Case 100 To 150  '有明亮背景 sB0+21'R  
       currentBr = 140                '5:30-6:00钟实测数据 (ZShhy8g  
       currentContr = 50 Lom%eoH)  
     Case 151 To 180 U%oI*  
       currentBr = 130 nyQ FS  
       currentContr = 60 e"r}I!.  
     Case 181 To 220  '背景全为白色 Y D.3FTNGC  
       currentBr = 110 <$ ?:|  
       currentContr = 130 qu[w_1%S  
     Case 221 To 255  '背景全为白色 x ?^c:`.  
       currentBr = 100 3Xd+>'H  
       currentContr = 100 ~|DF-t V  
  End Select <g*rTqT'  
   15yIPv+5  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 >=U $s@  
        Case 100 To 150 iM8hGQ`  
          currentBr = currentBr - 10 te6[^_k  
        Case 151 To 255 Hkg@M?(  
          currentBr = currentBr - 20 w-B\AK?}  
  End Select `W]a @\EYA  
   &51/Pm2O  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 (R6ZoBZ  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 @;rVB  
End Sub ` t6lnO  
<(f4#B P  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) ]VwAHT&je  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long "VT5WFj  
     v~jN,f*  
    For i = 1 To 8 ^iV@NVP  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& H ~ks"D1  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& UBqK$2 #  
    Next i +D h=D*  
     l$zNsf.  
    For j = 1 To 1024 ]m4LY.SQ  
      L1 = L1 + LeftBK(j, 0) {_q2kk  
      L2 = L2 + LeftBK(j, 1) ++ dV5  
      R1 = R1 + RightBK(j, 0) } \823 U %  
      R2 = R2 + RightBK(j, 1) rA1 gH6D  
    Next j uFok'3!g7%  
    diffL = Abs(L1 - L2) / 1024 A:D\!5=  
    diffR = Abs(R1 - R2) / 1024 2$\f !6p  
End Sub #m$H'O[WG\  
LL[ +QcH  
Function CheckSlice() As Boolean ZM|>Va/X  
  CopySlice avSL, avSLR, avSLL yLDHJ}R  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then kk~{2   
    CheckSlice = True RLKO0 #  
  Else  fx;5j;  
    CheckSlice = False ise@,[!  
  End If 3M@>kIT8  
End Function 20fCWVw}?}  
V >['~|  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) @W. `'b-  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long _eO]awsA  
  For i = 1 To FrameH ?5(L.XFm  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize dt5gQ9(B  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize k&~vVx  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize 9&d BL0  
  Next i E_H1X'|qS4  
  For i = 1 To FrameH il#rdJ1@t  
    For j = 1 To sSize qS2%U?S7  
       total = total + Slice(j, i) I[4E?  
       totalL = totalL + SliceL(j, i) =pk'a_P 8-  
       totalR = totalR + SliceR(j, i) xDQ$Ui.  
    Next j  R(zsn;  
  Next i jV<LmVcZY  
  avSL = total / FrameH / sSize ItRGq  
  avSLR = totalR / FrameH / sSize 61mQJHl.  
  avSLL = totalL / FrameH / sSize UoLO#C0i  
End Sub w}YHCh  
PH7L#H^  
Sub DrawSlice() iEU(1?m2-  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B D>|:f-Z6Z  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B /ZzlC#`  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B ~f@<]  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) ]-}a{z  
End Sub RU{}qPs?  
Sub DrawMark(pic As Control) Fj]S8wI  
   Dim i As Long, j As Long Xs!eV  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B <!+o8z]  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B #-@{rgH  
   For i = 1 To PilarH ^-ACtA)  
     For j = 1 To PilarW {'b8;x8h  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) <;XJ::d  
     Next j 0)P18n"$  
   Next i t&&OhHK  
End Sub >N,G@{FR  
':>B %k  
Function avIMG() As Integer %]R#}amW  
  Dim i As Long, j As Long, totalIMG As Long #ERn 8k  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize xJ"KR:CD>  
  For i = 1 To pFrameSize P\M+Z A ;  
    totalIMG = totalIMG + pBuffer(i) 3% P?1s  
  Next i cYp}$  
  avIMG = totalIMG / pFrameSize 5G!X 4%a  
End Function .H>Rqikj  
)`Fr*H3{  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer ~'U;).C   
  Dim i As Long, j As Long, totalIMG As Long q6ikJ8E8b  
  For i = 1 To FrameH b~Ruhi[E  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth <]9MgfAe  
  Next i ;T_9;RU<'b  
  For i = 1 To FrameH * barWidth t]` 2f3UO  
    totalIMG = totalIMG + pBuffer(i) c3}}cFe  
  Next i >u4e:/5]  
  avRegion = totalIMG / pFrameSize asF- mf;D  
End Function va<+)b\  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 w %zw+E  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 F9<OKcXH  
[D,:=p`  
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 vr  vzV  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long VsmL#@E  
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 yjr@v!o  
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 4w?7AI]E j  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long KF'M4P  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 g}D$`Nx:  
G !~BA*  
|HEw~x<=  
Private Const GENERIC_READ = &H80000000 0l##M06>  
Private Const GENERIC_WRITE = &H40000000 9s!/yiP5  
iWCV( !  
Private Const FILE_SHARE_READ = &H1 _qg6( X  
Private Const FILE_SHARE_WRITE = &H2 |")x1' M  
Private Const OPEN_EXISTING = 3 ~h@tezF  
&-* nr/xT  
Private Const INVALID_HANDLE_VALUE = -1 b1#=q0Zl  
5_`}$"<~  
'//file seek D=\ |teA&  
Private Const FILE_BEGIN = 0  Ocb2XEF  
Private Const FILE_CURRENT = 1 n>4S P_[E7  
Private Const FILE_END = 2 BNy"YK$  
IF:M_   
Private Const ERROR_SUCCESS = 0& ZX0c_Mk=  
-hzza1DP  
'//device io control wY95|QS  
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 yRznP)  
[v`4OQF/  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 y(dS1.5F  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 zb" hy"hKw  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 9,W-KM  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 \PFx# :-c  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C {eXYl[7n  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 O)Qz$  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F /Ow?nWSt  
aYgJTep>r  
'//type z(WpOD   
Private Type LARGE_INTEGER 'l:2R,cP  
    lowpart As Long HZm i ?  
    highpart As Long s]N-n?'G"  
End Type !BX62j\?  
6+5 Catsn  
Private Enum MEDIA_TYPE LnDj   
    Unknown R\}YD*  
    F5_1Pt2_512 V9 VP"kD  
    F3_1Pt44_512 AH`15k_i  
    F3_2Pt88_512 Z C93C7lJ  
    F3_20Pt8_512 *p3P\ H^5  
    F3_720_512 .#@Dn(  
    F5_360_512 mQs$7t[>t  
    F5_320_512 Wy4^mOv  
    F5_320_1024 (*ng$z Z$  
    F5_180_512 zFn&~lFB  
    F5_160_512 E1C_d'  
    RemovableMedia hkJZqUA  
    FixedMedia Wa(S20y F  
End Enum ) b10%n^  
/4?`F} 7)  
Private Type DISK_GEOMETRY R u5&xIQ  
    Cylinders           As LARGE_INTEGER f*],j  
    MediaType           As MEDIA_TYPE =#tQIhX`  
    TracksPerCylinder   As Long =5`@:!t7  
    SectorsPerTrack     As Long _Pkh`}W:  
    BytesPerSector      As Long q(7D8xG;F  
End Type TJpv"V  
!_) ^bRd  
'//private vars /;4MexgB%  
Private hDisk           As Long             'disk handle ^{s0d+@{  
Private lpGeometry      As DISK_GEOMETRY    'disk info ;N\?]{ L  
Private lBufferSize     As Long             'the buffer size of read/write zl\#n:|  
=dBrmMh  
Public Function OpenDisk(ByVal FileName As String) As Boolean KV_Ga8hs  
'// 打开磁盘 sJoi fl 7  
    hDisk = CreateFile(FileName, _ }#8uXA  
                        GENERIC_READ Or GENERIC_WRITE, _ DKl7|zG4  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ t {"iIz_S  
                        ByVal 0&, _ ak>NKK8P  
                        OPEN_EXISTING, _ 9ojhI=:  
                        0, _ fYy.>m+P1  
                        0) {9".o,  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) udFju&!W  
End Function yxN!*~BvL  
G C'%s  
Public Function CloseDisk() As Boolean qfu2}qUX~%  
'//关闭磁盘 }^[@m#  
    CloseDisk = CloseHandle(hDisk) >#?: x*[  
End Function Bs?F*,zDJ  
dLf8w>i`T  
Public Function GetDiskGeometry() As Boolean L_ mqC(vn  
'//获取磁盘参数 fO^6q1a  
    Dim dwOutBytes      As Long jyhzLu  
    Dim bResult         As Boolean .Qt3!ek  
     uw=Ube(  
    bResult = DeviceIoControl(hDisk, _ a1SOC=.M;  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ \NU [DHrMP  
                                ByVal 0&, 0, _ 6t:c]G'J  
                                lpGeometry, Len(lpGeometry), _ (OB8vTRXP  
                                dwOutBytes, _ rbPs~C-[  
                                ByVal 0&) YZRB4T9  
     ef&@aB  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack )F9r?5}v4x  
    GetDiskGeometry = bResult kW&Z%k  
End Function Jt6J'MOq  
fZ}Y(TG/  
Public Sub GetDiskInfo(MediaType As Long, _ sK0VT"7K  
                        Cylinders As Long, _ 3 \r@f_p  
                        TracksPerCylinder As Long, _ UwkX[u  
                        SectorsPerTrack As Long, _ >UY_:cW4%m  
                        BytesPerSector As Long) SAh054/St  
'//返回磁盘的参数 t5X lR]` w  
    MediaType = lpGeometry.MediaType i[{] LiP  
    Cylinders = lpGeometry.Cylinders.lowpart h)8+4?-4 I  
    TracksPerCylinder = lpGeometry.TracksPerCylinder n-3j$x1Ne  
    SectorsPerTrack = lpGeometry.SectorsPerTrack Xp6*Y1Y  
    BytesPerSector = lpGeometry.BytesPerSector b:Kw_Q  
%uVJL z  
End Sub oh~ vo!  
==1/N{{R  
Public Property Get BufferSize() As Long /dt!J `:  
'//返回每次读/写的缓冲大小 I&8SP$S>J  
    BufferSize = lBufferSize VtiqAh}4  
End Property |o zoc"'  
;J-Ogt@d7  
WV1 Z  
Public Function LockVolume() As Boolean WgJAr73 l  
'// 将卷锁定 4oV_b"xz~  
    Dim dwOutBytes  As Long @ z)tC@  
    Dim bResult     As Boolean DXW?;|8)O  
     ZT8J i?_n  
    bResult = DeviceIoControl(hDisk, _ ^YJA\d@  
                                FSCTL_LOCK_VOLUME, _ G*i#\   
                                ByVal 0&, 0, _ qYZ7Zt;  
                                ByVal 0&, 0, _ ,'CWt]OS'  
                                dwOutBytes, _ +esNwz_   
                                ByVal 0&) Gr$*t,ZW  
    LockVolume = bResult 5w)^~#  '  
End Function O6,"#BX  
`l2<  
n/oipiYx  
Public Function UnlockVolume() As Boolean F.pHL)37  
'// 将卷解锁 ll\^9 4]Q  
    Dim dwOutBytes As Long C'/M/|=Q#  
    Dim bResult As Boolean z-G7Y#  
     xeM':hD.o  
    bResult = DeviceIoControl(hDisk, _ ?vn 0%e868  
                                FSCTL_UNLOCK_VOLUME, _ ]H#Rm#q  
                                ByVal 0&, 0, _ ^>8]3@ Nh  
                                ByVal 0&, 0, _ 8='21@wrN  
                                dwOutBytes, _ 7. 9s.*  
                                ByVal 0&) yj'' \  
    UnlockVolume = bResult )]>G,.9C}  
End Function XYHCggy  
\h7J/es^p!  
c4>sE[]  
Public Function DismountVolume() As Boolean ?w37vsN  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 }<ONxg6Kb  
    Dim dwOutBytes As Long KHecc/,,S  
    Dim bResult As Boolean S"TMsi  
     w2N3+Tkg  
    bResult = DeviceIoControl(hDisk, _ RyOT[J  
                                FSCTL_DISMOUNT_VOLUME, _ xPM yG);  
                                ByVal 0&, 0, _ ;Z1U@2./  
                                ByVal 0&, 0, _ P!+nZXo  
                                dwOutBytes, _ (GEi<\16[  
                                ByVal 0&) Of7) A  
    DismountVolume = bResult y C0f/O  
End Function R``V Q  
{L4>2rF  
9id~NNr7  
Public Function ReadDisk(ByVal Cylinders As Long, _ } ndvV~*1  
                    ByVal Tracks As Long, _ QHs:=i~VH  
                    db() As Byte) As Boolean YD46Z~$  
'//按柱面和磁道来读取磁盘数据 x*&&?nV Iz  
    Dim iPos    As Long cbCE $  
    Dim lRead   As Long {IPn\Bka  
     207O["Y  
    iPos = Cylinders * Tracks * lBufferSize E`uaE=Mdq  
     S2ppKlVv  
    If SeekAbsolute(0, iPos) Then _SIs19"lR  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) 5m.KtnT)  
    End If `)=A !x y  
End Function +yb$[E*  
w$lfR ,  
Public Function WriteDisk(ByVal Cylinders As Long, _ w}W@M,.^  
                     ByVal Tracks As Long, _ Uk *;C  
                     db() As Byte) As Boolean J'ZF IT_>  
'//按柱面和磁道来写磁盘数据 U++~3e@l  
    Dim iPos    As Long 6"Lsui??  
    Dim lRead   As Long T]#,R|)d  
     ~"q,<t  
    iPos = Cylinders * Tracks * lBufferSize %rDmW?T  
     40Qzo%eL  
    If SeekAbsolute(0, iPos) Then Uty(sDtu  
        WriteDisk = WriteBytes(lBufferSize, db()) u1) TG "+0  
    End If >!Ap/{2  
End Function O<dZA=Oez  
{nPkb5xbW  
))IgB).3M  
'///////////////////////////////////////////////////////////////////////////////////// RUk<=! U  
'//file system a|P~LMPM  
`@$"L/AJ  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean co^P7+j  
'//seek file Z0"&   
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte  9VUm=Z#`  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) 4/2RfDp  
    If LowPos = -1 Then "T{~,'T  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) L_U3*#Zdz7  
    Else -':"6\W  
        SeekAbsolute = True h76NR  
    End If 5G'&9{oB  
     !/4 V^H  
End Function Sz|Y$,  
YR|(;B  
1 x\VdT  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean W?^8/1U  
'//read data to array n-y^ 7'v  
    Dim RetVal    As Long cCh0?g7nV  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) ? gA=39[j  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF yxCM l.  
    ReadBytes = Not (RetVal = 0) WE5"A| =  
     fs rg2:kQ  
End Function (Gi+7GMV'  
nI*(a:  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean _) #=>$k\  
'//write data from array 20/P M9  
    Dim RetVal As Long )7I.N]=  
    Dim BytesToWrite As Long v$)@AE  
    Dim BytesWritten As Long 9xK4!~5V  
     x MSNrOc  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) pY)j0tdd  
     7"n)/;la  
    WriteBytes = Not (RetVal = 0) Tw`c6^%^y  
End Function  hmBnV  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 f/0v' Jt  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ $kkp*3{ot  
DWORD dwCB; us\%BxxI9  
LARGE_INTEGER  offset; GP{$v:RG  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); {{.sEi*  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); O^X[9vr W  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ +EST58  
DWORD error = GetLastError(); c#{Ywh  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); B:3+',i1  
return FALSE; HzD>-f  
} l:zU_J6  
return TRUE; ^_*jp[!`b$  
} Q{qj  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : -1jjB1  
[{S;%Jj*X/  
介个真的看不懂。 [2GXAvXsT  
你说你老啦,喜欢怀旧了,才想起来填坑。 Qq'i*Mh  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 nB cp7 e  
6}VUD -}B  
@9OeC O  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : N=>- Q)  
佩服,玩也玩得这么专业! Q,zC_  
CnabD{uTf  
+VSZhg,Np8  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : $np=eT)  
伍SIR,再次抱拳佩服 'KSa8;:=C  
&kb\,mQ  
, ,S9$@R  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : V7P6zAJy  
引用第19楼伍胥之于06-14-2010 12:33发表的  : t')h{2&&!2  
=Ci13< KQ  
Khj=llo,  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 )i @1X H"D  
c )03Ms4 D  
我连一级也没有考过。 Lj iI+NJ  
.
e|VJ9|;3  
D%A@lMru  
引用
d]MGN^%o  
矬子里拔将军... }S,-uggz  
你们那里的俗语是吧? tR<L`?4  
g&bwtEZ  
我们这里说"矮子里拔长脚"..应该是同一个意思... Hr6wgYPi  
2\5cjdy  
有趣....各地有表达意思一样却方式不同的俗语.... P&mtA2  
$R";  
8hZwQ[hr  
你的文章写的有脸皮,没屁眼的, C,.-Q"juH  
让看客大为不满... u^l*5F%DK  
~ Yl<S(/4  
你等着,,估计你以后接到的午夜凶铃就多了... <^Nk.E  
>{QdMn  
ZY)%U*jWU  
我到现在也没有接到你的午夜凶铃呢! +lKrj\Xj  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : 5oJ Dux }  
每个人的故事对其他人都是故事, .LObOR 5J7  
自己的故事也是其中之一. G?/c/rG  
跳出来看, :+:6_x  
不过是众人中的一个人的故事. 72,"Cj  
AW/wI6[T  
所以,接着听故事. 3Z1OX]R  
B+Z13;}B  
女人们有兴趣的就等老伍开个新帖或者跟贴, jTfi@5aPY  
听他痛说恋爱革命历史.... AK*N  
{zP#woz2Q  
杂家接着听他自学程序员历史, q{E"pyt36R  
高级程序员考了吗? > :Ze4}(  
|l7%l&!  
l E^*t`+  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! j{;|g%5t  
xnbsg!`;7W  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 9afh[3qm  
e\9g->DUs  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 xGRT"U(  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : {TAw)!R ~  
哦, 打倒忽悠大家的家伙.      M{G xjmdx  
+a$| Sc  
HZZDv+  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : 6E^~n  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。  zY%. Rq-  
g1|w?pI1  
Gi7RMql6Q  
其实标题没有什么,卡总既然改了就不必再改回了。 :"'nK6>  
`fS^ j-_M  
主要是当初写的时候真是顶着锅盖写的。 ctJ&URCi#  
5DFZ^~  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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