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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 qCO/?kW  
0;ji65  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : 2 FFD%O05  
;6 wA"  
老五,I 服了U。 Z/K{A`  
3,=6@U  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 g ci    
g*"P:n71  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean  ][]  
2|bn(QYz  
Dim regEX As New RegExp `#gie$B{  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 F/A|(AH'  
&w~d _</  
Dim LastTitle0String As String, LastTitle0No As Long ow#1="G,=  
Dim LastTitle1String As String, LastTitle1No As Long -GgA&dh  
Dim LastTitle2String As String, LastTitle2No As Long 4{l,  
Dim LastTitle3String As String, LastTitle3No As Long JLJ;TM'4=  
Dim LastTitle4String As String, LastTitle4No As Long ]cN1c}  
Dim LastTitle5String As String, LastTitle5No As Long f`/x"@~H5  
Dim LastTabelString As String, LastTableNo As Long @]#1(9P  
Dim LastFigureString As String, LastFigureNo As Long !YJs]_Wr  
#V}IvQl|  
Dim strSeperator As String p"Z-6m~  
|&[EZ+[  
Sub ConvertWidth(fTEXT As String, rText As String) 4g7)iL^#~  
        Selection.Find.ClearFormatting 3{h_&Gbo'D  
        Selection.Find.Replacement.ClearFormatting =>dGL|  
        Selection.Find.Wrap = wdFindContinue VYhbx 'e  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText $j ?1g#  
        DoEvents 6(e>P)  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True FEVlZ<PW3I  
End Sub 2dzrRH  
2[;_d;oB@  
Sub ClearDomain() /OJ`c`>Q:  
        With Selection.Find p6WX9\qS(  
            .ClearFormatting [=_jYzD,j|  
            .Replacement.ClearFormatting d'I"jZ  
            .Wrap = wdFindContinue (3&?wy_l  
            Me.txtStatus.Text = "清除所有域代码" orvp*F{7[H  
            DoEvents IkXx# )  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False yH}s<@y;7  
        End With XS BA$y  
End Sub Ib0ZjX6  
0C*7K?/  
Private Sub cmdCheck_Click() ilva,WFa^  
    bContinue = True 8Bg;Kh6B  
    Dim NoSeries1(1 To 16) As String kM@zyDn,  
    Dim NoSeries2(1 To 16) As String  JSg$wi8  
    Dim NoSeries5(1 To 16) As String k: ;WtBC6j  
    Dim NoSeriesRM(1 To 16) As String i2^>vYCsl  
    Dim paraTotal As Long, ParaText As String evJ.<{M  
    Dim ttString As String, ttNo As String 0P(!j_2m  
     kE(mVyLQ  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long &yol_%C  
9<)NvU^-r  
    Me.txtStatus.Visible = True tdaL/rRe  
    Me.lbParaType.Visible = True }-3mPy(*%  
    Me.cmdCheck.Enabled = False 4 N7^?  
     e NafpK  
     T"}vAG( .O  
     Jdp3nzM^^@  
     'XBFv9&  
    Dim ParaType As String, rText As String zNuJjL  
     :U(A;U1,  
    Selection.WholeStory * +wW(#[  
    Selection.NoProofing = True A_# DJJMm  
     %9RF   
    tm1 = Now d5z`BH.  
     D #/Bx[  
        ActiveWindow.View.Type = wdNormalView K!]/(V(}  
     ~F?u)~QZ #  
    NoSeries1(1) = "一" Q?/o%`N  
    NoSeries1(2) = "二" 6B ?twh)  
    NoSeries1(3) = "三" V,?yPi$#E  
    NoSeries1(4) = "四" 63~ E#Dt4  
    NoSeries1(5) = "五" E=w1=,/y  
    NoSeries1(6) = "六" "2T#M O/  
    NoSeries1(7) = "七" ^w06 <m  
    NoSeries1(8) = "八" .k \@zQ|Ta  
    NoSeries1(9) = "九" 7( 2{ 'r  
    NoSeries1(10) = "十" B !=F2  
    NoSeries1(11) = "十一" t@Nyr&|D  
    NoSeries1(12) = "十二" 4I?^t"  
    NoSeries1(13) = "十三" XEZF{lP  
    NoSeries1(14) = "十四" ,<p}o\ 6  
    NoSeries1(15) = "十五" qWKAM@  
    NoSeries1(16) = "十六" t>B;w14  
     wuJ4kW$  
    NoSeries2(1) = "㈠" $"&{aa   
    NoSeries2(2) = "㈡" U~l$\ c  
    NoSeries2(3) = "㈢" q8Z<{#oXu  
    NoSeries2(4) = "㈣" %-e 82J1  
    NoSeries2(5) = "㈤" d$AWu{y  
    NoSeries2(6) = "㈥" ")HFYqP>9  
    NoSeries2(7) = "㈦" AjgF6[B  
    NoSeries2(8) = "㈧" [,KXze_m  
    NoSeries2(9) = "㈨" L`EBfz\n  
    NoSeries2(10) = "㈩" R+,u^;\  
     \K<QmK  
    NoSeries5(1) = "①" :Qf '2.h)  
    NoSeries5(1) = "②" R n* L  
    NoSeries5(3) = "③" fe#\TNeQJ[  
    NoSeries5(4) = "④" MO <3"@/,  
    NoSeries5(5) = "⑤" x 7x\Y(@  
    NoSeries5(6) = "⑥" QS]1daMIK<  
    NoSeries5(7) = "⑦" LAe6`foW/  
    NoSeries5(8) = "⑧" nL.<[]r  
    NoSeries5(9) = "⑨" @[i4^  
    NoSeries5(10) = "⑩" +|>kCtZH%  
     r_;N t  
     H&}pkrH~  
    NoSeriesRM(1) = "I" {Fe[:\  
    NoSeriesRM(2) = "II" g^ i&gNDx  
    NoSeriesRM(3) = "III" 0tB0@Wj  
    NoSeriesRM(4) = "IV" +V^;.P</  
    NoSeriesRM(5) = "V" xLZG:^(I  
    NoSeriesRM(6) = "VI" M_w<m  
    NoSeriesRM(7) = "VII" [bNx^VP*  
    NoSeriesRM(8) = "VIII" *%t^;&x?  
    NoSeriesRM(9) = "IX" 7;(UF=4  
    NoSeriesRM(10) = "X" r!a3\ep  
    NoSeriesRM(11) = "XI" %\Mo-Ow!\  
    NoSeriesRM(12) = "XII" yD6[\'%  
    NoSeriesRM(13) = "XIII" f &wb  
    NoSeriesRM(14) = "XIV" Bv%GJ*>>  
    NoSeriesRM(15) = "XV" _1L![-ac  
    NoSeriesRM(16) = "XVI" 3nnJ8zQ  
     f [^Aw(o  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) {Wu$YWE*sx  
     nSAdCJ;4  
    If i = vbNo Then =+MPFhvg!  
        Exit Sub Y<ql49-X  
    End If X< ; f  
     )sp4Ie  
    If Me.chkSuper.Value Then ~B(4qK1G  
        Me.txtStatus.Text = "检查修改所有的上标格式" m&?r%x  
     ""Q P%  
        CheckSuperScript qXtC^n@x  
         ;H.^i|_/  
    End If :e%Pvk  
     5=?\1`e1[  
    If Me.chkStyle.Value Then &&RimoIeo  
        Me.txtStatus.Text = "设置样式,请稍候...." =-lb)Z"d  
        DoEvents WYYa /,{9.  
        CeateOrModifyStyle 4J([6<  
    End If P0PWJ^+,+  
     c+nq] xOs'  
     KX7 >^Bt&k  
     t=O8f5Pf{  
    ClearDomain (%W&4a1di  
         ;<2 G  
     :s6o"VkW  
     g5QZ0Qkj  
    If Me.chkLIST.Value Then JOLaP@IPT  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" FA3~|Zg  
     5K?IDt7A]  
        ConvertListToOrdinary l.bYE/F0&  
    End If nl,uuc *;  
     Yv!a88+A8M  
     fG(SNNl+D  
    Dim pType As String, trimpTEXT As String e?=^;v%r  
    If Me.chkNum.Value = True Then ]Y8<`;8/  
        Me.txtStatus.Text = "转换全角数字形式为半角" Jh[UtYb 5  
        ConvertWidth "1", "1" zXxT%ZcCj  
        DoEvents !*. -`$x  
        ConvertWidth "2", "2" -kwXvYu\  
        DoEvents r|PB*`  
        ConvertWidth "3", "3" [ $n_6  
        DoEvents oVe|M ss6  
        ConvertWidth "4", "4" zEyN)  
        DoEvents Um-[~-  
        ConvertWidth "5", "5" K_ ~"}  
        DoEvents tX %5BTv  
        ConvertWidth "6", "6" `o8/(`a  
        DoEvents =k0_eX0  
        ConvertWidth "7", "7" Jrpx}2'9:a  
        DoEvents K]" #C  
        ConvertWidth "8", "8" >R! jB]5  
        DoEvents /j|G(vt5  
        ConvertWidth "9", "9" JU5C}%Q6  
        DoEvents o,8TDg  
        ConvertWidth "0", "0" aL&7 1^R,  
        DoEvents ,lA  s  
        ConvertWidth "a", "a" &_|#.  
        DoEvents 0C6-GKbZ  
        ConvertWidth "b", "b" Fv<F}h?6  
        DoEvents "z=SO1  
        ConvertWidth "c", "c" bPt!yI:  
        DoEvents |! E)GahM  
        ConvertWidth "d", "d" g:dH ~>  
        DoEvents f-n1I^|  
        ConvertWidth "e", "e" thM4vq   
        DoEvents ApV~( k)W  
        ConvertWidth "f", "f" bNNr]h8y-  
        DoEvents y)!5R3b  
        ConvertWidth "g", "g" 4'A!; ]:  
        DoEvents i,4>0o?  
        ConvertWidth "h", "h" 5VAK:eB  
        DoEvents )MchsuF<  
        ConvertWidth "i", "i" M={V|H0  
        DoEvents |NC*7/}  
        ConvertWidth "j", "j" `Kr,>sEAM  
        DoEvents mFaZio0GK  
        ConvertWidth "k", "k" 'd$P`Vw:  
        DoEvents ^R Fp8w(  
        ConvertWidth "l", "l" ^y1j.M@q  
        DoEvents m6CI{Sa](l  
        ConvertWidth "m", "m" usCt#eZK  
        DoEvents #& Rw&  
        ConvertWidth "n", "n" <\ :Yk  
        ConvertWidth "o", "o" b8SHg^}  
        ConvertWidth "p", "p" Ix=}+K/  
        ConvertWidth "q", "q" !F1N~6f  
        ConvertWidth "r", "r" a (b#  
        ConvertWidth "s", "s" Y+*0~xm4  
        ConvertWidth "t", "t" 5Qn '  
        ConvertWidth "u", "u" j<@lX^  
        ConvertWidth "v", "v" f;gw"onx8F  
        ConvertWidth "w", "w" '*w00  
        ConvertWidth "x", "x" ?Yk.$90  
        ConvertWidth "y", "y" 7Vo$(kj  
        ConvertWidth "z", "z" ?ztkE62t  
        ConvertWidth "A", "A" OAkZKG|  
        ConvertWidth "B", "B"  &NK,VB;  
        ConvertWidth "C", "C" n}G|/v<  
        ConvertWidth "D", "D" 'JfdV%M  
        ConvertWidth "E", "E" &*G #H~\  
        ConvertWidth "F", "F" 8UyMVY  
        ConvertWidth "G", "G" pd;br8yE$@  
        ConvertWidth "H", "H" Y M\ K%rk  
        ConvertWidth "I", "I" $79=lEn,  
        ConvertWidth "J", "J" QpA/SmJ  
        ConvertWidth "K", "K" 8a'.ZdqC?  
        ConvertWidth "L", "L" C3],n   
        ConvertWidth "M", "M" E!l!OtFL  
        ConvertWidth "N", "N" %<*g!y `  
        ConvertWidth "O", "O"  I3mGo  
        ConvertWidth "P", "P" @u]rWVy;\[  
        ConvertWidth "Q", "Q" 0ANZAX5  
        ConvertWidth "R", "R" kDN:ep{/  
        ConvertWidth "S", "S" *b/` Ya4  
        ConvertWidth "T", "T" SO(NVJh  
        ConvertWidth "U", "U" g/+C@_&m  
        ConvertWidth "V", "V" Z}l3l`h!  
        ConvertWidth "W", "W" v+`N*\J_  
        ConvertWidth "X", "X" Q qvihd  
        ConvertWidth "Y", "Y" \uC15s<  
        ConvertWidth "Z", "Z" _5# y06Q  
        ConvertWidth "^l", "^p" f@DYN!Z_m  
        ConvertWidth "(", "(" -~30)J=e`  
        ConvertWidth ")", ")" e`TH91@  
     Md2>3-  
    End If jW l)cC  
4.=3M  
    With ActiveDocument s,=i_gyPQ  
        Dim tbl As Table xt%7@/hiE  
        For Each tbl In .Tables s1NKLt  
            tbl.Rows.Alignment = wdAlignRowCenter >eB\(EP  
            tbl.Range.Font.NameFarEast = "楷体" ZUR6n>r  
            tbl.Range.Font.NameAscii = "Times New Roman" ~ZEmULKkR  
            tbl.Range.Font.Size = 10.5 *HO}~A%Lx  
        Next ahOMCZF|  
        Set tbl = Nothing ruzspS  
    End With 3.W @ }   
     *q".-u!D[  
     L=8<B=QT$  
    With ActiveDocument _:C9{aEZb  
         $yYO_ZBiy  
        For i = 1 To .TablesOfContents.Count DV-;4AxxRq  
            .TablesOfContents(i).Delete v ` 7RCg`  
        Next |J} Mgb-4  
         [uq$5u  
          4/1d&Sg  
         s4SG[w!d  
        paraTotal = .Paragraphs.Count xScLVt<\e  
        paraCounter = 1 f Tl<p&b  
         a]/>ra5{  
        LastTitle0No = 0 l q&wXi  
        LastTitle1No = 0 qA$*YIlK  
        LastTitle2No = 0 .#Z%1U%P.  
        LastTitle3No = 0 GlT7b/JCG  
        LastTitle4No = 0 ^1aAjYFn  
        LastTableNo = 0 m{uxI za  
        LastFigureNo = 0 2hkRd>)&5  
         Hp|_6hO 2  
        Dim Sec As Long % !>I*H  
          Q&g^c2  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) "a"]o  
        If Sec = 0 Then $lIz{ySJv  
            Exit Sub {{MRELipW  
        End If "a1n_>#Fb  
         7 :3$Ey  
        k = 0 ul2")HL];  
        Do While (paraCounter < paraTotal) And bContinue rIh l.5Y  
            k = k + 1 ( ?{MEwHG  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then "4H +!r}  
                Exit Do @$c\d vO  
            End If RUT,Y4 b  
            paraCounter = paraCounter + 1 mfo1+owT  
            If k Mod 20 = 0 Then }J1tdko#  
                Me.lbCounter.Caption = paraCounter %S nd\  
                DoEvents yo )%J  
            End If *c*0PdV  
        Loop NchXt6$i9  
         }36QsH8  
         (+3Wgl+]/  
        Do While (paraCounter < paraTotal) And bContinue <'Wo@N7  
             M8Z2Pg\0  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) 1ilBz9x*!  
            ShapeHeight = 0 .0rh y2  
            ShapeWidth = 0 3G~@H>j  
           Upd3-2kr&J  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth M9@ri^x  
             ( %xwl  
            Select Case ParaType u1PaHgi$  
                Case "【】表格内容" T{Uc:Z  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" JJ'.((  
                Case "章" kO{s^_qR^c  
                    LastTitle0No = LastTitle0No + 1 l0cA6b  
                    '新一章开始,复位其下属标题编号 C #6dC0  
                    LastTitle1No = 0 BT"42#7_  
                    LastTitle2No = 0 ,JN8f]a^"g  
                    LastTitle3No = 0 fCtPu08{Z  
                    LastTitle4No = 0 ICkp$u^  
                     %V{7DA&C  
                    k = Val(ttNo) q51Uf_\/  
                    If k = 0 Then '非数字编号章节 e\JojaV  
                        If ttNo <> NoSeries1(LastTitle0No) Then *nsAgGKKM^  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString 9Fm"ei  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText !PJ6%"  
                        End If Kt|1&Gk  
                    Else D] ~MC  
                        If Val(ttNo) <> LastTitle0No Then ct,l^|0Hu8  
                            rText = "第" & LastTitle0No & ttString 4NG?_D5&  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText glXZZ=j  
                        End If ;Uu(zhbj  
                         +g]yA3  
                    End If a|=x5`h04~  
                     FE! lok  
                    '章段落设置 {0^&SI"5`E  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 F R!? #!  
                    .Paragraphs(paraCounter).Style = "QLNU章节" $K'|0   
                    .Paragraphs(paraCounter).Range.Select u[/m|z  
                    Selection.EndKey unit:=wdLine Zrr5csE  
                    tc = Replace(rText, vbCr, "") sWblFvHqrU  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False a5!Fv54  
                Case "一级标题" )!:Lzi  
                    LastTitle1No = LastTitle1No + 1 , NVsn  
                    '新一级标题开始,复位其下属标题编号 J6G(_(d  
                    LastTitle2No = 0 R&';Oro  
                    LastTitle3No = 0 $Gv9m   
                    LastTitle4No = 0 Gz[fG  
                     ?0oUS+lU  
                    If ttNo <> NoSeries1(LastTitle1No) Then J8)#PY[i4  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString 5 Ho^N1q  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText )R  2.  
                    End If A\#P*+k0  
                   MxcFvo*LCp  
                     pL%r,Y_^\x  
                    '一级标题段落设置  格式:一、标题内容 % v7[[U{T  
                    .Paragraphs(paraCounter).Range.Text = rText _( {A\}Q|  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" Nn"+w|v[ev  
                    .Paragraphs(paraCounter).Range.Select "=za??\K}  
                    Selection.EndKey unit:=wdLine 7C2&NyWJ  
                    tc = Replace(rText, vbCr, "") ^:* 1d \  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False )}'U`'q  
                Case "二级标题" ZMLg;-T.&4  
                    LastTitle2No = LastTitle2No + 1  n>`as  
                    '新二级标题开始,复位其下属标题编号 ;cz|ss=  
                    LastTitle3No = 0 d[^~'V  
                    LastTitle4No = 0 e|D ;OM  
                     Ch%m  
                    If ttNo <> NoSeries1(LastTitle2No) Then w MP  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString 2hQ>:  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText QZhj b  
                    End If Vy,^)]  
                     Bv. `R0e&  
                    '二级标题段落设置 格式:(一)、标题内容 S (N\cw$  
                    .Paragraphs(paraCounter).Range.Text = rText 9>rPe1iv  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" f'{]"^e=  
                     +_xOLiu  
                    .Paragraphs(paraCounter).Range.Select D"ehWLj  
                    Selection.EndKey unit:=wdLine X2i}vjkY  
                    tc = Replace(rText, vbCr, "") S^<g_ q  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False zyg  }F  
                 BC;:  
                Case "三级标题" \Z/)Y;|mi0  
                    LastTitle3No = LastTitle3No + 1 3lq Mucr  
                    '新三级标题开始,复位其下属标题编号 GMZv RAu i  
                    LastTitle4No = 0 S&Ee,((E(  
                     u% n*gcY  
                    If Val(ttNo) <> LastTitle3No Then -,{-bi  
                            rText = LastTitle3No & ". " & ttString VA%Un,5h  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText ?9=9C"&s  
                         `TPOCxM Mo  
                    End If ;6{@^  
                    '三级标题段落设置 格式:1. 标题内容 fH ?ha  
                    .Paragraphs(paraCounter).Range.Text = rText t2iv(swTe  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" U*P. :BvG  
                    .Paragraphs(paraCounter).Range.Select 4T<Lgb  
                    Selection.EndKey unit:=wdLine R$Tp8G>j  
                    tc = Replace(rText, vbCr, "") ?8mlZ X9C  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False (?! ,p^  
                Case "四级标题" !\;FNu8_.  
                    LastTitle4No = LastTitle4No + 1 S#Sb]  
                     {]]|5 \F  
                    If Val(ttNo) <> LastTitle4No Then F0UVo  
                            rText = "(" & LastTitle4No & "). " & ttString P7f,OY<@%o  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText ^F"iP7   
                     ^T,Gu-2>  
                    End If (%:>T Q(  
                    '四级标题段落设置 格式:(1). 标题内容 d k<XzO~g  
                    .Paragraphs(paraCounter).Range.Text = rText d@G}~&.|  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" t/PlcV_M"  
                    .Paragraphs(paraCounter).Range.Select _ _>.,gL7  
                    Selection.EndKey unit:=wdLine k8uvNLA)a  
                    tc = Replace(rText, vbCr, "") d/e|'MPX  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False 5 `RiS]IO]  
                 &"mzwQX  
                Case "表格标题" Pv+5K*"7Cg  
                    LastTableNo = LastTableNo + 1 tpTAeQ*:d  
                     rJInj>|{=  
                    If ttNo <> CStr(LastTableNo) Then F5qFYL;  
                            rText = "表" & LastTableNo & ". " & ttString y tf b$;|  
                            ErrMsg.AddItem "表格编号错误:" & ParaText ~E^,=4  
                   }Lw>I94e  
                    End If RTu4@7XP  
                     @M8|(N%  
                    '表格名称段落设置 格式:表1. 表格名称 >xn}N6Rj2~  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" l?)ZJ3]a  
                    xe = Replace(rText, vbCr, "") |s)?cpb  
                    .Paragraphs(paraCounter).Range.Select FG!X"<he  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 *8tI*Pus  
                    Selection.Range.Text = xe R?EASc!b  
                    Selection.EndKey ([V V%ovZ  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False yj(vkifEB  
                 !!nuAQ"E[  
                Case "表格首行" y{a$y}7#X  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" z]bwnJfd  
                Case "图片标题" *cg( ?yg  
                    LastFigureNo = LastFigureNo + 1 *79m^  
                     *I0-O*Xr  
                    If ttNo <> CStr(LastFigureNo) Then 'iY*6<xS<  
                            rText = "图" & LastFigureNo & ". " & ttString k%op> &  
                            ErrMsg.AddItem "表格编号错误:" & ParaText d@3}U6,  
                   ;eZ#bjw-d  
                    End If E|$Oha[  
                    '图片名称段落设置 格式:图1. 图名称 $CE[MZ&S  
                    .Paragraphs(paraCounter).Range.Text = rText q0bHB_|wL  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" OLj\ -w^  
                    .Paragraphs(paraCounter).Range.Select &h,5:u  
                    Selection.EndKey unit:=wdLine %D`,k*X  
                    xe = Replace(rText, vbCr, "") [J0 v&{)?  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False 02k4 N%  
                Case "正文" '2-oh  
                     '正文名称段落设置 gxGrspqg  
                    .Paragraphs(paraCounter).Style = "QLNU正文" |J~eLh[d  
               Case "文献条目" \OpoBXh  
                    With .Paragraphs(paraCounter) U70]!EaT  
                        '.Range.Select F("#^$  
                        'Selection.ClearFormatting [|3>MZ2/  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” 92'wkS  
                        .Style = "QLNU参考文献" =_8Tp~j  
                    End With nD2, !71  
               Case "图表注解" A;u"<KG?  
                    With .Paragraphs(paraCounter) Px>va01n  
                        .Range.Font.NameFarEast = "楷体" eb8w~   
                        .Range.Font.NameAscii = "Times New Roman" :p4"IeKs  
                        .Range.Font.Size = 9 '小5号字 xT)psM'CL  
                          l"zUv  
                        .Alignment = wdAlignParagraphCenter 5')8r ';,  
                        .LeftIndent = 0 'snYu!`z  
                        .RightIndent = 0 8g  >b  
                        .FirstLineIndent = 0 1]T`n/d V  
                        .LineSpacing = 12 0J8K9rP;z  
                        .LineSpacingRule = wdLineSpaceExactly Sj(F3wY  
                        .LineUnitAfter = 0 S-nlr@w8  
                        .LineUnitBefore = 0 1Fi86  
                        .OutlineLevel = wdOutlineLevelBodyText 2spg?]  
                        .PageBreakBefore = False 9=/N|m8.  
                        .RightIndent = 0 CC3v%^81l^  
                        .WordWrap = True 9Of FM9(:  
                        .LineUnitAfter = 0.5 KZBrE$@%5  
                         -n? g~(/P  
                    End With $Vv}XMxw  
                Case Else ._96*r=o  
                    '不作处理 5b6s4 ZyV  
            End Select $,hwU3RVxc  
             ag4`n:1  
            '含有inlineshape的段落处理 ? QDWuPhN  
            If ShapeHeight > 30 Then 2`= 6%s  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 OlQ,Ce  
            End If D=)f )-u'  
             'iLH `WE  
            If (ShapeWidth + ShapeHeight) > 150 Then Ut)r&?  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" l48k<  
            End If +tN &a  
             @l UlY2  
            '段落计数器递 e|r0zw S  
            paraCounter = paraCounter + 1 xDO7A5  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter @oG)LT  
            Me.txtStatus.Text = ParaText O;]?gj 1@  
            DoEvents v}v 5  
        Loop H_IGFZCh  
    End With vG2b:[W  
     \BI/G  
    msg = "" )Os Lrq/  
     lKEa)KF[  
    For i = 0 To Me.ErrMsg.ListCount - 1 7CB#YP?E  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) KIVH!2q;  
    Next kDz>r #%  
     EC?Efc+O  
     ]^\8U2q}  
     7e&\{ *  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg hD<f3_k  
    Me.cmdCheck.Enabled = True :'r6 TVDW  
    Me.txtStatus.Visible = True s-V SH  
    Me.lbParaType.Visible = False L6i|:D32p  
     !1uzX Kb  
    bContinue = False &VWlt2-R0h  
End Sub ~ -F?Mc  
<Jp1A# %p  
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) Ok%}|/ P4  
    Dim pTEXT As String )-/gLZsx  
     [Id}4[={e  
    pTEXT = ChKRange.Text  ELh3 ^  
     ^`qPs/b  
    ParaType = "其它" 4o9$bv  
    TitleString = pTEXT ER{3,0U  
    TitleNo = "N/A" !@ YXZ  
     Cj;/Uhs  
    shpCounter = ChKRange.InlineShapes.Count 1{2eY%+C  
    If shpCounter <> 0 Then ;</Twm;:  
        MaxShpHeight = 0: TotalShpWidth = 0 c~dM`2J,  
        For i = 1 To shpCounter ! ]Mc4!E  
            k = ChKRange.InlineShapes(i).Height _hCJ|Rrln  
            l = ChKRange.InlineShapes(i).Width swpnuuC-  
            If k > MaxShpHeight Then yD)"c .  
                MaxShpHeight = k YJ2ro-X  
            End If 2#_38=K=@  
            TotalShpWidth = TotalShpWidth + l u:` y]  
        Next 9F+P@Kp  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then Z#Lx_*p]Q  
            Exit Sub ? 4)v`*  
        End If ]R_G{%  
    End If u=qPzmywt  
     q?~Rnv  
    '空行 twk&-:'  
    If Len(pTEXT) <= 2 Then chAan~r[*  
        Exit Sub $~'T f>e  
    End If %>XN%t'6aT  
     i!MwBYk  
         O(OmGu4%  
    '是否为表格中的文字 P?3{z="LzJ  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then Eb.;^=x  
        ParaType = "表格内容" uiBTnG"  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) `!w^0kZ  
        If k = 1 Then 8kW/DcLE  
            ParaType = "表格首行" PtKTm\,JL0  
        End If N)43};e  
        Exit Sub O=jN&<rb  
    End If X$wehMBX  
     i|\{\d  
    '例外情况:脚注 |j_` z@7(  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then }&G]0hCT!  
        ParaType = "脚注" XSB 8z   
        Exit Sub ]X" / yAn  
    End If ?G/hJ?3  
     amB@N6*  
    '例外情况:尾注 Wtv#h~jy9  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then $ehg@WK}.  
        ParaType = "尾注" Y~"9L|`f/  
        Exit Sub ->yeJTsE9  
    End If "~p+0Xws9  
     r7)@M%A  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then BGjb`U#%3  
        ParaType = "页眉页脚" ;WI]vn  
        Exit Sub cINHH !v  
    End If 3DoRE2}  
     '.p? 6k!K  
     5iWe-xQ>  
    With regEX  ?B4#f!X  
        .Global = True \OHv|8!EI@  
         TvrwVL)  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" jFj~]]j  
        If regEX.Test(pTEXT) Then =wA5P@  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") <FmBa4ONU  
            TitleString = regEX.Replace(pTEXT, "$3") ?TuI:dC  
            TitleNo = regEX.Replace(pTEXT, "$1") DA LQ<iF  
            ParaType = "章" ^&:'NR  
            Exit Sub & QY#3yj=  
        End If }#b %"I0  
         c)1=U_61  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" qiNliJ>40E  
        If regEX.Test(pTEXT) Then _F8T\f |  
            ParaType = "一级标题" =&0U`P$`  
            regEX.Execute (pTEXT) 2;N@aZX  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") "r-l8r,  
            TitleString = regEX.Replace(pTEXT, "$3") vO$ra5Z  
            TitleNo = regEX.Replace(pTEXT, "$1") 7>x;B  
            Exit Sub Sa}D.SBg  
        End If w4:<fnOM  
         3%M.U)|+  
        '全角或半角括号中的数字 NdQ%:OKC  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" ~Ob8i1S>  
        If regEX.Test(pTEXT) Then v'nHFC+p  
            ParaType = "二级标题" if@W ]%  
            regEX.Execute (pTEXT) iUNnPJh  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") 5a$$95oL  
            TitleString = regEX.Replace(pTEXT, "$5") OKQLv+q5K)  
            TitleNo = regEX.Replace(pTEXT, "$2") 9oq)X[  
            Exit Sub yzc pG6 ,  
        End If s-Y+x  
         *j<@yG2\gP  
        '阿拉伯数字  1. 2. <"I?jgo  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" SLA#= K  
        If regEX.Test(pTEXT) Then RWahsJTu  
            ParaType = "三级标题" oO:LG%q  
            regEX.Execute (pTEXT) L<@&nx   
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 /`R dQ<($  
            TitleString = regEX.Replace(pTEXT, "$3") %\yK5V5  
            TitleNo = regEX.Replace(pTEXT, "$1") &"j@79Ym1~  
            Exit Sub /w~C~6z @!  
        End If Jn,w)Els  
         >0T3'/k<H  
        '全角或半角括号中的阿拉伯数字 @ Qo,p  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" om7`w ]  
        If regEX.Test(pTEXT) Then l @A"U) A(  
            ParaType = "四级标题" mG}k 3e-  
            regEX.Execute (pTEXT) ma7fDo0,`h  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") kukaim>K  
            TitleString = regEX.Replace(pTEXT, "$5") A[ 1)!e  
            TitleNo = regEX.Replace(pTEXT, "$2") R]=SWE}U  
            Exit Sub ;Prg'R[o;  
        End If j_pw^I$C  
         Z1]"[U[;  
        '表格名称 [s %\.y(q  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" WLy7'3@  
        If regEX.Test(pTEXT) Then )@c3##Zp)  
            ParaType = "表格标题" 6{^*JC5nj  
            regEX.Execute (pTEXT) 4qBY% 1  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) fm6]CU1^  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) \DyKtrnm%  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) N<b D  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 B*Cb6'Q  
            Exit Sub GI4oQcJ  
        End If 3*\8p6G  
         U$$3'n  
        '图片名称 T{~MiC6A  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" V~c(]K)-  
        If regEX.Test(pTEXT) Then m~Me^yt>}  
            ParaType = "图片标题" S&|VkZR)  
            regEX.Execute (pTEXT) mCrU//G  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") Spc&X72I  
            TitleString = regEX.Replace(pTEXT, "$3") Vw?P.4  
            TitleNo = regEX.Replace(pTEXT, "$1") F`D 9Zfd  
            Exit Sub 5V rcR=?O  
        End If 'WzUu MCx  
         y<uE-4  
        '参考文献 P6E1^$e  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 t>@yv#  
        If regEX.Test(pTEXT) Then J=L`]XE  
            ParaType = "文献条目" h*l4Y!7  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") \I xzdFF#  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") n +d J c  
            Exit Sub XbXgU#%  
        End If [email protected]z"o.`  
         n8?KSQy$  
        prfx = Left(pTEXT, 2) &U0WkW   
        If prfx = "注:" Or prfx = "注:" Then 2?H@$-x>  
            ParaType = "图表注解" 2HVCXegq  
            Exit Sub |QqWVelc  
        End If w}b<D#0XC  
         KF4s ee;;  
         eHROBxH&  
        ParaType = "正文" 'Ix5,^M}B  
         Zr R+QV  
    End With )x9]xqoR  
