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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 xe/(  
ZE%YXG  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : WxF:~{  
=J1rlnaaEL  
老五,I 服了U。 ZJlEKib%2  
.^b;osAU  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 W_0>y9?  
^e+a  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean n-DVT;y  
dg^L=  
Dim regEX As New RegExp JgHM?AWg|  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 3"rzb]= R  
iDf,e Kk$'  
Dim LastTitle0String As String, LastTitle0No As Long -j&Tc` j_  
Dim LastTitle1String As String, LastTitle1No As Long wY"Q o7  
Dim LastTitle2String As String, LastTitle2No As Long O@YTAT&d#  
Dim LastTitle3String As String, LastTitle3No As Long KoS*0U<g6  
Dim LastTitle4String As String, LastTitle4No As Long .; &# )l  
Dim LastTitle5String As String, LastTitle5No As Long bGorH=pb5R  
Dim LastTabelString As String, LastTableNo As Long _v* nlc  
Dim LastFigureString As String, LastFigureNo As Long Znetzm=0  
$-On~u0g  
Dim strSeperator As String %Ts PyiYl  
^ "\R\COQ  
Sub ConvertWidth(fTEXT As String, rText As String) x"~~l  
        Selection.Find.ClearFormatting Q:$Zy  
        Selection.Find.Replacement.ClearFormatting f  nI|  
        Selection.Find.Wrap = wdFindContinue ] Eh}L  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText IEyL];K  
        DoEvents F4e:ZExJ  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True +*_5tWAc  
End Sub ^ :F.  
ApjOj/  
Sub ClearDomain() l&}y/t4%  
        With Selection.Find DS<  }@  
            .ClearFormatting frBX{L  
            .Replacement.ClearFormatting b"TjGE  
            .Wrap = wdFindContinue ;U_QvN|  
            Me.txtStatus.Text = "清除所有域代码" BATG FS&  
            DoEvents A4ISNM7R[  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False pC_O:f>vJ  
        End With d:F @a  
End Sub 'TA UE{{  
6)BR+U  
Private Sub cmdCheck_Click() ?-Vjha@BO  
    bContinue = True Rar"B*b;$  
    Dim NoSeries1(1 To 16) As String WKSPBT;  
    Dim NoSeries2(1 To 16) As String +kFxi2L6  
    Dim NoSeries5(1 To 16) As String b=/curl&  
    Dim NoSeriesRM(1 To 16) As String ,~?YBLw@c  
    Dim paraTotal As Long, ParaText As String gkHNRAL  
    Dim ttString As String, ttNo As String .$#r V?7  
     \cCV6A[  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long pFJB'=c  
G}9=)  
    Me.txtStatus.Visible = True w}CmfR  
    Me.lbParaType.Visible = True c5mZG 7-  
    Me.cmdCheck.Enabled = False 1 `KN]Nt  
     xzx$TUL  
     #Z5}2soA  
     w;l<[q?_  
     kCXd Ghb  
    Dim ParaType As String, rText As String C{d7J'Avk  
     l9M0cZ,  
    Selection.WholeStory I<A6Z&*un  
    Selection.NoProofing = True Reu*Pe  
     $U/YR&vcw  
    tm1 = Now gR@C0  
     :\=CRaA  
        ActiveWindow.View.Type = wdNormalView %e@#ux m  
     QFIL)'K  
    NoSeries1(1) = "一" r/*=%~*  
    NoSeries1(2) = "二" !\ g+8>  
    NoSeries1(3) = "三" (#;`"Yu  
    NoSeries1(4) = "四" xai4pF-?  
    NoSeries1(5) = "五" :f$xQr4Qz  
    NoSeries1(6) = "六" M|] "W  
    NoSeries1(7) = "七" %sRUh0AL  
    NoSeries1(8) = "八" kkK kf '  
    NoSeries1(9) = "九" GHmv} Z  
    NoSeries1(10) = "十" pBw0" ff  
    NoSeries1(11) = "十一" K).n.:vYZ  
    NoSeries1(12) = "十二" |^9BA-nA  
    NoSeries1(13) = "十三" ~ Uo)0  
    NoSeries1(14) = "十四" ]f1 {n  
    NoSeries1(15) = "十五" rSYi<ku  
    NoSeries1(16) = "十六" 72,rFYvpK  
     hxS 6:5Uc  
    NoSeries2(1) = "㈠" #:d =)Qj0  
    NoSeries2(2) = "㈡" \.g\Zib )  
    NoSeries2(3) = "㈢" K+6e?5t  
    NoSeries2(4) = "㈣"  ;vb8G$  
    NoSeries2(5) = "㈤" lqb/eN9(t  
    NoSeries2(6) = "㈥"  kQ   
    NoSeries2(7) = "㈦" G-T0f  
    NoSeries2(8) = "㈧" ,<2DL p%%D  
    NoSeries2(9) = "㈨" 'fL"txW  
    NoSeries2(10) = "㈩" 5K?}}Frrt`  
     "al `$%(  
    NoSeries5(1) = "①" Xb QlHfrS  
    NoSeries5(1) = "②" D0N9Ksq  
    NoSeries5(3) = "③" o`.R!wm:W  
    NoSeries5(4) = "④" {f{ZHi|  
    NoSeries5(5) = "⑤" Q# EP|  
    NoSeries5(6) = "⑥" K x~|jq  
    NoSeries5(7) = "⑦" r `eU~7  
    NoSeries5(8) = "⑧" J sEa23  
    NoSeries5(9) = "⑨" $O^v]>h  
    NoSeries5(10) = "⑩" kD}Y|*]5-5  
     5 B=^v#m  
     &  =/  
    NoSeriesRM(1) = "I" HfLLlH<L`&  
    NoSeriesRM(2) = "II" wYlf^~#"  
    NoSeriesRM(3) = "III" 8?FbtBAn  
    NoSeriesRM(4) = "IV" %K]euEqs  
    NoSeriesRM(5) = "V" 5cWw7V<m  
    NoSeriesRM(6) = "VI" gI8Bx]  
    NoSeriesRM(7) = "VII" $u/E\l  
    NoSeriesRM(8) = "VIII" z.rh]Zq  
    NoSeriesRM(9) = "IX" lKgKtQpi  
    NoSeriesRM(10) = "X" ci+tdMA  
    NoSeriesRM(11) = "XI" 1 tR_8lC  
    NoSeriesRM(12) = "XII" LF0sH)e]  
    NoSeriesRM(13) = "XIII" S'HnBn /  
    NoSeriesRM(14) = "XIV" Zec <m8~  
    NoSeriesRM(15) = "XV" CwJDmz\tk  
    NoSeriesRM(16) = "XVI" eW>3XD4  
     JBnK K  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) R-:fd!3oQ  
     AO UL^$&  
    If i = vbNo Then "4%"&2L  
        Exit Sub ] 7 _`]7p  
    End If :EHJ\+kejX  
     1$*%"5 a  
    If Me.chkSuper.Value Then \qUKP"dr  
        Me.txtStatus.Text = "检查修改所有的上标格式" 7w1wr)qSB  
     =rR~`  
        CheckSuperScript `~X!Ll  
         8 B**8yg.  
    End If ZR\VCVH\^  
     ,y%3mR_~  
    If Me.chkStyle.Value Then  L_w+y  
        Me.txtStatus.Text = "设置样式,请稍候...." #);[mW{F  
        DoEvents Iz[@^IUx=  
        CeateOrModifyStyle c=AOkX3UD  
    End If vp(;W,ba:|  
     mYU9 trHV  
     |!F5.%PY  
     A0%}v*  
    ClearDomain g&n)fF  
         &)oOeRwi].  
     p^iRPI  
     BW,mwq  
    If Me.chkLIST.Value Then 3R&lqxhg  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" +< prgP`v  
     x}twsc`  
        ConvertListToOrdinary 1xc~`~  
    End If eX_D/25 $  
     &x > B  
     ^V %rag  
    Dim pType As String, trimpTEXT As String 2[gFkyqe  
    If Me.chkNum.Value = True Then xTGxvGv8  
        Me.txtStatus.Text = "转换全角数字形式为半角" _{|D  
        ConvertWidth "1", "1" ujJI 1I  
        DoEvents a5G/[[cwTV  
        ConvertWidth "2", "2" fQP{|+4  
        DoEvents "YB** Y   
        ConvertWidth "3", "3" }(<%`G6N  
        DoEvents Pm$q]A~  
        ConvertWidth "4", "4" eznypY=  
        DoEvents (8ht*b.5K  
        ConvertWidth "5", "5" s{w[b\rA  
        DoEvents #Mg]GeDJ{  
        ConvertWidth "6", "6" X=C1/4wU  
        DoEvents V_Wwrhua  
        ConvertWidth "7", "7" zB? V_aT  
        DoEvents SwU\ q]^|Z  
        ConvertWidth "8", "8" sN("+ sZ.n  
        DoEvents 7$r jlVe  
        ConvertWidth "9", "9"  {Ha8]y  
        DoEvents -WQ^gcO=7  
        ConvertWidth "0", "0" } za[E>z  
        DoEvents ]QuM<ms  
        ConvertWidth "a", "a" <40rYr$/J  
        DoEvents Z/ Tm)Xd  
        ConvertWidth "b", "b" IuZ) [*W  
        DoEvents wKH ::!  
        ConvertWidth "c", "c" ^GBe)~MT  
        DoEvents 2y%,p{="  
        ConvertWidth "d", "d" /cZ-tSC)o  
        DoEvents  l$hJE;n  
        ConvertWidth "e", "e" 7u[j/l,  
        DoEvents >Yt/]ta4+  
        ConvertWidth "f", "f" eh[_~ >w  
        DoEvents N4*G{g  
        ConvertWidth "g", "g" XW?b\!@ $  
        DoEvents a" H WGY  
        ConvertWidth "h", "h" )a3IQrf=  
        DoEvents z5bo_Eq  
        ConvertWidth "i", "i" ~8m=1)A{(  
        DoEvents /CTc7.OYt  
        ConvertWidth "j", "j" Cg616hyut  
        DoEvents (5Sivw*mP  
        ConvertWidth "k", "k" r",]Voibd  
        DoEvents R1Ye<R!Q  
        ConvertWidth "l", "l" 6DZ),F,M  
        DoEvents Z`& 4SH=j  
        ConvertWidth "m", "m" d(:3   
        DoEvents kPjd_8z2n  
        ConvertWidth "n", "n" -8N|xQ378  
        ConvertWidth "o", "o" p!/[K6u  
        ConvertWidth "p", "p" r_YIpnJ  
        ConvertWidth "q", "q" <A9y9|>o  
        ConvertWidth "r", "r" 45&8weXO:'  
        ConvertWidth "s", "s" w{dIFvQ"$  
        ConvertWidth "t", "t" y ?G_y  
        ConvertWidth "u", "u" >q7BVF6V |  
        ConvertWidth "v", "v" .`CZUKG  
        ConvertWidth "w", "w" `nO71mo  
        ConvertWidth "x", "x" YJ:3!B>Zo  
        ConvertWidth "y", "y" dCu'>G\bP  
        ConvertWidth "z", "z" .ZMW>U>  
        ConvertWidth "A", "A" I!wX[4p eg  
        ConvertWidth "B", "B" CDi<< ,  
        ConvertWidth "C", "C" r 6eb}z!i  
        ConvertWidth "D", "D" {NJ fNu  
        ConvertWidth "E", "E" "KJ%|pg_C  
        ConvertWidth "F", "F"  8L*GE  
        ConvertWidth "G", "G" }Yv\0\~'W|  
        ConvertWidth "H", "H" dSCzx .c  
        ConvertWidth "I", "I" VxFOYC>p  
        ConvertWidth "J", "J" 0 'Vg6E]/  
        ConvertWidth "K", "K" MV=9!{`  
        ConvertWidth "L", "L" A^2L~g[^Q  
        ConvertWidth "M", "M" ESoAz o,u  
        ConvertWidth "N", "N" ?m c%.Bt  
        ConvertWidth "O", "O" B4XZko(  
        ConvertWidth "P", "P" gDIBnH  
        ConvertWidth "Q", "Q" mQ}ny(K'  
        ConvertWidth "R", "R" CB~Q%Q LG  
        ConvertWidth "S", "S" kw`WH)+F  
        ConvertWidth "T", "T" 5b/ojr7  
        ConvertWidth "U", "U" S^Au#1e   
        ConvertWidth "V", "V" k0Ek:MjJr  
        ConvertWidth "W", "W" U=8@@ yE  
        ConvertWidth "X", "X" c)&>$S8*  
        ConvertWidth "Y", "Y" B-d(@7,1  
        ConvertWidth "Z", "Z" 4'p=p#o  
        ConvertWidth "^l", "^p" RwVaZJe)l  
        ConvertWidth "(", "(" R4Rb73o  
        ConvertWidth ")", ")" *;|`E(   
     :SV>+EDY   
    End If V Yw%01#  
ouHu8)q'r  
    With ActiveDocument {7Mj P+\  
        Dim tbl As Table FecktD=  
        For Each tbl In .Tables *1@:'rJ  
            tbl.Rows.Alignment = wdAlignRowCenter ^h &I H|  
            tbl.Range.Font.NameFarEast = "楷体" j6(?D*x  
            tbl.Range.Font.NameAscii = "Times New Roman" C!C|\$)-  
            tbl.Range.Font.Size = 10.5 ~ 7)A"t  
        Next 1 qi@uYDug  
        Set tbl = Nothing  Yav2q3  
    End With pb0E@C/R  
     d1joVUYE  
     )~jqW=d 2  
    With ActiveDocument 8q )=  
         vEQ<A<[Z  
        For i = 1 To .TablesOfContents.Count 71C42=AU  
            .TablesOfContents(i).Delete ?GBkqQ  
        Next [ $fJRR  
         E0oU$IB  
         hO[3Z ^X  
         ~L7:2weV[  
        paraTotal = .Paragraphs.Count N -w(e  
        paraCounter = 1 a,7 &"  
         3/JyUh?  
        LastTitle0No = 0 /+e~E;3bO  
        LastTitle1No = 0 Iak0 [6Ey  
        LastTitle2No = 0 NcCvm#  
        LastTitle3No = 0 gK|R =J  
        LastTitle4No = 0 8e0."o.6  
        LastTableNo = 0 2l5KJlfj>k  
        LastFigureNo = 0 B}d.#G+_$x  
         htP|3B  
        Dim Sec As Long 7< 9L?F2  
         D5?phyC[Z  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) FEz>[#eOX  
        If Sec = 0 Then [Vf}NF  
            Exit Sub Lhh;2r/?78  
        End If ^zEE6i  
         F>gmj'-^  
        k = 0 Q)af|GW$  
        Do While (paraCounter < paraTotal) And bContinue eo^/c +FG  
            k = k + 1 tZ2e!<C  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then OlD`uA  
                Exit Do oPKXZU(c  
            End If YDmWN#  
            paraCounter = paraCounter + 1 U/;]zdP.K  
            If k Mod 20 = 0 Then 0@Kkl$O>mb  
                Me.lbCounter.Caption = paraCounter  j<"nO(  
                DoEvents `Pc3?~>0HH  
            End If %i)B* 9k  
        Loop ~:_0CKa!  
         2i|B=D(  
         Q+i\8RJ  
        Do While (paraCounter < paraTotal) And bContinue 9N[EZhW  
             =8=!Yc(>  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) xv7"WFb  
            ShapeHeight = 0 l2hG$idC  
            ShapeWidth = 0 2=ztKfsBhE  
           ;7Oi!BC  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth 5jq=_mHt  
             +\#Fd  
            Select Case ParaType K t#, ]]  
                Case "【】表格内容" SK$Vk[c]  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" z&4~x!-_  
                Case "章" 2>em0{e  
                    LastTitle0No = LastTitle0No + 1 x?D/.vrOY  
                    '新一章开始,复位其下属标题编号 Mp\ <cE  
                    LastTitle1No = 0 >NV=LOO  
                    LastTitle2No = 0 T@^]i&  
                    LastTitle3No = 0 ) gR=<oa  
                    LastTitle4No = 0 g<\z=H  
                     mCKk*5ws5"  
                    k = Val(ttNo) nws"RcP+Z  
                    If k = 0 Then '非数字编号章节 5(&xNT-n8  
                        If ttNo <> NoSeries1(LastTitle0No) Then 8Z85D  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString A<YsfDa_d  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText HI&kP+,y  
                        End If GJ 'spgz  
                    Else -Cid3~mX3  
                        If Val(ttNo) <> LastTitle0No Then 3kmeD".  
                            rText = "第" & LastTitle0No & ttString Kud'p Z{P  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText ^Jp*B;  
                        End If u}6v?!  
                         VF0dE  
                    End If /vE]2Io  
                     !NKmx=I]  
                    '章段落设置 59Sw+iZj  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 pJ, @Y>  
                    .Paragraphs(paraCounter).Style = "QLNU章节" OuIv e>8  
                    .Paragraphs(paraCounter).Range.Select \Btk;ivg  
                    Selection.EndKey unit:=wdLine K X]oE+:  
                    tc = Replace(rText, vbCr, "") !PUp>(  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 9h(IUD{8  
                Case "一级标题" rn.\tDeA  
                    LastTitle1No = LastTitle1No + 1 Gt/4F-Gn  
                    '新一级标题开始,复位其下属标题编号 Y@F  
                    LastTitle2No = 0 j?n+>/sG,  
                    LastTitle3No = 0 lu UYo  
                    LastTitle4No = 0 h7qBp300  
                     y,+[$u7h  
                    If ttNo <> NoSeries1(LastTitle1No) Then &S74mV  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString AH{^spD{7,  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText >qT' z$  
                    End If PI5j"u UO  
                   4}KU>9YRA  
                     k5+]SG`]]  
                    '一级标题段落设置  格式:一、标题内容 TF+ l5fv  
                    .Paragraphs(paraCounter).Range.Text = rText j nwQV  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" J7-^F)lu-  
                    .Paragraphs(paraCounter).Range.Select '4;6u]d)2  
                    Selection.EndKey unit:=wdLine l54|Q  
                    tc = Replace(rText, vbCr, "") Gk~l,wV>  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False )"O{D`uX  
                Case "二级标题" Tvf~P w  
                    LastTitle2No = LastTitle2No + 1 g?q KNY  
                    '新二级标题开始,复位其下属标题编号 ;)!"Ty|  
                    LastTitle3No = 0 e&X>F"z2  
                    LastTitle4No = 0 \Mi#{0f+q  
                     9 -jO,l  
                    If ttNo <> NoSeries1(LastTitle2No) Then Zzd/K^gg  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString e9u@`ZC07  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText w\|Ei(  
                    End If igDyp0t  
                     3/M.0}e  
                    '二级标题段落设置 格式:(一)、标题内容 p*; Qz  
                    .Paragraphs(paraCounter).Range.Text = rText B94 &elu  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" %6 =\5>  
                     qg,Nb  
                    .Paragraphs(paraCounter).Range.Select Gg0#H^s( (  
                    Selection.EndKey unit:=wdLine @Z\2*1y6  
                    tc = Replace(rText, vbCr, "") `hB1b["(  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False  [EHrIn  
                 >R,?hWT  
                Case "三级标题"  ?)tK!'  
                    LastTitle3No = LastTitle3No + 1 YT2'!R 1  
                    '新三级标题开始,复位其下属标题编号 e-D4'lu  
                    LastTitle4No = 0 VTe.M[:  
                     rcbP$t vz  
                    If Val(ttNo) <> LastTitle3No Then _ py2kjA6  
                            rText = LastTitle3No & ". " & ttString Na!za'qk[o  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText heD,& OX  
                         J+<p+(^*v  
                    End If 0|)19LR  
                    '三级标题段落设置 格式:1. 标题内容 @Hr+/52B  
                    .Paragraphs(paraCounter).Range.Text = rText [5pCL0<c@  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" V"d=.Hb>  
                    .Paragraphs(paraCounter).Range.Select c 8'Cq7  
                    Selection.EndKey unit:=wdLine Ae|P"^kZ  
                    tc = Replace(rText, vbCr, "") &+nRIv S_`  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False dU;upS_-  
                Case "四级标题" 'UDBV  
                    LastTitle4No = LastTitle4No + 1 H)J S0 G0  
                     RSWcaATZN  
                    If Val(ttNo) <> LastTitle4No Then m=&j@  
                            rText = "(" & LastTitle4No & "). " & ttString fU*C/ d3  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText O25m k X  
                     %]Cjhs"v  
                    End If ?9U:g(v  
                    '四级标题段落设置 格式:(1). 标题内容 &y:CW>T$/X  
                    .Paragraphs(paraCounter).Range.Text = rText ]O!s 'lC  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" [wcA.g*F  
                    .Paragraphs(paraCounter).Range.Select dhR(_  
                    Selection.EndKey unit:=wdLine ~LE[, I:q  
                    tc = Replace(rText, vbCr, "") Z}cIA87U  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False .L;",E  
                 RLKj u;u  
                Case "表格标题" lg/sMF>z\f  
                    LastTableNo = LastTableNo + 1 P%o44|[][  
                     C*wdtEGq  
                    If ttNo <> CStr(LastTableNo) Then A1JzW)B  
                            rText = "表" & LastTableNo & ". " & ttString U|fTb0fB  
                            ErrMsg.AddItem "表格编号错误:" & ParaText Mz|L-62  
                   s j 9D  
                    End If ! sYf<  
                     cNP/<8dq  
                    '表格名称段落设置 格式:表1. 表格名称 y' tRANxQ  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" s'2Rs^,hN  
                    xe = Replace(rText, vbCr, "") N <pbO#e  
                    .Paragraphs(paraCounter).Range.Select UxPGv;F  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 lpEDPvD_Vm  
                    Selection.Range.Text = xe l`rC0kJ]  
                    Selection.EndKey  Q&+c.S  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False 8&a_A:h  
                 |6B6?'  
                Case "表格首行" *PB/iVH%6  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" M9V-$ _)  
                Case "图片标题" *)PG-$6X&  
                    LastFigureNo = LastFigureNo + 1 yU`: IMz  
                     .S vyj  
                    If ttNo <> CStr(LastFigureNo) Then {fG|_+tl3o  
                            rText = "图" & LastFigureNo & ". " & ttString F2oJ]th.3  
                            ErrMsg.AddItem "表格编号错误:" & ParaText cgNt_8qC  
                   QN 0rE @a  
                    End If |>s v8/!  
                    '图片名称段落设置 格式:图1. 图名称 $j`<SxJ>  
                    .Paragraphs(paraCounter).Range.Text = rText x1DVD!0~{  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" )W9_qmYd"  
                    .Paragraphs(paraCounter).Range.Select  ~u/@rqF  
                    Selection.EndKey unit:=wdLine e(\Q)re5Q  
                    xe = Replace(rText, vbCr, "") NV!4(_~  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ic~Z_?p  
                Case "正文" 9A;6x$s  
                     '正文名称段落设置 ^HFo3V }h  
                    .Paragraphs(paraCounter).Style = "QLNU正文" @P70W<<  
               Case "文献条目" QAaF@Do  
                    With .Paragraphs(paraCounter) DPPS?~Pq  
                        '.Range.Select A +!sD5d  
                        'Selection.ClearFormatting %aLCH\e  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” ^]rxhpS  
                        .Style = "QLNU参考文献" <:cpz* G4  
                    End With !`C?nY  
               Case "图表注解" G\mKCaI8  
                    With .Paragraphs(paraCounter) 7s]Wq6  
                        .Range.Font.NameFarEast = "楷体" iB{xvyR  
                        .Range.Font.NameAscii = "Times New Roman" R@ QQNYU.D  
                        .Range.Font.Size = 9 '小5号字 ^('cbl  
                         UA0tFeH  
                        .Alignment = wdAlignParagraphCenter )<LI%dQ:'l  
                        .LeftIndent = 0 |9]PtgQv7  
                        .RightIndent = 0 4_< nQ9K  
                        .FirstLineIndent = 0 MuSaK %  
                        .LineSpacing = 12 6:RMU  
                        .LineSpacingRule = wdLineSpaceExactly <$C<Ba?;?  
                        .LineUnitAfter = 0 z_(eQP])  
                        .LineUnitBefore = 0 OWV/kz5'H  
                        .OutlineLevel = wdOutlineLevelBodyText 9A*rE.B+W  
                        .PageBreakBefore = False  8?Wgawx  
                        .RightIndent = 0 k|ip?O  
                        .WordWrap = True 9}n,@@  
                        .LineUnitAfter = 0.5 {"4<To]z  
                         h3t$>vs2F"  
                    End With 2 zl~>3S  
                Case Else B "n`|; r5  
                    '不作处理 "z/V%ZK~f  
            End Select /Su)|[/'  
             l4 `^!  
            '含有inlineshape的段落处理 Sf5]=F-w  
            If ShapeHeight > 30 Then #J~Xv:LgD  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 Kfd_uXL>  
            End If QE6El'S  
             _sm;HH7'*  
            If (ShapeWidth + ShapeHeight) > 150 Then ,Qo}J@e (  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" pU DO7Q]  
            End If C >kmIw'  
             z.59]\;U>  
            '段落计数器递 UG=I~{L  
            paraCounter = paraCounter + 1 fv5C! > t  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter AgI>  
            Me.txtStatus.Text = ParaText FAd``9kRT  
            DoEvents WJcVQM s  
        Loop Gy^FrF   
    End With '8Qw:fh  
     afy/K'~  
    msg = "" %LcH>sV  
     E.#6;HHzN  
    For i = 0 To Me.ErrMsg.ListCount - 1 }MjQP R  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) ^ +a  
    Next 1*#bfeoM  
     /yt7#!tm+  
     Gx;xj0-"  
     9mm2Vps;  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg ,]U[W  
    Me.cmdCheck.Enabled = True ^hysCc  
    Me.txtStatus.Visible = True h+xA?[ c=  
    Me.lbParaType.Visible = False Ge~,[If+  
     o#dcD?^  
    bContinue = False /b+;: z  
End Sub 7%tR&F -u  
NY 4C@@"  
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) 0&B:\  
    Dim pTEXT As String Dpj-{q7C  
     {0fz9"|U  
    pTEXT = ChKRange.Text y*(_\\  
     #ZF>WoC@e?  
    ParaType = "其它" xtsL8-u f  
    TitleString = pTEXT -=>U =|  
    TitleNo = "N/A" 0k.v0a7%  
     Lv3XYZgW~  
    shpCounter = ChKRange.InlineShapes.Count mLULd}g/o  
    If shpCounter <> 0 Then w #<^RKk  
        MaxShpHeight = 0: TotalShpWidth = 0 Q4 CJ]J`  
        For i = 1 To shpCounter n`QO(pZ6+  
            k = ChKRange.InlineShapes(i).Height 1 Xa+%n 9  
            l = ChKRange.InlineShapes(i).Width 1(# RN9   
            If k > MaxShpHeight Then `;}H%  
                MaxShpHeight = k ,$PFI(Whk  
            End If 6mAB(X^+  
            TotalShpWidth = TotalShpWidth + l 'oCm.~;_  
        Next a G@nErdW  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then @jKDj]\  
            Exit Sub Y^X:vI  
        End If 5R"2Wd  
    End If >Pyc[_j  
     rx}*u3x=  
    '空行 bu&;-Ynb  
    If Len(pTEXT) <= 2 Then D8EeZUqU  
        Exit Sub &! OGIYC(  
    End If 4D GY6PS  
     1M=   
         fo;6huz  
    '是否为表格中的文字 qdO[d|d  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then t,1in4sN  
        ParaType = "表格内容" Vbo5`+NAis  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) zw< 4G[u  
        If k = 1 Then hLSTSD}  
            ParaType = "表格首行" OuNj:  
        End If "]w!`^'_  
        Exit Sub drs-mt8  
    End If \P5>{ 2i  
     h$|3 dz N  
    '例外情况:脚注 ?^Pq/VtZ  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then }!=gP.Zu^  
        ParaType = "脚注" QjqBO+  
        Exit Sub j;G[%gi6{  
    End If +q l  
     H)`@2~Y  
    '例外情况:尾注  Y[h#hZ  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then [Ek42%  
        ParaType = "尾注" J2'W =r_#  
        Exit Sub hRRkFz/0&  
    End If htV#5SUx&  
     _o&94&  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then W?=$V>)  
        ParaType = "页眉页脚"  2aFT<T0  
        Exit Sub FQ0KU b}0  
    End If 7}A5u,.,ht  
     PaxK^*  
     /=q.tDH=I  
    With regEX Pu-p7:99;'  
        .Global = True UDVf@[[hN  
         ,zD_% ox  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" PqVW'FYe  
        If regEX.Test(pTEXT) Then CJm.K  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") u7n[f@Eg,%  
            TitleString = regEX.Replace(pTEXT, "$3") -E}>h[;qZ  
            TitleNo = regEX.Replace(pTEXT, "$1") T G_bje  
            ParaType = "章" d&5c_6oW  
            Exit Sub }2h't.Z<u  
        End If xM%`K P.8X  
         /MhS=gVxM  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" wy YtpW  
        If regEX.Test(pTEXT) Then Rnzqw,q  
            ParaType = "一级标题" 6<<'bi  
            regEX.Execute (pTEXT) %N>\:8 5?  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") UKOFT6|  
            TitleString = regEX.Replace(pTEXT, "$3") )tScc*=8  
            TitleNo = regEX.Replace(pTEXT, "$1") K]ca4Z  
            Exit Sub !e&rVoA  
        End If -.^3;-[  
         rAM *\=  
        '全角或半角括号中的数字 eQ$e*|}"m  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" Ny.*G@&  
        If regEX.Test(pTEXT) Then Oy:QkV9  
            ParaType = "二级标题" & &6*ez  
            regEX.Execute (pTEXT) fEB195#@9  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") ^l--zzO 8l  
            TitleString = regEX.Replace(pTEXT, "$5") F. }l(KuJ  
            TitleNo = regEX.Replace(pTEXT, "$2") L 43`^ ;u  
            Exit Sub cxY$LY!zX  
        End If @81-kdTx  
         >dyhox2*"  
        '阿拉伯数字  1. 2. (1rJFl!  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" 6$;L]<$W>  
        If regEX.Test(pTEXT) Then 5GaoJ v  
            ParaType = "三级标题" uC- A43utv  
            regEX.Execute (pTEXT) Zd8drT'@#  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 [gpOu TW  
            TitleString = regEX.Replace(pTEXT, "$3") % Oz$_Xe  
            TitleNo = regEX.Replace(pTEXT, "$1") sr ;:Dvx~  
            Exit Sub n>br,bQe  
        End If ;*W=c   
         \QliHm!  
        '全角或半角括号中的阿拉伯数字 1;aF5~&  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" 8^8>qSD1  
        If regEX.Test(pTEXT) Then KUF$h Er  
            ParaType = "四级标题" l<W*/}3  
            regEX.Execute (pTEXT) o>@=N2n  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") h4tC. i~k  
            TitleString = regEX.Replace(pTEXT, "$5") .\Ul!&y  
            TitleNo = regEX.Replace(pTEXT, "$2") )@!~8<_"  
            Exit Sub R$Zv0a&  
        End If L{Q4=p,A  
         5/ tj  
        '表格名称 O%fUm0O d  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" Ze#Jhn@  
        If regEX.Test(pTEXT) Then J`YnT  
            ParaType = "表格标题" ,.[.SU#V  
            regEX.Execute (pTEXT) cES;bwQ  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) 4 #aqz9k  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) bo&\3  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) ]{(l;k9=e  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 K*HCFqr U"  
            Exit Sub `b#/[3  
        End If iD.0J/  
         .F4oo=  
        '图片名称 /%62X{=>;  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" z<n"{%  
        If regEX.Test(pTEXT) Then {%=S+89l  
            ParaType = "图片标题" u\M4`p!g=  
            regEX.Execute (pTEXT) oDz*~{BHg  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") 3\7'm]  
            TitleString = regEX.Replace(pTEXT, "$3") =E&24  
            TitleNo = regEX.Replace(pTEXT, "$1") nrF%w H/5  
            Exit Sub Z "-ntx#  
        End If $U~=.!_du  
         O;UiYrXU  
        '参考文献 xy$vYDAFw  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 {cmo^~[L$  
        If regEX.Test(pTEXT) Then @55bE\E?@  
            ParaType = "文献条目" ,wEM Jh  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") ,>&?ty9o  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") ]Mn&76 fu  
            Exit Sub 1po"gVot  
        End If y*}AX%8`e~  
         (~=Qufy  
        prfx = Left(pTEXT, 2) cT_uJbP+  
        If prfx = "注:" Or prfx = "注:" Then |^Y*~d<H  
            ParaType = "图表注解" $< A8gTJ  
            Exit Sub Hr /W6C  
        End If xR *5q1j  
         hN& yc  
         {An8/"bv}  
        ParaType = "正文" *4-r`k|@>/  
         &1*4%N@'  
    End With +Y^-e.UO  
End Sub 7X(rLd 6#  
\P*PjG?R  
Sub ConvertListToOrdinary() Rl y jOf{0  
    Dim st As Paragraph P\,F1N_?r  
    With ActiveDocument )!N2'Ld  
        For i = .Paragraphs.Count To 1 Step -1 CFD*g\g<*  
            Set st = .Paragraphs(i) y=-{Q  
            lst = st.Range.ListFormat.ListString chKF6n  
            If lst <> "" Then tceIA8d6  
                st.Range.ListFormat.RemoveNumbers =*{ K@p_  
                st.Range.InsertBefore lst & " " W"W@WG9X0  
            End If ;:AG2zE!  
        Next BHF{-z  
    End With cC b>zI  
    Set st = Nothing \H,V 9!B  
End Sub =>HIF#jU  
w/qQ(]n8  
Private Sub UserForm_Activate() ,D:iQDG^  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" issT{&T  
    Me.lbTotal.Font.Bold = True yEE|e&#>  
    Me.txtStatus.Visible = False jA A'h A  
    Me.cmdCheck.Enabled = True =ZCH1J5"  
$eK8GMxZ#  
End Sub tU9rCL:P  
Z~duJsH  
<+<)xwOQ ]  
Sub CheckSuperScript() $|>6z_3%  
    Selection.Find.ClearFormatting 2ZU@>W  
    Selection.Find.Replacement.ClearFormatting UVc>i9,0  
    With Selection.Find ?+bTPl;%'  
        .Text = "[【\[[〖](*)[】\]〗]]" Qe7" Z  
        .Replacement.Text = "[\1]" [Xs}FJ  
        .Replacement.Font.Superscript = True *d^9,GGn-  
        '.Replacement.Font.Color = wdColorBlue R"m.&%n  
        .Forward = True !8wZw68"  
        .Wrap = wdFindContinue mw:3q6  
        .FORMAT = True -$AjD?;   
        .MatchCase = False CbnR<W-j  
        .MatchWholeWord = False "CIpo/ebL  
        .MatchByte = False bs:C1j\&  
        .MatchAllWordForms = False oN.Mra]D  
        .MatchSoundsLike = False bq c;.4$  
        .MatchWildcards = True ^fA3<|  
    End With &W&7bZ$;  
    Selection.Find.Execute Replace:=wdReplaceAll Sja "(sJ  
End Sub yfPCGCOW?  
;[?J5X,  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) bk/.<Rt  
    bContinue = False A28ZSL  
    Set regEX = Nothing [ P.@1mV  
End Sub # rh0r`  
Iu)L3_+  
Sub CeateOrModifyStyle() zd?bHcW/h  
' (jp1; #P!  
' c80 }1  
Dim stl As Style " 7l jc  
     Rg%R/p)C  
    Options.Pagination = False p6<E=5RRd1  
     D /,|pC  
    On Error Resume Next Hi9 G^Q  
    For Each stl In ActiveDocument.Styles L@C >-F|p  
        stl.Delete B(S5+Y  
    Next N5:D8oWWXR  
    On Error GoTo 0 sqm%iyC=q  
     K~7'@\2 ?  
    Set stl = Nothing /uy&2l  
     1gF*Mf_7  
    DoEvents 3m-edpH  
    On Error Resume Next 9`ri J4zl  
     0|WOReskK  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph PFImqojHd  
     N b#H@zm  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph 2z.k)Qx!Z  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph ZrmnQ  
     9)G:::8u7  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph #n U@hOfg  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph Ln"+nKr  
     /AK*aRU^  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph ~J8cS  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph ~*66 3pA  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph ?9o#%?6k  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph @qg0u#k5  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph @)aXNQ Y  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph hXV4$Dai  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph ^U0apI  
     C!aX45eg  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph d_4n0Kh0  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph X;K8,A7`  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph t:?<0yfp&  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph *T.={>HE8  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph 9`LU=Xv/  
     uf{SxEa  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph 8r7/IGFg  
    On Error GoTo 0 Ig40#pA  
    DoEvents f9h:"Dnzin  
     jD&}}:Dj  
    'BaseStyle )a4E&D  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False U p]VU9z  
    With ActiveDocument.Styles("BaseStyle").Font G:E+s(x  
        .NameFarEast = "宋体" oN1!>S9m  
        .NameAscii = "Times New Roman" ]=$-B  
        .NameOther = "宋体" "uV0Oj9:  
        .Size = 10.5 9b{g+lMZo  
        .Bold = wdUndefined :vn0|7W4  
        .Italic = wdUndefined -L^0-g  
        .Subscript = wdUndefined |YG)NO  
        .Subscript = wdUndefined w\0Oz?N  
         w3>Y7vxiz`  
        .Underline = wdUnderlineNone [15hci+-  
        .UnderlineColor = wdColorAutomatic asm[-IB2u  
        .StrikeThrough = False TzD:bKE&  
        .DoubleStrikeThrough = False UiGUaBmF*  
         ,Ut!u)  
        .Outline = False htdn$kqG   
        .Emboss = False b?+ Yo>yF8  
        .Shadow = False -~rr<D\  
        .Hidden = False R7\{w(`K  
        .SmallCaps = False ? RrC~7~  
        .AllCaps = False zJB+C=]D7H  
        .Color = wdColorAutomatic ?X8K$g  
        .Engrave = False :Olj  
        .Scaling = 100 :kf3_?9rc  
        .Kerning = 1 %xH>0  
        .Animation = wdAnimationNone j8D$/  
        .DisableCharacterSpaceGrid = False )w }*PL  
        .EmphasisMark = wdEmphasisMarkNone 73! x@Duh  
    End With Apw-7*/  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat fzGZ:L  
        .LeftIndent = 0 b&U5VA0=1  
        .RightIndent = 0 Nlf&]^4(0  
        .SpaceBefore = 0 4wM$5  
        .SpaceBeforeAuto = False 0C9QAJa  
        .SpaceAfter = 0 h=p-0 Mx .  
        .SpaceAfterAuto = False D{&+7C:8.  
         dpc=yXg>"c  
        .LineSpacingRule = wdLineSpaceSingle N7j]yvE  
        .Alignment = wdAlignParagraphJustify ^>P@5gcoE(  
         2uI`$A:  
        .WidowControl = False ;-<<1Jz/2  
        .KeepWithNext = False 0{{p.n8a~  
        .KeepTogether = False ,b2O^tJF#  
        .PageBreakBefore = False 8KtF<`A)  
        .NoLineNumber = False D_,_.C~O  
         o'= [<  
        .FirstLineIndent = CentimetersToPoints(0)  N#2nH1C  
        .OutlineLevel = wdOutlineLevelBodyText x~3>1Wr#M  
        .CharacterUnitLeftIndent = 0 e+]YCp[(  
        .CharacterUnitRightIndent = 0 #b]}cwd!  
        .CharacterUnitFirstLineIndent = 0 "6[Ax{cM  
        .LineUnitBefore = 0 f:) K  
        .LineUnitAfter = 0 e>)}_b  
        .AutoAdjustRightIndent = True ek+8hnkh  
        .DisableLineHeightGrid = True 0qaG#&!  
         `Tm8TZd66  
        .FarEastLineBreakControl = True K>DnD0  
        .WordWrap = True 2Wc;hJ.1  
        .Hyphenation = False ^{6UAT~!R  
         X*p:&=o  
        .HangingPunctuation = True z9uEOX&2\  
        .HalfWidthPunctuationOnTopOfLine = True sKE*AGFL d  
        .AddSpaceBetweenFarEastAndAlpha = True %(O^as  
        .AddSpaceBetweenFarEastAndDigit = True nvUkbmZG#  
        .BaseLineAlignment = wdBaselineAlignBaseline \8C*O{w  
    End With Is,*qrl :  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False -Z\ UYt  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll 34O+#0<y~  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese ^q4:zZZ  
    ActiveDocument.Styles("BaseStyle").NoProofing = False Qh1Kl_a?Lv  
     4n.i<K8K[  
    '一级标题题样式 ( .6tz  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") I5|S8d<  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" 9X^-)G>  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False %_i0go,^  
    With ActiveDocument.Styles("QLNU一级标题").Font 'nmYB:&!  
        .NameFarEast = "黑体" ZQ-z2s9U  
        .NameAscii = "Arial Black" b`;b}ug  
        .NameOther = "黑体" Z "+rg9/p  
        .Name = "黑体" -mWw.SfEZ  
        .Size = 16              '三号 Jn^Wzn[q  
        .Bold = True K{[Fa,]'  
        .Italic = wdUndefined i,U- H\p&  
        .Subscript = wdUndefined 0ghwFo  
        .Superscript = wdUndefined !O%f)v?  
    End With ^*owD;]4_  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat 'Rar>oU  
         XQ|j5]  
        .LeftIndent = CentimetersToPoints(0) Z?G 3d(YT  
        .RightIndent = CentimetersToPoints(0) (cqA^.Td  
        .FirstLineIndent = CentimetersToPoints(0) X\^3,k."  
         ;j Y'z5PH5  
        .LineSpacingRule = wdLineSpaceSingle \:f}X?:  
        .Alignment = wdAlignParagraphCenter .q;RNCUt  
         \`<s@U  
        .WidowControl = True n(F<  
        .KeepWithNext = True 802]M  
        .KeepTogether = True 8xGkh?%  
        .OutlineLevel = wdOutlineLevelBodyText *FG4!~<e  
         H 29 _ /  
        .LineUnitBefore = 0.5 9iN!hy[  
        .LineUnitAfter = 0.5 !gA^$(=:"  
    End With 4HYH\ey  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False hTNYjXj  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll Y9(i}uTi  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese ,y{fqa4  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True 1J!tcj1(  
    DoEvents (WU~e!}  
     [wpt[zG  
    '二级 {(zL"g46  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") COl%P  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" c9_4 ohB  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False zqE8PbU0M;  
    With ActiveDocument.Styles("QLNU二级标题").Font qLktMp_  
        .NameFarEast = "黑体" -%QEzu&  
        .NameAscii = "Arial Narrow" e\bF_ N2VA  
        .NameOther = "黑体" /[)P^L`  
        .Name = "黑体" fb S.  
        .Size = 15        '小三号 s-YV_  
        .Bold = False "~,(Xa3x  
        .Outline = False N[?4yV2s  
        .Italic = wdUndefined B#/~U`t*  
        .Subscript = wdUndefined y^Xxa'y  
        .Superscript = wdUndefined -QHzf&D?  
    End With D3 Ea2}8  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat -iZjs  
        .LeftIndent = CentimetersToPoints(0) f@V{}&ZWp  
        .RightIndent = CentimetersToPoints(0) y O9pEO|W  
        .FirstLineIndent = CentimetersToPoints(0) |GLn 9vw7S  
         =S?-=jPtg  
        .LineSpacingRule = wdLineSpaceSingle ,r)d#8  
        .Alignment = wdAlignParagraphLeft HpgN$$\@  
         Ml_ :Q]kl^  
        .WidowControl = True 7E84@V[\  
        .KeepWithNext = True Yhv`IV-s  
        .KeepTogether = True ^SL}wC x  
        .PageBreakBefore = False =_~'G^`tu  
        .OutlineLevel = wdOutlineLevelBodyText TY{?4  
         ]MH \3g;   
        .LineUnitBefore = 0.5 %L=h}U13  
        .LineUnitAfter = 0.5 u[% J#S  
         C (Ba r#  
    End With 4dD@lG~  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False 3By>t!~Q  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll 7$!Bq#  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese y`P7LC  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True @0x.n\M_  
    DoEvents fqp7a1qQl  
     BDm H^`V  
    '三级标题样式 vXWESy  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 0BU:(o&  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" U=*q;$L#  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False qi5>GX^t]b  
    With ActiveDocument.Styles("QLNU三级标题").Font (Gb{ckzs  
        .NameFarEast = "宋体" M`g Kt (3  
        .NameAscii = "Times New Roman" ]8j5Ou6#y  
        .NameOther = "黑体" Jv$2wH  
        .Name = "黑体" J,2v~Dq  
        .Size = 14               '四号 z%-"' Y]  
        .Bold = False Z( clw  
        .Outline = False (fjXp75  
        .Italic = wdUndefined XS~w_J#q  
        .Subscript = wdUndefined @eD~FNf-]  
        .Superscript = wdUndefined  9%hB   
    End With ?9.?w-Q'  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat f \%X 7.  
        .LeftIndent = CentimetersToPoints(0) s_e#y{ {C2  
        .RightIndent = CentimetersToPoints(0) :$@zX]?M  
        .FirstLineIndent = CentimetersToPoints(0) u*YuU%H=  
         :~YyHX  
        .LineSpacingRule = wdLineSpaceSingle Y(;[L`"  
        .Alignment = wdAlignParagraphLeft K {N;k-  
         %L,,  
        .WidowControl = True LSOwa  
        .KeepWithNext = True tYxlM!  
        .KeepTogether = True jC }u>AB  
        .PageBreakBefore = False Ra,on&OP`*  
        .OutlineLevel = wdOutlineLevelBodyText Y&:\s8C  
         U},W/g-  
        .CharacterUnitLeftIndent = 0 U";Rp& \3;  
        .CharacterUnitRightIndent = 0 Bf}0'MK8zQ  
        .CharacterUnitFirstLineIndent = 2  K`mxb}  
         gZuR4Ti  
        .LineUnitBefore = 0.5 4xC6#:8  
        .LineUnitAfter = 0 gM/_:+bT>P  
    End With F u=VY{U4  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False g&20F`.N*>  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll 7JK 'vT  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese G}OrpPP  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True ^ K@ GK  
    DoEvents {>qrf:  
     mgl' d  
    '四级标题样式 u=N;P  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") !ilDR<  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" 6Yi,%#  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False G`<1>%" F  
    With ActiveDocument.Styles("QLNU四级标题").Font _rWXcK3cjr  
        .NameFarEast = "宋体" 4 w  
        .NameAscii = "Times New Roman" wB 0WR  
        .NameOther = "宋体" _3?xIT  
        .Name = "宋体" P6Ol+SI#m  
        .Size = 12               '小四号 GTX&:5H\t  
        .Bold = True H H7 gT  
        .Outline = False pF{Ri  
        .Italic = wdUndefined y"n~ET}e7  
        .Subscript = wdUndefined Gl\RAmdc  
        .Superscript = wdUndefined #B{F{,vlu,  
    End With %-zH]"Q$  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat 7PPsEU:rf  
         (#>5j7i8#  
        .LeftIndent = CentimetersToPoints(0) $TUC?e9"h  
        .RightIndent = CentimetersToPoints(0) ]$X=~>w  
        .FirstLineIndent = CentimetersToPoints(0) R~ u7;Wv  
         >}`1'su  
        .LineSpacingRule = wdLineSpaceSingle bJ u,R-f  
        .Alignment = wdAlignParagraphLeft C]@B~X1H^  
         A}+r;Y8[h  
        .WidowControl = True hYQ%|CBXBR  
        .KeepWithNext = True Ts *'f  
        .KeepTogether = True "e?#c<p7  
        .PageBreakBefore = False l@2`f#y1~<  
        .OutlineLevel = wdOutlineLevelBodyText ku8Z;ONeH  
         p~y 4q4  
        .CharacterUnitLeftIndent = 0 7VD7di=D  
        .CharacterUnitRightIndent = 0 uX!y,a/"  
        .CharacterUnitFirstLineIndent = 2 |6G5  ?|  
         I Q`aDo-V  
        .LineUnitBefore = 0 0R{R=r]  
        .LineUnitAfter = 0 aQ3vG08L>  
         o`]FH _  
    End With wH5O>4LO  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False G5@@m-  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll m^ &mCo,  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese VY26 Cf"  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True W`rE\P  
    DoEvents ? 9M+fi  
     A.*nDl`H  
    '正文校式 S 2` ;7  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") yD'h5)yu  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" V'#u_`x"D)  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False Nr7.BDA  
    With ActiveDocument.Styles("QLNU正文").Font E&=?\KM  
         9d|7#)a;  
        .NameFarEast = "宋体" -x5bdC(d  
        .NameAscii = "Times New Roman" iONql7S @  
        .NameOther = "宋体" 'r3}=z4Y  
        .Name = "宋体" T{kwy3  
         ZI*A0_;L  
        .Size = 12               '小四号 B3=/iOb#  
         DD3yl\#,  
        .Bold = wdUndefined Rf$6}F  
        .Italic = wdUndefined    r3K:  
        .Subscript = wdUndefined $e,!fB;B  
        .Superscript = wdUndefined , 0ja_  
          [?(W7  
        .Outline = False sm <kb@g  
        .Emboss = False F>nrV  
        .Shadow = False w6Ny>(T/  
        .Hidden = False k0=y_7 =(5  
         k3eN;3#&  
        .DisableCharacterSpaceGrid = True aj~@r3E ;  
    End With 2]KPW*V  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat / S^m!{  
         3W00,f^9  
        .LeftIndent = CentimetersToPoints(0) xL#oP0d<e  
        .RightIndent = CentimetersToPoints(0) >I ; #BE3  
        .FirstLineIndent = CentimetersToPoints(0) LA3,e (e  
         9Ei#t FMc  
        .LineSpacingRule = wdLineSpaceExactly eJdQ7g[>  
        .LineSpacing = 20 MO+0]uh:  
        .Alignment = wdAlignParagraphLeft ^OsUWhkV  
         .=<pU k 3G  
        .WidowControl = False %6?}gc_  
        .KeepWithNext = False S5p\J!k\B  
        .KeepTogether = False $G.|5sEk  
        .PageBreakBefore = False  D -EM  
        .Hyphenation = False 9%veUvY  
         /R?uxhV  
        .OutlineLevel = wdOutlineLevelBodyText alD|-{Bf  
         y 9mZQq  
       =?x=CEW  
        .CharacterUnitLeftIndent = 0 6 6;O3g'  
        .CharacterUnitRightIndent = 0 PhdL@Mr  
        .CharacterUnitFirstLineIndent = 2 M& L0n%,y5  
         e/%Y ruzS  
        .LineUnitBefore = 0 `{[C4]Ew/  
        .LineUnitAfter = 0 FC .-u"V  
        .SpaceBefore = 0 rkXSy g b  
        .SpaceAfter = 0 5.;$9 ~d  
         EnAw8Gm *  
        .DisableLineHeightGrid = True O  
    End With p#NZ\qJ  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False a];i4lt(c  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll 'GT`% ck  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese *38\&"s4_  
    ActiveDocument.Styles("QLNU正文").NoProofing = True 7 i\[Q8f  
    DoEvents X~b+LG/  
     2,`mNjHh  
    '图片段落样式 uU"s50m  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") k!rz8S"  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" 'KrkC A  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False f2XD^:Gc  
    With ActiveDocument.Styles("QLNU图片段落").Font k}7)pJNj  
        .Size = 12               '小四号 }z:=b8}  
        .Italic = wdUndefined Wx`IEPsVbk  
        .Subscript = wdUndefined mSp7H!  
        .Superscript = wdUndefined +#9 (T  
    End With B*Xh$R  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat {[#  
         msJn;(Pn  
        .LeftIndent = CentimetersToPoints(0) !y0 O['7  
        .RightIndent = CentimetersToPoints(0) "6h.6_bTw  
        .FirstLineIndent = CentimetersToPoints(0) !I$RE?7eY  
         u>@G:kt8  
        .LineSpacingRule = wdLineSpaceSingle dRC+|^ rSC  
        .Alignment = wdAlignParagraphCenter At:C4>HE@  
        .KeepWithNext = True 'S>Jps@  
        .OutlineLevel = wdOutlineLevelBodyText jl7-"V>j?;  
         !9Ni[8&Fg0  
        .CharacterUnitLeftIndent = 0 ?`iBp+iBv  
        .CharacterUnitRightIndent = 0 \}c50}#0  
        .CharacterUnitFirstLineIndent = 0 <FLc0s  
         < duM8   
        .LineUnitBefore = 0 e u/S p3@v  
        .LineUnitAfter = 0 q|\C p  
    End With 1.CYs<  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False ywBo9|%T  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll b&&'b )  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese fQ) ;+  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True breVTY7 S  
    DoEvents cE?J]5#^  
     6f1Y:qK'@  
     fR{7780WZ  
    '第X章 cVi CWc2  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 3_:k12%p  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" VNfx>&`  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False qN(; l&Q  
    With ActiveDocument.Styles("QLNU章节标题").Font ax}Xsk_  
        .NameFarEast = "黑体" JE!Xf}nEi  
        .NameAscii = "Arial Black" 3j#F'M)s{  
        .NameOther = "Arial Black" BGOI   
        .Name = "黑体" SJ e;T  
        .Size = 16 Cl=ExpX/O  
        .Bold = True NyNu1V$  
        .UnderlineColor = wdColorAutomatic H2- (  
        .Outline = False J>&GP#7}  
        .Italic = wdUndefined HRh".!lxy  
        .Subscript = wdUndefined xEqrs6sR  
        .Superscript = wdUndefined R'U(]&e.j  
        .Scaling = 100 YzVLa,[  
        .DisableCharacterSpaceGrid = True v-@@>?W-  
    End With |'#NDFI>}  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat 1NJ|%+I  
        .LineSpacingRule = wdLineSpaceSingle wVX0!y6  
        .Alignment = wdAlignParagraphCenter OW^7aw(N6  
        .WidowControl = True b?,y%D) '  
        .KeepWithNext = True efm< bJB2  
        .KeepTogether = True T9yW# .  
        .PageBreakBefore = True =0|evC  
        .OutlineLevel = wdOutlineLevelBodyText 7 |A,GH  
         YTA  &G  
        .LeftIndent = CentimetersToPoints(0) P@ u%{  
        .RightIndent = CentimetersToPoints(0) C5?M/xj  
        .FirstLineIndent = CentimetersToPoints(0) B(U`Zd  
         $tJJ >"  
        .CharacterUnitLeftIndent = 0 [sRQd;+  
        .CharacterUnitRightIndent = 0 A5\S0l$Q  
        .CharacterUnitFirstLineIndent = 0  0SYkDI  
         GW#Wy=(_  
        .LineUnitBefore = 1 %kT:"j(xW  
        .LineUnitAfter = 0.5 X+ jSB,  
         6OUj c  
        .AutoAdjustRightIndent = False :}-[%LSV  
        .DisableLineHeightGrid = True /P lsF  
        .FarEastLineBreakControl = True [0e mOS  
        .WordWrap = True eA_4,"{  
    End With nXjUTSGa)  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False 1:8: y FV  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll ujedvw;sO  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese HF:PF"|3  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True X88Zd M'  
    DoEvents it@s(1EO#  
     J.(_c ' r  
    '表格标题 =lnz5H  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") W1z5|-T  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" f #14%?/  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False 8 B5%IgA  
    With ActiveDocument.Styles("QLNU表格标题").Font 9yPB)&"EF  
        .NameFarEast = "楷体" sa($3`d  
        .NameAscii = "Arial" 7BnP,Nd"W  
        .Name = "楷体" R _%pR_\  
        .Size = 10.5 I._=q  
        .Bold = True 3lqhjA  
        .Underline = wdUnderlineNone gsAO<Fy  
        .Italic = wdUndefined ?u|g2!{_  
        .Subscript = wdUndefined TM;)[R@  
        .Superscript = wdUndefined TgLlmU*qMU  
        .Color = wdColorAutomatic -mF9Skj  
    End With nE YJ?_55  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat J\BdC];  
         &3efJ?8  
        .LineSpacingRule = wdLineSpaceSingle ?CC6/bE-{  
        .Alignment = wdAlignParagraphCenter _!ed.h.r:  
        .KeepWithNext = True U;/ )V  
        .KeepTogether = True OZD/t(4?6s  
        .OutlineLevel = wdOutlineLevelBodyText Z:{ Z&HQC  
         J^T66}r[f,  
        .LeftIndent = CentimetersToPoints(0) W*2SlS7  
        .RightIndent = CentimetersToPoints(0) kaLRI|hC  
        .FirstLineIndent = CentimetersToPoints(0) Pa*yo:U'h  
         Y|L57F  
        .CharacterUnitLeftIndent = 0 l/5/|UE9  
        .CharacterUnitRightIndent = 0 n1|%xQBU@  
        .CharacterUnitFirstLineIndent = 0 S/|8' x{<  
         Et (prmH  
        .LineUnitBefore = 1 bYfcn]N  
        .LineUnitAfter = 0 P! /8   
         Syb:i(Y  
    End With qA42f83  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False idq= US  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll {iRNnh   
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese TV}SKvu  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True * gnL0\*  
    DoEvents pWqahrWh  
B5hGzplS  
    '表格首行 ?5D7n"jY  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") *SZ<ori  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False rm7UFMCR6i  
    With ActiveDocument.Styles("QLNU表格首行").Font 6{6tg>|L)  
        .NameFarEast = "楷体" w~`P\i@  
        .NameAscii = "Times New Roman" 4{_5z7ody  
        .Name = "楷体" Yp8$0KK  
        .Size = 9 7pNh|#Uv'  
        .Bold = True w,&RHQB  
        .Underline = wdUnderlineNone R!=XMV3$PH  
        .Italic = wdUndefined G[mYx[BTz  
        .Subscript = wdUndefined TBzM~y  
        .Superscript = wdUndefined %k~=iDk@  
    End With G(- `FH  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat _\6-]  
        .LineSpacingRule = wdLineSpaceSingle \[BnAgsF  
        .Alignment = wdAlignParagraphCenter x8^Dhpr6  
         9/Ls3U?  
        .LeftIndent = CentimetersToPoints(0) AMr9rBd  
        .RightIndent = CentimetersToPoints(0) &}oDSD H^,  
        .FirstLineIndent = CentimetersToPoints(0) GUxhCoxb  
         Gu-Sv!4p  
         K(?7E6\vO  
        .CharacterUnitLeftIndent = -0.5 N78Ev7PN  
        .CharacterUnitRightIndent = -0.5 NNT9\JRv_  
        .CharacterUnitFirstLineIndent = -0.5 #{(rOb6H)  
         z{ 8!3>:E  
        .LineUnitBefore = 0 [3s~Z8 pP  
        .LineUnitAfter = 0 Ni`qU(I'|  
        .SpaceBefore = 0 &1&*(oi]X  
        .SpaceAfter = 0 `'/8ifKz  
         Je'$V%{E  
    End With b#F3,T__`Y  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False \Z$*8z=  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll ?$?Ni)Z  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese l[x wH 9'  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True 3 f3?%9  
    DoEvents "](~VF[J8  
Ez )Go6Q  
    '表格内容 AQ&;y&+QR  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") g!8-yri  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False t9kgACo/M  
    With ActiveDocument.Styles("QLNU表格内容").Font  :JlJB  
        .NameFarEast = "楷体" `fH6E8N  
        .NameAscii = "Times New Roman" LakP'P6`E  
        .Name = "楷体" z K&`&("4C  
        .Size = 9 cG<?AR?wDT  
        .Bold = False t?s1@}G^  
        .Underline = wdUnderlineNone 1DX=\BWp  
        .Italic = wdUndefined ^%nAx| 4xQ  
        .Subscript = wdUndefined n1QO/1} :  
        .Superscript = wdUndefined y~\z_') <>  
    End With o]vdxkU]  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat >y?$aJ8ZV  
        .LineSpacingRule = wdLineSpaceSingle hE;  
        .Alignment = wdAlignParagraphCenter l"+=z.l6;  
         QxK%ZaFZA  
        .LeftIndent = CentimetersToPoints(0) l}m@9 ~oC  
        .RightIndent = CentimetersToPoints(0) ojaZC,}  
        .FirstLineIndent = CentimetersToPoints(0) #pZ3xa3R  
         z)ydQw>  
        .CharacterUnitLeftIndent = -0.5 {MHr]A}X\  
        .CharacterUnitRightIndent = -0.5 /N $T[  
        .CharacterUnitFirstLineIndent = -0.5 ~9{.!7KPc  
        .LineUnitBefore = 0 $I.'7 &h;  
        .LineUnitAfter = 0 QAR<.zXvP  
        .SpaceBefore = 0 (efH>oY[  
        .SpaceAfter = 0 7}Gy%SJ`  
    End With MKbW^:  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False 4x:fOhtP  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll YRK4l\_`  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese \ZC7vM"h  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True ;RR)C@n1  
    DoEvents /q=<OEC  
o,29C7Ii  
    '图片标题 M*x_1h5n  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") qU"+0t4  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" nPKj%g3h  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False Mqq7;w@(J  
    With ActiveDocument.Styles("QLNU图片标题").Font j8lbn|.  
        .NameFarEast = "楷体" #pIb:/2a_  
        .NameAscii = "Times New Roman" 6 R!0v8  
        .Name = "楷体" ]!/1qF  
        .Size = 10.5 P6MT[  
        .Bold = True # RtrHm  
        .Underline = wdUnderlineNone I*X| pRD  
        .Italic = wdUndefined $ZA71TzMV  
        .Subscript = wdUndefined xd* kNY  
        .Superscript = wdUndefined H*Yy o ?  
        .Outline = False @A:Xct  
        .Shadow = False EfOJ%Xr[,l  
        .Color = wdColorAutomatic <+6)E@Y  
    End With _^KD&t%!+y  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat m^wYRA.  
        .LineSpacingRule = wdLineSpaceSingle ^P[-HA|  
        .Alignment = wdAlignParagraphCenter aJu b("  
         oOuWgr]0  
        .KeepWithNext = wdUndefined nF)|oA   
        .KeepTogether = True \=.iM?T  
        .OutlineLevel = wdOutlineLevelBodyText qp7>_B  
         !a  /  
        .LeftIndent = CentimetersToPoints(0) _ ZJP]5  
        .RightIndent = CentimetersToPoints(0) GSk;~^l  
        .FirstLineIndent = CentimetersToPoints(0) B"G;"X  
         XRZmg "  
        .CharacterUnitLeftIndent = 0 O%)w!0  
        .CharacterUnitRightIndent = 0 HxkhlNB  
        .CharacterUnitFirstLineIndent = 0 MQhL>oQ  
         S W bwD/SN  
        .LineUnitBefore = 0 ;lP)  
        .LineUnitAfter = 0 -Z  @cj  
    End With Ef#%4ky  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False oM< 9]jK}  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll -gzk,ymp  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese =!Ok079{[  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True .7oz  
    DoEvents n#4Ra+dD  
]]Wa.P~]O  
    '目录项 o0AREZ+I  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") _KKG^ u<  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" $} ~:x_[  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False NbSwn}e_  
    With ActiveDocument.Styles("QLNU目录项").Font ,9=a(j"  
        .NameFarEast = "黑体" N/Z<v* i"  
        .NameAscii = "Times New Roman" |S/nq_g]  
        .NameOther = "Times New Roman" 8NpQ"0 X  
        .Name = "黑体" +YP,LDJ!v  
        .Size = 10.5 5{{u #W%=  
        .Bold = False }v`5  
        .Italic = wdUndefined )jn xR${M  
        .Underline = wdUnderlineNone  MgA6/k  
        .Color = wdColorAutomatic n]|[|Rf1  
        .Superscript = wdUndefined O<fbO7.-  
        .Subscript = wdUndefined 4-s Uy  
    End With daaur T  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat ^!=+$@<  
         O4 [[9  
        .LineSpacingRule = wdLineSpaceSingle Z(Xu>ap  
        .Alignment = wdAlignParagraphLeft xK /NzVt  
         s I#K01;"  
        .WidowControl = False Zd042 %  
        .KeepWithNext = False ibEQ52  
        .KeepTogether = False F$d`Umqs;P  
        .PageBreakBefore = False #*5A]"k  
        .NoLineNumber = False ^"l4   
        .OutlineLevel = wdOutlineLevelBodyText x6m21DWw  
         gQ& FO~cr  
        .LeftIndent = CentimetersToPoints(0) uA,K}sNRZ  
        .RightIndent = CentimetersToPoints(0) 0nBAO  
        .FirstLineIndent = CentimetersToPoints(0) }y'KS:Jb  
         s@0#w*N  
        .CharacterUnitLeftIndent = 0 d]CRvzW  
        .CharacterUnitRightIndent = 0 CB|Z~_Bm  
        .CharacterUnitFirstLineIndent = 0 PX+$Us  
         -V(5U! ^B  
        .LineUnitBefore = 0 KN5.2pp  
        .LineUnitAfter = 0 x#U?~6.6  
    End With E: #VS~  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False ]GRPxh  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll zDC-PHF HQ  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot wF }/7b54  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese o: qB#8X  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True [9X1;bO#f  
    DoEvents w_6h $"^x  
     :h"Y>1P  
    '参考文献  dY|(  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") L[D}pL=  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" jyt fGE:  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False hV_0f_Og  
    With ActiveDocument.Styles("QLNU参考文献").Font D/rKqPp|!  
        .NameFarEast = "宋体" iGM-#{5  
        .NameAscii = "Times New Roman" ,myl9s  
        .NameOther = "Times New Roman" hmQD-E{Ab  
        .Name = "Times New Roman" uYF_sf  
        .Size = 12 p,U.5bX  
        .Bold = False Y!}BmRLh2  
        .Italic = wdUndefined !RAyUfS  
        .Subscript = wdUndefined D.X%wJ8  
        .Superscript = wdUndefined aabnlOVw  
        .Underline = wdUnderlineNone _.zW[;84b  
        .UnderlineColor = wdColorAutomatic j$BM$q/c  
        .Color = wdColorAutomatic BJ1txdxvS  
        .Engrave = False )0YMi!&j`  
    End With dnH?@ K  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat 7h,SX]4Q  
         D}Z].c@ E  
        .LineSpacingRule = wdLineSpaceExactly >{V]q*[/;Q  
        .LineSpacing = 16 )/UPDdO  
        .Alignment = wdAlignParagraphLeft V 9][a  
        .WidowControl = False UfXqcyY(  
        .KeepWithNext = False ob-y {x,R  
        .KeepTogether = False Vc}m_ T]O  
        .PageBreakBefore = False nx8 4l7<  
        .OutlineLevel = wdOutlineLevelBodyText 1jO/"d.8n  
         `G,\=c~{A  
        .LeftIndent = CentimetersToPoints(0) S'lZ'H/  
        .RightIndent = CentimetersToPoints(0) Gw$U0HA[,  
        .FirstLineIndent = CentimetersToPoints(0) L=?Yc*vg  
         [ q22?kT  
        .CharacterUnitLeftIndent = 0 0Kq\ oMn  
        .CharacterUnitRightIndent = 0 &*r YY\I  
        .CharacterUnitFirstLineIndent = -2 J1hc :I<;  
         5_#wOz0u$  
        .LineUnitBefore = 0 QXniWJJ  
        .LineUnitAfter = 0 LsoP >vJG  
        .SpaceBefore = 0 c=h{^![$  
        .SpaceAfter = 0 EX=Q(}9F<  
         "4zTP!Ow  
    End With )FYz*:f>&  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False nTyK Z(#u  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll !Hxx6/  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS X^7bOFWE  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True yS %J$o&  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese }hhDJ_I5M  
    DoEvents U8;k6WT|  
O$<kWSC  
    ' :k#Y |(  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") >^{}Hjt  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" @ITJ}e4  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False uv eTx  
    With ActiveDocument.Styles("QLNU论文题目").Font V_$BZm%8J  
        .NameFarEast = "黑体" fU8 &fo%ER  
        .NameAscii = "Arial Black" vaW, O/F  
        .NameOther = "Arial Black" YOd 0dKe  
        .Name = "Arial Black" &dH/V-te  
        .Size = 16 7&qunK'  
        .Bold = False 9ssTG4Sa  
        .Italic = wdUndefined <%B sb}h,  
        .Superscript = wdUndefined =;4cDmZh  
        .Subscript = wdUndefined ULNU'6  
        .Underline = wdUnderlineNone ]`b/_LJN$F  
        .UnderlineColor = wdColorAutomatic %[l5){:05  
        .Color = wdColorAutomatic UzWf_r  
Y7{IF X  
    End With =LC:1zn4  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat  W^Wr  
        .LineSpacingRule = wdLineSpaceSingle m Y+J ju1  
        .Alignment = wdAlignParagraphCenter lo5,E(7~h  
        .WidowControl = True g kT`C  
        .KeepWithNext = True q{nNWvL  
        .KeepTogether = True D<$, v(-  
        .PageBreakBefore = True ~K5eO-  
        .NoLineNumber = False M|w;7P}  
        .OutlineLevel = wdOutlineLevelBodyText #"|</*% >  
         1.6yi];6  
        .LeftIndent = CentimetersToPoints(0) M| :wC  
        .RightIndent = CentimetersToPoints(0) IXDj;~GF  
        .FirstLineIndent = CentimetersToPoints(0) RQ;pAO  
         nn5tOV}QE  
        .CharacterUnitLeftIndent = 0 (Z fY/  
        .CharacterUnitRightIndent = 0 D37N*9}  
        .CharacterUnitFirstLineIndent = 0 *0^!%Y'/4  
         z1{kZk  
        .LineUnitBefore = 1 sB"Oi|#lk  
        .LineUnitAfter = 1 1k EXTs=,  
         YKlYo~fGN9  
        .BaseLineAlignment = wdBaselineAlignAuto *VG #SK  
    End With x* ?-KS|  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False +mIO*UQi  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll N7v7b<6  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS zW+X5yK  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True 4"nb>tA  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese bH%k)  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True KmG*`Es  
    DoEvents Z%E;*R2+:>  
     SxI='z_S.f  
    '中文摘要 8M <q-sn4B  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") n6Je5fE  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" c |.~f+  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False Dp3&@M"^yY  
    With ActiveDocument.Styles("QLNU中文摘要").Font N =FX3Z  
        .NameFarEast = "宋体" *<c, x8\s9  
        .NameAscii = "Times New Roman" ~oWCTj-  
        .NameOther = "Times New Roman" JK) )Cuh  
        .Name = "Times New Roman" [+\=x[q  
        .Size = 12 o$)pJ#";F  
        .Bold = wdUndefined UzTFT:\  
        .Superscript = wdUndefined *](maF~%C  
        .Subscript = wdUndefined |qnAqzK|  
        .Italic = wdUndefined {OtD+%  
        .Underline = wdUnderlineNone x1VBO.t=*  
        .UnderlineColor = wdColorAutomatic ;x^WPY Ej  
        .Color = wdColorAutomatic pnl7a$z  
    End With !<BJg3  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat WhQK3hnm  
        .LineSpacingRule = wdLineSpaceExactly Z?ZiK1) K  
        .LineSpacing = 20 hd0d gc  
        .Alignment = wdAlignParagraphLeft bFD vCF  
         Xn@\p5<  
        .WidowControl = False  M=:!d$c  
        .KeepWithNext = False q~]S5  
        .KeepTogether = True 0}tf*M+a  
        .PageBreakBefore = False {]BPSj{B  
        .NoLineNumber = False <&^P1x<x  
        .OutlineLevel = wdOutlineLevelBodyText VRV*\*~$  
         +L03. rf  
        .LeftIndent = CentimetersToPoints(0) jM]B\cvN  
        .RightIndent = CentimetersToPoints(0) @T BcVHy  
        .FirstLineIndent = CentimetersToPoints(0) TwJiYXHw?  
         F OV%\=Hl  
        .CharacterUnitLeftIndent = 0 W5z<+8R  
        .CharacterUnitRightIndent = 0 )WuU?T n&  
        .CharacterUnitFirstLineIndent = 2 <#/r.}.x  
        .LineUnitBefore = 0 t.Q}V5t{g  
        .LineUnitAfter = 0 \]uD"Jqv#  
         #; ~`+[y?\  
    End With K9O%Sfs hF  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False HqC 1Dkw  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll g?&_5)&  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS 5#|D1A  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True jGy%O3/  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese ;n]GHqzY_  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True cLhHGwX=x  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete V{4=, Ax  
    DoEvents v<CZ.-r\j  
     {BPNb{dBKr  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") g^ .g9"  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" 3>asl54  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False Lu?MRF f  
    With ActiveDocument.Styles("QLNU英文标题").Font a@4 Z x  
        .NameFarEast = "黑体" 5ar2Y$bY  
        .NameAscii = "Arial Narrow" J< Ljg<t+  
        .Name = "Arial Narrow" W}jel}:  
        .Size = 16 9j<qi\SSI  
        .Bold = True w{TZN{ Y  
        .Bold = wdUndefined qw?#~"Ca.  
        .Superscript = wdUndefined Bu_/yKW  
        .Subscript = wdUndefined #@%DY*w]v  
        .Italic = wdUndefined eYNu78u   
         ^F\RM4|,  
        .Underline = wdUnderlineNone a4{~.Mp  
        .UnderlineColor = wdColorAutomatic w1U2cbCr/  
        .StrikeThrough = False n@%Q 2_  
        .DoubleStrikeThrough = False T6mbGE*IeE  
    End With w(Jf;[o  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat r'*x><m'  
        .LineSpacingRule = wdLineSpaceSingle oE/g) m%  
        .Alignment = wdAlignParagraphCenter E/+H~YzO  
        .WidowControl = True KTLq~Ru  
        .KeepWithNext = False @ByD=  
        .KeepTogether = False B}S!l>.z  
        .PageBreakBefore = False VS` tj  
        .NoLineNumber = False ]+4QsoFNt  
        .FirstLineIndent = CentimetersToPoints(0) }\ kLh(  
        .OutlineLevel = wdOutlineLevelBodyText ]6s7?07m4  
         0APh=Alq  
        .LeftIndent = CentimetersToPoints(0) LL% Aw)Q`  
        .RightIndent = CentimetersToPoints(0) $[(amj-;l  
        .FirstLineIndent = CentimetersToPoints(0) _C"=Hy{  
         ?|,dHqh{nM  
        .CharacterUnitLeftIndent = 0  \EI<1B  
        .CharacterUnitRightIndent = 0 4gD;XNrV  
        .CharacterUnitFirstLineIndent = 0 w8veh[%3n  
         3QSA|  
        .LineUnitBefore = 1 Dnk}  
        .LineUnitAfter = 1 q~:H>;:G-  
         3T1t !q4/5  
    End With p} }pq~EH/  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False oW ! Z= ;  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll 0SS,fs<w3  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS -%f$$7  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True z3-A2#c  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese Odn`q=  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True )T0 %<(J  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete mv1g2f+  
    DoEvents A$ 2AYQ  
py|ORVN(Z  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle")  vNWCv  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" SfTTB'9  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False =#=<%HPT  
    With ActiveDocument.Styles("QLNU英文摘要").Font 2><=U7~  
        .NameFarEast = "宋体" 7+]+S` p  
        .NameAscii = "Arial" &<dC3o!  
        .NameOther = "Arial" X%X`o%AqC  
        .Name = "Arial" iEx sGn]2  
        .Size = 12 1F|e/h%^  
        .Bold = wdUndefined U~3uu &/r  
        .Italic = wdUndefined v;6O# ta'  
        .Superscript = wdUndefined &,*G}6wa;&  
        .Subscript = wdUndefined Q' b@5o  
    End With x)}.@\&%  
     FT'2 J  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat 4e`GMtp  
         fI<|]c}P&J  
        .LineSpacingRule = wdLineSpaceExactly -ElK=q  
        .LineSpacing = 20 xgp 6lO[  
         yj$a0Rgkv  
        .Alignment = wdAlignParagraphJustify vD-m FC)  
         K%jh 6c8  
        .WidowControl = False ccR#<Pb6q  
        .KeepWithNext = False YzA6*2  
        .KeepTogether = False OkNBP 0e}  
        .PageBreakBefore = False S"=y >.#  
        .NoLineNumber = False #!.26RM:P  
         =`st1K  
        .OutlineLevel = wdOutlineLevelBodyText 3bsuE^,.@  
          eeMeV>  
        .LeftIndent = CentimetersToPoints(0) s2f6;Yc  
        .RightIndent = CentimetersToPoints(0) 6Dl]d %.  
        .FirstLineIndent = CentimetersToPoints(0) \:mZ)f3K=  
         }R&5Ye  
        .CharacterUnitLeftIndent = 0 pZxuV(QP`  
        .CharacterUnitRightIndent = 0 %>io$o  
        .CharacterUnitFirstLineIndent = 2 p[LPi5  
         !&(^R<-id  
        .LineUnitBefore = 0 ^WF/gup\hS  
        .LineUnitAfter = 1 2K:Rrn/cR  
         rd_!'pG  
    End With 1 `& Yg(  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False [[XbKg`"?  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll ;9&#Sb/  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS wjzR 8g0bQ  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False {)`tN &\  
    DoEvents 2#jBh   
n=F|bW  
    Options.Pagination = True OUtXu7E$  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." B+VD53 V  
    DoEvents rbt/b0ET  
    ActiveDocument.Repaginate BT*z^Z H  
L$zB^lSM  
End Sub 6lAHB*`  
V|\dnVQ'-%  
!+EE*-c1c  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: e)M)q!nG  
uN;] Fv@Z  
用VBA控制WORD自己修订学生毕业文的格式。 e+~Q58oD  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? VN/v]  
"?HDv WP=w  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

D!WyT`T  
mmvo >F"  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 ,GUOq!z  
第6车皮 /Bs42uJ3  

jBMGm"NE  
6DT ^:LHS  
第9车皮 uA;vW\fHr  
[]l2 `fS#  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 W<u,S  
> JV$EY,  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 tID=I0D  
t76B0L{  
Main2.bas a4&Aw7"X  
9Cz|?71  
Attribute VB_Name = "SubMain" 6aKfcvf &  
Option Explicit hsHbT^Qm  
B  
'采集文件与临时文件 +_1sFH`  
Public Const TmpFile As String = "d:\30-0600.dat" *RM 3 _  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 2ElZ&(RZJF  
hgK 4;R  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long /B<QYvv  
Public hBCFile As Long  '记录采集参数的文件 u N4e n,  
Public Const TmpBMP As String = "d:\1.bmp" ~P BJ~j+G  
Public hTmpFile As Long CE @[Z  
89x;~D1  
g OK   
'采集窗口参数常量 "0 $UnR  
Public Const FrameH As Long = 280& UM<!bNz`  
Public Const FrameW As Long = 768& DY\~O  
Public Const pFrameSize As Long = FrameW * FrameH Z&of-[)  
8"}8Nrb0  
'标志区范围,用于识别车辆 cH6++r  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X ' eh }t  
Public Const mkW As Integer = 28  '识别标志立柱宽度 GfV#^qi  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) [@_W-rA  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) +c$:#9$ |  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 a}Z+"D  
'车缝检测位置常数 d7S?"JpV  
Public Const sSize As Long = 32& e2yCWolmTS  
Public Const sPos As Long = 310& b|-S;cw  
Public Const sPosL As Long = 200& m/3,;P.6  
Public Const sPosR As Long = 500& Eh*(N(`  
'车缝检测框位置 xqb*;TBh*  
Public Slice(1 To sSize, 1 To FrameH) As Byte `|2g &Vn  
Public SliceL(1 To sSize, 1 To FrameH) As Byte SuXeUiK.[  
Public SliceR(1 To sSize, 1 To FrameH) As Byte c2gi 3  
Public avSL As Integer, avSLR As Integer, avSLL As Integer 8Si3 aq3  
 <H npI  
;0lY_ii  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 Ab6R ?mUM  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 IGOEqUw*  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 jyB Ys& v  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long i1S cXKO  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte =!\Y;rk  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 ;I?x; lH  
GOOm] ]I  
Xe&p.v  
H?rCIS0  
'一次连续采集的帧数 ey6ujV7!  
Public tFrames As Long EbG&[v  
us E%eF]  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 ?a-5^{{  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 (K_{a+$[  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize 03c8VKp'p  
 Iz[ohn!f  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte c\;_ jg  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte ?,i}Qr [Q  
Public pWorkSpace(1 To FrameW * FrameH) As Long ~dk97Z8  
Public Const pBufferSize As Long = FrameW * FrameH * 2 m}7Nu  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 qOy0QZ#0  
]h,iyWSs  
Public hBoard As Long   '采集卡标识 A*g-pJ h  
Public mBufferAddr As Long  '缓存地址 pI_dV44W  
Public BufferSize As Long  '缓存大小(字节) Y,Lx6kU  
Public iCurrentCard As Long c:[ ZknnCe  
Public CapStatus As Long W{c Z7$d  
Public iFrames As Long &->ngzg  
Public currentBr As Byte, currentContr As Byte m(D+!I9  
hr!'  
Public hMEM As Long, mStatus As Long fejC ,H4I  
Public Const hMemSize As Long = pFrameSize * 4 1|m%xX,[  
Public hMemWork As Long e/&^~ $h  
Public Const hMemWorkSize As Long = pFrameSize * 5 }3_ >  
m%=*3gH]&  
3m| C8:  
_u]%K-_  
'串口接收轨道衡数据 ]GO=8$Z  
Public WeightFromCom As String O?O=]s u  
Public bReceiveComplete As Boolean mV^~  
4fL`.n1^  
N=\weuED  
Public Type GrayBMPHeader BOWOH  
  Tag As Integer VVDW=G  
  FileLength As Long    '文件大小 bObsj]  
  Reserve1 As Long B77`azwF  
  DataOffset As Long    '图像数据偏移量 dI|D c  
  BMPHeaderSize As Long  '文件头长 d^f rKPB  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… 9F[_xe@  
                        'the following sizes are possible: r sq?4+\  
                        '28h - windows 3.1x, 95, nt, … fm L8n<1  
                        '0ch - os/2 1.x s94 *uZ(C/  
                        'f0h - os/2 2.x Gt+rVJ=v  
6bPl(.(3  
  ImageWidth As Long           '图像宽(像素数) ia(`3r  
  ImageHeight As Long          '图像高(像素数) 5YneoM]Q  
  PlaneNumber As Integer  '图像层数 Mi;Pv*  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap #;f50j!r  
                                        '4 - 16 color bitmap K?Sy ?Kz  
                                        '8 - 256 color bitmap P) cEYk  
                                        '16 - 16bit (high color) bitmap F0~<p[9Nx  
                                        '24 - 24bit (true color) bitmap }'*6 A  
                                        '32 - 32bit (true color) bitmap }V[ORGzox  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) MT7B'hd  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) \VA*3U^@  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) Ch\__t*v!  
                                    '3 - bitfields (also identified by bi_bitfields) K:^0*5Y-k  
  IMAGESIZE As Long  '图像数据字节数 skBD2V4  
  hResolution  As Long  '水平分辩率  像素数/米 ITg<u?z_  
  vResolution  As Long  '垂直分辩率 Q'qX`K+@`  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 xP,b/T #a  
  ImportantColors As Long +H28F_ #  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 R1*4  
End Type Y2;2Exp^  
|-;VnC&UY  
tHAe  
[(gXjt-  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader r?IBmatK/  
Public sRECT As RECT ({Pjz;xM  
YRo,wsj  
^,,}2dsb>  
Public conn As ADODB.Connection xK_oV+  
Public rsTrain As ADODB.Recordset C$0g2X  
Public rsOperater As ADODB.Recordset x FWhr#5,  
Public rsGoods As ADODB.Recordset !JyY&D~`  
Public rsGood2 As ADODB.Recordset 'y=N_/+s  
Public rsSender As ADODB.Recordset ,ryL( "G  
Public rsReceover As ADODB.Recordset tJ 2GSZ`  
Public rsTrainTMP As ADODB.Recordset Le:(;:eL>t  
u`&lTJgF/O  
tbWf m5 $  
'打开采集卡 >,E^ R`y  
'设置参数 YM};85K  
'设置为实时单帧采集到缓存方式 !-.GfI:q  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 4"_`Mu_%  
b\"w/'XX  
hf^<lJh~=  
Sub Main() [F'|KcE3  
  Dim i As Integer, status As Long !sSq 4K  
     '_^T]fr}  
   InitBMPinfo :PtZKt;~X  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 & +*OV:[;  
    BMPHeader.Tag = &H4D42 wYg!H>5  
    BMPHeader.ImageWidth = FrameW X6",Xr! {  
    BMPHeader.ImageHeight = FrameH :W5W @8Y  
    BMPHeader.BMPHeaderSize = &H28 <N1wET-  
    BMPHeader.PlaneNumber = 1 Z %Ozzp/  
    BMPHeader.bpp = 8 dFF=-_O>  
    BMPHeader.Compression = 0 uKd4+Km  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 /isalOT  
    BMPHeader.vResolution = &H1274 &w#!   
    BMPHeader.ColorsinBMP = 256 ]8}51y8  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP Fs].Fa  
    BMPHeader.DataOffset = Len(BMPHeader)   ?C#E_  
    For i = 0 To 255 AYgXqmH~+  
      BMPHeader.Pallate(i) = RGB(i, i, i) N0.|Mb"?t  
    Next i #c5jCy}n  
    BMPHeader.IMAGESIZE = FrameH * FrameW DU0/if9.  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE R(`:~@ 3\6  
Pc_aEBq  
^lAM /  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) tAF?. \x"g  
     }f]Y^>-Ux  
    BMP1.ImageWidth = FrameW tq}45{FH3  
    BMP1.ImageHeight = FrameH * 2 ,zltNbu\.(  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight -(t7 >s  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE : n QlS  
0/b  _T  
  '确定标志位置,为pilarX, pilarY确定初始值 ]%)<9 ]}  
   PilarW = mkW |1RVm?~i  
   PilarH = mkH  '此两项为固定值 #{vC =m73  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) y TD4![  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 d 8DU[p  
   r!+{In+Z  
    UXs)$  
  '连续采集记录文件 T*f/M  
  ' 建立一个缓冲区为页对齐方式的文件 wWy;dma#  
  If Dir(TmpFile) <> "" Then xEp?|Q$  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ xbm%+  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) fEX=csZ86  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 !t^DN\\#  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 l6y}>]  
  Else ocFk#FW  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ qh:Bc$S  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) nuXL{tg6  
  End If Aeb(b+=  
  If hFile = 0 Then 3f] ;y<Km  
    MsgBox TmpFile & ": File Open Error", vbOKOnly sVK?sBs]  
    Exit Sub #3QPcoxa  
  End If USEb} M`  
  '采集参数记录文件 IQRuqp KL  
hBCFile = FreeFile() iN[x *A|h  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile Jsysk $R  
   B* ,)@h  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 68Gywk3]=u  
If hMEM = 0 Then \gk.[={^P  
    fStatus = GetLastError d<6F'F^w.7  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _  C/IF~<B  
     & "请向技术人员报告该错误代码。", vbOKOnly mAtqF %V  
    CloseHandle hFile PDuc; RG  
    Exit Sub D2?H"PH  
End If ^>?=L\[  
 @Fb1D"!  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) dP wyiV0  
If hMemWork = 0 Then %'yrIR  
    fStatus = GetLastError :-B+W9'5  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ .VCY|KZ  
     & "请向技术人员报告该错误代码。", vbOKOnly {]< G=]'  
     '释放已成功分配的内存 N+=|WeZ  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) EUi 70h +  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ,|{`(y/v  
     [/CGV8+  
    CloseHandle hFile E4L?4>V@\  
    Exit Sub ,^1zG  
End If b,E?{uG  
W &IG,7tr  
' Test writing ;^5k_\  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& y %Q. (  
     {aUnOyX_  
   '初始化采集卡参数  ch8a  
   iCurrentCard = -1 + cfEyiub  
   hBoard = okOpenBoard(iCurrentCard) y%SxQA +\  
   Debug.Print hBoard qcS.=Cj?)  
   If hBoard = 0 Then wQSye*ec  
      ExitGrabber kFv*>>X`  
      End [b:&y(  
   End If IWQ0I&tzdx  
   okGetBufferSize hBoard, mBufferAddr, BufferSize N2v/<  
   If mBufferAddr = 0 Then rG}e\ziKuj  
     MsgBox "缓存不存在!" =~GP;=6  
     ExitGrabber c]PTU2BB8  
   End If x,!Dd  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) .9r YBy  
   c3^!S0U  
   YV<y-,Io  
   currentBr = 128: currentContr = 128 nt#9j',6Rn  
   '设置视频输入参数 gSz<K. CT  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 #$I@V4O;#  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input wqb4w7%  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 ->8Kd1^F  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 a%T`c/C  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 P.'.KZJ:WD  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 ;!MQ@Fi^  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) >u?.gJm~  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) V4n~Z+k  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) #h5lz%2g  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 rD].=.?1  
   DB5J3r81  
   '设置采集参数 uiVN z8H  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 Nmj)TOEPW  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 R}ki%i5|  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 dU$VRgP/  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 *M1GVhW(+  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 :A8}x=K  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 eQuu\/z*H  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 0O9b 7F  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 fQJ`&9m*BF  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 Vx h39eW  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 \8`7E1d  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 d:@+dS  
   apo)cR  
   H<(F$7Q!\  
   okCloseBoard hBoard >R+-mP!nj  
   Sleep 50 /MGapmqV9  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 j uA@"SG  
   {^WK#$]  
   '设置数据传送方式 ~U0%}Bbh  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 tk&AZb,sP  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 |ia5Mr"t  
   X 0G,tl  
   sRECT.Right = -1   '用于获得当前设置值 )G/bP!^+(  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) }a7d(7  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom N1a]y/  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 m/KaWrw/)  
   sRECT.Left = 0 f#0HiE!  
   sRECT.Top = 0 c*;oR$VW  
   sRECT.Right = sRECT.Left + FrameW Ghgn<YG  
   sRECT.Bottom = sRECT.Top + FrameH * 2 #\0m(v  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) IZ=Z=k{  
   yQ$irS?  
   sRECT.Right = -1   '检查新设置值 BJj'91B[d  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) S,c{LTL  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom ~_ \Ra%  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1))  E^1yU  
   U.e!:f4{  
   If TESTSignal = False Then ]pn U"  
      'ExitGrabber YThVG0I =  
   End If !l (Vk  
   x>yqEdR=o  
   ,/\`Rc^n  
   (?jK|_  
   '设为实时采集状态 (S~kyU!)0  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) h>/teHy /  
   n<.7tr0f\  
   r&{8/ 5 "  
   '单帧采集 A2|Bbqd  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 FDMQ Lxf  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) @d WA1tM  
   okCaptureTo hBoard, BUFFER, 0, 1 'single V<QpC5  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 Uwc%'=@  
   '   Sleep 20 :_8K8Sa  
   'Loop )|~& (+Q?]  
   okGetCaptureStatus hBoard, True  g\q .  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize GV0\+A"vD  
   '写入768*576测试图象 |_;kQ(,  
   ArrayToBMP TmpBMP \@gV$+{9  
   _:r8UVAT.  
   '打开数据库 e~]P _53  
   Set conn = New ADODB.Connection UP-eKK'z  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ f%]@e9dD  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ ]9oj,k  
      "; Mode=Read|Write" <= 4$.2ym  
   conn.Open uf6egm5 ]  
   1bFZyD"  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) . g#}2 :3  
   frmRecord.Visible = True %;[DMc/  
   frmQuery.Visible = True .]v>LsbhF  
   Load frmReceiveFromComm K4Q{U@ZJ  
   b)diYsTH  
   '调试参数 w2s`9  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then &FXf]9 _X  
     SignalBox.Visible = True MntmBj-T  
   End If T3wTMbZ!VK  
   If InStr(UCase(Command()), "/COMM") > 0 Then 3:,%># "  
     frmReceiveFromComm.Visible = True 2(eO5.FYF  
   End If q"VmuQ  
X-\$<DiJGv  
End Sub Y& 6jFT_  
o?baiOkH  
Sub ExitGrabber() QVT0.GzR  
  '关闭数据库 7{#p'.nc5  
  '关闭采集卡 '12m4quO  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) w <r*&  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) q8{Bx03m6  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) y\FQt];z)  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) xV>  .]  
  okStopCapture hBoard Z",0 $Gxu  
  okCloseBoard hBoard #{6VdWZ  
  CloseHandle hFile REh"/d  
  Close #hBCFile +^AdD8U  
  conn.Close *~PB  
  End Et0gPX-  
End Sub 2*cNd}qr  
S5).\1m h[  
Function ArrayToBMP(ByVal File As String) 3f`Uoh+  
Dim BytesWrite As Long q[U pP`Z%  
G*=HjLmZg  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ )I%M]K]F  
  CREATE_ALWAYS, 0&, 0&) V IzIl\<aM  
sp\6-*F  
If hTmpFile = 0 Then #Pd9i5~N  
   ArrayToBMP = False T"g_a|7Tj  
   Exit Function ~VsN\!G  
End If `oxBIn*BD  
d n h qg3Y  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN v}DNeIh~  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& )z7CT|h7S  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN NS[Z@@  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& @K"$M>n$Z  
1uo- ?k  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN gq('8*S  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& O60T.MM`  
XRPJPwes]  
If BytesWrite < pFrameSize Then OLG)D#m(4/  
  ArrayToBMP = False JI@iT6.%IX  
End If $O|Xq7dp  
i+`8$uz  
CloseHandle hTmpFile *d8 %FQ  
[J2evi?  
End Function nAP*w6m0j  
L1kn="5  
Function ArrayToBMP1(ByVal File As String) B&MDn']fV/  
g2f"tu_/%  
Dim BytesWrite As Long WI1Y P0V  
CEj_{uf|  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ +Z"Wa0w A  
  CREATE_ALWAYS, 0&, 0&) ;6 V~yB  
=c6d $  
If hTmpFile = 0 Then upMs yLp(  
   ArrayToBMP1 = False G? SPz  
   Exit Function }9ulHiR  
End If )u(,.O[cw  
!!.@F;]W  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN b'O/u."O  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& \;XJ$~>  
JAxzXAsAR  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN w"v96%"Y  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& c44s @ E  
C^$E#|E9N  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN Jq^[^  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& Ku'a,\7z  
iZ]^JPU}  
If BytesWrite < pBufferSize Then (6fD5XtS  
  ArrayToBMP1 = False t ]BG)]  
End If K"l~bFCZ8  
Sst z_t  
CloseHandle hTmpFile ub?dfS9$_  
3ML^ dZ'  
End Function Bl>m`/\ 1i  
q>%B @'  
'使用该过程建立的文件要求在用后关闭 \(??Ytc<B  
Public Function ArrayToBMP2(File As String) As Boolean DcxT6[  
YMo8C(  
Dim BytesWrite As Long O]I AIM  
%R5- 6  
ArrayToBMP2 = True gYt=_+-  
>:.c?{%g*  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ BD"Dzq  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) +P))*0(c_  
X}GX6qAdt  
If hTmpFile = 0 Then remc_}`w  
   ArrayToBMP2 = False 4l0>['K&{  
   Exit Function zeGWM,!  
End If OIFjc0  
56Lxr{+X  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN xjp0w7L)J  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& PVi;h%>Y  
"C}<umJ'  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN W2<'b05  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& OTYkJEC8\N  
(%6fZ  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN 5]G%MB/|$  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& _E9[4%f  
y_: {p5u  
If BytesWrite < pFrameSize Then VK/L}^=GOO  
  ArrayToBMP2 = False 7b~uU@L`  
End If ^4IJL",  
%]F/!n  
CloseHandle hTmpFile ,tXI*R  
WReHep  
End Function Wt%Wpb8  
` { Ox=+]M  
Private Function TESTSignal() As Boolean 0s8fF"$  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long I?1 BGaAA  
N(i.E5&9  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) /\e_B6pF<  
o5]-Kuw`  
If extsign = 1 Then vAP1PQX;  
   TESTSignal = True q>+!Ete1p  
Else %S%UMA.  
    If extsign = 0 Then y:E$n!  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly  qbc=kP  
        TESTSignal = False gR/?MJ(v  
        Exit Function U^}7DJ  
    End If yFm 88  
End If q"269W:  
k/F#-},Q.  
'测试视频输入类型 zSA"f_e  
'video type 9<&*iIrM  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 sC"w{_D@*4  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) .8'c c8  
If videotype = 1 Then \Ec*Gq?.  
        '"隔行信号(Interlaced)" otaR A  
Else # ,H!<X;SS  
   If videotype = 0 Then MHp:".1  
       '"逐行信号(Non-interlaced)" w.rcYywI  
   Else e6*,MnqBh  
     If videotype = -1 Then zjH8 S  
       ' "不支持" J<0sT=/2$  
     End If xm=Gt$>.o  
   End If d v4~CW%Td  
End If 7Tp +]"bL  
D<70 rBf2  
'测试垂直扫描线数 n+ H2cl }  
'video scanlines C\{ KB@C\*  
scanlines = -1 U `lp56  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) H{*rV>%  
    If scanlines = -1 Then 0OlT^  
        ' "不支持" X+{brvM<  
    Else P\@kqf~pC  
        'Trim(Str(ScanLines)) + " 行数/幅" jjrE8[  
    End If  zv"NbN  
Kf? :dF  
'测试帧频 {.U:Ce  
'video field frequency Xtz29  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) UOj*Gt&  
    If fieldfrq = -1 Then K:13t |  
        'lblSignal(8) = "不支持" aQHR=.S]X  
    Else jc3Q3Th/zn  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" k v_t6(qd  
    End If ^$`mS&3/q  
End Function 2asRJ97qES  
;mI^J=V3  
KO`dAB F}  
Sub PicIdentify() $J<WFDn9  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 %O!x rA{  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 pq_U?_5Z'r  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 \>9^(N  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 3;jx Io$,  
ES^J RX  
  Dim fPTR As Long, cFrame As Long 3{qB<*!p"G  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer 9 7HI9R  
     du0o4~-  
u-jV@Tz  
cFrame = 0 -~RGjx  
Ne;0fk O  
K#6@sas  
Do While cFrame < tFrames 2WLLI8  
   EajJv>X7  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) "1\GU1x  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) e1b?TF@lz  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize 3 [#Rm>,Vu  
   r=37Q14v  
  frmRecord.RText.Text = Str(cFrame) @8w[Zo~  
  frmRecord.RText.Refresh %Cj_z  
       tYgHJ~1L*  
  If CheckMark = True Then 8 mOGEx  
   ArrayToBMP TmpBMP =i}lh}(  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) K8&) kfyI  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" Z0M,YSnz  
   Aua}.Fl,  
   DrawSlice P B-x_D  
   fVZ9 2Xw B  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) CL`+\ .  
   'If i = vbNo Then ?x 0gI   
   '  Exit Do v2r|) c,h  
   'End If @#^Y# rxb  
   'cFrame = cFrame + 1 n2_;:=  
   z&c}  
  End If "J*>g(H53  
  DoEvents /]0SF_dZ  
  cFrame = cFrame + 1 }Z\S__\9  
Loop |aU8WRq  
End Sub M*cF'go  
mcidA%  
cDYO Ju.  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean OVxg9  
_PGd\>Ve  
'如标志区模式反差存在则为TRUE,否则返回FALSE RnC+]J+?4  
UlNiH  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long V$FZVG/@#  
CheckMark = True J8@.qC'!  
   g9;s3qXiG  
'复制标志区 [zq2h3r  
For i = 1 To mkH sZ7,7E|_  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW `t9k!y! GV  
Next i Kwm_Y5`A  
hwvitD!0  
For j = 1 To PilarW * PilarH / 2 a* }>yad  
   mTop = mTop + MKpilar(j) S~H>MtX(<  
Next j B1Pi+-t  
y8C8~-&OK  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH -da: j-_  
   mBot = mBot + MKpilar(j) M/lC&F(  
Next j G$KQgUN~[  
3.P7GbN  
mTop = mTop / PilarW / PilarH * 2 y$di_)&g  
mBot = mBot / PilarW / PilarH * 2 [+l 6x1Am  
1he5Zevm}  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 v:Gy>&  
Jqgm>\y  
'平均值极值化 rtbV*@Z  
  For j = 1 To PilarH * PilarW G=Lg5`3;,  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) l{]KA4  
  Next j _E8Cvaob  
   9Nna-}e?W  
mTop = 0: mBot = 0 }/\`'LQ  
For j = 1 To PilarH * PilarW / 2 Gj%q:[r  
  mTop = mTop + MKpilar(j) d@$bPQQ$,  
Next j [n&ES \o#(  
+Q"~2_q5/;  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW F?jD5M08t/  
  mBot = mBot + MKpilar(j) h-O;5.m-P  
Next j bJ9*z~z)e  
!Ea9 fe  
?7lW@U0  
  mTop = mTop / PilarH / PilarW * 3 O#):*II`9  
  mBot = mBot / PilarH / PilarW * 3 `'5vkO>  
   av5a2r0W1  
HCkfw+gaV  
If mBot > iWhite And mTop < iBlk Then a[z$ae7  
  CheckMark = True !%t2Z QJq  
Else 3b#L*-  
  CheckMark = False \Wg_ gA  
End If aO(iKlZ$  
End Function 4Z=`;  
H2Z e\c  
Sub Capture1Frame() oC} u  
   okCaptureTo hBoard, BUFFER, 0, 1 'single O0 Uh  
   okGetCaptureStatus hBoard, True ,uNJz-B8  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize /s+IstW  
End Sub A)j!Wgs^z  
g]N'6La  
;/pI@C k  
Sub CopyMark(iBlk As Integer, iWhite As Integer) 2A";o E  
'复制标志区并返回标志区暗区与亮区的亮度平均值 cX4]ViXSr  
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 KXl!VD,#`=  
   Z]tQmV8e  
'复制标志区 {_Ll'S  
For i = 1 To mkH ]9 _}S  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW MwQ4&z#wh  
Next i oD9L5c)  
5D<ZtsXE  
For j = 1 To mkW * mkH / 2 _!vy|,w@e  
   mTotal = mTotal + MKpilar(j) CCt\[hl  
Next j .#iot(g  
|N)),/R_  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 h6IXD N  
E y9rH_  
mTotal = 0 Q@PDhISa  
For j = mkW * mkH / 2 + 1 To mkW * mkH 6ce-92n  
   mTotal = mTotal + MKpilar(j) NOkgG0Z  
Next j |'P$zMAF  
T>b"Gj /  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 .}Xf<G&  
k?L2LIB<  
'背景亮度 -&]!ig5v  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW @TXLg2  
  For i = 1 To 4 * FrameW qP&:9eL  
    bsTotal = bsTotal + BsLine(i) D:IG;Rsc  
  Next i ~Mar  
  bsAV = bsTotal / FrameW / 4 $%'3w~h`  
f)a0!U 44  
End Sub KZcmNli&A  
wD$UShnm9-  
@-xvdntx  
Sub AdjIMGbright(Optional bInit As Boolean = True) 7hu7rWY`E  
}(XKy!G6  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) FIVC~LDd  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 kw#-\RR_c  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 :?y Ma$  
     RP+)sCh  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer Fsx<Sa  
   YAeF*vP  
  '按标准亮度与对比度采集一帧,确定背景亮度 Wi!"V cn  
  currentContr = 128   '初始对比度 E,K>V:P*  
  currentBr = 128   '初始亮度 .oLV\'HAR  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 Y6)o7t  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 P,3w b  
  DoEvents rev*G:  
  Capture1Frame |Ox='.oIb  
  '获得图像上缘4行象素 |#SZd Xg  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW 4 83rU  
  CopyMark iBlack, iBright   '图像标志区亮度 Y.tT#J^=  
  For i = 1 To 4 * FrameW $?k]KD  
    bsTotal = bsTotal + BsLine(i) dkDPze9l  
  Next i Q[q`)~|  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 D `V.gV]  
   q~W:W}z  
  Select Case bsAV U1lqg?KO  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 UuF(n$B  
       currentBr = 150 ;b1B*B  
       currentContr = 60 "dDrw ]P;  
     Case 61 To 80   '有可见背景 Z_S{$D  
       currentBr = 140 T,>L  
       currentContr = 70 7m]J7 +4  
     Case 81 To 100  '有清晰背景 0WSZhzNyY  
       currentBr = 128 lQ!OD& 6  
       currentContr = 80 |S |'o*u  
     Case 100 To 150  '有明亮背景 aH @-"Wi  
       currentBr = 140                '5:30-6:00钟实测数据 t&[<Dl/L  
       currentContr = 50 H|wP8uQC  
     Case 151 To 180 O1t$]k:  
       currentBr = 130 H=f| X<8  
       currentContr = 60 "8cI]~ V  
     Case 181 To 220  '背景全为白色 `=,emP&(H&  
       currentBr = 110 mK"s*tD  
       currentContr = 130 vlEW{B;)Z  
     Case 221 To 255  '背景全为白色 s/C'f4  
       currentBr = 100 5E~^-wX  
       currentContr = 100 eMFxdtH  
  End Select _'L16@q  
   @@{5]Y  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 |KS,k|).  
        Case 100 To 150 J>nBTY,_<  
          currentBr = currentBr - 10 m_Q&zp["  
        Case 151 To 255 mb1c9  
          currentBr = currentBr - 20 Vq{3:QBR  
  End Select q-_!&kDK"  
   3b]M\ F9  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 NV9JMB{q  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 nu-&vX  
End Sub +DR$>a  
6'@{ * u  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) \M._x"  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long t8xXGWk0  
     E!mv}  
    For i = 1 To 8 NT5'U  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& J,u-)9yBA<  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& 02*qf:kTnA  
    Next i $of2lA  
     rvd%z7Z1o  
    For j = 1 To 1024 vW vu&3tx  
      L1 = L1 + LeftBK(j, 0) cgQ6b.  
      L2 = L2 + LeftBK(j, 1) S7PWP< 9  
      R1 = R1 + RightBK(j, 0) qdv O>k3  
      R2 = R2 + RightBK(j, 1) 66" 6>  
    Next j yrfV&C%=n  
    diffL = Abs(L1 - L2) / 1024 $8HiX6r  
    diffR = Abs(R1 - R2) / 1024 2E!~RjxSY  
End Sub Yb/*2iWX  
2ag8?#  
Function CheckSlice() As Boolean nQ_{IO8/6W  
  CopySlice avSL, avSLR, avSLL &TA{US3~  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then PcU~1m1  
    CheckSlice = True 6(4d3}F  
  Else 650qG$  
    CheckSlice = False Q3&q%n|<  
  End If T :m" eD;  
End Function HDZl;=  
kC 6*An_f  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) h"0)spF"d  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long 324XoMO  
  For i = 1 To FrameH hEsi AbTyF  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize "opMS/a"7  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize <.gDg?'3  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize 7X/t2Vih@  
  Next i p@4GI[4  
  For i = 1 To FrameH p e+h8  
    For j = 1 To sSize $GGaR x  
       total = total + Slice(j, i) 7dACbqba  
       totalL = totalL + SliceL(j, i) 9jEH"`qqk  
       totalR = totalR + SliceR(j, i)  fPPP|  
    Next j rZaO^}u]  
  Next i 0*rD'?)K+  
  avSL = total / FrameH / sSize YE{t?Y\5  
  avSLR = totalR / FrameH / sSize +s"6[\H1d  
  avSLL = totalL / FrameH / sSize ]SRpMZ  
End Sub `V\?YS}  
@v#P u_  
Sub DrawSlice() <EN9s  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B H;=Fq+  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B :Ez, GAk  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B 3)\fZYu)  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) DR:$urU$  
End Sub ,bd jk(  
Sub DrawMark(pic As Control) )S2yU<6oOt  
   Dim i As Long, j As Long xLO Qu.  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B h3k>WNT7  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B 0.n[_?<(  
   For i = 1 To PilarH pxd=a !(  
     For j = 1 To PilarW Kob,}NgqZ  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) d,JDfG)  
     Next j mOn_#2=KF  
   Next i Y-YuY  
End Sub *pS 7,Hm  
DyGls8<\!  
Function avIMG() As Integer E8}evi  
  Dim i As Long, j As Long, totalIMG As Long ` K {k0_{  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize (A6~mi r!  
  For i = 1 To pFrameSize x6s|al  
    totalIMG = totalIMG + pBuffer(i) 0Q_*Z (  
  Next i IY#:v%U  
  avIMG = totalIMG / pFrameSize $Emu*'  
End Function 'D ?o^  
@y`xFPB  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer u ij^tN %  
  Dim i As Long, j As Long, totalIMG As Long |.UY' B  
  For i = 1 To FrameH ZDR@VYi+~  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth !+^'Ej)z  
  Next i Hy[: _E  
  For i = 1 To FrameH * barWidth /+SLq`'u)  
    totalIMG = totalIMG + pBuffer(i) ZqVbNIY   
  Next i B<m0YD?>~>  
  avRegion = totalIMG / pFrameSize Y6 sX|~Zy  
End Function BrwC9:  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 ?[NC }LC  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 ~RuX2u-2&u  
=ZIT!B?4  
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 Q,xL8i M,  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long *<( $.c  
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 Wa<<"x$  
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 x2#JD|0  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long f;zNNx< ;  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 `9J9[!+!`  
"}fweCBgo  
r%ES#\L6+|  
Private Const GENERIC_READ = &H80000000 tZ9i/=S  
Private Const GENERIC_WRITE = &H40000000 K -rR)-rI  
&9#m] Mz  
Private Const FILE_SHARE_READ = &H1 Ytlzn%  
Private Const FILE_SHARE_WRITE = &H2 V<0iYi;4=  
Private Const OPEN_EXISTING = 3 _f^KP@^j  
e;6K xvX~  
Private Const INVALID_HANDLE_VALUE = -1 ?";SUku  
JL= cIH8  
'//file seek 4F~^RR"  
Private Const FILE_BEGIN = 0 Jd>~gA}l  
Private Const FILE_CURRENT = 1 hb5K"9Y  
Private Const FILE_END = 2 qM(}|fMbN  
J @"#  
Private Const ERROR_SUCCESS = 0& P) =.D u)  
l ZcNio  
'//device io control @9gZH_ur>E  
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 ;X,u   
s.}K?)mH  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 &P|[YP37_  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 e}e8 WR=B  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 U+)p'%f;  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 <s'de$[  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C x 6`!  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 L EgP-s W  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F *n? 1C"l  
FoyYWj?,R  
'//type \@:,A]  
Private Type LARGE_INTEGER & oS$<  
    lowpart As Long XZM3zlg*  
    highpart As Long NFs5XpZ~  
End Type YzI;)  
+JU , ^A#X  
Private Enum MEDIA_TYPE ,JV0ib,  
    Unknown }#O!GG{  
    F5_1Pt2_512 7mi!yTr}  
    F3_1Pt44_512 Y$r78h=4  
    F3_2Pt88_512 }p7iv:P=3  
    F3_20Pt8_512 xLz=)k[''  
    F3_720_512 ~hLan&T  
    F5_360_512 (hzN(Dh  
    F5_320_512 GlAI~\A  
    F5_320_1024 pFd8p@m_2  
    F5_180_512 KT(Z #$  
    F5_160_512 5:h[%3'bB  
    RemovableMedia )S)L9('IxT  
    FixedMedia kW g.-$pp  
End Enum =#b@7Yw:  
`@h|+`h  
Private Type DISK_GEOMETRY @0?!bua_|  
    Cylinders           As LARGE_INTEGER w6% Q"%rp  
    MediaType           As MEDIA_TYPE 85GIEUvH/  
    TracksPerCylinder   As Long C|$q Vh>  
    SectorsPerTrack     As Long f V. c6  
    BytesPerSector      As Long }Q/onB t  
End Type $ E\|\g  
7z{wYCw  
'//private vars jV3PTU  
Private hDisk           As Long             'disk handle Dsg>~J'  
Private lpGeometry      As DISK_GEOMETRY    'disk info %SM;B-/zHt  
Private lBufferSize     As Long             'the buffer size of read/write _95296  
d,"LZ>hNY*  
Public Function OpenDisk(ByVal FileName As String) As Boolean g\JJkXjD#  
'// 打开磁盘 Q6@<7E]y  
    hDisk = CreateFile(FileName, _ z*eBjHbF  
                        GENERIC_READ Or GENERIC_WRITE, _ HgF;[rq3Q  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ &N|$G 8\CY  
                        ByVal 0&, _ 2@D`^]]  
                        OPEN_EXISTING, _ f&^(f1WO  
                        0, _ 9B: 3Ha=  
                        0) 5yy:JTAH5  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) 4]y)YNQ(  
End Function ` R6`"hx$  
@!#e\tx  
Public Function CloseDisk() As Boolean k&]nF,f  
'//关闭磁盘 I0)`tQ +  
    CloseDisk = CloseHandle(hDisk) jhNFaBrS  
End Function )u )=@@k21  
JbMTULA  
Public Function GetDiskGeometry() As Boolean p~qe/  
'//获取磁盘参数 e `D}[G#  
    Dim dwOutBytes      As Long i6`"e[aT[o  
    Dim bResult         As Boolean hArY$T&MB  
     1sQIfX#2f  
    bResult = DeviceIoControl(hDisk, _ %iN>4;T8  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ 9t"Rw ns  
                                ByVal 0&, 0, _ W7i|uTM  
                                lpGeometry, Len(lpGeometry), _ ,BU;i%G&s  
                                dwOutBytes, _ @c3xUK   
                                ByVal 0&) , S8K!  
     %z><)7  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack |^pev2g  
    GetDiskGeometry = bResult i q(PC3e`V  
End Function Eah6"j!B8n  
NK_|h %  
Public Sub GetDiskInfo(MediaType As Long, _ @X2*O9  
                        Cylinders As Long, _ *U?O4E9  
                        TracksPerCylinder As Long, _ <>cS@V5j  
                        SectorsPerTrack As Long, _ -Aj)<KNx[  
                        BytesPerSector As Long) S\ k<  
'//返回磁盘的参数 du3f'=q6|  
    MediaType = lpGeometry.MediaType e#(Ck{e  
    Cylinders = lpGeometry.Cylinders.lowpart (jgk! 6  
    TracksPerCylinder = lpGeometry.TracksPerCylinder %BqaVOKJ"f  
    SectorsPerTrack = lpGeometry.SectorsPerTrack !_<6}:ZB  
    BytesPerSector = lpGeometry.BytesPerSector :HkBP90o  
IHl q27O  
End Sub 7RAB"T;?Q  
c3A\~tHW  
Public Property Get BufferSize() As Long 5'~_d@M  
'//返回每次读/写的缓冲大小 &],uD3:5O  
    BufferSize = lBufferSize dj0; tQ=C  
End Property "s*-dZO  
kmI0V[Y  
vT'Bs;QR  
Public Function LockVolume() As Boolean 7F^d-  
'// 将卷锁定 yB*,)x0 @  
    Dim dwOutBytes  As Long (yOkf-e2y  
    Dim bResult     As Boolean -4a9BE".  
     `2s!%/  
    bResult = DeviceIoControl(hDisk, _ BM%wZ: s  
                                FSCTL_LOCK_VOLUME, _ z^gJy,T  
                                ByVal 0&, 0, _ WNjwv/  
                                ByVal 0&, 0, _ 0B NLTRv  
                                dwOutBytes, _ j2Zp#E!  
                                ByVal 0&) ^mS |ff  
    LockVolume = bResult '|C3t!H`  
End Function _'u]{X\k{J  
tli.g  
4q$~3C[  
Public Function UnlockVolume() As Boolean rH+OXGoB  
'// 将卷解锁 /Rp]"S vt  
    Dim dwOutBytes As Long K2x[ApS#  
    Dim bResult As Boolean b'H'QY   
     C|(A/b  
    bResult = DeviceIoControl(hDisk, _ d2 ^}ooE  
                                FSCTL_UNLOCK_VOLUME, _ I2ek`t]  
                                ByVal 0&, 0, _ RgE`Hr  
                                ByVal 0&, 0, _ IV QH p  
                                dwOutBytes, _ Y ::0v@&(  
                                ByVal 0&) tT$OnZu&  
    UnlockVolume = bResult Ykbg5Z  
End Function ]n22+]D  
aER|5!7(2\  
*2'8d8>R%]  
Public Function DismountVolume() As Boolean 4`IM[DIG~  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 @fL ^I& ++  
    Dim dwOutBytes As Long t8Zo9q>  
    Dim bResult As Boolean m o0\t#jA  
     /HC:H,"i  
    bResult = DeviceIoControl(hDisk, _ (B7G'h.?  
                                FSCTL_DISMOUNT_VOLUME, _ L[` l80  
                                ByVal 0&, 0, _ pm&TH d  
                                ByVal 0&, 0, _ yzA05npTl  
                                dwOutBytes, _ :$5A3i  
                                ByVal 0&) kX 1}/l  
    DismountVolume = bResult GP|=4T}Bf  
End Function 5\-uo&#  
I$n= >s  
OW:*qY c;:  
Public Function ReadDisk(ByVal Cylinders As Long, _ ^[L(kHOGzk  
                    ByVal Tracks As Long, _ "n-'?W!  
                    db() As Byte) As Boolean =8kmFXo  
'//按柱面和磁道来读取磁盘数据 [M_{~1xX  
    Dim iPos    As Long y}Ky<%A!P  
    Dim lRead   As Long 092t6 D}  
     <#63tN9  
    iPos = Cylinders * Tracks * lBufferSize W L$^B@gXQ  
     |D3u"Y!:^  
    If SeekAbsolute(0, iPos) Then L"L3n,%F  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) LSo!_tY  
    End If &K)8  
End Function 8s%/5v"  
::L2zVq5V  
Public Function WriteDisk(ByVal Cylinders As Long, _ wucdXj{%  
                     ByVal Tracks As Long, _ h`fVQN.3  
                     db() As Byte) As Boolean bQAznd0  
'//按柱面和磁道来写磁盘数据 ~xH&"1  
    Dim iPos    As Long }2A6W%^>]  
    Dim lRead   As Long &c`-/8c  
     !,WGd|oJ  
    iPos = Cylinders * Tracks * lBufferSize ^ k^y|\UtZ  
     ;|N:F G  
    If SeekAbsolute(0, iPos) Then "q4tvcK.  
        WriteDisk = WriteBytes(lBufferSize, db()) ) "#'   
    End If BG{f)2F\  
End Function "}]`64?  
! ,J# r  
2EY"[xK|  
'///////////////////////////////////////////////////////////////////////////////////// cH]tZ$E`  
'//file system H#- 3  
.=_p6_G  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean KWwtL"3  
'//seek file ]6&NIz`:,  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte Hh<H~s [  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) xS18t="  
    If LowPos = -1 Then 5/48w-fnZ  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) SGd]o"VF  
    Else jjpYg  
        SeekAbsolute = True d1/emwH  
    End If <O x[![SR  
     6 Z/`p~e  
End Function Rd?}<L  
]`E+HLEQ'  
Z5{a7U4z_  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean Nz{dnV{&x;  
'//read data to array D-3[# ~MV  
    Dim RetVal    As Long <G"cgN#]  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) OI R5QH  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF 4DXbeQs:  
    ReadBytes = Not (RetVal = 0) @nxo Bc !P  
      w-jElV  
End Function aM^iDJ$>  
MatXhP] Fi  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean 3JoY-  
'//write data from array )fH Q7  
    Dim RetVal As Long bP,<^zA|X  
    Dim BytesToWrite As Long 0oe<= L]F  
    Dim BytesWritten As Long \?:L>-&h8  
     0r]n 0?x  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) ]wQ!ZG?)  
     b^Hr zn  
    WriteBytes = Not (RetVal = 0) <?jd NM  
End Function sE9FT#iE  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 rvA>khu0/  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ yr]ja-Y  
DWORD dwCB; E(qYCafC  
LARGE_INTEGER  offset; }ze+ tf  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); y)f.ON36I  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); 61\u{@o$  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ [)H 6`w  
DWORD error = GetLastError(); 1I Yip\:lS  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); Z1Qz LvWs  
return FALSE; St=nf\P&F  
} ^<]'?4m]  
return TRUE; ^({ )t   
} ;D5>iek5  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : 3 qYGEhxv  
G1:}{a5i_  
介个真的看不懂。 I?KN7(9u?  
你说你老啦,喜欢怀旧了,才想起来填坑。 uf(ayDE  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 [|\6AIoS  
 %zavSm"  
Z0|5VLk,<{  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : +)jUA]hJ/  
佩服,玩也玩得这么专业! ^0,}y]5p  
QE]@xLz   
D#jwI,n}x  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : ~tUZQ5"  
伍SIR,再次抱拳佩服 L K&c~ Uy  
B'/U#>/  
ODJ"3 J  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : Owp]>e  
引用第19楼伍胥之于06-14-2010 12:33发表的  : f,YO RJ  
[bLKjD  
+Q&l }2  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 >^8O:.  
BKFO^  
我连一级也没有考过。 4vg,g(qi<  
.
 &_)P)L  
8~y!X0Ov!  
引用
}$? FR  
矬子里拔将军... ,7nu;fOT[  
你们那里的俗语是吧? o!xCM:+J  
ueg%yvO  
我们这里说"矮子里拔长脚"..应该是同一个意思... qw+ 7.h#V  
(o>N*?, }  
有趣....各地有表达意思一样却方式不同的俗语.... e]<Syrk  
+m_ .?V6  
wXNng(M7  
你的文章写的有脸皮,没屁眼的, }3 /io0"D  
让看客大为不满... DLwlA !z  
&0 QUObK  
你等着,,估计你以后接到的午夜凶铃就多了... k_g@4x1y*  
rpk8  
?!ap @)9  
我到现在也没有接到你的午夜凶铃呢! 8%4;'[UV  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : i7RK*{  
每个人的故事对其他人都是故事, 1D%P;eUDp  
自己的故事也是其中之一. /{R ^J#  
跳出来看, lG6&uMvo  
不过是众人中的一个人的故事. c[J 2;"SP  
fwpp qIM  
所以,接着听故事. WjBml'^RY  
uVYn,DB`  
女人们有兴趣的就等老伍开个新帖或者跟贴, ( w4XqVT  
听他痛说恋爱革命历史.... |@d(2f8  
<v ub Q4  
杂家接着听他自学程序员历史, b'( AVA  
高级程序员考了吗? ?`TQ!m6y  
fD%/]` y  
 H_g]q  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! uNewWtUb(  
h`Jc%6o  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 k r$)nf  
mI2Gs) SO  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 #h ud_  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : ,:.8s>+ i  
哦, 打倒忽悠大家的家伙.      xR'd}>`  
-Hi_g@i*XW  
K Jn 3&7  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : KE)^S [Da  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 lVb;,C%K  
Z}O0DfT;  
I>3G"[t  
其实标题没有什么,卡总既然改了就不必再改回了。 {*|$@%y!  
9/\=6v C|  
主要是当初写的时候真是顶着锅盖写的。 Z*5]q h2r8  
* 8D(Lp1  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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