End Sub V*kzn m  
*p"O*zj  
Sub ConvertListToOrdinary() oP,RlR  
    Dim st As Paragraph R]VTV7D  
    With ActiveDocument sx90lsu  
        For i = .Paragraphs.Count To 1 Step -1 ]kH}lr yG  
            Set st = .Paragraphs(i) \ >(zunL  
            lst = st.Range.ListFormat.ListString :28@J?jjO  
            If lst <> "" Then ujNt(7Cz  
                st.Range.ListFormat.RemoveNumbers 6DO0zNTY  
                st.Range.InsertBefore lst & " " S r[IoF)  
            End If ,@,LD  u  
        Next I`#EhH  
    End With DlS&qFs  
    Set st = Nothing }*OD M6  
End Sub = jBL'|k5  
&{hc   
Private Sub UserForm_Activate() z}mvX .j7  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" %8g$T6E[<2  
    Me.lbTotal.Font.Bold = True -|$*l Q  
    Me.txtStatus.Visible = False 9OhR4 1B  
    Me.cmdCheck.Enabled = True 2:n|x5\H  
_jk|}IB;X  
End Sub c_[ JjG^?P  
T*p|'Q`  
hF9B?@n?B  
Sub CheckSuperScript() e)b r`CD%  
    Selection.Find.ClearFormatting o8mo=V4j  
    Selection.Find.Replacement.ClearFormatting ,^M]yr *~  
    With Selection.Find cnC_#kp  
        .Text = "[【\[[〖](*)[】\]〗]]" 4&H+hN{3  
        .Replacement.Text = "[\1]" ]uJM6QuQ  
        .Replacement.Font.Superscript = True `-5cQ2>"  
        '.Replacement.Font.Color = wdColorBlue gBfX}EK7F  
        .Forward = True H7J`]nr6  
        .Wrap = wdFindContinue ~"RQ!&U  
        .FORMAT = True *+&z|Pwv[^  
        .MatchCase = False lWIv(%/@  
        .MatchWholeWord = False e8 v; D  
        .MatchByte = False w4`!Te  
        .MatchAllWordForms = False I@+lFG   
        .MatchSoundsLike = False Fv;u1Atiw  
        .MatchWildcards = True 7ia "u+Y  
    End With wbl ${@4  
    Selection.Find.Execute Replace:=wdReplaceAll #[C< J#;  
End Sub I_K[!4~Kn  
i:R!T,  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 6O%=G3I  
    bContinue = False @< VG8{  
    Set regEX = Nothing )ZviS.  
End Sub cyDiA(ot&  
DwTi_8m;  
Sub CeateOrModifyStyle() V~JBZ}`TG<  
' _RgxKp/d  
' _82<| NN:  
Dim stl As Style '>"`)-  
     %d ZM9I0  
    Options.Pagination = False ^CO#QnB @  
     Mn-<51.%  
    On Error Resume Next a{5H33JA  
    For Each stl In ActiveDocument.Styles }t}38%1i  
        stl.Delete 5 7'q;I  
    Next  \8 g.  
    On Error GoTo 0 V5cb}xx  
     %{=4Fa(Jux  
    Set stl = Nothing IBzHR[#,^  
     %~ ;nlDw  
    DoEvents ;;D% l^m+  
    On Error Resume Next EP/&m|o|G  
     ,7QBJ_-;QJ  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph 2c!h2$w  
     fHW-Je7mG  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph d|R HG  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph S_`W@cp[  
     GsR-#tV@  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph S|s3}]g9  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph !Jh*a *I}  
     @ 8A{ 9i  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph J: L-15  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph %+ /f'6kR  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph g2!0vB>  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph 9Zs #Ky/  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph fYv ;TV>73  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph cvn-*Sj  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph OE5X8DqQe  
     Cq TH!'N  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph iM4mkCdOO  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph yIM.j;5:~5  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph 1 VPg`+o  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph #!( Zn:[  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph b;SFI^  
     +'!h-x1y~  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph X9p+a,  
    On Error GoTo 0 ,ZLG7e  
    DoEvents BYTXAZLb  
     ;|2U f   
    'BaseStyle 3AX?B~s  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False [B.W1 GL!  
    With ActiveDocument.Styles("BaseStyle").Font 27}.s0{D  
        .NameFarEast = "宋体" 9)1P+c--  
        .NameAscii = "Times New Roman" y-D>xV)n  
        .NameOther = "宋体" &8R-C[A  
        .Size = 10.5 Rv0-vH.n  
        .Bold = wdUndefined _a?wf!4>P  
        .Italic = wdUndefined oBhL}r  
        .Subscript = wdUndefined ,P;8 }yQ  
        .Subscript = wdUndefined Oz_b3r  
         JkRGtYq  
        .Underline = wdUnderlineNone =]8f"wAh*  
        .UnderlineColor = wdColorAutomatic 7)g;Wd+H  
        .StrikeThrough = False R:SIs\%o  
        .DoubleStrikeThrough = False ADuZ}]  
         `#-p,NElV  
        .Outline = False oiIt3<BX  
        .Emboss = False H0 {Mlu9  
        .Shadow = False dO Y lI`4  
        .Hidden = False |p'_k(z}  
        .SmallCaps = False 4S d+"3M  
        .AllCaps = False >1_Dk7E0D  
        .Color = wdColorAutomatic ke{DFq h  
        .Engrave = False 1uKD&k%q  
        .Scaling = 100 t sC z+M P  
        .Kerning = 1 }M;sz  
        .Animation = wdAnimationNone l6r%nHP@  
        .DisableCharacterSpaceGrid = False {mKpD  
        .EmphasisMark = wdEmphasisMarkNone zS&7[:IRs'  
    End With h#$ _<U  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat c%o5 E%  
        .LeftIndent = 0 X20<r?^,,  
        .RightIndent = 0 qpH j4  
        .SpaceBefore = 0 $Ui]hA-:?y  
        .SpaceBeforeAuto = False 7{?lEQ&UE  
        .SpaceAfter = 0 (, ;MC/l  
        .SpaceAfterAuto = False Y}eZPG.h  
         R4hav   
        .LineSpacingRule = wdLineSpaceSingle yQ72v'  
        .Alignment = wdAlignParagraphJustify ! hOOpZ f7  
         J@=!w[v+  
        .WidowControl = False }W^V^i)  
        .KeepWithNext = False \JF57t}Zk  
        .KeepTogether = False tyBg7dP  
        .PageBreakBefore = False o{s4.LKK  
        .NoLineNumber = False Lh8# I&x  
         UHTb61Gs  
        .FirstLineIndent = CentimetersToPoints(0) e7)>U!9c9  
        .OutlineLevel = wdOutlineLevelBodyText UMnR=~.  
        .CharacterUnitLeftIndent = 0 Br_3qJNVP  
        .CharacterUnitRightIndent = 0 &utS\-;G  
        .CharacterUnitFirstLineIndent = 0 1q;I7_{ 2  
        .LineUnitBefore = 0 <m|FccvQ  
        .LineUnitAfter = 0 A- <.#  
        .AutoAdjustRightIndent = True 3 hp tP  
        .DisableLineHeightGrid = True /v<e$0~s<  
         /3xFd)|Ds  
        .FarEastLineBreakControl = True !XG/,)A  
        .WordWrap = True s (l+{b &  
        .Hyphenation = False BxW||O|_N"  
         q[T_*X3o  
        .HangingPunctuation = True 0TuNA\Ug+  
        .HalfWidthPunctuationOnTopOfLine = True rd f85%%7  
        .AddSpaceBetweenFarEastAndAlpha = True 8' WLm  
        .AddSpaceBetweenFarEastAndDigit = True _R>s5|_  
        .BaseLineAlignment = wdBaselineAlignBaseline +btP]?04  
    End With x`j_d:C~G  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False #t5JUi%in*  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll ;h*"E(P p  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese *X"F:7  
    ActiveDocument.Styles("BaseStyle").NoProofing = False gK]T}  
     IJL^dXCu  
    '一级标题题样式 NK*:w *SOI  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") oW\Q>c7 =  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" dja9XWOg  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False EX[l0]fj  
    With ActiveDocument.Styles("QLNU一级标题").Font fb;hf:B:  
        .NameFarEast = "黑体" Lx4H/[$6D  
        .NameAscii = "Arial Black" x<)!$cg  
        .NameOther = "黑体" ,cl"1>lp  
        .Name = "黑体" +4p2KYO  
        .Size = 16              '三号 2=/-d$  
        .Bold = True dNS9<8JX  
        .Italic = wdUndefined \, X?K  
        .Subscript = wdUndefined &**.naSo  
        .Superscript = wdUndefined TLR Lng  
    End With RMs1{64:  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat ~a0d .dU  
         (RI>aDG RH  
        .LeftIndent = CentimetersToPoints(0) r(`8A:#d  
        .RightIndent = CentimetersToPoints(0) 8. ~ Euz  
        .FirstLineIndent = CentimetersToPoints(0) @Reh?]# v  
         g/J^K*3]  
        .LineSpacingRule = wdLineSpaceSingle SO8|]Fk  
        .Alignment = wdAlignParagraphCenter w|3fioLs  
         }&'yt97+  
        .WidowControl = True 7ZR0M&pX  
        .KeepWithNext = True t 's5~  
        .KeepTogether = True bN<O<x1j  
        .OutlineLevel = wdOutlineLevelBodyText -&HoR!af  
         p]J]<QaZD  
        .LineUnitBefore = 0.5 Z:}2F^6  
        .LineUnitAfter = 0.5 o9(#KC?3  
    End With g tSHy*3]  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False ) 2*|WHO  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll d3\l9R{}  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese +eH=;8  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True 42H#n]Y  
    DoEvents =r@ie >* U  
     ;9- 4J  
    '二级 >u%[J!Y;;  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") P89Dg/P  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" y D=)&->Ra  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False !*$'fn'bAA  
    With ActiveDocument.Styles("QLNU二级标题").Font d<^6hF  
        .NameFarEast = "黑体" j+ T\c2d  
        .NameAscii = "Arial Narrow" rkER`  
        .NameOther = "黑体" iI/'! 85  
        .Name = "黑体" ~"hAb2  
        .Size = 15        '小三号 QRn:=J%W W  
        .Bold = False &  t @  
        .Outline = False YpbdScz  
        .Italic = wdUndefined J>&dWKM3  
        .Subscript = wdUndefined <jg wdbT"6  
        .Superscript = wdUndefined Lq H?3) :  
    End With RM / s :  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat e>s.mH6A  
        .LeftIndent = CentimetersToPoints(0) tL 9e~>,`  
        .RightIndent = CentimetersToPoints(0) |7 W6I$Xl  
        .FirstLineIndent = CentimetersToPoints(0) .Jnp{Tet  
         YP@ ?j  
        .LineSpacingRule = wdLineSpaceSingle Y7IlqC`i  
        .Alignment = wdAlignParagraphLeft x,@O:e  
         vb4G_X0S  
        .WidowControl = True :EmMia-)J  
        .KeepWithNext = True g^|_X1{  
        .KeepTogether = True  4pOc`  
        .PageBreakBefore = False 4<!}4   
        .OutlineLevel = wdOutlineLevelBodyText Mz#S5 s  
         =V4_DJ(&  
        .LineUnitBefore = 0.5 Kk"B501  
        .LineUnitAfter = 0.5 /ux#U]x  
         2* cKFv{  
    End With +HVG5l  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False ;/]c^y  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll ;L/T}!Dx  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese K <fq=:I3  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True 1OJD\wc  
    DoEvents v \L Ip  
     N'W >pU  
    '三级标题样式 IcNIuv  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") =,1zl}PR  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" ,4?|}xg  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False }F9?*2\/  
    With ActiveDocument.Styles("QLNU三级标题").Font 7dL=E"WL  
        .NameFarEast = "宋体" 3hpz.ISk  
        .NameAscii = "Times New Roman" <\#  
        .NameOther = "黑体" W(3~F 2  
        .Name = "黑体" :/?R9JVI  
        .Size = 14               '四号 OW5|oG  
        .Bold = False 1\9BO:<K  
        .Outline = False j$/uJ`  
        .Italic = wdUndefined 7H@Cy}a  
        .Subscript = wdUndefined P+ h<{%:*  
        .Superscript = wdUndefined h;h,dx  
    End With aABE= 9Y  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat >0G}, S  
        .LeftIndent = CentimetersToPoints(0) P#'DGW&W0  
        .RightIndent = CentimetersToPoints(0) ?}>B4Z)  
        .FirstLineIndent = CentimetersToPoints(0) "q#kh,-C  
         "NI>HO.U  
        .LineSpacingRule = wdLineSpaceSingle )a2m<"  
        .Alignment = wdAlignParagraphLeft 0.,&B5)  
         "{1}  
        .WidowControl = True ^a0 -5  
        .KeepWithNext = True d%|#m)  
        .KeepTogether = True - G2M;]Cn  
        .PageBreakBefore = False [!|d[  
        .OutlineLevel = wdOutlineLevelBodyText 4~J1pcBno%  
         Vu8-Cy>Q?  
        .CharacterUnitLeftIndent = 0 [8(9.6f  
        .CharacterUnitRightIndent = 0 JT+lWhy  
        .CharacterUnitFirstLineIndent = 2 rD)v%vvr&`  
         b J5z??  
        .LineUnitBefore = 0.5 ' c\TMb.  
        .LineUnitAfter = 0 `oI/;&  
    End With p9bxhnn|  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False Ik2szXh[J  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll 7D1`^,?  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese .J! $,O@  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True za 4B+&JJ  
    DoEvents 7'l{I'Z  
     [/`Hz]R  
    '四级标题样式 4Fht (B|  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") *d*;M>  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" x>/@Z6Wxz  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False % QcG^R  
    With ActiveDocument.Styles("QLNU四级标题").Font 'm.XmVZL%  
        .NameFarEast = "宋体" V,%5 hl'&  
        .NameAscii = "Times New Roman" D +%k1  
        .NameOther = "宋体" 2nz'/ G  
        .Name = "宋体" 29E@e]Y,`  
        .Size = 12               '小四号 lb XkZ,  
        .Bold = True x)Om[jZE  
        .Outline = False iZqFVr&JF  
        .Italic = wdUndefined oXOO 10  
        .Subscript = wdUndefined }u$a PS<$!  
        .Superscript = wdUndefined F1]PYx$X  
    End With d}G."wnG9,  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat i /U{dzZ  
         V?pO~q o  
        .LeftIndent = CentimetersToPoints(0) Zvw3C%In  
        .RightIndent = CentimetersToPoints(0) RwLdV+2\R`  
        .FirstLineIndent = CentimetersToPoints(0) /bj`%Q.n  
         %b'VEd7  
        .LineSpacingRule = wdLineSpaceSingle aLo>Yi  
        .Alignment = wdAlignParagraphLeft v-]-wNqT  
         pt;Sk?-1  
        .WidowControl = True q|_ 5@Ly  
        .KeepWithNext = True Z["nY&.sI  
        .KeepTogether = True ;eSf4_~  
        .PageBreakBefore = False kj"_Y"q=  
        .OutlineLevel = wdOutlineLevelBodyText U@ QU8  
         {xx;zjt%}}  
        .CharacterUnitLeftIndent = 0 [==Z1Q;=  
        .CharacterUnitRightIndent = 0 79f yn!Iz<  
        .CharacterUnitFirstLineIndent = 2 wtick~ )  
         ]d;/6R+Vs  
        .LineUnitBefore = 0 :JG}%  
        .LineUnitAfter = 0 f v7g93  
         OX`GN#yl  
    End With \.-y LS.  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False iPL'JVPZ  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll 5 /VB'N#7s  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese RJm8K,3#  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True bI0+J)  
    DoEvents /hy!8c7  
     {Q3#]Vu  
    '正文校式 17i@GnbNb  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") a5+v)F/=  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" zU=[Kc=$  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False @(5RAYRV  
    With ActiveDocument.Styles("QLNU正文").Font l.'E\3Bo  
         ,#FH8%Yf  
        .NameFarEast = "宋体" N=Yi :+  
        .NameAscii = "Times New Roman" u,k8i:JY  
        .NameOther = "宋体" Cjb p-  
        .Name = "宋体" w%u[~T7OI  
         -5*;J&.   
        .Size = 12               '小四号 yxq!. 72  
         8*){*'bf  
        .Bold = wdUndefined /9^0YC;Y*  
        .Italic = wdUndefined by3kfY]4s  
        .Subscript = wdUndefined qMj e,Y  
        .Superscript = wdUndefined 0-O.*Q^  
         U.9nHo{  
        .Outline = False 5?Ao9Q]@  
        .Emboss = False X-WvKH(=w  
        .Shadow = False K&oO+G^f  
        .Hidden = False ?UZ yu 4O%  
         dfd%A" I  
        .DisableCharacterSpaceGrid = True DcM+K@1E4^  
    End With ~}l,H:jk@  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat 9Qd'=JQl  
          +*~3"ww<  
        .LeftIndent = CentimetersToPoints(0) zL{@LHP  
        .RightIndent = CentimetersToPoints(0) 1j-i nj`  
        .FirstLineIndent = CentimetersToPoints(0) eWs^[^c.<  
         <p8y'KAlc  
        .LineSpacingRule = wdLineSpaceExactly s8O+&^(U  
        .LineSpacing = 20 `I<|*vW u  
        .Alignment = wdAlignParagraphLeft "N"k8,LH  
         J(*"S!q)6  
        .WidowControl = False l3$?eGGM  
        .KeepWithNext = False ^^(ZK 6d  
        .KeepTogether = False 7oSuLo=  
        .PageBreakBefore = False r>eXw5Pr7  
        .Hyphenation = False / 1GZN *I  
         7!r`DZ"yF  
        .OutlineLevel = wdOutlineLevelBodyText C#cEMKa  
         U9OF0=g  
       mTbPz Z4  
        .CharacterUnitLeftIndent = 0 L(rjjkH  
        .CharacterUnitRightIndent = 0 ;]ew>P)  
        .CharacterUnitFirstLineIndent = 2 wB GxJ\+M  
         \Vq;j 1  
        .LineUnitBefore = 0 +\m!# CSA  
        .LineUnitAfter = 0 a"N_zGf2$  
        .SpaceBefore = 0 yXmp]9$  
        .SpaceAfter = 0 No+zw%l0E  
         |pg5m*h  
        .DisableLineHeightGrid = True id9T[^h  
    End With aB_z4dqwU  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False M:M<bz Vu  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll 9_dsiM7CT  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese ? +!?$h  
    ActiveDocument.Styles("QLNU正文").NoProofing = True =ZL2 0<TeH  
    DoEvents 2}#PDh n  
     mw%_ yDZ{  
    '图片段落样式 0`=?ig _  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") 5qko`r@#  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" :S2MS{>Mo  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False t:n|0G(  
    With ActiveDocument.Styles("QLNU图片段落").Font \OB3gnR  
        .Size = 12               '小四号 $ {"St&(  
        .Italic = wdUndefined 7K4%`O  
        .Subscript = wdUndefined v2g+o KO]  
        .Superscript = wdUndefined ,~w)@.  
    End With @~HD<K  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat t)+dW~g  
         (9%%^s]uPT  
        .LeftIndent = CentimetersToPoints(0) hidweg*7  
        .RightIndent = CentimetersToPoints(0) f>PU# D @B  
        .FirstLineIndent = CentimetersToPoints(0) ^9E(8D D  
         Q)8t;Kx  
        .LineSpacingRule = wdLineSpaceSingle P;[mw(  
        .Alignment = wdAlignParagraphCenter ?2Dz1#%D  
        .KeepWithNext = True GT0'bge  
        .OutlineLevel = wdOutlineLevelBodyText s2kynQ#a  
         ] lTfi0}g_  
        .CharacterUnitLeftIndent = 0 9)X<}*(qo  
        .CharacterUnitRightIndent = 0 1(a\$Di  
        .CharacterUnitFirstLineIndent = 0 #$QY[rf=6  
         `Nr7N#g+u  
        .LineUnitBefore = 0 [b'fz  
        .LineUnitAfter = 0 Fb-TCq1y#  
    End With [G)Sq;  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False l"#,O$x"#@  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll EpMEA1=&  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese +r"$?bw '  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True )2hoO_l:  
    DoEvents rKq]zHgpo  
     =Q/i< u  
     Ss}0.5Bq  
    '第X章 Wn5]2D\vkT  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") upKrr  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" jz0\F,s  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False wtyu"=  
    With ActiveDocument.Styles("QLNU章节标题").Font bp_@e0  
        .NameFarEast = "黑体" W1(zi P'6  
        .NameAscii = "Arial Black" }(6k7{,Gw,  
        .NameOther = "Arial Black" ay.IKBXc  
        .Name = "黑体" d_hcv|%  
        .Size = 16 |+''d  
        .Bold = True W,+91rup  
        .UnderlineColor = wdColorAutomatic c9 c Nlp  
        .Outline = False omu&:) g  
        .Italic = wdUndefined sP7(1)\  
        .Subscript = wdUndefined f{oWd]eAhb  
        .Superscript = wdUndefined  QkAwG[4  
        .Scaling = 100 C]cw@:o%  
        .DisableCharacterSpaceGrid = True tDVdl^#  
    End With =7> ~u  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat 6;DPGx  
        .LineSpacingRule = wdLineSpaceSingle b.+ \qaR  
        .Alignment = wdAlignParagraphCenter r Y.:}D  
        .WidowControl = True tp&iOP6O  
        .KeepWithNext = True 9IV WbJ  
        .KeepTogether = True 1C{n\_hR  
        .PageBreakBefore = True '@P[fSQ  
        .OutlineLevel = wdOutlineLevelBodyText gw^+[}U#  
         <NO~TBHF  
        .LeftIndent = CentimetersToPoints(0) a4YyELXe  
        .RightIndent = CentimetersToPoints(0) ~Otf "<  
        .FirstLineIndent = CentimetersToPoints(0) I&c#U+-A'  
         zKr(Gt8  
        .CharacterUnitLeftIndent = 0 /|f]L9)2<  
        .CharacterUnitRightIndent = 0 L&%iY7sC`  
        .CharacterUnitFirstLineIndent = 0 cx) EFy.  
         C~*m&,@TT^  
        .LineUnitBefore = 1 WBIS  
        .LineUnitAfter = 0.5 hd' n"  
         4YC`dpO'  
        .AutoAdjustRightIndent = False i :72FVo  
        .DisableLineHeightGrid = True DEhA8.v  
        .FarEastLineBreakControl = True g 11K?3*%Q  
        .WordWrap = True 2} -W@R  
    End With ~sD'pS  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False E 83nEUs  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll :z7!X.*  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese v;7u"9t  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True 3[4]G@  
    DoEvents b :00w["  
     xl$ Qw'  
    '表格标题 e ^QOn  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") J^cDa|j  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" )ej8vm  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False I6_+3}Hm{  
    With ActiveDocument.Styles("QLNU表格标题").Font Ns_d10rZ.  
        .NameFarEast = "楷体" !/SFEL@_B  
        .NameAscii = "Arial" b;vO `  
        .Name = "楷体" QNY{ p k  
        .Size = 10.5 l(W3|W#P  
        .Bold = True o-_ a0j  
        .Underline = wdUnderlineNone t~Ax#H  
        .Italic = wdUndefined OJaU,vQ#  
        .Subscript = wdUndefined eNX-2S  
        .Superscript = wdUndefined Z"u/8  
        .Color = wdColorAutomatic !RI&FcK  
    End With CDhk!O..  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat @,vSRns  
         K"61i:F  
        .LineSpacingRule = wdLineSpaceSingle VTU-'q  
        .Alignment = wdAlignParagraphCenter c-F&4V  
        .KeepWithNext = True 9)qx0  
        .KeepTogether = True {H74`-C)W  
        .OutlineLevel = wdOutlineLevelBodyText .xx9tP}Xy  
         $6N. ykJ  
        .LeftIndent = CentimetersToPoints(0) <Coh &g_  
        .RightIndent = CentimetersToPoints(0) ;uy/Vc5,Y  
        .FirstLineIndent = CentimetersToPoints(0) QG.FW;/L,  
         l3,|r QD  
        .CharacterUnitLeftIndent = 0 ' BpRiN  
        .CharacterUnitRightIndent = 0 DWG}}vN:&  
        .CharacterUnitFirstLineIndent = 0 2#!D"F  
         AyUVsIuPT=  
        .LineUnitBefore = 1 ~JJv 2  
        .LineUnitAfter = 0 ;A_QI>>  
         :Pv { E  
    End With p5\b&~ g  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False -oj@ c OZ  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll (iFhn*/ E  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese o <y7Ut  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True JT+P>\\];'  
    DoEvents pH%K4bV)8  
Jx]`!dP3  
    '表格首行 N*#SY$!y  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") }PVB+i M  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False 4-MA!&  
    With ActiveDocument.Styles("QLNU表格首行").Font !VW#hc \A5  
        .NameFarEast = "楷体" %Vq@WF  
        .NameAscii = "Times New Roman" |8"HTBb\CW  
        .Name = "楷体" _ i8}ld-  
        .Size = 9 ;%}  
        .Bold = True uB BE!w_  
        .Underline = wdUnderlineNone [(hENX}o :  
        .Italic = wdUndefined XcXd7e  
        .Subscript = wdUndefined JG `QJ %  
        .Superscript = wdUndefined %/7`G-a.B  
    End With /dAIg1ra  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat O;~1M3Ii  
        .LineSpacingRule = wdLineSpaceSingle P;GUGG*W  
        .Alignment = wdAlignParagraphCenter B!Y;VdX  
         c!c !;(  
        .LeftIndent = CentimetersToPoints(0) )u$A!+fo  
        .RightIndent = CentimetersToPoints(0) [M.Vu  
        .FirstLineIndent = CentimetersToPoints(0) YG_3@ `-<  
         oKUJB.PF  
         eL.S="  
        .CharacterUnitLeftIndent = -0.5 GZ"O%: d  
        .CharacterUnitRightIndent = -0.5 Kf*+Ilq%L  
        .CharacterUnitFirstLineIndent = -0.5 H5n" !!  
         Lqt]  
        .LineUnitBefore = 0 BmZd,}{  
        .LineUnitAfter = 0 hikun 2  
        .SpaceBefore = 0 f`Nu]#i  
        .SpaceAfter = 0 L(L;z'3y  
         @m6E*2Gg  
    End With +J2=\YO  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False |<E%hf  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll UX6-{ RP  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese Cpl\}Qn  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True "-9YvB#  
    DoEvents u}$?r\H'(  
q(C+D%xB  
    '表格内容 w*?JW  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") <H.Ml>q:r  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False CzgLgh;:T  
    With ActiveDocument.Styles("QLNU表格内容").Font j JW0a\0  
        .NameFarEast = "楷体" +#O?sI#  
        .NameAscii = "Times New Roman" (Q@+W |~  
        .Name = "楷体" : v]< h  
        .Size = 9 g#e"BBm=A  
        .Bold = False <B)lV'!Bd  
        .Underline = wdUnderlineNone p&7>G-.  
        .Italic = wdUndefined F~m tE8B:  
        .Subscript = wdUndefined Gh j[nsoC~  
        .Superscript = wdUndefined +XsY*$O  
    End With P _9O8"W  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat _.j KcDf  
        .LineSpacingRule = wdLineSpaceSingle {x+jFj.  
        .Alignment = wdAlignParagraphCenter ^vzNs>eJ  
         z~F!zigNAc  
        .LeftIndent = CentimetersToPoints(0) 3Cpix,Dc  
        .RightIndent = CentimetersToPoints(0) qhogcAvE  
        .FirstLineIndent = CentimetersToPoints(0) hod|o1C&  
         B!:(*lF  
        .CharacterUnitLeftIndent = -0.5 G2mv6xK'  
        .CharacterUnitRightIndent = -0.5 [mhY_ Hmz]  
        .CharacterUnitFirstLineIndent = -0.5 !cfn%+0  
        .LineUnitBefore = 0 fQ<V_loP.@  
        .LineUnitAfter = 0 pJqayzV  
        .SpaceBefore = 0 J4<- C\=4  
        .SpaceAfter = 0 pl%ag~i5  
    End With b[$>HB_Na  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False U7OW)tUf  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll MSA*XDnN  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese Kh27[@s  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True >q`G?9d2  
    DoEvents +m" iJW0  
ZEB1()GB  
    '图片标题 `H\^#Zu  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") W>Zce="_gN  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" :U~ [%]  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False BQm H9g|2  
    With ActiveDocument.Styles("QLNU图片标题").Font  hHdC/mR  
        .NameFarEast = "楷体" j0Q ;OKu  
        .NameAscii = "Times New Roman" M$w^g8F27H  
        .Name = "楷体" E@?jsN7  
        .Size = 10.5 JI.ad_IR  
        .Bold = True C@K@TfK!M  
        .Underline = wdUnderlineNone PS>k67sI  
        .Italic = wdUndefined :g Ze>  
        .Subscript = wdUndefined UXd\Q''  
        .Superscript = wdUndefined >LjvMj ]  
        .Outline = False SgJQH7N  
        .Shadow = False N-suBRnW  
        .Color = wdColorAutomatic IE3GM^7\  
    End With _9<Ko.GVq  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat 2rA`y8g(L  
        .LineSpacingRule = wdLineSpaceSingle mFT[[Z#  
        .Alignment = wdAlignParagraphCenter @+\OoOK<L  
         fPst<)  
        .KeepWithNext = wdUndefined ='~C$%  
        .KeepTogether = True DJeG  
        .OutlineLevel = wdOutlineLevelBodyText >J4_/p>Qs  
         A w83@U  
        .LeftIndent = CentimetersToPoints(0) ~(}zp<e|  
        .RightIndent = CentimetersToPoints(0) ]R0^ }sI  
        .FirstLineIndent = CentimetersToPoints(0) zdr?1=  
         T\OLy sc  
        .CharacterUnitLeftIndent = 0 xD1w#FMlQs  
        .CharacterUnitRightIndent = 0 7-)Y\D  
        .CharacterUnitFirstLineIndent = 0 67d0JQTu  
         na<g /&  
        .LineUnitBefore = 0 S wQb"  
        .LineUnitAfter = 0 *F=w MWa  
    End With \OOj]gAe  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False \i{=%[c  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll Tmq:,.^}  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese J|s4c`=  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True <#:"vnm$j  
    DoEvents KnlVZn[3t  
k)4   
    '目录项  pCv=rK@  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") .Emw;+>  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" GX\/2P7CZ  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False Hq=RtW2  
    With ActiveDocument.Styles("QLNU目录项").Font x }-rAr  
        .NameFarEast = "黑体" oSxHTbp?  
        .NameAscii = "Times New Roman" C0'Tua'  
        .NameOther = "Times New Roman" fuQ? @F  
        .Name = "黑体" S53[K/dZo  
        .Size = 10.5 #\w~(Nm-  
        .Bold = False .x}ImI  
        .Italic = wdUndefined "xw2@jGpG  
        .Underline = wdUnderlineNone BVG 3 T  
        .Color = wdColorAutomatic D>05F,a  
        .Superscript = wdUndefined * ,,D% L  
        .Subscript = wdUndefined Fe: 0nr9;  
    End With HZR~r:_ i  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat dw'%1g.113  
         aVd{XVE  
        .LineSpacingRule = wdLineSpaceSingle uRJLSt9m  
        .Alignment = wdAlignParagraphLeft fY\QI =  
         k0%4&pU  
        .WidowControl = False ]U]{5AA6  
        .KeepWithNext = False *2@Ne[dYEF  
        .KeepTogether = False RzXxnx)]q  
        .PageBreakBefore = False I(pU_7mw  
        .NoLineNumber = False yt$V<8a  
        .OutlineLevel = wdOutlineLevelBodyText /z6NJ2jb  
         V"gnG](2l  
        .LeftIndent = CentimetersToPoints(0) %A?Ym33  
        .RightIndent = CentimetersToPoints(0) U1B5gjN  
        .FirstLineIndent = CentimetersToPoints(0) Dg \fjuK9  
         w+ bMDp  
        .CharacterUnitLeftIndent = 0 |Zz3X  
        .CharacterUnitRightIndent = 0 y 2&G0y  
        .CharacterUnitFirstLineIndent = 0 `XQM)A  
         Yk[yG;W  
        .LineUnitBefore = 0 C%l~qf1n  
        .LineUnitAfter = 0 aM~M@wS  
    End With Z?X ^7<  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False pkhZW8O  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll H+F'K XP*K  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot C)Mh  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese 6 :J @  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True /8lGP! z  
    DoEvents $$`}b^,/  
     ]x! vPIyq  
    '参考文献 0/;T\9  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") jPhOk>m  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" Jo_h?{"L{  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False Z{ &PKS  
    With ActiveDocument.Styles("QLNU参考文献").Font JQ!D8Ut  
        .NameFarEast = "宋体" (Zx;GS  
        .NameAscii = "Times New Roman" #}l }1^$  
        .NameOther = "Times New Roman" Z3=t"  
        .Name = "Times New Roman" yjc:+Y{5'  
        .Size = 12 R/U"]Rc  
        .Bold = False }wz )"  
        .Italic = wdUndefined \3Ys8umKq  
        .Subscript = wdUndefined C^]bXIb  
        .Superscript = wdUndefined v$lP?\P;}X  
        .Underline = wdUnderlineNone bNj| GIf  
        .UnderlineColor = wdColorAutomatic 5{VrzzOK}  
        .Color = wdColorAutomatic "@DCQ  
        .Engrave = False u J GYXlLE  
    End With {}[S,L  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat HX?5O$<<N  
         9w(QM-u  
        .LineSpacingRule = wdLineSpaceExactly gQh;4v  
        .LineSpacing = 16 KR#Bj?fz-H  
        .Alignment = wdAlignParagraphLeft Gb\}e}TB[  
        .WidowControl = False !ZHPR:k|  
        .KeepWithNext = False (:-=XR9 A`  
        .KeepTogether = False G ? H`9*y  
        .PageBreakBefore = False %/jm Q6z^  
        .OutlineLevel = wdOutlineLevelBodyText $wAVM/u&  
         :U^a0s%B  
        .LeftIndent = CentimetersToPoints(0) IYb@@Jzo  
        .RightIndent = CentimetersToPoints(0) W%@6D|^  
        .FirstLineIndent = CentimetersToPoints(0) D:M0_4S  
         &H`yDrg6U  
        .CharacterUnitLeftIndent = 0 =]E;wWC  
        .CharacterUnitRightIndent = 0 -7>vh|3  
        .CharacterUnitFirstLineIndent = -2 n"$D/XJO  
         1P@&xcvS\  
        .LineUnitBefore = 0 _"Y;E  
        .LineUnitAfter = 0 =D<46T=(RB  
        .SpaceBefore = 0 O]90 F  
        .SpaceAfter = 0 0O|T \E8 e  
         P8piXG  
    End With 9-I;'  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False 0(h *< g:  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll t :sKvJ  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS c"v#d9  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True {C[<7r uF  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese oe# :EfT  
    DoEvents JmtU>2z\  
/EA4-#uw  
    ' /&Khk #  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") rU%\ 8T0f  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle"  Hi|'  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False Wl?*AlFlk  
    With ActiveDocument.Styles("QLNU论文题目").Font ;VNwx(1l`  
        .NameFarEast = "黑体" C 3b  
        .NameAscii = "Arial Black" +UB+. 5P  
        .NameOther = "Arial Black" RV.* _FG  
        .Name = "Arial Black" 8it|yK.G@&  
        .Size = 16 {eMu"<  
        .Bold = False Lr V)}1&5  
        .Italic = wdUndefined JO1KkIV  
        .Superscript = wdUndefined [_#9PH33  
        .Subscript = wdUndefined }2-{4JIq}  
        .Underline = wdUnderlineNone mM&H; W  
        .UnderlineColor = wdColorAutomatic _\1wLcFj  
        .Color = wdColorAutomatic X2/ `EN\  
dq[j.Nmq  
    End With $*{PUj  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat <$K%u?  
        .LineSpacingRule = wdLineSpaceSingle |U>BXX P  
        .Alignment = wdAlignParagraphCenter zsc8Lw  
        .WidowControl = True `b+f^6SJn  
        .KeepWithNext = True #92 :h6  
        .KeepTogether = True ;a[56W  
        .PageBreakBefore = True J#!:Z8b  
        .NoLineNumber = False ym{?vY h  
        .OutlineLevel = wdOutlineLevelBodyText 25o + ?Y<  
          3_+-t5  
        .LeftIndent = CentimetersToPoints(0) y/'2WO[  
        .RightIndent = CentimetersToPoints(0) %DbL|;z1  
        .FirstLineIndent = CentimetersToPoints(0) Jr==AfxyT  
         R4%!W~K  
        .CharacterUnitLeftIndent = 0 D/"[/!  
        .CharacterUnitRightIndent = 0  ZOi8)Y ~  
        .CharacterUnitFirstLineIndent = 0 ]+{Cy\*kR  
         !Z`~=n3bk  
        .LineUnitBefore = 1 FU E/uh  
        .LineUnitAfter = 1 ke!)C[^7z  
         W -8<sv$b  
        .BaseLineAlignment = wdBaselineAlignAuto i\ X Ok!  
    End With ,yNPD}@v>  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False 25NZIal<  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll HBXp#$dPc  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS &NL=Bd  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True 0bVtku K;G  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese Ot`jjZ&  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True r*OSEzGUz  
    DoEvents }[SWt3qV1  
     |.0/~Xy-  
    '中文摘要 mTwz&N \  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") { %vX/Ek  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" 'RC(ss1G  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False -yy&q9  
    With ActiveDocument.Styles("QLNU中文摘要").Font jxm.x[1ki^  
        .NameFarEast = "宋体" !LVWggk1  
        .NameAscii = "Times New Roman" k:nr!Y<  
        .NameOther = "Times New Roman" C7[_#1Oz  
        .Name = "Times New Roman" a]Bm0gdrO  
        .Size = 12 MLG%+@\  
        .Bold = wdUndefined x@;XyQq  
        .Superscript = wdUndefined x}[email protected]  
        .Subscript = wdUndefined .R#p<"$I  
        .Italic = wdUndefined !-m (1  
        .Underline = wdUnderlineNone )0 .gW  
        .UnderlineColor = wdColorAutomatic =) $a>N  
        .Color = wdColorAutomatic E;fYL]j/oZ  
    End With u`xmF/jhQ  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat W7c(] tg.  
        .LineSpacingRule = wdLineSpaceExactly s =! y%   
        .LineSpacing = 20 ICN>8|O`&  
        .Alignment = wdAlignParagraphLeft n{6XtIoYq  
         HpC|dtro  
        .WidowControl = False snK$? 9vh  
        .KeepWithNext = False l`UJHX  
        .KeepTogether = True &jT>)MXPu  
        .PageBreakBefore = False wWKC .N  
        .NoLineNumber = False $pyM<:*L&<  
        .OutlineLevel = wdOutlineLevelBodyText zQMs S  
         DGz'Dn  
        .LeftIndent = CentimetersToPoints(0) ce0TQ  
        .RightIndent = CentimetersToPoints(0) C7dy{:y`  
        .FirstLineIndent = CentimetersToPoints(0) ~*GJO74  
         (_^g:>)Cs  
        .CharacterUnitLeftIndent = 0 ?Lbw o<E  
        .CharacterUnitRightIndent = 0 Ia=wf"JS)  
        .CharacterUnitFirstLineIndent = 2 5wmH3g#0  
        .LineUnitBefore = 0 0m(/hK  
        .LineUnitAfter = 0 ;e_dk4_  
         :Ag]^ot  
    End With V7G?i\>  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False MRwls@z=  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll 4_ztIrw  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS J^R))R=  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True d+[yW7%J  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese i/2OE&*O[  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True x }[/A;N  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete Py^F},?J  
    DoEvents cpF\^[D  
     y)X;g:w  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") w}c1zpa  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" m"t\@f  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False fIu5d6;'  
    With ActiveDocument.Styles("QLNU英文标题").Font UeIu -[R  
        .NameFarEast = "黑体" KdHR.;*  
        .NameAscii = "Arial Narrow" KJo [!|.  
        .Name = "Arial Narrow" "WdGY*r  
        .Size = 16 17I{_C  
        .Bold = True Am'5|  
        .Bold = wdUndefined bIu '^  
        .Superscript = wdUndefined R rs?I,NV  
        .Subscript = wdUndefined <*3{Twa1T  
        .Italic = wdUndefined  oJ ~ZzW  
         [ dpd-s  
        .Underline = wdUnderlineNone E{[c8l2B  
        .UnderlineColor = wdColorAutomatic BNw^ _j1  
        .StrikeThrough = False zW,m3~XX:  
        .DoubleStrikeThrough = False >eQ;\j  
    End With #o SQWC=T  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat 1mm/Ssw:C  
        .LineSpacingRule = wdLineSpaceSingle .]6 _  
        .Alignment = wdAlignParagraphCenter *6s B$E_y  
        .WidowControl = True pk%I98! Jy  
        .KeepWithNext = False %<6oKE  
        .KeepTogether = False =QHW>v  
        .PageBreakBefore = False bg[k8*.:F  
        .NoLineNumber = False 8  k9(iS  
        .FirstLineIndent = CentimetersToPoints(0) }{[H@uhjH  
        .OutlineLevel = wdOutlineLevelBodyText &PI}o  
         {a.{x+!5I-  
        .LeftIndent = CentimetersToPoints(0) yv =LT~  
        .RightIndent = CentimetersToPoints(0) odMjxWY  
        .FirstLineIndent = CentimetersToPoints(0) LyH8T'C~  
         ?7 e|gpQ|  
        .CharacterUnitLeftIndent = 0 z6#N f,  
        .CharacterUnitRightIndent = 0 6a[D]46y,2  
        .CharacterUnitFirstLineIndent = 0 X aW@CW  
         7h?PVobe  
        .LineUnitBefore = 1 Q6 @}t&k4C  
        .LineUnitAfter = 1 b#(SDNo6  
         Tw/kD)u{  
    End With GM U.Kt  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False c[}h( jkP  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll S5*wUd*p#  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS O&.^67\|  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True :~3sW< P R  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese [X ]\^   
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True "aHY]E{  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete O`~G'l&@T  
    DoEvents H0Qpc<Z4/  
Dq/[ g,(  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") :0$(umW@I"  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" \[Op:^S  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False  LKieOgX  
    With ActiveDocument.Styles("QLNU英文摘要").Font H=?v$! i  
        .NameFarEast = "宋体" m3 C&QdjRp  
        .NameAscii = "Arial" ol^V@3[<  
        .NameOther = "Arial" }0 0mJ]H(  
        .Name = "Arial" kbJ/7  
        .Size = 12 #Z;ziM:  
        .Bold = wdUndefined X+)68  
        .Italic = wdUndefined \j !JRD+j  
        .Superscript = wdUndefined $IX>o&S@|  
        .Subscript = wdUndefined 5gARGA  
    End With r5%K2q{  
     g e)g?IP4  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat $6}siU7s4  
         { :xINQ=}D  
        .LineSpacingRule = wdLineSpaceExactly izsAn"v  
        .LineSpacing = 20 O6LZ<}oUR  
         U>7"BpC  
        .Alignment = wdAlignParagraphJustify [X0Wfb}{  
         zYO+;;*@  
        .WidowControl = False mVfg+d(  
        .KeepWithNext = False qUA&XUJ  
        .KeepTogether = False M,"4r^%k  
        .PageBreakBefore = False 4j|]=58  
        .NoLineNumber = False d|k6#f-E  
         LH@)((bi4v  
        .OutlineLevel = wdOutlineLevelBodyText XL c&7  
         ; 29q  
        .LeftIndent = CentimetersToPoints(0) 767xCP  
        .RightIndent = CentimetersToPoints(0) +Gqh  
        .FirstLineIndent = CentimetersToPoints(0) IE.JIi^w  
         ;Xg6'yxJ  
        .CharacterUnitLeftIndent = 0 U~-Z`_@^-  
        .CharacterUnitRightIndent = 0 KT~J@];Fb  
        .CharacterUnitFirstLineIndent = 2 x^^;/%p  
         kD dY i7g>  
        .LineUnitBefore = 0 7r 07N'  
        .LineUnitAfter = 1 A ^ $9[_  
         uNZJNrV%  
    End With b2u_1P\  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False !;.i#c_u  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll +6@".<  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS u`dWU}m)  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False >DVjO9Kf  
    DoEvents S1(. AI~  
3GUO   
    Options.Pagination = True fp|!LU  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." ?1?D[7$  
    DoEvents \!j{&cJ  
    ActiveDocument.Repaginate GQhzQM1HS  
n F0$  
End Sub p/>}{Q )Y  
|C?<!6.QmV  
SoeL_#+^W  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: 34_:.QK-  
<\!+J\YTA  
用VBA控制WORD自己修订学生毕业文的格式。 8`XpcK-0  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? =Y#)c]`  
fQRGz\r*k  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

,0 O9!^  
;4p_lw@  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 |2w,Np-  
第6车皮 _tDSG]  

0V6gNEAUg  
}qU(G3  
第9车皮 N GP}Z4  
7qj <|US  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 s8;/'?K  
yop,%Fe  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 Mg3>/!  
pIcvsd  
Main2.bas %%`Q5I  
; s{k32e  
Attribute VB_Name = "SubMain" &("HH"!  
Option Explicit zIc%>?w  
%6Wv-:LY  
'采集文件与临时文件 Hw[(v[v  
Public Const TmpFile As String = "d:\30-0600.dat" AmYqrmJ  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 :f<:>"<  
TY,5]*86I&  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long klSzmi4M  
Public hBCFile As Long  '记录采集参数的文件 K[} 5bjh>  
Public Const TmpBMP As String = "d:\1.bmp" ?Pg{nlJvq  
Public hTmpFile As Long V*]cF=W[A  
d +0(H   
esE5#Yq4.k  
'采集窗口参数常量 ( -^-  
Public Const FrameH As Long = 280& T^FeahA7;  
Public Const FrameW As Long = 768& #+$pE@u7A  
Public Const pFrameSize As Long = FrameW * FrameH cb|cYCo5  
\$;Q3t3  
'标志区范围,用于识别车辆 L[v-5u)  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X K??(>0Qr}r  
Public Const mkW As Integer = 28  '识别标志立柱宽度 NQb!?w  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) w}2;f=  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) ^yLiyRe\  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 fsd,q?{a:  
'车缝检测位置常数 5-rG8  
Public Const sSize As Long = 32& YI[y/~!  
Public Const sPos As Long = 310& !F ]7q]g  
Public Const sPosL As Long = 200& EVs.'Xg<  
Public Const sPosR As Long = 500& xZ2^lsY  
'车缝检测框位置 {[B^~Y>Lr  
Public Slice(1 To sSize, 1 To FrameH) As Byte ,au-g)IFZ  
Public SliceL(1 To sSize, 1 To FrameH) As Byte +<qmVW^X  
Public SliceR(1 To sSize, 1 To FrameH) As Byte ]M2<b:yo  
Public avSL As Integer, avSLR As Integer, avSLL As Integer D}4*Il?  
YT:])[gVV  
^|Bpo(  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 g Mhn\  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 $TU)O^c  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 \X&LrneR"t  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long : &! >.Y  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte 66RqjP '2  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 )0F\[Jl}  
}t.J;(ff:  
$'m&RzZ  
PeCU V6  
'一次连续采集的帧数 B,rpc\_  
Public tFrames As Long S#gIfb<D  
VL6_in(  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 E1'| ;}/  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 ~:h-m\=8Y  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize }M_Yn0(3  
B?o ?LI  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte }<G"w 5.<  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte MZ9{*y[z  
Public pWorkSpace(1 To FrameW * FrameH) As Long Tz/=\_}  
Public Const pBufferSize As Long = FrameW * FrameH * 2 #$/SM_X14C  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 gN"Abc  
m3o+iYkMD  
Public hBoard As Long   '采集卡标识 P|M#S9^]  
Public mBufferAddr As Long  '缓存地址 IC5[:UZ5]  
Public BufferSize As Long  '缓存大小(字节) &dA{<.  
Public iCurrentCard As Long @log=^  
Public CapStatus As Long jGV+ ~a  
Public iFrames As Long $~ 6Y\O  
Public currentBr As Byte, currentContr As Byte eAkC-Fm  
2oL~N*^C  
Public hMEM As Long, mStatus As Long f~ bZTf  
Public Const hMemSize As Long = pFrameSize * 4 2R W^Nqc9  
Public hMemWork As Long Hzos$1DJ  
Public Const hMemWorkSize As Long = pFrameSize * 5 f+A!w 8E  
T2Du z,  
wD9Gl.uQ  
UC@ &! kM  
'串口接收轨道衡数据 gie.K1@|  
Public WeightFromCom As String WsHC%+\'  
Public bReceiveComplete As Boolean [}p/pj=  
ur*a!U  
gD$bn=  
Public Type GrayBMPHeader mC-'z  
  Tag As Integer f9`F~6$  
  FileLength As Long    '文件大小 lawjGI  
  Reserve1 As Long wXj!bh8\r  
  DataOffset As Long    '图像数据偏移量 y~ubH{O#  
  BMPHeaderSize As Long  '文件头长 \TchRSe  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… Ed&;d+NM  
                        'the following sizes are possible: <<Zt.!hS  
                        '28h - windows 3.1x, 95, nt, … p~X=<JM  
                        '0ch - os/2 1.x Gvo|uB#  
                        'f0h - os/2 2.x Xgq-r $O2X  
mv%Zh1khn/  
  ImageWidth As Long           '图像宽(像素数) BNA`Cc1VV  
  ImageHeight As Long          '图像高(像素数) 8|9JJ<G7  
  PlaneNumber As Integer  '图像层数 mn5mdrv3WZ  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap gW0{s[}T  
                                        '4 - 16 color bitmap L p(6K  
                                        '8 - 256 color bitmap |[%CFm}+?  
                                        '16 - 16bit (high color) bitmap {R5{v6m_  
                                        '24 - 24bit (true color) bitmap {u 7%Z}<0  
                                        '32 - 32bit (true color) bitmap ^Ob#B!=  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) .Ioj]r  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) ,gdf7&r  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) |ji={  
                                    '3 - bitfields (also identified by bi_bitfields) 4q<LNvJA  
  IMAGESIZE As Long  '图像数据字节数 FPg5!O%  
  hResolution  As Long  '水平分辩率  像素数/米 7*{9 2_M  
  vResolution  As Long  '垂直分辩率 N\ Nwmx  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 QtF'x<cB  
  ImportantColors As Long ]m ED3#  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 6LVJ*sjSy  
End Type j?eWh#[K"  
ZW+[f$X  
IiX`l6L~W  
0iy-FV;J  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader 4KO2oIR  
Public sRECT As RECT nMz~.^Q-  
,2*^G;J1  
Kr;7~`$[  
Public conn As ADODB.Connection y7&8P8R  
Public rsTrain As ADODB.Recordset +i %,+3#6  
Public rsOperater As ADODB.Recordset &DUt`Dr w  
Public rsGoods As ADODB.Recordset P:`tL)W_  
Public rsGood2 As ADODB.Recordset .JkcCEe{G  
Public rsSender As ADODB.Recordset d5b \kRr  
Public rsReceover As ADODB.Recordset ^F}HWpF_  
Public rsTrainTMP As ADODB.Recordset Yh^~4S?  
(YOp  
y2XeD=_'  
'打开采集卡 ?/EyfTex  
'设置参数 +y}4^3Vx^  
'设置为实时单帧采集到缓存方式 *F ya qJ)  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存  ~\0uy3%  
Y(:.f-Du  
fi/[(RBG  
Sub Main() SL( WE=H  
  Dim i As Integer, status As Long  47(/K2  
     SfHs,y 6  
   InitBMPinfo sE,Q: @H5  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 PA=.)8  
    BMPHeader.Tag = &H4D42 x+mf QcSD&  
    BMPHeader.ImageWidth = FrameW ;'\#+GZ9p  
    BMPHeader.ImageHeight = FrameH  'Dh+v3O  
    BMPHeader.BMPHeaderSize = &H28 iJIDx9 )Z  
    BMPHeader.PlaneNumber = 1 k3:8T#N>!O  
    BMPHeader.bpp = 8 w-[A"M]I  
    BMPHeader.Compression = 0 vocXk_  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 ^+v6?%m  
    BMPHeader.vResolution = &H1274 >icL,n"]  
    BMPHeader.ColorsinBMP = 256 C^dnkuA  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP Dg:2*m_!j{  
    BMPHeader.DataOffset = Len(BMPHeader) MV+S.`R  
    For i = 0 To 255 DA0{s  
      BMPHeader.Pallate(i) = RGB(i, i, i) l}#z#L2,`  
    Next i vmV<PK-  
    BMPHeader.IMAGESIZE = FrameH * FrameW d&!ZCq#_e  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE )_7OHV *3  
+N~?_5lv\s  
]GSs{'Uh B  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) vZ<@m2  
     3n\eCdV-b<  
    BMP1.ImageWidth = FrameW |l*#pN&L  
    BMP1.ImageHeight = FrameH * 2 =|@%5&.P  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight oH[4<K>  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE z } L3//  
nWrkn m  
  '确定标志位置,为pilarX, pilarY确定初始值 uTSTBI4t  
   PilarW = mkW k1EAmA l  
   PilarH = mkH  '此两项为固定值 y)5U*\b  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) Wa/&H$d\u@  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 =f4v: j}'|  
   /^BaQeH?R  
   =Wb!j18]  
  '连续采集记录文件 aP%& -W$D|  
  ' 建立一个缓冲区为页对齐方式的文件 9/La _ :K  
  If Dir(TmpFile) <> "" Then N[(ovr  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ ,g2oqq ?  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 5>o<! 0g  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 ^p'iX4M  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 )v4?+$g  
  Else |C MKY  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ m/2LwN  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) - %ul9}.  
  End If 4{[cXM8*j  
  If hFile = 0 Then }w,^]fC:  
    MsgBox TmpFile & ": File Open Error", vbOKOnly Cfz020u`g  
    Exit Sub Z(' iZ'55F  
  End If qTGEi  
  '采集参数记录文件 3IrmDT  
hBCFile = FreeFile() 0Q2P"1>KT/  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile Rs Y7F;  
   d#?.G3YmK  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 Wq4>!|  
If hMEM = 0 Then jK#[r[q{  
    fStatus = GetLastError p =tj>{  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ 3L;GfYr0  
     & "请向技术人员报告该错误代码。", vbOKOnly ]#UyYgPk  
    CloseHandle hFile b IS 3  
    Exit Sub 6NvdFss'A{  
End If $#bgt   
pi'w40!:  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) ("Uz Mr ,  
If hMemWork = 0 Then }s0?RH  
    fStatus = GetLastError c[/h7!/aH  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ G^Z SQ!  
     & "请向技术人员报告该错误代码。", vbOKOnly \~3g*V  
     '释放已成功分配的内存 ws{2 0  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) RV*7?y%3  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) LLa72HW  
     q. %[!O  
    CloseHandle hFile ~y#jq,i/  
    Exit Sub L_3undy,  
End If [sM~B  
f*+eu @  
' Test writing p6qza @  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& H;&^A5  
     q- U/JC  
   '初始化采集卡参数 5CSihw/5  
   iCurrentCard = -1 _N.N?>  
   hBoard = okOpenBoard(iCurrentCard) FwdRM)1)  
   Debug.Print hBoard Z#n!=k TTm  
   If hBoard = 0 Then b~M3j &  
      ExitGrabber {"cS:u  
      End F<KUVe  
   End If 7y4!K$c$  
   okGetBufferSize hBoard, mBufferAddr, BufferSize 9M$=X-  
   If mBufferAddr = 0 Then O Oa}+^-j  
     MsgBox "缓存不存在!" JWu^7}@~=  
     ExitGrabber ~AD%aHR  
   End If [Rqv49n*V  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) UuNcBzB2d  
   :3 ,aR \  
   %T.4Aj  
   currentBr = 128: currentContr = 128 AWp{n  
   '设置视频输入参数 ]cz*k/*0  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 pH?tr  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input ' 9K4A'2[  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 o6FSSKM  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 *?k~n9n5U  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 - ^y$RJC  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 =Ws-s f]  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) sT.:"Pj$  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) +m> %(?=A  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值)  X,z qI  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 sCX 8  
   pa7Iz^i  
   '设置采集参数 8=]R6[,fD  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 uP'x{Pr)  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 _x.!, g{  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 N8<Wm>GLX~  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 a<Ru)Q?=  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 sC8C><y  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 s^ t1T&  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 qR D]Q  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 LK "47  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 (s/hK  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 Qx9lcO_  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 wKjL}1.k  
   XJ3 5Z+M  
   (6xrs_ea  
   okCloseBoard hBoard p8%/T>hK  
   Sleep 50 kW v)+  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 ZfzUvN&!  
   H.8f-c-4we  
   '设置数据传送方式 [V\0P,l  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 m=Z1DJG  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 0>uMR{ #  
   R7/"ye:7J  
   sRECT.Right = -1   '用于获得当前设置值 MX=mGfoa  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) DPrFBy  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom Kr$ w"]  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 RHV& m()Q  
   sRECT.Left = 0 3Mvm'T:[  
   sRECT.Top = 0 Us4ijR d  
   sRECT.Right = sRECT.Left + FrameW -y8?"WB(b  
   sRECT.Bottom = sRECT.Top + FrameH * 2 gAy,uP~,  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) [Sl uYmW  
   Cf-R?gn]  
   sRECT.Right = -1   '检查新设置值 KL2#Bm_  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) z|VQp,ra  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom T.1*32cX  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) bt=%DMTn  
    ,ux?wa+  
   If TESTSignal = False Then ~^U(GAs  
      'ExitGrabber )G7")I J/X  
   End If ,S|v>i, @  
   ;C1 ]gJZ,  
   {Z>OAR#   
   *vx!twu1o  
   '设为实时采集状态 &cty&(2p  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) __}j {Buk  
   Ig&=(Kmr  
   F_m[EB  
   '单帧采集 >680}\S  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 82w='~y  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) Up61Xn  
   okCaptureTo hBoard, BUFFER, 0, 1 'single R$'0<y8E*]  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 -}liG  
   '   Sleep 20 ZDVz+L|p  
   'Loop 5jj<sj!S  
   okGetCaptureStatus hBoard, True /V66P@[>  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize 0]tr&BLl*  
   '写入768*576测试图象 wS Ty2Oyo;  
   ArrayToBMP TmpBMP '\I.P  
   8pc=Oor2Tv  
   '打开数据库 9{gY|2R_  
   Set conn = New ADODB.Connection /cPe zX  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ _z:7Dj#  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ ]!yuD/4A  
      "; Mode=Read|Write" kPN:m ow  
   conn.Open K{]!hm,[3  
   G(LGa2;Zg  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) ?8 cgQf$  
   frmRecord.Visible = True U5uO|\+)  
   frmQuery.Visible = True }L.xt88  
   Load frmReceiveFromComm 7$ vs X  
   fc'NU(70c  
   '调试参数 DKd:tL24&  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then gr\UI!]F  
     SignalBox.Visible = True Z.a`S~U  
   End If x|#R$^4CY  
   If InStr(UCase(Command()), "/COMM") > 0 Then PgNg1  
     frmReceiveFromComm.Visible = True !/+'O}@-E  
   End If oDY $F%  
l_K=7\N  
End Sub | hsg= LX  
y{>d&M|  
Sub ExitGrabber() HZp}<7NR(7  
  '关闭数据库 +{Qk9Z  
  '关闭采集卡 2}Ga   
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) ac8+?FpK #  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) I]H rtI  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) d!+8  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) \,YF['Qq  
  okStopCapture hBoard 6,nws5dh  
  okCloseBoard hBoard 3I87|5V,Z  
  CloseHandle hFile = (ULfz[:  
  Close #hBCFile -L;sv0  
  conn.Close by 'P}  
  End y be: u  
End Sub s?= v@|vz)  
;T!w$({V0z  
Function ArrayToBMP(ByVal File As String) 3P{ d~2  
Dim BytesWrite As Long @dl{ .,J  
f(Vr&X  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ [TUy><Z  
  CREATE_ALWAYS, 0&, 0&) -;/;d z;  
0PiD<*EA  
If hTmpFile = 0 Then F iZe4{(p  
   ArrayToBMP = False p 8,wr )  
   Exit Function RAw /Q$I  
End If |7$F r[2d  
p^QEk~qw  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN jQ &$5&o  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& muMb pF  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN Z=VAjJ;i[  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& FerQA9K)x  
5Jo><P a  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN ]L/h,bVI1  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& jV83%%e  
(*{Y#XD{  
If BytesWrite < pFrameSize Then 7 &y'\  
  ArrayToBMP = False #t.)4$  
End If B d#D*"gx  
3lw KV  
CloseHandle hTmpFile 7(RtPL pZ  
^Ht!~So  
End Function {q=(x]C  
El JM. a  
Function ArrayToBMP1(ByVal File As String) aS ]bTYJ'  
C&Nga `J  
Dim BytesWrite As Long Up:<NHJT  
,>H(l$n  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ (9!$p|d*  
  CREATE_ALWAYS, 0&, 0&) G}!dm0s$  
eko$c,&jY  
If hTmpFile = 0 Then ya[][!.G  
   ArrayToBMP1 = False qmNgEz%  
   Exit Function &L&6 y()G  
End If >HvgU_  
8Z YF%  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN p.(8ekh  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& 3v~804kWB  
\k?Fu=@  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN blbL49;  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& (/x%zmY;/U  
~s#vP<QHa  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN XH9Y|FX%#  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& HYd&.*41rE  
U^ bF}4m  
If BytesWrite < pBufferSize Then drr W?U  
  ArrayToBMP1 = False SFKfsb!C  
End If -4  ~(*  
<g/Z(<{wor  
CloseHandle hTmpFile L9,;zkgo  
B=E<</i  
End Function >Lv Q&fAo  
mmE!!J`B  
'使用该过程建立的文件要求在用后关闭 gP&G63^  
Public Function ArrayToBMP2(File As String) As Boolean Mf 7 Z5  
G/l 28yt  
Dim BytesWrite As Long N3J T[7  
S ;pKL,d>r  
ArrayToBMP2 = True 2 ~yYwX  
,,U8X [A  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ L '=mDb  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) : ,0F_["3  
uc>u=kEue  
If hTmpFile = 0 Then " 3ryp A  
   ArrayToBMP2 = False R07 7eX  
   Exit Function 0)@7$Xhf  
End If  y5"b(nb  
"eqNd"~  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN +M@,CbqD  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& '@~\(SH  
PtfxF]%H  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN 5u\#@% \6  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& |=R@nn   
xqP DL9\  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN p6UPP|-S  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& (jR7D"I  
b FV+|0  
If BytesWrite < pFrameSize Then SSoD}N  
  ArrayToBMP2 = False --t"X<.z  
End If 3aD\J_  
0?x9.]  
CloseHandle hTmpFile $K_G|Wyi  
'/2u^&W  
End Function zk\YW'x|r  
h'Gs$o7#P  
Private Function TESTSignal() As Boolean IP #w  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long ,hMd xZJd  
2P&KU%D)0s  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) nSMw5  
7iI6._"!w  
If extsign = 1 Then %(f&).W  
   TESTSignal = True ]UtfI  
Else A6ar@$MZ  
    If extsign = 0 Then @-^jbmu^ P  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly I.C,y\  
        TESTSignal = False y `)oD0)Fj  
        Exit Function uT")j,tz  
    End If @m#1[n;  
End If # Uc0 W  
E5>y?N  
'测试视频输入类型 _9y  
'video type bSK> p3  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 w;e42.\  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) xN^ngRg0  
If videotype = 1 Then S,Y\ox-  
        '"隔行信号(Interlaced)" 2u B 66i  
Else  |j?iD  
   If videotype = 0 Then R 4= ~  
       '"逐行信号(Non-interlaced)" /w5~ O:  
   Else mA{G: d  
     If videotype = -1 Then rMV<}C ^  
       ' "不支持" G@Jl4iHug"  
     End If >gj%q$@  
   End If #2dd`F8  
End If hv]}b'M$  
A>0wqT  
'测试垂直扫描线数 BQ[,(T`+R  
'video scanlines wD*z >v$  
scanlines = -1 &:]ej6 V'[  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) fga{ b7  
    If scanlines = -1 Then .ty^k@J|]  
        ' "不支持" WTlR>|Zdn  
    Else z8MKGM  
        'Trim(Str(ScanLines)) + " 行数/幅" "Uk "  
    End If !YM;5vte+  
]]R!MnU:$  
'测试帧频 @<n8?"{5S  
'video field frequency 8y9`xRy  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) ;+86q"&n  
    If fieldfrq = -1 Then =N,ahq  
        'lblSignal(8) = "不支持" #b^x!lR  
    Else J83{&N2u  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" ^@"H(1Hxu/  
    End If y<r@zb9  
End Function N:4oVi@Je  
} `X.^}oe  
be@\5  
Sub PicIdentify() AK$h S M  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 tTX@Bb8  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 0$saDmED  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 EWU(Al T  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 ZUkrJ'  
<KBzZ !n5  
  Dim fPTR As Long, cFrame As Long mVSaC  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer )&jE<C0  
     |._9;T-Yde  
IY* ~df  
cFrame = 0 oBBL7/L  
KNI* :  
W*S !}ZT`  
Do While cFrame < tFrames ">-mZ'$#L  
   .aA 8'/  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) LTof$4s  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) /,tQdD&  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize e9F\U   
   != @U~X|cu  
  frmRecord.RText.Text = Str(cFrame) |z]O@@j$  
  frmRecord.RText.Refresh CrTGC%w{=  
       R t%3\?rf  
  If CheckMark = True Then t;>"V.F<1  
   ArrayToBMP TmpBMP TB oN8cB}  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) Ao2m"ym  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" J|'e.1v  
   2D?V0>/  
   DrawSlice _0razNk  
   G!%Cc0d"7  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) QqF&lMH  
   'If i = vbNo Then t;^NgkP{$  
   '  Exit Do E~b Yk 6  
   'End If ~F{u4p7{N  
   'cFrame = cFrame + 1 ?;q  
   bD: yu  
  End If QH) uh"  
  DoEvents u U|fCwQt  
  cFrame = cFrame + 1 U\<8}+x  
Loop eD#R4  
End Sub )P)Zds@F  
z~Ec*  
{}Q A#:V  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean +nLsiC{&  
7H,p/G?]k  
'如标志区模式反差存在则为TRUE,否则返回FALSE \!]Zq#*kH  
Vm3e6Y,K  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long BGe&c,feIc  
CheckMark = True A_:YpQ07@  
   S4'\=w #  
'复制标志区 Vk3xWD~  
For i = 1 To mkH W5&;PkhQ6  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW  qGH s2Og  
Next i `1 tD&te0  
yjq~O~  
For j = 1 To PilarW * PilarH / 2 S8zc1!  
   mTop = mTop + MKpilar(j) h 8ND=(  
Next j ox}LC, !  
~9tPT 0^+  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH )/B' ODa  
   mBot = mBot + MKpilar(j) >$%rsc}^  
Next j iJ7?6)\  
Msk^H7  
mTop = mTop / PilarW / PilarH * 2 D>HX1LV  
mBot = mBot / PilarW / PilarH * 2 .b3c n  
t V]BcDp  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 vvsQf%  
!)nA4l= S#  
'平均值极值化 )|d]0/<  
  For j = 1 To PilarH * PilarW yv2&K=rZp  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) Sz"rp9x+  
  Next j n)~9  
   t9Sog~:'  
mTop = 0: mBot = 0 2V-zmyJs5  
For j = 1 To PilarH * PilarW / 2 h_SDW %($  
  mTop = mTop + MKpilar(j) ,j'>}'wG)  
Next j vv9=g*"j  
_ @U11|  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW 88]UA  
  mBot = mBot + MKpilar(j) SccaX P  
Next j L#\!0YW/@  
ya*KA.EGg  
C}7 c:4c  
  mTop = mTop / PilarH / PilarW * 3 *8a8Ng  
  mBot = mBot / PilarH / PilarW * 3 $@wTc  
   V~9s+>  
bPe|/wp  
If mBot > iWhite And mTop < iBlk Then vz~QR i*  
  CheckMark = True !_ng_,J  
Else cyQ&w>'  
  CheckMark = False _xHEA2e!  
End If LKEf#mp  
End Function <c X\|dM  
fD1a)Az  
Sub Capture1Frame() u>YC4&  
   okCaptureTo hBoard, BUFFER, 0, 1 'single byyzXRO;  
   okGetCaptureStatus hBoard, True &~6W!w  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize t9!8Bh<  
End Sub 3BSJ|o<"=  
pyf/%9R:d  
+V N&kCx)  
Sub CopyMark(iBlk As Integer, iWhite As Integer) App9um3:  
'复制标志区并返回标志区暗区与亮区的亮度平均值 &idPO{G  
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 (|*CVI;  
   |3h-F5V)  
'复制标志区 ipIexv1/S  
For i = 1 To mkH M?3N h;  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW \["'%8[:gR  
Next i sfN6ro  
(b]r_|'  
For j = 1 To mkW * mkH / 2 b!pG&7P  
   mTotal = mTotal + MKpilar(j) 7Zf * T  
Next j t/3t69\x  
\dq}nOsX*  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 LH" CIL2  
SDW_Y^Tb  
mTotal = 0 FA+'E  
For j = mkW * mkH / 2 + 1 To mkW * mkH 4"=(kC~~  
   mTotal = mTotal + MKpilar(j) *[QFIDn:  
Next j }H> }v/  
?xb4y=P7  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 >=WlrmI  
\?|FB~.Ry  
'背景亮度 GJ3@".+6  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW Kc%GxD`  
  For i = 1 To 4 * FrameW G!^}z (Mgi  
    bsTotal = bsTotal + BsLine(i) )PU_'n=>  
  Next i F/QRgXV  
  bsAV = bsTotal / FrameW / 4 oa K&!$S]  
U)3*7D  
End Sub k3w(KH @  
-9f> rH\3  
}kCaTI?@#  
Sub AdjIMGbright(Optional bInit As Boolean = True) V1 H3}  
[ q% Rx!L  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) 2,3pmb  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 1U/ dc.x5  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 7a0kat '\  
     )6k([u%;B  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer 7a<-}>sU  
   V"r2 t9A  
  '按标准亮度与对比度采集一帧,确定背景亮度 5V{> 82  
  currentContr = 128   '初始对比度 q#mw#Uw-  
  currentBr = 128   '初始亮度 Pf4b/w/  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度  ^O9_dP:  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 v Mi&0$  
  DoEvents Y[8GoqE|  
  Capture1Frame Pr!H>dH8o  
  '获得图像上缘4行象素 9A-=T>|of  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW 'on8r*  
  CopyMark iBlack, iBright   '图像标志区亮度  3g#  
  For i = 1 To 4 * FrameW '0\v[f{K3G  
    bsTotal = bsTotal + BsLine(i) 0+vt LDq@P  
  Next i fBi6% #  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 o~(/Twxam  
   A:?|\ r  
  Select Case bsAV $U]KIHb  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 ?Tr]zxtd  
       currentBr = 150 'H]&$AZ;@  
       currentContr = 60 74c[m}'S  
     Case 61 To 80   '有可见背景 BwpSw\\?@  
       currentBr = 140 S 6|#9C&  
       currentContr = 70 ;ye5HlH}.  
     Case 81 To 100  '有清晰背景 "6<L) 8  
       currentBr = 128 uE}A-\G  
       currentContr = 80 Q8~|0X\.g  
     Case 100 To 150  '有明亮背景 Jw b'5[R  
       currentBr = 140                '5:30-6:00钟实测数据 3G;#QK -c  
       currentContr = 50 BSMM3jXb  
     Case 151 To 180 X }W4dpU,  
       currentBr = 130 $YNWT\FE  
       currentContr = 60 ?KK u1~a_  
     Case 181 To 220  '背景全为白色 /jtU<uX  
       currentBr = 110 gZ^'hW-{  
       currentContr = 130 d hp-XIA;  
     Case 221 To 255  '背景全为白色 k'(eQ5R3L  
       currentBr = 100 uE]kv  
       currentContr = 100 e[:i`J 2  
  End Select ?|`Ba-  
   ZliJc7lss  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 k v>rv37u  
        Case 100 To 150 5N_w(B  
          currentBr = currentBr - 10 KcK,%!>B  
        Case 151 To 255 SdJGhU  
          currentBr = currentBr - 20 v"LH^!/  
  End Select RdirEH *H  
   ! /^Jma7n  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 [T<Z?  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 3Aqw )B'"_  
End Sub bRhc8#kw)  
LO&/U4:  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) 4dgo*9  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long p:/#nmC<  
     \a .^5g  
    For i = 1 To 8 w`Ss MI  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& &Se!AcvKF  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& b":3J)Y6.  
    Next i GgNqci,  
     k-zkb2  
    For j = 1 To 1024 2jUEL=+Y  
      L1 = L1 + LeftBK(j, 0) ]'[(MH"  
      L2 = L2 + LeftBK(j, 1) WkF60'Hf  
      R1 = R1 + RightBK(j, 0) CHojF+e  
      R2 = R2 + RightBK(j, 1) JSAbh\Mq6  
    Next j 7SyysH<H  
    diffL = Abs(L1 - L2) / 1024 s[}4Q|s%  
    diffR = Abs(R1 - R2) / 1024 NhgzU+)+  
End Sub /ta5d;@  
:|V`QM  
Function CheckSlice() As Boolean 0<n*8t?A-  
  CopySlice avSL, avSLR, avSLL t 5{Y'  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then QR#L1+Hn  
    CheckSlice = True qTA,rr#p0  
  Else _?YP0GpU  
    CheckSlice = False j mH=W)  
  End If NO%x 2dx0  
End Function kW!`vQm~  
.C=I~Z  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) L  (#DVF  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long .Z0$KQ'iy  
  For i = 1 To FrameH +pefk+  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize e0nr dM[i  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize 'Wv`^{y <^  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize "~|;XoMU  
  Next i dP7nR1GS  
  For i = 1 To FrameH AB1.l hR  
    For j = 1 To sSize 43HZ)3!me  
       total = total + Slice(j, i) @N%/v*  
       totalL = totalL + SliceL(j, i) Ul`~d !3zH  
       totalR = totalR + SliceR(j, i) ]w+n39da  
    Next j b;O@|HK&~  
  Next i keMfK ]9  
  avSL = total / FrameH / sSize >B~vE2^tQ~  
  avSLR = totalR / FrameH / sSize B'kV.3t  
  avSLL = totalL / FrameH / sSize jMP!/t :w  
End Sub A@o:mZ+XN(  
=rB=! ;  
Sub DrawSlice() %!v gAH4  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B Hx|<NS0}_  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B W7 .Y`u[  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B 0?0$6F  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) 0YApaL+jt  
End Sub q"uP %TN  
Sub DrawMark(pic As Control) ] C&AU[U*  
   Dim i As Long, j As Long Ol@ssm  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B 'ZUB:R@[  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B MB:VACCr  
   For i = 1 To PilarH $}TK ,/W  
     For j = 1 To PilarW 3%NbT  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) ))<1"7D^^  
     Next j M `=bJO:  
   Next i WYayr1   
End Sub NF0=t}e  
9td[^EB#(h  
Function avIMG() As Integer 2`ED?F68gH  
  Dim i As Long, j As Long, totalIMG As Long nB+UxU@  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize j/Dc';,d.(  
  For i = 1 To pFrameSize -<jd/ 5  
    totalIMG = totalIMG + pBuffer(i) T]fBVA  
  Next i @8;0p  
  avIMG = totalIMG / pFrameSize (3[Lz+W.u  
End Function ?vd_8C2B  
-{=c T?"+  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer XoZw8cY  
  Dim i As Long, j As Long, totalIMG As Long Wi5rXZS  
  For i = 1 To FrameH W bP wO  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth |vI1C5e  
  Next i @#?w>38y  
  For i = 1 To FrameH * barWidth s&gzv=v  
    totalIMG = totalIMG + pBuffer(i) waYH_)Zx  
  Next i ~ZN]2}  
  avRegion = totalIMG / pFrameSize 5YW.s   
End Function +,H6)'#Z  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 [&B}{6wry  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 Vjc*D]  
/;K?Y#mf~j  
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 @[vwqPOL  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long eKT'd#o2R  
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 V.f'C w  
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 UojHlTg#bT  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long !K~L&.\T  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 H)Kt!v8  
<.l$jW]  
UyWKE<  
Private Const GENERIC_READ = &H80000000 eLd7|*|  
Private Const GENERIC_WRITE = &H40000000 }z/Y Hv%  
=64%eF  
Private Const FILE_SHARE_READ = &H1 TfFuHz ZZ  
Private Const FILE_SHARE_WRITE = &H2 .0eHP  
Private Const OPEN_EXISTING = 3 +=qazE<:0  
{;kH&Pp  
Private Const INVALID_HANDLE_VALUE = -1 ;Bs^+R7  
< "8<<   
'//file seek -T   5$l  
Private Const FILE_BEGIN = 0 m$UrY(6d  
Private Const FILE_CURRENT = 1 uINm>$G,5  
Private Const FILE_END = 2 w2mLL?P  
Z#i5=,Bk  
Private Const ERROR_SUCCESS = 0& Y >N`(  
Hh<3k- *d  
'//device io control dl %KD8  
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 [HV9KAoA  
51Nh"JTy  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 kV mJG#  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 L+b"d3!G&%  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 EXrOP]Kl  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 ] SErM#$*  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C VHUOI64*  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 G.}Ex!8R7_  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F potb6jc?  
_&~y{;)S  
'//type c[DC  
Private Type LARGE_INTEGER ;44?`[oP  
    lowpart As Long x,3oa_'E  
    highpart As Long 2Y2J)5,  
End Type hny):59f  
G ]T A7~VT  
Private Enum MEDIA_TYPE G3.MS7 J  
    Unknown >h+G$&8[ y  
    F5_1Pt2_512 ` s}v6  
    F3_1Pt44_512 yQ3*~d~U|L  
    F3_2Pt88_512 :2\H>^u V  
    F3_20Pt8_512 qZ8 V/  
    F3_720_512 !N:: 1c@C  
    F5_360_512 Q.dHg7+D  
    F5_320_512 o (OC3  
    F5_320_1024 5X'com?T  
    F5_180_512 X`QfOs#\  
    F5_160_512 A)X 'We  
    RemovableMedia .-0;:>  
    FixedMedia Mv O!p  
End Enum 6E e U iLd  
" * Qwaq_  
Private Type DISK_GEOMETRY 1 ^k#g,  
    Cylinders           As LARGE_INTEGER  9kkYD  
    MediaType           As MEDIA_TYPE OcBn1k.  
    TracksPerCylinder   As Long nKoc%TNqe  
    SectorsPerTrack     As Long #CM^f^*  
    BytesPerSector      As Long TN=MZ{L  
End Type z [q O5z~I  
=}G `i**  
'//private vars <<Fk[qMA  
Private hDisk           As Long             'disk handle E7*z .3  
Private lpGeometry      As DISK_GEOMETRY    'disk info 1HBdIWhHv.  
Private lBufferSize     As Long             'the buffer size of read/write 0 k];%HV|  
SAa hkX  
Public Function OpenDisk(ByVal FileName As String) As Boolean u}[Z =V  
'// 打开磁盘 }+_Z|>qv  
    hDisk = CreateFile(FileName, _ ;zbF~5e  
                        GENERIC_READ Or GENERIC_WRITE, _ >H ,t^i}@  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ kp+\3z_  
                        ByVal 0&, _ ,B,2t u2  
                        OPEN_EXISTING, _ N8Mq0Ck{$  
                        0, _ n,Z B-"dW  
                        0) I'_.U]An  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) p4|Zz:f  
End Function  mB:I8g7  
b;[u=9ez  
Public Function CloseDisk() As Boolean +bj[.  
'//关闭磁盘 CDz-IQi  
    CloseDisk = CloseHandle(hDisk) & f\ng{  
End Function lIN`1vX(  
mxpncM=q  
Public Function GetDiskGeometry() As Boolean 4~G++|NQ  
'//获取磁盘参数 .-:R mYGR  
    Dim dwOutBytes      As Long 9 J$z/j;X  
    Dim bResult         As Boolean ">? y\#O A  
     u.}z}'-  
    bResult = DeviceIoControl(hDisk, _ nsq7, %5  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ #hBDOXHPf  
                                ByVal 0&, 0, _ Tk'YpL#U  
                                lpGeometry, Len(lpGeometry), _ a*8^M\>m4  
                                dwOutBytes, _ @'K+   
                                ByVal 0&) z]NN ^pIa  
     C7]K9  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack TT(d CHft  
    GetDiskGeometry = bResult TV>UD q  
End Function [y>;  
w:}RS.AK  
Public Sub GetDiskInfo(MediaType As Long, _ *(~=L%s  
                        Cylinders As Long, _ d45JT?qg&  
                        TracksPerCylinder As Long, _ RyGce' q  
                        SectorsPerTrack As Long, _ _~M*XJ] `  
                        BytesPerSector As Long) A3UC=z<y  
'//返回磁盘的参数 h4xRRyK  
    MediaType = lpGeometry.MediaType e/?>6'6 5  
    Cylinders = lpGeometry.Cylinders.lowpart hb>,\46}  
    TracksPerCylinder = lpGeometry.TracksPerCylinder   0%  
    SectorsPerTrack = lpGeometry.SectorsPerTrack 8bB'[gJ]{  
    BytesPerSector = lpGeometry.BytesPerSector |7jUf$Q\p  
ypuW}H%`  
End Sub 7[l  "=  
C#5z!z/:%  
Public Property Get BufferSize() As Long T1@]:`&  
'//返回每次读/写的缓冲大小 %h ?c  
    BufferSize = lBufferSize >^@/Ba$h  
End Property o <lS90J  
Xeg g2.Kk  
az(u=}  
Public Function LockVolume() As Boolean (wNL,<%~  
'// 将卷锁定 /CtR|~wL  
    Dim dwOutBytes  As Long Jmln*,Ol7  
    Dim bResult     As Boolean ACg5"  
     nnU &R  
    bResult = DeviceIoControl(hDisk, _ crJyk#_  
                                FSCTL_LOCK_VOLUME, _ & >AXB6  
                                ByVal 0&, 0, _ \h%/Cp+p  
                                ByVal 0&, 0, _ w*})ZYIUT  
                                dwOutBytes, _ O;qerE?i`  
                                ByVal 0&) 'w+T vOB  
    LockVolume = bResult cTKj1)!z?X  
End Function aF:_1. LC  
o3hsPzOQx  
8"a[W3b  
Public Function UnlockVolume() As Boolean pP&TFy#G+'  
'// 将卷解锁 /=x) 9J  
    Dim dwOutBytes As Long T j7i#o  
    Dim bResult As Boolean 0ih=<@1K  
     \advFKN  
    bResult = DeviceIoControl(hDisk, _ _RFTm.9&  
                                FSCTL_UNLOCK_VOLUME, _ t Ztyx;EP  
                                ByVal 0&, 0, _ Ld[zOx  
                                ByVal 0&, 0, _ t` R#pQ  
                                dwOutBytes, _ (R*K)(Nw[  
                                ByVal 0&) pI>i1f=W  
    UnlockVolume = bResult 9: bC{n  
End Function xj/ +Z!,9  
CL*i,9:NR  
@l0#C5(:  
Public Function DismountVolume() As Boolean yIwAJl7Xf  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 fjUyx:  
    Dim dwOutBytes As Long f$x\~y<[  
    Dim bResult As Boolean "28b&pm  
     9HlRf6S  
    bResult = DeviceIoControl(hDisk, _ CQo<}}-o  
                                FSCTL_DISMOUNT_VOLUME, _  R1YRqk  
                                ByVal 0&, 0, _ n lsQf3  
                                ByVal 0&, 0, _ BzqM$F( L,  
                                dwOutBytes, _ i#t)tM"  
                                ByVal 0&) TR8<=  
    DismountVolume = bResult _|x b)_  
End Function 6xs_@Vk|d  
/++CwRz@Gm  
`e t0i.  
Public Function ReadDisk(ByVal Cylinders As Long, _ kzhncku  
                    ByVal Tracks As Long, _ lPh>8:qFM  
                    db() As Byte) As Boolean blcd]7nK  
'//按柱面和磁道来读取磁盘数据 eI@LVi6<b  
    Dim iPos    As Long A0SEzX({[  
    Dim lRead   As Long 8_MR7'C1hi  
     ;Cdrjx  
    iPos = Cylinders * Tracks * lBufferSize aC lXg-  
     (u81p  
    If SeekAbsolute(0, iPos) Then ]q0mo1-EZ!  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) S x';Cj-  
    End If \v7M`! &  
End Function 5-Vdq  
ZM/*cA!"  
Public Function WriteDisk(ByVal Cylinders As Long, _ Y!LcS48X  
                     ByVal Tracks As Long, _  _2VL%  
                     db() As Byte) As Boolean QvK-3w;=  
'//按柱面和磁道来写磁盘数据 V:rq}F}  
    Dim iPos    As Long vMsb@@O\\  
    Dim lRead   As Long 5!r?U  
     :, $:@  
    iPos = Cylinders * Tracks * lBufferSize *KO4H  
     cn$E?&-  
    If SeekAbsolute(0, iPos) Then >!|Hns  
        WriteDisk = WriteBytes(lBufferSize, db()) dnVl;L8L3  
    End If m}] bP  
End Function qALlMj--m  
)W!8,e+%  
+B$ o8V  
'///////////////////////////////////////////////////////////////////////////////////// m$xL#omD  
'//file system '~{^c}  
48CLnyYiF  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean nz:I\yA  
'//seek file +53 Tf  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte 4tTK5`7N  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) Lrgv:n  
    If LowPos = -1 Then K.?~@5%  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) k&4@$;Ap  
    Else =PiDZS^"  
        SeekAbsolute = True f%0^89)  
    End If oHkF>B [  
     CwQgA%) !i  
End Function i N0gvjZ  
XSkN9LqZ  
k=2]@K$%  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean =j]us?5  
'//read data to array kAbRXID  
    Dim RetVal    As Long k:nR'TI  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) KH)(xB=  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF 0FfBD[E:  
    ReadBytes = Not (RetVal = 0) 7@u0;5p|  
     W$7 db%qFx  
End Function O1pBr=+j+{  
<o^_il$W  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean 'v.i' 6  
'//write data from array xmx fXW  
    Dim RetVal As Long L+7j4:$B8  
    Dim BytesToWrite As Long )cnB>Qul  
    Dim BytesWritten As Long r3oAP[+n  
     XJ~_FiB  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) TTaSg\K  
     9"g=it2Rh6  
    WriteBytes = Not (RetVal = 0)  H  
End Function m!3L/UZ  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 Jw'%[(q Q  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ +2!J3{[J  
DWORD dwCB; beFVjVVHq  
LARGE_INTEGER  offset; %"~\P u*>  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); 60P^aj$V  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); mw9;LNi\D  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ YB/A0J  
DWORD error = GetLastError(); |Ui1Mm  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); pqO}=*v@  
return FALSE; CZ*c["x2  
} [H-,zY  
return TRUE; S+>1yvr),  
} jy`jxOoG~Z  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : X96>N{C*>  
es@_6ol.@  
介个真的看不懂。 ) Q\nR`k  
你说你老啦,喜欢怀旧了,才想起来填坑。 `2\vDy1,j  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 pOQ'k>!  
]Y Q[ )  
az@{O4  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : o %sBU  
佩服,玩也玩得这么专业! XL>v$7`#  
}yZ9pTB.?E  
[mph iH/  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : -b+VzVJZ  
伍SIR,再次抱拳佩服 !Kr|04Qp#x  
Q!8AFLff4  
>aXyi3B  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : ?145^ w  
引用第19楼伍胥之于06-14-2010 12:33发表的  : ;sd[Q01  
3D L7   
ApHs`0=(  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 !h3 $C\  
g&eIfm  
我连一级也没有考过。 ~t7?5b?*\  
.
I3`WY- uv  
:YaEMQJ^  
引用
~< %%n'xmm  
矬子里拔将军... 3V ~871:-~  
你们那里的俗语是吧? ("07t/||  
.4E5{F{~  
我们这里说"矮子里拔长脚"..应该是同一个意思... Vg'vL[Y  
QND{3Q  
有趣....各地有表达意思一样却方式不同的俗语.... pw|f4c7AH  
"SC}C  
|#9Nu9ak  
你的文章写的有脸皮,没屁眼的, ?'ID7mL  
让看客大为不满... JDPn   
y%%D="  
你等着,,估计你以后接到的午夜凶铃就多了... 91%QO?hz  
Vb^P{F  
Kn-cwz5  
我到现在也没有接到你的午夜凶铃呢!  uYVlF@]  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : +tOmKY  
每个人的故事对其他人都是故事, qw^kA?  
自己的故事也是其中之一. `pr$l  
跳出来看, Do1 Ip&X  
不过是众人中的一个人的故事. S,ZlS<Z#  
c;siMWw;  
所以,接着听故事. 8<V6W F`e  
wUb5[m  
女人们有兴趣的就等老伍开个新帖或者跟贴, {"{kWbXZ  
听他痛说恋爱革命历史.... Gy}WZ9{  
XC 44]o4jx  
杂家接着听他自学程序员历史, co!o +jP  
高级程序员考了吗? =' %r"_`}  
[+ ,%T;d;  
sBUK v(U)  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! 2J?ON|2M  
ogD 8qrZ6J  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 RcJ.=?I!  
\S #Mc  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 bY` b3  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : ]t2zwHo#  
哦, 打倒忽悠大家的家伙.      ]TE(:]o7V  
d17RJW%A  
<R;t>~8x  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : mJ #|~I*Z-  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 w7#9t  
~dtS  
mm1fG4 *%  
其实标题没有什么,卡总既然改了就不必再改回了。 `SfBT1#5G  
.="/n8B  
主要是当初写的时候真是顶着锅盖写的。 #9/^)^k  
qH=<8Iu  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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