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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 g3$'G hf  
= J;I5:J  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : Da(k>vR@4  
L\2"1%8Wj  
老五,I 服了U。 z{L'7  
'Bue*  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 f(|k0$EIu  
eG,x\  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean jKml:)k  
H d|p@$I  
Dim regEX As New RegExp [K3 te  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 _c>ww<*3  
7 XxZF43  
Dim LastTitle0String As String, LastTitle0No As Long F\D iT|?}  
Dim LastTitle1String As String, LastTitle1No As Long k77IXT_7u  
Dim LastTitle2String As String, LastTitle2No As Long >N|?>M*  
Dim LastTitle3String As String, LastTitle3No As Long C.S BJ  
Dim LastTitle4String As String, LastTitle4No As Long {nKw<F2  
Dim LastTitle5String As String, LastTitle5No As Long EVqW(|Xg  
Dim LastTabelString As String, LastTableNo As Long zIrOMh  
Dim LastFigureString As String, LastFigureNo As Long UT\4 Xk<  
A'jvm@DvQI  
Dim strSeperator As String C1D:Xi-  
OeqKKVuQ  
Sub ConvertWidth(fTEXT As String, rText As String) I<D#   
        Selection.Find.ClearFormatting \V$qAfP)  
        Selection.Find.Replacement.ClearFormatting H4y9\ -  
        Selection.Find.Wrap = wdFindContinue ^N/d`IAjv  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText a}%f +`z  
        DoEvents L(;$(k-/(  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True K+}0:W=P  
End Sub /2Wg=&H  
zTa5 N  
Sub ClearDomain() =>;&M)+q  
        With Selection.Find Am F[#)90P  
            .ClearFormatting /"Vd( K2Z  
            .Replacement.ClearFormatting AO7[SHDZ  
            .Wrap = wdFindContinue <r#FI8P;X  
            Me.txtStatus.Text = "清除所有域代码" KmNnW1T  
            DoEvents ?9\D(V  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False PB@IPnB-  
        End With  V;%ug'j  
End Sub gE6'A  
N\PdX$  
Private Sub cmdCheck_Click() ,H{9`a#+:  
    bContinue = True t%Jk3W/f  
    Dim NoSeries1(1 To 16) As String ,4Q4{Tx  
    Dim NoSeries2(1 To 16) As String ,'s }g, L  
    Dim NoSeries5(1 To 16) As String N#ggT9>X  
    Dim NoSeriesRM(1 To 16) As String SI!A?34  
    Dim paraTotal As Long, ParaText As String %nZ:)J>kz  
    Dim ttString As String, ttNo As String gQPw+0w  
     # sw4)*v  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long %hSQ\T<8[o  
9 -pt}U  
    Me.txtStatus.Visible = True sE[`x^1'8  
    Me.lbParaType.Visible = True "TA0--6  
    Me.cmdCheck.Enabled = False <Z%=lwtX  
     CV @P +  
     qzZ/%{Ak  
     @}4aF|  
     3>h2 W  
    Dim ParaType As String, rText As String V?M (exN  
     (mIjG)4t  
    Selection.WholeStory D}?p>e|<D  
    Selection.NoProofing = True DquL r+s~  
     j0e,>X8  
    tm1 = Now ~, }|~  
     E y:68yU  
        ActiveWindow.View.Type = wdNormalView E2dM0r<]  
     Vc9rc}  
    NoSeries1(1) = "一" 9f! M1  
    NoSeries1(2) = "二" s\;/U|P_  
    NoSeries1(3) = "三" lI? P_2AaS  
    NoSeries1(4) = "四" }:2##<"\t  
    NoSeries1(5) = "五" $2a"Ec!7  
    NoSeries1(6) = "六" x4* bhiu  
    NoSeries1(7) = "七" v'i'I/  
    NoSeries1(8) = "八" 2Xe1qzvo  
    NoSeries1(9) = "九" F^.A~{&L  
    NoSeries1(10) = "十" |]9@JdmV  
    NoSeries1(11) = "十一" i#la'ICwJ  
    NoSeries1(12) = "十二" NT+.E[J6  
    NoSeries1(13) = "十三" OIPY,cj~  
    NoSeries1(14) = "十四" %R >n5m  
    NoSeries1(15) = "十五" VL*KBJ  
    NoSeries1(16) = "十六" hS,&Nj+  
     , -Hj  
    NoSeries2(1) = "㈠" X)KCk2Ax  
    NoSeries2(2) = "㈡" 8s)b[Z5  
    NoSeries2(3) = "㈢" WML--<dU  
    NoSeries2(4) = "㈣" zFjz%:0  
    NoSeries2(5) = "㈤" :K6JrS  
    NoSeries2(6) = "㈥" K83 '`W^  
    NoSeries2(7) = "㈦" @5^&&4>N  
    NoSeries2(8) = "㈧" 76!LMNf  
    NoSeries2(9) = "㈨" 9O 'j+?(`@  
    NoSeries2(10) = "㈩" w-n}&f  
     zP,r,ok7  
    NoSeries5(1) = "①" HEVj K$  
    NoSeries5(1) = "②" ,ucRQ&P  
    NoSeries5(3) = "③" \\R}3 >Wc  
    NoSeries5(4) = "④" G[>NP#P  
    NoSeries5(5) = "⑤" (xb2H~WrN  
    NoSeries5(6) = "⑥" S~3|1Hw*tN  
    NoSeries5(7) = "⑦" 1d< b\P0  
    NoSeries5(8) = "⑧" +cH>'OXoB  
    NoSeries5(9) = "⑨" wOf8\s1  
    NoSeries5(10) = "⑩" Z<;W*6J  
     fmixWL7.Zg  
     +VkL?J  
    NoSeriesRM(1) = "I" D&):2F^9.  
    NoSeriesRM(2) = "II" TaRPMKk  
    NoSeriesRM(3) = "III" N0p6xg~  
    NoSeriesRM(4) = "IV" 8%K{lg"  
    NoSeriesRM(5) = "V" p}QDX*/sSu  
    NoSeriesRM(6) = "VI" ~z:]rgX  
    NoSeriesRM(7) = "VII" r-y;"h'  
    NoSeriesRM(8) = "VIII" [OCjYC`  
    NoSeriesRM(9) = "IX" T]%-Ri  
    NoSeriesRM(10) = "X" qSNCBn '  
    NoSeriesRM(11) = "XI" ]Kt@F0U<o  
    NoSeriesRM(12) = "XII" \E?3nQM  
    NoSeriesRM(13) = "XIII" o-=|}u]mz  
    NoSeriesRM(14) = "XIV" {5Bj*m5  
    NoSeriesRM(15) = "XV" /0/ouA>+  
    NoSeriesRM(16) = "XVI" 8'*x88+  
     b o|THS  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) _^& q,S  
     "SMJ:g",  
    If i = vbNo Then gF,=rT1:>r  
        Exit Sub >=0]7k;  
    End If yP{ 52%|+  
     5?^#v  
    If Me.chkSuper.Value Then gxl7j Y  
        Me.txtStatus.Text = "检查修改所有的上标格式" vxZ'-&;t  
     k ;^$Pd?t  
        CheckSuperScript &x1A {j_  
         f]r*;YEc4  
    End If p-i Fe\+  
     GNJ /|9  
    If Me.chkStyle.Value Then 67(s\  
        Me.txtStatus.Text = "设置样式,请稍候...." Q$U5[ TZm  
        DoEvents NF&Sv  
        CeateOrModifyStyle )g'J'_Sl  
    End If \ivxi< SR  
     U 3< 3T  
     ;M.Q=#;E  
     9qftMDLZJ\  
    ClearDomain t1w]L  
         M=raKb?F  
     DC h !Z{I  
     -zFJ)!/?  
    If Me.chkLIST.Value Then \#,2#BmO"E  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" tpGT~Y(  
     ?z.?(xZ 6  
        ConvertListToOrdinary 2p&$bf t  
    End If oks;G([  
     5!?5S$>  
     [`@M!G.  
    Dim pType As String, trimpTEXT As String I(*3n"  
    If Me.chkNum.Value = True Then w x]?D%l  
        Me.txtStatus.Text = "转换全角数字形式为半角" 5f7id7SI  
        ConvertWidth "1", "1" ^t})T*hM0  
        DoEvents `^[k8Z(  
        ConvertWidth "2", "2" %'1iT!g8  
        DoEvents d3c.lD)L9  
        ConvertWidth "3", "3" N~, Ipf  
        DoEvents m#UQ,EM  
        ConvertWidth "4", "4" _3aE]\O[  
        DoEvents %j\&}>P4$  
        ConvertWidth "5", "5" 9K@ I  
        DoEvents `$/a-K}  
        ConvertWidth "6", "6" Kzrd<h]`)  
        DoEvents f- XUto  
        ConvertWidth "7", "7" SZW_V6\t>  
        DoEvents &b|RoPV  
        ConvertWidth "8", "8"  g!}]FQBb  
        DoEvents Odo)h  
        ConvertWidth "9", "9" )J[m>tyY5  
        DoEvents /Z6lnm7wJ  
        ConvertWidth "0", "0" P gA<pfEHE  
        DoEvents N)"8CvQL  
        ConvertWidth "a", "a" _[R(9KyF0f  
        DoEvents tBGLEeL/.  
        ConvertWidth "b", "b" n 0lOq  
        DoEvents 4NID:<  
        ConvertWidth "c", "c" <J<"`xKL  
        DoEvents O z6$u  
        ConvertWidth "d", "d" &#e;`(*  
        DoEvents ,,u hEoH  
        ConvertWidth "e", "e" dNgA C){w  
        DoEvents '6M6e(  
        ConvertWidth "f", "f" s>/Xb2\  
        DoEvents Nud =K'P=  
        ConvertWidth "g", "g" b1?^9c#0d  
        DoEvents c0zcR)=mL  
        ConvertWidth "h", "h" Sh(ys*y>  
        DoEvents g)#?$OhP"  
        ConvertWidth "i", "i" + Tp% *  
        DoEvents rC!O}(4t%$  
        ConvertWidth "j", "j"  oE+P=  
        DoEvents K? o p3}f?  
        ConvertWidth "k", "k" Q2 !GWz$  
        DoEvents ee? d ?:L  
        ConvertWidth "l", "l" S=,czs3N  
        DoEvents 6-|?ya  
        ConvertWidth "m", "m" zb{79Os[B  
        DoEvents 1gV?}'jq  
        ConvertWidth "n", "n" +#eol~j9N  
        ConvertWidth "o", "o" zd[k|lj  
        ConvertWidth "p", "p" \1Y|$:T/  
        ConvertWidth "q", "q" 7y=O!?*  
        ConvertWidth "r", "r" i6WPf:#wr  
        ConvertWidth "s", "s" ^y@ W\  
        ConvertWidth "t", "t" m FTuqujO  
        ConvertWidth "u", "u" WOn<;'}M&  
        ConvertWidth "v", "v" svmb~n&x6  
        ConvertWidth "w", "w" g8.z?Ia#5Z  
        ConvertWidth "x", "x" $0 .6No_|  
        ConvertWidth "y", "y" ``CM7|)>`  
        ConvertWidth "z", "z" !K(  
        ConvertWidth "A", "A" u:APGR^  
        ConvertWidth "B", "B" >UCg3uFj  
        ConvertWidth "C", "C" $Y7VA  
        ConvertWidth "D", "D" ?XY'<]o E  
        ConvertWidth "E", "E" ]R""L<K%HF  
        ConvertWidth "F", "F" 9jje Zc'  
        ConvertWidth "G", "G" U3N d\b'0  
        ConvertWidth "H", "H" C~T ,[ U  
        ConvertWidth "I", "I" $_F_%m"\  
        ConvertWidth "J", "J" y7>3hfn~w  
        ConvertWidth "K", "K" IVPN=jg?  
        ConvertWidth "L", "L" 5@xR`g-  
        ConvertWidth "M", "M" |~5cN m  
        ConvertWidth "N", "N" ]jD\4\M}  
        ConvertWidth "O", "O" "d)Yq Q  
        ConvertWidth "P", "P" 2"G9?)d9  
        ConvertWidth "Q", "Q" @ ;!IPiU  
        ConvertWidth "R", "R" b\0>uU  
        ConvertWidth "S", "S" r2SZC`Z}-M  
        ConvertWidth "T", "T" Z5'^81m$o  
        ConvertWidth "U", "U" DujVV(+I  
        ConvertWidth "V", "V" R Th=x.  
        ConvertWidth "W", "W" 1Of(O!  
        ConvertWidth "X", "X" R:f!ywj%  
        ConvertWidth "Y", "Y" =H)]HxEEM  
        ConvertWidth "Z", "Z" )G)6D"5,+G  
        ConvertWidth "^l", "^p" :"Xnu%1  
        ConvertWidth "(", "(" /''=V.-N  
        ConvertWidth ")", ")" |p/ *OFC6  
     )!-gT  
    End If uZL]mwkj]  
y-26\eY^P  
    With ActiveDocument Sesdhuy.@  
        Dim tbl As Table OM1Z}%J  
        For Each tbl In .Tables Z|C,HF+m.  
            tbl.Rows.Alignment = wdAlignRowCenter q7lC}'2fu  
            tbl.Range.Font.NameFarEast = "楷体" JlnmG<WLT  
            tbl.Range.Font.NameAscii = "Times New Roman" +UDt2  
            tbl.Range.Font.Size = 10.5 82@^vX  
        Next 5! );4+  
        Set tbl = Nothing Gl>\p  
    End With Zy+ERaF|]  
     Q!q6R^5!K  
     F{jxs/~  
    With ActiveDocument 5@5 *}[M  
         y>=YMD  
        For i = 1 To .TablesOfContents.Count O(I^:_eH  
            .TablesOfContents(i).Delete c~tl0XU1  
        Next $=.%IJ_MAz  
         %w^* 7Oi  
         |Lg2;P7\  
         :O413#8  
        paraTotal = .Paragraphs.Count /C8}5)  
        paraCounter = 1 T */I4"  
         9;LjM ~Ct  
        LastTitle0No = 0 {A==av  
        LastTitle1No = 0  j;.P  
        LastTitle2No = 0 =W7-;&  
        LastTitle3No = 0 ]6M<c[H>  
        LastTitle4No = 0 |aLK_]!  
        LastTableNo = 0 OpaRQ=  
        LastFigureNo = 0 ei4LE XQ16  
         a"-uJn  
        Dim Sec As Long [@9S-$Xa  
         3*I\#Z4p1  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) ^"7- `<J  
        If Sec = 0 Then >s5}pkAv|e  
            Exit Sub bdWdvd:  
        End If Az@@+?,%Y  
         FXo.f<U  
        k = 0 W7n^]~V  
        Do While (paraCounter < paraTotal) And bContinue 4tm%F\Izy  
            k = k + 1 x[lIib1s  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then T^;b98*  
                Exit Do z6U'"T"a  
            End If ^5s7mls  
            paraCounter = paraCounter + 1 _]5UuIMl  
            If k Mod 20 = 0 Then \C$e+qb~{  
                Me.lbCounter.Caption = paraCounter b|-)p+ba  
                DoEvents fYPu%MN7  
            End If !(q@sw(  
        Loop *{VC<<`  
         8$~oiK%fw  
         A@>/PB6n  
        Do While (paraCounter < paraTotal) And bContinue _p8u &TZ  
             we _CF*zj  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) ~T H4='4W3  
            ShapeHeight = 0 nnn\  
            ShapeWidth = 0 d2eXN3"  
           hk=[v7  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth iYBc4'X  
             ;)h?P.]  
            Select Case ParaType 0JtM|Mg  
                Case "【】表格内容" )K?7(H/j  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" s/hgWW$  
                Case "章" LN+x!#:e  
                    LastTitle0No = LastTitle0No + 1 R{c~jjd  
                    '新一章开始,复位其下属标题编号 ]D;*2Lw4&  
                    LastTitle1No = 0 /%;J1 {O  
                    LastTitle2No = 0 ?Ojv<L-f.:  
                    LastTitle3No = 0 h rSH)LbJ  
                    LastTitle4No = 0 D4c'6WGb@  
                     }~W/NP_F  
                    k = Val(ttNo) /x@aAJ|  
                    If k = 0 Then '非数字编号章节 9_wDh0b~p  
                        If ttNo <> NoSeries1(LastTitle0No) Then f#&z m} t  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString 0]5X Tc3r  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText SLEOc OAmD  
                        End If L E\rc A  
                    Else ifS#9N|8  
                        If Val(ttNo) <> LastTitle0No Then SAq .W"ri  
                            rText = "第" & LastTitle0No & ttString JRC2+BU /  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText L|WrdT D;  
                        End If ((`\i=-o5  
                         2z{B  
                    End If nam]eW  
                     ?u#s?$Y?  
                    '章段落设置 FNUs .d"  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 YT?Lt!cl=  
                    .Paragraphs(paraCounter).Style = "QLNU章节" m Z +dr[  
                    .Paragraphs(paraCounter).Range.Select |aenQA#  
                    Selection.EndKey unit:=wdLine atpHv**D<i  
                    tc = Replace(rText, vbCr, "") e'uC:O.u  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False Q   
                Case "一级标题" oF$#7#0`;8  
                    LastTitle1No = LastTitle1No + 1 HlX~a:.7  
                    '新一级标题开始,复位其下属标题编号 p^ (Z  
                    LastTitle2No = 0 3!F^ vZ.  
                    LastTitle3No = 0 <O=0^V  
                    LastTitle4No = 0 T(u; <}e@[  
                     OB9E30  
                    If ttNo <> NoSeries1(LastTitle1No) Then Rw `ezC#  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString t RI<K  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText 8SRUqe[H]  
                    End If ;- "!p  
                   q`mxN!1[  
                     ,ASNa^7/>  
                    '一级标题段落设置  格式:一、标题内容 i ZPNss  
                    .Paragraphs(paraCounter).Range.Text = rText ~8&->?{  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" cEa8l~GC<  
                    .Paragraphs(paraCounter).Range.Select w-JWMg Y8w  
                    Selection.EndKey unit:=wdLine 0V-jOc  
                    tc = Replace(rText, vbCr, "") DNZ,rL:h  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False vWmp ?m  
                Case "二级标题" jR}EBaI}  
                    LastTitle2No = LastTitle2No + 1 445JOP  
                    '新二级标题开始,复位其下属标题编号 +pgHCzwJE  
                    LastTitle3No = 0 B~]6[Z  
                    LastTitle4No = 0 h._eP.W`  
                     I )yaR+l  
                    If ttNo <> NoSeries1(LastTitle2No) Then 2p9^ =  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString d:iJUVpr  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText iPl,KjGk  
                    End If .f0qgmIyL  
                     ;+ C$EJw-  
                    '二级标题段落设置 格式:(一)、标题内容 &-FG}|*4M  
                    .Paragraphs(paraCounter).Range.Text = rText |_ED*ATR=  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" >"IG\//I  
                     f|(9+~K/7&  
                    .Paragraphs(paraCounter).Range.Select 1c QF(j_  
                    Selection.EndKey unit:=wdLine -3yK>\y=|  
                    tc = Replace(rText, vbCr, "") J>#hu3&UOQ  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False y@v)kN)Y9\  
                 rZwSo]gp  
                Case "三级标题" iLv -*%%  
                    LastTitle3No = LastTitle3No + 1 <ot`0  
                    '新三级标题开始,复位其下属标题编号 6h5g!GQD  
                    LastTitle4No = 0 :%9R&p:'ar  
                     muXP5MO  
                    If Val(ttNo) <> LastTitle3No Then 41=H&G&  
                            rText = LastTitle3No & ". " & ttString ?,7!kTRH  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText +x{o  
                         'qEw]l  
                    End If '^m'r+B"  
                    '三级标题段落设置 格式:1. 标题内容 o]tfvGvU*  
                    .Paragraphs(paraCounter).Range.Text = rText Vaf,  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" FVkl# Qy~  
                    .Paragraphs(paraCounter).Range.Select R\ 8[6H  
                    Selection.EndKey unit:=wdLine -zYa@PW  
                    tc = Replace(rText, vbCr, "") Ns YEBT7f  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False ZRYlm$C  
                Case "四级标题" s@$0!8sxm  
                    LastTitle4No = LastTitle4No + 1 a$?d_BX  
                     Zgh~7Z/  
                    If Val(ttNo) <> LastTitle4No Then V+D5<nICr  
                            rText = "(" & LastTitle4No & "). " & ttString ma-GvWD2  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText .n+ ;&5  
                     UH 0l8ixc  
                    End If VDOC>  
                    '四级标题段落设置 格式:(1). 标题内容 @{RhO|UR  
                    .Paragraphs(paraCounter).Range.Text = rText f_PH ?  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" tvf.K+  
                    .Paragraphs(paraCounter).Range.Select 68GH$ji  
                    Selection.EndKey unit:=wdLine - q9m@!L  
                    tc = Replace(rText, vbCr, "") JAKs [@:  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False JtY$AP$  
                 =Pn"nkpML  
                Case "表格标题" nygGI_[l  
                    LastTableNo = LastTableNo + 1 9mk@\Gqqm  
                     7]Qxt%7/>  
                    If ttNo <> CStr(LastTableNo) Then O)V;na  
                            rText = "表" & LastTableNo & ". " & ttString 5JaLE5-  
                            ErrMsg.AddItem "表格编号错误:" & ParaText jA{B G_  
                   h-"q <eY"  
                    End If l"JM%LV  
                     ':}9>B3 S  
                    '表格名称段落设置 格式:表1. 表格名称 e.L&A|  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" K:-jn}i?/  
                    xe = Replace(rText, vbCr, "") ;]xc}4@=mg  
                    .Paragraphs(paraCounter).Range.Select ,<+:xl   
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 ]:@{tX 7c  
                    Selection.Range.Text = xe } *) l  
                    Selection.EndKey b=S"o )>  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ZzBaYoNy[0  
                 bBML +0a  
                Case "表格首行" 6bs-&Vf  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" _;^x^   
                Case "图片标题" Z] r9lC  
                    LastFigureNo = LastFigureNo + 1 l'[;q '  
                     O7IY g;  
                    If ttNo <> CStr(LastFigureNo) Then k@%5P-e}  
                            rText = "图" & LastFigureNo & ". " & ttString >QJDO ]~V  
                            ErrMsg.AddItem "表格编号错误:" & ParaText KsTGae;ds  
                   .9Oj+:n  
                    End If a ub$4n!C9  
                    '图片名称段落设置 格式:图1. 图名称 \C~6 '  
                    .Paragraphs(paraCounter).Range.Text = rText UVLS ?1ra  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题"  4 y}z+4  
                    .Paragraphs(paraCounter).Range.Select h{o,*QL  
                    Selection.EndKey unit:=wdLine >0:3CpO*  
                    xe = Replace(rText, vbCr, "") LiFR7\z  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False bxPa|s?  
                Case "正文" n~ $S  
                     '正文名称段落设置 7;@YR  
                    .Paragraphs(paraCounter).Style = "QLNU正文" Zs}h>$E5_B  
               Case "文献条目" 0sSBwG  
                    With .Paragraphs(paraCounter) GQ?FUFuIoW  
                        '.Range.Select -*[)CR-{  
                        'Selection.ClearFormatting bA 0H  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” >pZ _  
                        .Style = "QLNU参考文献" d~_5Jx  
                    End With 9$U>St  
               Case "图表注解" L'$\[~U g  
                    With .Paragraphs(paraCounter) yqK_|7I+  
                        .Range.Font.NameFarEast = "楷体" }\H. G  
                        .Range.Font.NameAscii = "Times New Roman" > .}G[C  
                        .Range.Font.Size = 9 '小5号字 EP;ts  
                         ^m D$#  
                        .Alignment = wdAlignParagraphCenter B>'J5bZsw  
                        .LeftIndent = 0 Cp!9 "J:  
                        .RightIndent = 0 X&aQR[X  
                        .FirstLineIndent = 0 h `! 4`eI  
                        .LineSpacing = 12 VJ'-"8tY&  
                        .LineSpacingRule = wdLineSpaceExactly /g*_dH)=  
                        .LineUnitAfter = 0 Yur}<>`(  
                        .LineUnitBefore = 0 }8l+Jd3"  
                        .OutlineLevel = wdOutlineLevelBodyText D1deh =  
                        .PageBreakBefore = False n%\\1  
                        .RightIndent = 0 |UlR+'rl  
                        .WordWrap = True 7>@0nHec  
                        .LineUnitAfter = 0.5 Fv,c8f  
                         [E<A/_z  
                    End With ik?IC$*n3i  
                Case Else `}P9[HP  
                    '不作处理 0=7Ud<  
            End Select B!`.,3  
             d< XY"Y%  
            '含有inlineshape的段落处理 ]3|h6KWq  
            If ShapeHeight > 30 Then a'-xCV|^  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 +KExK2=  
            End If lMW6D0^  
             )IK%Dg(v  
            If (ShapeWidth + ShapeHeight) > 150 Then Y:+:>[F  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" 8hy1yt6t4~  
            End If  h8p{  
             D->E&#  
            '段落计数器递 COW lsca  
            paraCounter = paraCounter + 1 JcP<@bb>B  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter ~7j-OWz9  
            Me.txtStatus.Text = ParaText M@q)\UQ'  
            DoEvents S.iUi S"  
        Loop N1g;e?T ':  
    End With ,1|=_M31  
     <l,e6K  
    msg = "" hiVDN"$$  
     G,Yctv  
    For i = 0 To Me.ErrMsg.ListCount - 1 v @2?X4n  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) 0 )PZS>  
    Next B ( h`~pb  
     S9[Up}`  
     aH%tD!%,o  
     E{- pkqx  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg [`h, Ti!m<  
    Me.cmdCheck.Enabled = True NI:OL  
    Me.txtStatus.Visible = True -$%~EY}  
    Me.lbParaType.Visible = False bg9_$laDi  
     D5@}L$ u  
    bContinue = False &{WEtaXaa  
End Sub O.Dz}[w  
?vD<_5K; I  
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) aB G*  
    Dim pTEXT As String %Nl mLWF.  
     4E!Pxjl3a  
    pTEXT = ChKRange.Text M{u7Ef  
     >d .|I&  
    ParaType = "其它" /;Cx|\  
    TitleString = pTEXT xzMpTZQ  
    TitleNo = "N/A" ](-[ I#  
     xPT$d,~"  
    shpCounter = ChKRange.InlineShapes.Count ;CL ^2{  
    If shpCounter <> 0 Then v(O@~8(I  
        MaxShpHeight = 0: TotalShpWidth = 0 uVZm9Sp  
        For i = 1 To shpCounter 4;H m%20g  
            k = ChKRange.InlineShapes(i).Height +LWgby4q  
            l = ChKRange.InlineShapes(i).Width ?JRfhJ:j  
            If k > MaxShpHeight Then 4K;0.W;~|  
                MaxShpHeight = k GQ.akA_(  
            End If biV|W@JM  
            TotalShpWidth = TotalShpWidth + l ;$!0pxL)s  
        Next "lA$;\&  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then FDFVhcr  
            Exit Sub <;+QK=f  
        End If #/`MYh=!W  
    End If 23;\l   
     |M<R{Tt}nf  
    '空行 OB(~zUe.R  
    If Len(pTEXT) <= 2 Then Z^A(Q>{e  
        Exit Sub \sVzBHy d  
    End If ?|2m0~%V=  
     =&4eW#{LuH  
         c&RiUU7  
    '是否为表格中的文字 9p02K@wkD  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then n#GHa>p.-  
        ParaType = "表格内容" W^:g_  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) o'P[uB/  
        If k = 1 Then A}pe>ja   
            ParaType = "表格首行" 3e;K5qSeo/  
        End If 9<!??'@f  
        Exit Sub 8BS$6Pa  
    End If 7S&O {Q7)  
     r 3T#Nv  
    '例外情况:脚注 `i!-@WN"  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then M S|1Q@S9  
        ParaType = "脚注" :^QV,d<C  
        Exit Sub E9 #o0Di  
    End If \FO 4A  
     _cfAJ)8=  
    '例外情况:尾注 uWXxK"J.  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then 0j#$Swa  
        ParaType = "尾注" /oM&29 jy  
        Exit Sub aC'#H8e|j  
    End If @M }`nKXM  
     ,tBc%&.f  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then .d) H2X  
        ParaType = "页眉页脚" z" sv,W  
        Exit Sub :e_yOT}}  
    End If $U_1e'  
     }2?- kj7  
     oFGgr2Re  
    With regEX 7BA9zs392  
        .Global = True _{i- .;K  
         6Vu?? qBy  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" 5FNf)F   
        If regEX.Test(pTEXT) Then g;3<oI/P  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") q=BAYZ \`  
            TitleString = regEX.Replace(pTEXT, "$3") 5bK:sht  
            TitleNo = regEX.Replace(pTEXT, "$1") ON_G D"  
            ParaType = "章" =PBJ+"DQs  
            Exit Sub sD XJXJZ  
        End If '_=XfTF  
         <l9qhqHv&  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" #>$w9}gFi  
        If regEX.Test(pTEXT) Then b{e|~v6&  
            ParaType = "一级标题" BxxqzN+  
            regEX.Execute (pTEXT) vs.}Bou]  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") 5i3 nz=~o  
            TitleString = regEX.Replace(pTEXT, "$3") {K= [Fu=  
            TitleNo = regEX.Replace(pTEXT, "$1") q p1rP#  
            Exit Sub )i.\q   
        End If zgpv I~Ck  
         ?=Z0N&}[  
        '全角或半角括号中的数字 ~65lDFY/  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" 37,)/8]lG  
        If regEX.Test(pTEXT) Then N;,N6&veK/  
            ParaType = "二级标题" \l;H !y[  
            regEX.Execute (pTEXT) M^A;tPw  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") v".u#G'u  
            TitleString = regEX.Replace(pTEXT, "$5") [;INVUwG^  
            TitleNo = regEX.Replace(pTEXT, "$2") N aiZU  
            Exit Sub @)@hzXQ  
        End If E"H> [E  
         <_Po/a!c3  
        '阿拉伯数字  1. 2. 9c@\-Z'  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" b WZ X  
        If regEX.Test(pTEXT) Then U./1OZ&  
            ParaType = "三级标题" U &W}c^#  
            regEX.Execute (pTEXT) z1~U #  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 }5;3c%  
            TitleString = regEX.Replace(pTEXT, "$3") w+ibY  
            TitleNo = regEX.Replace(pTEXT, "$1") T^ah'WmNw  
            Exit Sub ^UpwVKdP  
        End If p7)b@,  
         $0E_4#kwB  
        '全角或半角括号中的阿拉伯数字 0 .t1p(x;  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" Tq.%_/@M<  
        If regEX.Test(pTEXT) Then }JWk?  
            ParaType = "四级标题" x(88Y7o.t  
            regEX.Execute (pTEXT) b{JxTT}03  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") I03 45Hc  
            TitleString = regEX.Replace(pTEXT, "$5") ?K?v64[  
            TitleNo = regEX.Replace(pTEXT, "$2") 0l%|2}a  
            Exit Sub 3D7phq>.q  
        End If QW%BKF!  
         G Q+g.{c  
        '表格名称 3PZwz^oRh9  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" &4l >_  
        If regEX.Test(pTEXT) Then m`ab5<%Gn  
            ParaType = "表格标题" ? #;z B  
            regEX.Execute (pTEXT) t3$+;K(  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) {?'c|\n Li  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) Ne,u\q3f  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) !g-19at  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 p>]2o\["  
            Exit Sub n1)m(,{  
        End If aib)ItNb  
         R_DZJV O  
        '图片名称 ~dqEUu!C  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" B,dKpz;kFg  
        If regEX.Test(pTEXT) Then %8G Y`T:^  
            ParaType = "图片标题" O/Wc@Ln  
            regEX.Execute (pTEXT) u%Yr&u  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") ]+0I8eerd  
            TitleString = regEX.Replace(pTEXT, "$3") m&#a M8:\  
            TitleNo = regEX.Replace(pTEXT, "$1")  TBqJ.a  
            Exit Sub VlFDMw.4.+  
        End If cvf#^Cu   
         "Q@ZS2;A  
        '参考文献 Bx&wS|-)D  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 # OQ(oyT  
        If regEX.Test(pTEXT) Then 4mzWNr>fb  
            ParaType = "文献条目" vo DTU]pf  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") 9L xj ]W2^  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") =i)k@w_(x  
            Exit Sub x-{awP  
        End If NCysYmt  
         >;@hA*<  
        prfx = Left(pTEXT, 2) ~v<,6BS<$Z  
        If prfx = "注:" Or prfx = "注:" Then 9Ic~F^  
            ParaType = "图表注解" \=/^H  
            Exit Sub w,FOq?j^k  
        End If ~cx/>Hu  
         @oL<Ioh  
         sh"\ kk9  
        ParaType = "正文" X[c8P7  
         !23#Bz7  
    End With KuO5`  
End Sub )TcW.d6  
W|kKH5E&  
Sub ConvertListToOrdinary() A,qWg0A]nt  
    Dim st As Paragraph NLxsxomj  
    With ActiveDocument a<X<hxW:  
        For i = .Paragraphs.Count To 1 Step -1 `#~HCl  
            Set st = .Paragraphs(i) jlZW!$ Iq  
            lst = st.Range.ListFormat.ListString pb5 '5X+  
            If lst <> "" Then G?6[K&w  
                st.Range.ListFormat.RemoveNumbers sj@'C@oK  
                st.Range.InsertBefore lst & " " rx#\Dc}  
            End If #zcnc$x\  
        Next ^m:?6y_uw  
    End With q y8=4~40  
    Set st = Nothing VXAgp6  
End Sub aTy&"  
/TgG^|  
Private Sub UserForm_Activate() P1 `-OM  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" uB:utg  
    Me.lbTotal.Font.Bold = True VFMg$qv|_  
    Me.txtStatus.Visible = False 4RqOg1  
    Me.cmdCheck.Enabled = True COK7 i^  
uU]4)Hp  
End Sub 7L:$Amb_F  
v2Bks 2  
pJ#R :#P  
Sub CheckSuperScript() &H{KXX"X  
    Selection.Find.ClearFormatting ?qQRA|n*  
    Selection.Find.Replacement.ClearFormatting B6b {hsO  
    With Selection.Find }0Q6iHX@  
        .Text = "[【\[[〖](*)[】\]〗]]" x+9aTsZ  
        .Replacement.Text = "[\1]" n300kpv  
        .Replacement.Font.Superscript = True 0:(@Y  
        '.Replacement.Font.Color = wdColorBlue %h%^i   
        .Forward = True tXTa>Q  
        .Wrap = wdFindContinue 8W"~>7/>D  
        .FORMAT = True <3>Ou(F  
        .MatchCase = False Mc6?]wDB]  
        .MatchWholeWord = False *lIK? "mo  
        .MatchByte = False = ITMAC\  
        .MatchAllWordForms = False JtU/%s  
        .MatchSoundsLike = False d(L u|/~  
        .MatchWildcards = True oY{r83h{  
    End With b&Sk./ J6  
    Selection.Find.Execute Replace:=wdReplaceAll ZIx,?E+eJ  
End Sub "+ji`{  
^8nK x<&5  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) vxo iPqo  
    bContinue = False  3y?ig2  
    Set regEX = Nothing )S|}de/a2  
End Sub &6E^<v?]  
T(^<sjOs  
Sub CeateOrModifyStyle() 1qb 3.  
' "rr,P0lgX  
' $CVbc%  
Dim stl As Style Bk 1Q.Un  
     {=> <@]N  
    Options.Pagination = False P$\vD^  
     s!2pOH!u   
    On Error Resume Next \~zTc_  
    For Each stl In ActiveDocument.Styles eRa1eR gP  
        stl.Delete U:E: "  
    Next xXu/CGzG  
    On Error GoTo 0 :R<n{%~  
     <c{RY.1[  
    Set stl = Nothing Rd5r~iT  
     56m|gZcC  
    DoEvents #$Z|)i]w  
    On Error Resume Next e}e\*BL  
     @"H+QVJ@  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph  wYS,|=y  
     -)aBS3  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph xxm1Nog6  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph dHnId2@#  
     65Ysg}x  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph #{l+I( M  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph @W^A%6"j  
     G~e`O,+  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph _Ucj)Ud k  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph Ng,#d`Br  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph \+g95|[/  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph mIZ#uW  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph TUiXE~8=  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph @qH<4`y.^  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph LRv-q{jP;  
     t  HPC  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph -~ `5kO~  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph ?/~7\ '|Z  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph CV 4r31w  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph GjA;o3(  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph ]v 6u  
     y?M99Vo4?  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph kG+CT  
    On Error GoTo 0 r 8,6qP[  
    DoEvents h2u> CXD  
     Au" [2cG  
    'BaseStyle Mnaoh:z  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False g0^%X9s  
    With ActiveDocument.Styles("BaseStyle").Font mD)_quz.sk  
        .NameFarEast = "宋体" quU%9m \S`  
        .NameAscii = "Times New Roman" 0QDm3V0n  
        .NameOther = "宋体" Ajhr sa\~a  
        .Size = 10.5 E q.?Ga  
        .Bold = wdUndefined Db= iJ68  
        .Italic = wdUndefined %?C{0(Z{  
        .Subscript = wdUndefined 5_nkN`x  
        .Subscript = wdUndefined %u43Pj  
         kO\(6f2|x  
        .Underline = wdUnderlineNone gR(*lXm5w  
        .UnderlineColor = wdColorAutomatic . c+RFX@0  
        .StrikeThrough = False 5HioxHL  
        .DoubleStrikeThrough = False Bj J$I^  
         HT5G HkT  
        .Outline = False oG5JJpLT  
        .Emboss = False >b |l6 #%  
        .Shadow = False ab' f:  
        .Hidden = False 3Cwqy#X#8  
        .SmallCaps = False lB L;aTzo  
        .AllCaps = False #T n~hnW  
        .Color = wdColorAutomatic o;\0xuM@  
        .Engrave = False   ]5'  
        .Scaling = 100 BRV /7ao="  
        .Kerning = 1 Srz.-,2PF  
        .Animation = wdAnimationNone h]c-x(+  
        .DisableCharacterSpaceGrid = False z$`=7 afp  
        .EmphasisMark = wdEmphasisMarkNone yU*j{>%RsK  
    End With ~-6Kl3Y  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat HlY4%M5q/  
        .LeftIndent = 0 lvb0dOmY  
        .RightIndent = 0 7+j@0v\  
        .SpaceBefore = 0 Tfgx>2  
        .SpaceBeforeAuto = False ^owEB%  
        .SpaceAfter = 0 ,l` q  
        .SpaceAfterAuto = False U,+kV?Z  
         >GgX-SZ%  
        .LineSpacingRule = wdLineSpaceSingle TjlKy  
        .Alignment = wdAlignParagraphJustify p/'C v  
         X1i6CEa<  
        .WidowControl = False kkFE9:[-c&  
        .KeepWithNext = False \p.Byso,  
        .KeepTogether = False l<{]%=Qg  
        .PageBreakBefore = False ][6$$ Lz  
        .NoLineNumber = False NJ 7N*   
         Om{[ <tL  
        .FirstLineIndent = CentimetersToPoints(0) ~c`@uGw  
        .OutlineLevel = wdOutlineLevelBodyText 2[Q*?N  
        .CharacterUnitLeftIndent = 0 M\8FjJ>9  
        .CharacterUnitRightIndent = 0 +?(2-RBd  
        .CharacterUnitFirstLineIndent = 0 E'&UWD h  
        .LineUnitBefore = 0 ho@f}4jhQ3  
        .LineUnitAfter = 0 <<w $ Ur  
        .AutoAdjustRightIndent = True rGRxofi.  
        .DisableLineHeightGrid = True *n2Q_o  
         vBQ5-00YY=  
        .FarEastLineBreakControl = True Jnm{i|6N  
        .WordWrap = True M0x5s@  
        .Hyphenation = False EH]5ZZ[Z  
         7^Jszd:c08  
        .HangingPunctuation = True sN 7I~  
        .HalfWidthPunctuationOnTopOfLine = True I [0od+K  
        .AddSpaceBetweenFarEastAndAlpha = True =6q?XOM  
        .AddSpaceBetweenFarEastAndDigit = True n\.K:t[ :  
        .BaseLineAlignment = wdBaselineAlignBaseline Y 1Bj++?2  
    End With aM3%Mx?w  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False QM9~O#rL  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll ,ibI@8;#~'  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese r&xqsZ%R  
    ActiveDocument.Styles("BaseStyle").NoProofing = False ]ODC+q1  
     i3*?fMxhu)  
    '一级标题题样式 Yk:fV&]  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Lz=nJn  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" jfS?#;T)  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False oFHVA !lqe  
    With ActiveDocument.Styles("QLNU一级标题").Font ||}|=Sz  
        .NameFarEast = "黑体" _ts0@Z_:  
        .NameAscii = "Arial Black" J~DP*}~XK  
        .NameOther = "黑体" s+tS4E?  
        .Name = "黑体" HPCgv?E3  
        .Size = 16              '三号 -^$CGRE6A  
        .Bold = True o~gduNG#  
        .Italic = wdUndefined {{[).o/  
        .Subscript = wdUndefined ]<4Yor}t{;  
        .Superscript = wdUndefined @|%t<{y^I  
    End With |RwD]2H  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat f3V&i)w(  
         ay'= M`uO_  
        .LeftIndent = CentimetersToPoints(0) bu%@1:l  
        .RightIndent = CentimetersToPoints(0) =q^o6{d0"  
        .FirstLineIndent = CentimetersToPoints(0) =5%jKHo+9z  
         \h :Rw|  
        .LineSpacingRule = wdLineSpaceSingle #' ^p-Jdm  
        .Alignment = wdAlignParagraphCenter g 6>R yjN  
         =1^Ru*G  
        .WidowControl = True /,/T{V[  
        .KeepWithNext = True c$?qN&X_K  
        .KeepTogether = True {j,bV6X  
        .OutlineLevel = wdOutlineLevelBodyText r1-?mMSU&  
         ; MCv  
        .LineUnitBefore = 0.5 %zd1\We  
        .LineUnitAfter = 0.5 /pFg<  
    End With u-pE ;|  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False vf~q%+UqK  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll g84~d(\?  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese |>A1J:  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True } ~=53$+  
    DoEvents S]9:3~  
     aAwnkQ$  
    '二级 f&ZxG,]H i  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") t_ 3)}  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" 1 xiq]~H  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False :{LVS nG  
    With ActiveDocument.Styles("QLNU二级标题").Font h^~eTi;c]Q  
        .NameFarEast = "黑体" sG0cN;I]t  
        .NameAscii = "Arial Narrow" U-3KuR+0  
        .NameOther = "黑体" L`x :Y>C(  
        .Name = "黑体"  ~ceGx  
        .Size = 15        '小三号 WaN0$66[:  
        .Bold = False {+z+6i  
        .Outline = False mv SNKS  
        .Italic = wdUndefined "a5?cX;  
        .Subscript = wdUndefined Q2^}NQO=  
        .Superscript = wdUndefined p4W->AVv$  
    End With |vTirZP  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat 68Wm=j.m  
        .LeftIndent = CentimetersToPoints(0) 0UWLs_k:  
        .RightIndent = CentimetersToPoints(0) . ~G>vVb  
        .FirstLineIndent = CentimetersToPoints(0) s3_i5,y  
         )+oDa{dZ  
        .LineSpacingRule = wdLineSpaceSingle zEF3B  
        .Alignment = wdAlignParagraphLeft (~}yt.7K  
         C?bPdJ,6  
        .WidowControl = True qp  
        .KeepWithNext = True B HoZ}1_  
        .KeepTogether = True kdQ=%  
        .PageBreakBefore = False F]z xx  
        .OutlineLevel = wdOutlineLevelBodyText =NF},j"  
         RX=C)q2c  
        .LineUnitBefore = 0.5 6O$OM  
        .LineUnitAfter = 0.5 //Hn[wEOh  
         0$}+t q+  
    End With Y$Js5K@F  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False \0(QO8.  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll 0l.+yr}PE  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese KTBsH;6  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True # u^FB  
    DoEvents @XDU !<N  
     6 N~~:Gt  
    '三级标题样式 sTeL4g|%{  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") z6|P]u  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" ^%#v AS  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False Si6%6rAhj  
    With ActiveDocument.Styles("QLNU三级标题").Font }/(fe`7:  
        .NameFarEast = "宋体" !z(POK  
        .NameAscii = "Times New Roman" kd|@.  
        .NameOther = "黑体" YqR MVWcnk  
        .Name = "黑体" 3r+vpyu  
        .Size = 14               '四号 &{x5 |$SD  
        .Bold = False m {_\@'q  
        .Outline = False ',kYZay  
        .Italic = wdUndefined n|SsV  
        .Subscript = wdUndefined V{{b^y  
        .Superscript = wdUndefined $62ospR^Y  
    End With I@+dE V`Lf  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat e0j*e7$  
        .LeftIndent = CentimetersToPoints(0) He)v:AH  
        .RightIndent = CentimetersToPoints(0) &UbNp8h  
        .FirstLineIndent = CentimetersToPoints(0) <|hvH  
         ~e~4S~{  
        .LineSpacingRule = wdLineSpaceSingle eO (VSjo'`  
        .Alignment = wdAlignParagraphLeft }n:'@}  
         lp!@uoN^T  
        .WidowControl = True 9!_`HE+(XJ  
        .KeepWithNext = True T9RR. ng  
        .KeepTogether = True <z%zz c1s  
        .PageBreakBefore = False '"~|L>F%G  
        .OutlineLevel = wdOutlineLevelBodyText Q++lgVh)E  
         hKQT,  
        .CharacterUnitLeftIndent = 0  7I^(v Q  
        .CharacterUnitRightIndent = 0 K$ #(\-M  
        .CharacterUnitFirstLineIndent = 2 !ygh`]6V  
         e]uk}#4  
        .LineUnitBefore = 0.5 -7'>Rw  
        .LineUnitAfter = 0 o8 q@rwu3  
    End With rbO9NRg>  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False G0CmY43  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll 9i yNR!  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese 46Nl];g1`  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True ~hE"B) e  
    DoEvents WkXa%OZ  
     #kA/,qyM  
    '四级标题样式 `-]*Qb+  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") s7(mNpo  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" opte)=]J  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False Eae]s8ek9  
    With ActiveDocument.Styles("QLNU四级标题").Font k U*\Fa*E  
        .NameFarEast = "宋体" ) (PA:j  
        .NameAscii = "Times New Roman" KNQX\-=  
        .NameOther = "宋体" O6Xu/X]  
        .Name = "宋体" P9G c)$6{p  
        .Size = 12               '小四号 {]Nvq9?  
        .Bold = True #&1mc_`/  
        .Outline = False |"5NI'X?  
        .Italic = wdUndefined y*vs}G'W  
        .Subscript = wdUndefined g>/,},jv[x  
        .Superscript = wdUndefined DN;g2 R`f  
    End With dF5EIPl;J  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat ,m8l /wG  
         qg'RD]a>R  
        .LeftIndent = CentimetersToPoints(0) BV9B}I V  
        .RightIndent = CentimetersToPoints(0) Br`Xw^S  
        .FirstLineIndent = CentimetersToPoints(0) O<Ht-TN&  
         jXSo{  
        .LineSpacingRule = wdLineSpaceSingle [Sg1\UTl  
        .Alignment = wdAlignParagraphLeft @4sv(HyDY  
         )f*&}SV  
        .WidowControl = True X4Q ? ]{  
        .KeepWithNext = True 2%. A{!  
        .KeepTogether = True +a"MSPC4w  
        .PageBreakBefore = False 2?z3s|+[  
        .OutlineLevel = wdOutlineLevelBodyText A=I]1r  
         x: `oqbd  
        .CharacterUnitLeftIndent = 0 52C>f6w  
        .CharacterUnitRightIndent = 0 9 =ns.r  
        .CharacterUnitFirstLineIndent = 2 ;&s`g   
         7xO =:*  
        .LineUnitBefore = 0 r_@;eh  
        .LineUnitAfter = 0 ;R@zf1UYA  
         QuT8(s1Q!  
    End With -3_-n*k!  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False r[q-O&2&  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll )_,*2|b  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese ">v76%>Z7  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True O:{I9V-=>s  
    DoEvents =Qsh3b&<P  
     ht (RX  
    '正文校式 Ra%RcUf~sh  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") g"`BNI]Qp  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" pTprU)sa7  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False W[AX?  
    With ActiveDocument.Styles("QLNU正文").Font i`z1if6O  
         pBL,kqYNA>  
        .NameFarEast = "宋体" %qV=PC  
        .NameAscii = "Times New Roman" vYKKv%LE  
        .NameOther = "宋体" 2h IM!wQ  
        .Name = "宋体" PL@hsZty~c  
         + Hc[5WL  
        .Size = 12               '小四号 i 'H{cN6  
         )%-FnW  
        .Bold = wdUndefined =!GUQLS{  
        .Italic = wdUndefined E2Q;1Re@  
        .Subscript = wdUndefined z{]$WVs:^  
        .Superscript = wdUndefined QpBgG~h"  
         4;<?ec(dc  
        .Outline = False r.lH@}i%n  
        .Emboss = False +j1s*}8  
        .Shadow = False $k,Z)2  
        .Hidden = False V\W?@V9g-  
         *l)_&p  
        .DisableCharacterSpaceGrid = True ~-.}]N+([  
    End With kl?U 2A.=  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat dPc*!xrq  
         I+ rHb< P%  
        .LeftIndent = CentimetersToPoints(0) 4`I2tr  
        .RightIndent = CentimetersToPoints(0) ;ug& v C  
        .FirstLineIndent = CentimetersToPoints(0) s+#gH@c  
         |cEJRs@B  
        .LineSpacingRule = wdLineSpaceExactly P6u9Ngay  
        .LineSpacing = 20 -Ds}kdxw  
        .Alignment = wdAlignParagraphLeft Y}&//S A  
         [ %cW ?@  
        .WidowControl = False =kp #v  
        .KeepWithNext = False 6y)TXp  
        .KeepTogether = False yAy~|1}  
        .PageBreakBefore = False Pv17wUB  
        .Hyphenation = False n;@PaE^8=  
         ?T3zA2  
        .OutlineLevel = wdOutlineLevelBodyText yH|[K=?S[  
         b^~ keQ  
       }3E@]"<cVR  
        .CharacterUnitLeftIndent = 0 P(l$5x]g,  
        .CharacterUnitRightIndent = 0 1p [C5j3  
        .CharacterUnitFirstLineIndent = 2 EcxPbRg  
         ai)S:2  
        .LineUnitBefore = 0 aHNR0L3$}{  
        .LineUnitAfter = 0 :1^ R$0d  
        .SpaceBefore = 0 tSaLR90Y6  
        .SpaceAfter = 0 0M7Or)qN  
         @%d g0F}h  
        .DisableLineHeightGrid = True Iojyku\W.  
    End With ", !#7h  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False t3|If@T  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll x{6KsYEY  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese v8Vw.Ce`f  
    ActiveDocument.Styles("QLNU正文").NoProofing = True /BjM&v(5/  
    DoEvents x_pS(O(C  
     9]<p  
    '图片段落样式 'W(+rTFf!  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") P^&%T?Y6z  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" >v7fR<(%s  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False (OwAhjHE  
    With ActiveDocument.Styles("QLNU图片段落").Font 9t:F![rg  
        .Size = 12               '小四号 EiQX* v  
        .Italic = wdUndefined )r3}9J  
        .Subscript = wdUndefined 0x7F~%%2  
        .Superscript = wdUndefined ![h+ R@_(  
    End With =iW!Mq  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat x$Y44v'>  
         'r~,~A I  
        .LeftIndent = CentimetersToPoints(0) 8n+&tBq1  
        .RightIndent = CentimetersToPoints(0)  s6bILz-u  
        .FirstLineIndent = CentimetersToPoints(0) ]VtVw^ir  
         *1"xvle  
        .LineSpacingRule = wdLineSpaceSingle )h6hN"#V5  
        .Alignment = wdAlignParagraphCenter ajC'C!"^Ty  
        .KeepWithNext = True S96H`kedZo  
        .OutlineLevel = wdOutlineLevelBodyText UCG8=+t5T  
         R4"*<%1  
        .CharacterUnitLeftIndent = 0 N[~{'i  
        .CharacterUnitRightIndent = 0 H .*:+  
        .CharacterUnitFirstLineIndent = 0 ?oan a%  
         tS!Fn Qg4  
        .LineUnitBefore = 0 7?!A~Seo|  
        .LineUnitAfter = 0 *oopdGue  
    End With _0N=~`'  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False m?'H 7cFR  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll Q97F5ru6  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese -sO[,  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True ;\ ^'}S|3Z  
    DoEvents \UA\0p  
     7#d>a=$h  
     W; yNg  
    '第X章 FJ XYKpY[r  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") me:~q#k  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" '#RzX8|v<  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False @ 32~#0a  
    With ActiveDocument.Styles("QLNU章节标题").Font PP)iw@9j  
        .NameFarEast = "黑体" kW#,o9f\  
        .NameAscii = "Arial Black" w^OV;gp  
        .NameOther = "Arial Black" ~QgyhJM_h=  
        .Name = "黑体" C))5,aX  
        .Size = 16 R % [ZQ K  
        .Bold = True q.0Evr:  
        .UnderlineColor = wdColorAutomatic 7ss Y*1b  
        .Outline = False cq lA"Eof  
        .Italic = wdUndefined 4<}!+X7m  
        .Subscript = wdUndefined M8dv y!D  
        .Superscript = wdUndefined Q6blX6DWU  
        .Scaling = 100 % `Q[?(z  
        .DisableCharacterSpaceGrid = True vUm#^/#I  
    End With Ne<={u%  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat vT/e&8w  
        .LineSpacingRule = wdLineSpaceSingle 8XJg  
        .Alignment = wdAlignParagraphCenter %LyZaU_s B  
        .WidowControl = True Z/-9G  
        .KeepWithNext = True ^j]"!:h  
        .KeepTogether = True rQmDpoy=  
        .PageBreakBefore = True Tzr_K  
        .OutlineLevel = wdOutlineLevelBodyText b3R1L|@  
         KYE)#<V}@  
        .LeftIndent = CentimetersToPoints(0) gZA[Sq  
        .RightIndent = CentimetersToPoints(0) G"k.sRKu  
        .FirstLineIndent = CentimetersToPoints(0) $J6Pv   
         CD]hi,B_J  
        .CharacterUnitLeftIndent = 0 qE B3Y54+  
        .CharacterUnitRightIndent = 0 !%MI9Ok  
        .CharacterUnitFirstLineIndent = 0 <Qg).n>;z  
         T8<pb^#  
        .LineUnitBefore = 1 ]Z\Z_t  
        .LineUnitAfter = 0.5 ffoL]u\  
         s?Lx\?T  
        .AutoAdjustRightIndent = False er@"4R0  
        .DisableLineHeightGrid = True ~o{GQ>  
        .FarEastLineBreakControl = True 21NGsG  
        .WordWrap = True F6 mc<n  
    End With < z':_,  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False 0RHKzk6~c  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll SnIH6k0T_  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese O[}{$NXw  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True LLyw9y1  
    DoEvents #b~B 0:U  
     `+DH@ce  
    '表格标题 ot\  FZ  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Lx%*IE|c  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" `HVS}}{a  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False F1_s%&  
    With ActiveDocument.Styles("QLNU表格标题").Font d*qb^C{'"  
        .NameFarEast = "楷体" gu?e%]X3  
        .NameAscii = "Arial" 0s9-`nHen|  
        .Name = "楷体" <PLQY  
        .Size = 10.5 jfmHc(fX4  
        .Bold = True o;'E("!<Z  
        .Underline = wdUnderlineNone 44Dytpvg  
        .Italic = wdUndefined MoAie|MKe  
        .Subscript = wdUndefined (=A61]yB  
        .Superscript = wdUndefined /{1sU}k-  
        .Color = wdColorAutomatic #(@!:f1  
    End With TF]bmM})0  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat "PgVvm#w'  
         y;Ez|MS   
        .LineSpacingRule = wdLineSpaceSingle J?6.yL;  
        .Alignment = wdAlignParagraphCenter ~6{iQZa1Y  
        .KeepWithNext = True /my5s\;s|z  
        .KeepTogether = True U  ?iw  
        .OutlineLevel = wdOutlineLevelBodyText ?'_Ty`vT  
         w8=&rzr8  
        .LeftIndent = CentimetersToPoints(0) Z9 z!YaOL  
        .RightIndent = CentimetersToPoints(0) s!k7Wwj  
        .FirstLineIndent = CentimetersToPoints(0) cp1-eR_&  
         ))T@U?r  
        .CharacterUnitLeftIndent = 0 MzEeDN  
        .CharacterUnitRightIndent = 0 ]MD,{T9l\>  
        .CharacterUnitFirstLineIndent = 0 D;nd _{%  
         q+iG:B/Z  
        .LineUnitBefore = 1 LZ#=Ks  
        .LineUnitAfter = 0 k1lo{jw`  
         ;R5@]Hg6q  
    End With {6 #Qm7s-  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False B":9C'tip  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll G)|Xj70  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese DWv(|gO  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True a E|'%72g  
    DoEvents 1G}f83yR  
^aG$9N<\  
    '表格首行 1`hmD1d  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") iGq%|o>  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False 7eNLs  
    With ActiveDocument.Styles("QLNU表格首行").Font yMG(FAyu  
        .NameFarEast = "楷体" F u>  
        .NameAscii = "Times New Roman" [^Z)f<l  
        .Name = "楷体" su$IXI#R-&  
        .Size = 9 @% lkRU)  
        .Bold = True u+/Uc:XK)  
        .Underline = wdUnderlineNone &9Y ^/W  
        .Italic = wdUndefined 1JQ5bB"  
        .Subscript = wdUndefined 6a*?m{  
        .Superscript = wdUndefined mpr_AL!ZO~  
    End With J#.f%VJ  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat [}Q_T.4)E  
        .LineSpacingRule = wdLineSpaceSingle }b5omHUE%  
        .Alignment = wdAlignParagraphCenter 2xLEB&  
         1.9bU/X  
        .LeftIndent = CentimetersToPoints(0) =Bg $OX  
        .RightIndent = CentimetersToPoints(0) Fqt,VED  
        .FirstLineIndent = CentimetersToPoints(0) 8H'ybfed  
         n;@.eC,T/  
         BGd# \ 2  
        .CharacterUnitLeftIndent = -0.5 *S xDwN  
        .CharacterUnitRightIndent = -0.5 6|mHu2qXm  
        .CharacterUnitFirstLineIndent = -0.5 ?"F9~vx&G  
         +3yG8  
        .LineUnitBefore = 0 Vu`5/QDq  
        .LineUnitAfter = 0 ^ps6\>=0cW  
        .SpaceBefore = 0 }SfS\b{|~  
        .SpaceAfter = 0 uTShz 3  
         W [*G o  
    End With M)F_$ ICE-  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False LC1WVK/  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll ,.kJF4s&  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese tJG+k)EE  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True e A{ nwtN  
    DoEvents |,bP` Z  
mjQZ"h0  
    '表格内容 pV8_i7\  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") {MRXK nm;e  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False ! k[JP+;  
    With ActiveDocument.Styles("QLNU表格内容").Font Z~0TO-Q  
        .NameFarEast = "楷体" d*YVk{s7V  
        .NameAscii = "Times New Roman" S j ly]  
        .Name = "楷体" vjL +fH<0:  
        .Size = 9 3"BSP3/ [l  
        .Bold = False <ni_78  
        .Underline = wdUnderlineNone _<E.?K$gbU  
        .Italic = wdUndefined 0 k.\o"y  
        .Subscript = wdUndefined v9\U2j  
        .Superscript = wdUndefined eo@kn yA<&  
    End With E2xK GK   
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat z!M #   
        .LineSpacingRule = wdLineSpaceSingle +\doF  
        .Alignment = wdAlignParagraphCenter <4LW.q  
         ?gsPHPUS  
        .LeftIndent = CentimetersToPoints(0) tk)J E^'  
        .RightIndent = CentimetersToPoints(0) vfd<qdi3p(  
        .FirstLineIndent = CentimetersToPoints(0) o%b6"_~%3  
         oE.Ckz~*d  
        .CharacterUnitLeftIndent = -0.5 lfAiW;giJ  
        .CharacterUnitRightIndent = -0.5 &6^ --cc  
        .CharacterUnitFirstLineIndent = -0.5 k vpkWD;  
        .LineUnitBefore = 0 mtg=v@~  
        .LineUnitAfter = 0 E^iShe  
        .SpaceBefore = 0 qzj.N$9]  
        .SpaceAfter = 0 wBWqibY|  
    End With `fuQ t4  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False o;9 G{Xj3@  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll "ejsz&n  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese %G|Rb MP  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True E<ILZpP  
    DoEvents O#<F"e;$  
{#.<hPXn  
    '图片标题 _1?nLx7n  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") +CVB[r#hu  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" Kv9$c(~#  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False qfkd Q/fP  
    With ActiveDocument.Styles("QLNU图片标题").Font n^q%_60H   
        .NameFarEast = "楷体" XU`ly3!  
        .NameAscii = "Times New Roman" \#h{bnx  
        .Name = "楷体" v <Ywfb  
        .Size = 10.5 %[4u #G`  
        .Bold = True ew \WV "  
        .Underline = wdUnderlineNone ?8do4gT+1  
        .Italic = wdUndefined ur:8`+" (  
        .Subscript = wdUndefined ]xkh"j+W  
        .Superscript = wdUndefined _l"=#i@L  
        .Outline = False -Qn l)JB  
        .Shadow = False {Rdh4ZKh  
        .Color = wdColorAutomatic pO/vD~C>  
    End With VFrp7;z43  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat 5DpvMhc_  
        .LineSpacingRule = wdLineSpaceSingle /-knqv  
        .Alignment = wdAlignParagraphCenter }4g$ aTc  
         naro  
        .KeepWithNext = wdUndefined soRY M  
        .KeepTogether = True zcC:b4  
        .OutlineLevel = wdOutlineLevelBodyText YV8PybThc  
         z~-(nyaBS  
        .LeftIndent = CentimetersToPoints(0) =P9Tc"2PN  
        .RightIndent = CentimetersToPoints(0) .=)[S5.BVq  
        .FirstLineIndent = CentimetersToPoints(0) ?KB] /gT^  
         o}&{Y2!x  
        .CharacterUnitLeftIndent = 0 RWRqu }a  
        .CharacterUnitRightIndent = 0 ~?4 BP%g-y  
        .CharacterUnitFirstLineIndent = 0 d8uDSy  
         VKtlAfXy~  
        .LineUnitBefore = 0 r$1b=m,0d  
        .LineUnitAfter = 0 .kU}x3m  
    End With YQ@2p?4m  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False C hQ] d  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll oTRid G  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese EKD#s,(V*X  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True TI}a$I*  
    DoEvents i&1rf|  
xk  
    '目录项 K.=5p/^a  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") [8<0Q_?,  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" 0h~{K  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False y"Pd>61h  
    With ActiveDocument.Styles("QLNU目录项").Font Ge @qvP_  
        .NameFarEast = "黑体" )7{r8a  
        .NameAscii = "Times New Roman" P5H_iH  
        .NameOther = "Times New Roman" Z l;TS%$  
        .Name = "黑体" ymp ik.'  
        .Size = 10.5  m^\&v0  
        .Bold = False *8J 0yv  
        .Italic = wdUndefined ,1g_{dMx  
        .Underline = wdUnderlineNone NBXhcf F  
        .Color = wdColorAutomatic >=d 5Scix  
        .Superscript = wdUndefined aX~Jk >a0  
        .Subscript = wdUndefined F [Lg,}  
    End With '`YZJ  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat I94-#*~I  
         K^6d_b&  
        .LineSpacingRule = wdLineSpaceSingle ^9`|QF  
        .Alignment = wdAlignParagraphLeft ~F53{qxV  
         [7Q%c!e$*  
        .WidowControl = False `M*jrkM]x  
        .KeepWithNext = False 3GNcnb  
        .KeepTogether = False `T+w5ON n  
        .PageBreakBefore = False g${JdxR:  
        .NoLineNumber = False (&1.!R[X  
        .OutlineLevel = wdOutlineLevelBodyText QI'-I\Co  
         V%{WH}  
        .LeftIndent = CentimetersToPoints(0) =]5f\f6  
        .RightIndent = CentimetersToPoints(0) .R@s6}C`}=  
        .FirstLineIndent = CentimetersToPoints(0) rq^%)tR  
         kS35X)-  
        .CharacterUnitLeftIndent = 0 q'/o=De  
        .CharacterUnitRightIndent = 0 o%f:BJS  
        .CharacterUnitFirstLineIndent = 0 l[]cUE  
         v k= |TE  
        .LineUnitBefore = 0 *T#^|<.XG  
        .LineUnitAfter = 0 +?W4ac1  
    End With HYmUD74FR  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False JQ;.+5 N<K  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll @( \R@`#  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot C(9"59>{]y  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese 6yBd9=3K  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True Yo1]HG(kXB  
    DoEvents Y]*&\Ex"\  
     {/(.Bpld  
    '参考文献 (/0dtJ  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") C0K: ffv;<  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" IRdR3X56  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False  H2oxD$s  
    With ActiveDocument.Styles("QLNU参考文献").Font @)x*62r+  
        .NameFarEast = "宋体" )Fp$ *]|  
        .NameAscii = "Times New Roman" +*w}H 0Z  
        .NameOther = "Times New Roman" 3;FV^V'  
        .Name = "Times New Roman" ZqdoYU'  
        .Size = 12 SuB8mPn  
        .Bold = False dF09_nw  
        .Italic = wdUndefined ZPY&q&R  
        .Subscript = wdUndefined ,2 rfN"o  
        .Superscript = wdUndefined BG 8/  
        .Underline = wdUnderlineNone BzzZ.AH~  
        .UnderlineColor = wdColorAutomatic 1hlU 6 =Y  
        .Color = wdColorAutomatic ZW9OPwV  
        .Engrave = False 2X[oge0@  
    End With ?:M4GY" gV  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat ]v0Z[l>yf  
         Gov.; hy  
        .LineSpacingRule = wdLineSpaceExactly q2r$j\L%  
        .LineSpacing = 16 [Y$ TVwFwX  
        .Alignment = wdAlignParagraphLeft yoJ.[M4q  
        .WidowControl = False .P`QCH;Ih  
        .KeepWithNext = False ZDAW> H<  
        .KeepTogether = False '!ks $}$`h  
        .PageBreakBefore = False Zxd*%v;  
        .OutlineLevel = wdOutlineLevelBodyText vBJxhK-  
         g1?9ge 1  
        .LeftIndent = CentimetersToPoints(0) %.D!J",\/K  
        .RightIndent = CentimetersToPoints(0) *`|xa@1v`  
        .FirstLineIndent = CentimetersToPoints(0) o<iU;15  
         $_,-ES I  
        .CharacterUnitLeftIndent = 0  \m~p; B  
        .CharacterUnitRightIndent = 0 O) TS$  
        .CharacterUnitFirstLineIndent = -2 5~/EAK`  
         6-uLK'E  
        .LineUnitBefore = 0 @tPr\F  
        .LineUnitAfter = 0 6bc\ )n`  
        .SpaceBefore = 0 rQ_]%ies8  
        .SpaceAfter = 0 ;BqCjS%`N  
         \gkhSL q  
    End With Ssuz%*  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False 6D[]Jf,9  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll 'e*w8h  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS w[\rS` J  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True ^ <qi&*  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese ^-Ygh[x  
    DoEvents |:&O!36  
K9.Gjw  
    ' P[-do  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") f1v4h[)-  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" _~MX~M3 MB  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False ]j>`BK>FE  
    With ActiveDocument.Styles("QLNU论文题目").Font #qmsZHd}b  
        .NameFarEast = "黑体" |`Noj+T47I  
        .NameAscii = "Arial Black" 83I 5n&)  
        .NameOther = "Arial Black" "/RMIS K[;  
        .Name = "Arial Black" SASLeGaV  
        .Size = 16 AD^I1 ]2f  
        .Bold = False TTFs|T6`q  
        .Italic = wdUndefined c|`$ h  
        .Superscript = wdUndefined ~,oz hj0f/  
        .Subscript = wdUndefined Zhv%mUj ~  
        .Underline = wdUnderlineNone _{; _wwz  
        .UnderlineColor = wdColorAutomatic k xd*B P  
        .Color = wdColorAutomatic GA$fueiQNs  
hdi0YL  
    End With Z\Ur F0  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat i\l}M]Z#  
        .LineSpacingRule = wdLineSpaceSingle ."=p\:^j*  
        .Alignment = wdAlignParagraphCenter me{u~9&  
        .WidowControl = True i9De+3VqKK  
        .KeepWithNext = True A6 .wXv,  
        .KeepTogether = True Y)]C.V,~  
        .PageBreakBefore = True ,Pcg+^A  
        .NoLineNumber = False L-:@Om!  
        .OutlineLevel = wdOutlineLevelBodyText +&S6se4  
         czU"  
        .LeftIndent = CentimetersToPoints(0) [>r0 (x&.  
        .RightIndent = CentimetersToPoints(0) ;1PJS_@rX  
        .FirstLineIndent = CentimetersToPoints(0) uDXV@;6<  
         {:("oK6w  
        .CharacterUnitLeftIndent = 0 4bp})>}jB  
        .CharacterUnitRightIndent = 0 qB,0(I1-!  
        .CharacterUnitFirstLineIndent = 0 oQ,<Yx%E3  
         nw% 9Qw  
        .LineUnitBefore = 1 >$ 9}"  
        .LineUnitAfter = 1 -aVC`  
         OA=~ i/n~  
        .BaseLineAlignment = wdBaselineAlignAuto >p@b$po  
    End With b=xn(HE8|  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False :UP8nq  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll a*LfT<hmU3  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS ~Gz9pBv1  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True Osm))Ua(  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese s2NBYDi$?  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True j*gJ P !  
    DoEvents nDX Em6|e  
     KK3iui  
    '中文摘要 TwI s _r:  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") W+63B8)4  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" __Ksn^I   
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False ;*t#:U*  
    With ActiveDocument.Styles("QLNU中文摘要").Font knYp"<qj  
        .NameFarEast = "宋体" 8{/.1:  
        .NameAscii = "Times New Roman" !&hqj$>-}  
        .NameOther = "Times New Roman" S4 Uu/EX6S  
        .Name = "Times New Roman" J{prI;] K  
        .Size = 12 mB"I(>q*M  
        .Bold = wdUndefined DBB&6~;?  
        .Superscript = wdUndefined GVJ||0D  
        .Subscript = wdUndefined jLt3jN  
        .Italic = wdUndefined A]5];c  
        .Underline = wdUnderlineNone W[*xr{0V  
        .UnderlineColor = wdColorAutomatic pvUV5^B(M  
        .Color = wdColorAutomatic ,!@MLn  
    End With bKGX> %-  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat +x}9a~QG#  
        .LineSpacingRule = wdLineSpaceExactly $C5*@`GM$  
        .LineSpacing = 20 hL6;n*S=  
        .Alignment = wdAlignParagraphLeft V`#2jDz  
         ;aW k-  
        .WidowControl = False o h\$u5  
        .KeepWithNext = False b^C27s  
        .KeepTogether = True (g/A uL  
        .PageBreakBefore = False Iq4B%xo6G  
        .NoLineNumber = False .kg 3>*  
        .OutlineLevel = wdOutlineLevelBodyText eh<mJL%T  
         \>Rfa+  
        .LeftIndent = CentimetersToPoints(0) ^}p##7t [  
        .RightIndent = CentimetersToPoints(0) aK - x{  
        .FirstLineIndent = CentimetersToPoints(0) [SC6{ |  
         1S!}su,uH  
        .CharacterUnitLeftIndent = 0 u "jV#,,  
        .CharacterUnitRightIndent = 0 1n!:L!,`  
        .CharacterUnitFirstLineIndent = 2 qf\W,SM  
        .LineUnitBefore = 0 (@5`beEd  
        .LineUnitAfter = 0 znTi_S  
         r>FwJm!  
    End With OVDuF&0  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False 2;WbXc!#!  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll +llb{~ZN  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS &=jPt%7#M  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True 86 e13MF  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese 4Ex&AR8  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True >FwK_Zd'  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete >~rlnRX  
    DoEvents bI|G %  
     zA>X+JH>iw  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") th[v"qD9G  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" Z;81 "   
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False t~j 6wsx;  
    With ActiveDocument.Styles("QLNU英文标题").Font ed#fDMXGQ%  
        .NameFarEast = "黑体" l7qW)<r  
        .NameAscii = "Arial Narrow" $1|E(d1  
        .Name = "Arial Narrow" g ,EDE6`8  
        .Size = 16 r>peKo[X(  
        .Bold = True N;'c4=M ~(  
        .Bold = wdUndefined ll4CF}k  
        .Superscript = wdUndefined CAC4A   
        .Subscript = wdUndefined 2{63:f1c`'  
        .Italic = wdUndefined -wiQ d@X  
         "W%YsN0  
        .Underline = wdUnderlineNone n.2:f k  
        .UnderlineColor = wdColorAutomatic r4X}U|s!0  
        .StrikeThrough = False wV==sV  
        .DoubleStrikeThrough = False =FhP$r*  
    End With > B@c74  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat Fy Ih\  
        .LineSpacingRule = wdLineSpaceSingle ?l?l<`sTO  
        .Alignment = wdAlignParagraphCenter Dk^AnMx%_  
        .WidowControl = True  jb&MC 2  
        .KeepWithNext = False {<gv1Yht  
        .KeepTogether = False r5S/lp+Y+N  
        .PageBreakBefore = False A8vd@0  
        .NoLineNumber = False aF^N  Ye  
        .FirstLineIndent = CentimetersToPoints(0) S\8v)|Pr  
        .OutlineLevel = wdOutlineLevelBodyText b;UDgq8v  
         iLuC_.'u=  
        .LeftIndent = CentimetersToPoints(0) ga%\n!S  
        .RightIndent = CentimetersToPoints(0) HS{Vohy>  
        .FirstLineIndent = CentimetersToPoints(0) (vZ-0Ep}  
         w=WF$)ZU  
        .CharacterUnitLeftIndent = 0 CL1*pL  
        .CharacterUnitRightIndent = 0 i83~&Q=  
        .CharacterUnitFirstLineIndent = 0 SK'h!Ye5Z  
         )/>BgXwH  
        .LineUnitBefore = 1 Lo!hyQ)  
        .LineUnitAfter = 1 ;un@ E:  
         O%\cRn8m  
    End With } u O YF  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False e !jy6 t  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll "4\  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS I@ue eDY  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True EwN{|34C  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese { sC Ni  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True &=kv69v  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete G5/A {1sz&  
    DoEvents F6[F~^9D  
>jAFt_  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") `_OrBu[  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" MmjZq  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False bp:`m>4<  
    With ActiveDocument.Styles("QLNU英文摘要").Font #\lvzMjCC  
        .NameFarEast = "宋体" ^%9oeT{  
        .NameAscii = "Arial" y'!OA+ob  
        .NameOther = "Arial" j9[I6ko5'  
        .Name = "Arial" "x=\mA#`  
        .Size = 12 A|r3c?q  
        .Bold = wdUndefined -9t"$)&  
        .Italic = wdUndefined t!qLgJ5%y  
        .Superscript = wdUndefined Tt)z[^)%  
        .Subscript = wdUndefined Mi8)r_l%O  
    End With "Bf8mEmp  
     R#4l"   
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat ]A=\P,D  
         ?yef?JI$p  
        .LineSpacingRule = wdLineSpaceExactly OA3J(4!"W  
        .LineSpacing = 20 5N|LT8P}Z  
         CZ3oX#b  
        .Alignment = wdAlignParagraphJustify b`#YJpA  
         T \}U{9ELL  
        .WidowControl = False C(G.yd  
        .KeepWithNext = False (V6bX]<  
        .KeepTogether = False JpfA+r  
        .PageBreakBefore = False zx}+Q B0  
        .NoLineNumber = False 3t TOs  
         5;0w({1l  
        .OutlineLevel = wdOutlineLevelBodyText SKH}!Id}n  
         C LaQE{  
        .LeftIndent = CentimetersToPoints(0) `-pwP  
        .RightIndent = CentimetersToPoints(0) <3B^5p\/  
        .FirstLineIndent = CentimetersToPoints(0) (O0Ry2u k  
         hYkk r&  
        .CharacterUnitLeftIndent = 0 KM?4J6jH  
        .CharacterUnitRightIndent = 0 JFm@jc  
        .CharacterUnitFirstLineIndent = 2 Mc@9ivwL#  
         ~T RC-H  
        .LineUnitBefore = 0 ZDFq=)0C  
        .LineUnitAfter = 1 $3HqVqF^R  
         O0qG 6a  
    End With Yn ~fnI{  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False =){ G  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll r/!,((Z\  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS eW(pP>@k,  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False cWkg.ri-x  
    DoEvents }Kgi!$<aQx  
d,(y$V+  
    Options.Pagination = True G)?*BH  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." ;pW8a?  
    DoEvents  lrv-[}}  
    ActiveDocument.Repaginate nd8<*ru$  
|"SZpx  
End Sub 1z6aMd6.  
_:m70%i  
KNAvLcg  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑:  <J;O$S  
aA|{r/.10K  
用VBA控制WORD自己修订学生毕业文的格式。 kT@ITA22  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? w"9h_;'C_  
Pw<?Dw]m  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

eQ[akVM k  
lu{ *]!  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 nycJZ}f:wP  
第6车皮 \_.'/<aQ  

,'c%S|]U7  
TQeIAy  
第9车皮 e[x,@P`  
<tTNtBb  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 N''xdz3Z  
("A45\5  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 7oLlRU  
7202N?a {  
Main2.bas EO'+r[Y  
Flpl,|n a  
Attribute VB_Name = "SubMain" n)cc\JPQ  
Option Explicit yT%<  t  
1;./e&%%  
'采集文件与临时文件 mn1!A`$  
Public Const TmpFile As String = "d:\30-0600.dat" oBai9 [+  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 :fX61S6)  
6R m dt  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long d+P<ce2 G  
Public hBCFile As Long  '记录采集参数的文件 q@1A2L\Om  
Public Const TmpBMP As String = "d:\1.bmp" ajRht +{  
Public hTmpFile As Long zhE4:g9v  
M97+YMY)  
m?Jnb\0  
'采集窗口参数常量 D3 +|Os)  
Public Const FrameH As Long = 280& aEQrBs  
Public Const FrameW As Long = 768& B7A.~' =  
Public Const pFrameSize As Long = FrameW * FrameH rfdA?X{Q0  
jY9tq[~/  
'标志区范围,用于识别车辆 QN;NuDHN  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X 56."&0  
Public Const mkW As Integer = 28  '识别标志立柱宽度 g0 ~m[[  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) +Rd\*b  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) , -d2wzhW  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 LVP6vs  
'车缝检测位置常数 LCRWC`%&  
Public Const sSize As Long = 32& 4myikeUR_  
Public Const sPos As Long = 310& G|?V}pZ  
Public Const sPosL As Long = 200& :n <l0  
Public Const sPosR As Long = 500& l+(B~v  
'车缝检测框位置 ( K-7z  
Public Slice(1 To sSize, 1 To FrameH) As Byte ; mV>k_AG  
Public SliceL(1 To sSize, 1 To FrameH) As Byte :'t"kS  
Public SliceR(1 To sSize, 1 To FrameH) As Byte z 4. |N  
Public avSL As Integer, avSLR As Integer, avSLL As Integer ~&0lWa  
N<(rP1)`v  
E]{0lG`l  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 %xx;C{g;a  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 ! , ]Fx  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 4u p7 :?  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long !N:w?zsp  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte +CEt:KQ   
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 HU +27 1A8  
?~^p:T  
brE%/%! e  
k?pNmKVJM  
'一次连续采集的帧数  r+]a  
Public tFrames As Long ,9:v2=C_  
S-6i5H"B&  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 mV7_O//  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 t- //.  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize ctb , w  
ieEt C,U  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte $ ga,$G  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte *JW.ca}  
Public pWorkSpace(1 To FrameW * FrameH) As Long w0>5#j q#r  
Public Const pBufferSize As Long = FrameW * FrameH * 2 oPAc6ObOV~  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 I`{=[.c  
y#ON=8l  
Public hBoard As Long   '采集卡标识  M+=q"#&  
Public mBufferAddr As Long  '缓存地址 50S*_4R  
Public BufferSize As Long  '缓存大小(字节) '+|uv7|+v  
Public iCurrentCard As Long ,=ju^_^sA  
Public CapStatus As Long O>wGJ.  
Public iFrames As Long @ bvWqMa  
Public currentBr As Byte, currentContr As Byte kYS\TMt,C  
) \ cnz  
Public hMEM As Long, mStatus As Long EA:_PBZ  
Public Const hMemSize As Long = pFrameSize * 4 l9 rN!Q|  
Public hMemWork As Long bnp:J |(ld  
Public Const hMemWorkSize As Long = pFrameSize * 5  !vr A\d  
z1e+Ob&  
}D ~m%%,  
odeO(zuU  
'串口接收轨道衡数据 >]bS"S  
Public WeightFromCom As String ='/#G0W  
Public bReceiveComplete As Boolean @$ )C pg  
{=^<yK2q  
F>u/Lh!  
Public Type GrayBMPHeader '~6l 6wi  
  Tag As Integer 78mJ3 /?rC  
  FileLength As Long    '文件大小 o5z&sRZ  
  Reserve1 As Long S@L%X<Vm  
  DataOffset As Long    '图像数据偏移量 s;[64ca]Q  
  BMPHeaderSize As Long  '文件头长 &M\qVL%w  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… :d~&Dt<c  
                        'the following sizes are possible: a- /p/ I-%  
                        '28h - windows 3.1x, 95, nt, … G~lnX^46"  
                        '0ch - os/2 1.x Mm^6*L]  
                        'f0h - os/2 2.x %eu_Pr6X  
,(yaWd6  
  ImageWidth As Long           '图像宽(像素数) n u>6UjV  
  ImageHeight As Long          '图像高(像素数) uvD*]zX  
  PlaneNumber As Integer  '图像层数 j1@PfKh  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap WdrMp  
                                        '4 - 16 color bitmap w^$$'5=  
                                        '8 - 256 color bitmap Im`R2_(]  
                                        '16 - 16bit (high color) bitmap T6,6lll  
                                        '24 - 24bit (true color) bitmap \y/0)NL\  
                                        '32 - 32bit (true color) bitmap J:;nN-\j  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) 6 1K:SXj  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) .w~L0(  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) xiQd[[(sM  
                                    '3 - bitfields (also identified by bi_bitfields) ^6 ,}*@  
  IMAGESIZE As Long  '图像数据字节数 #4sSt-s&  
  hResolution  As Long  '水平分辩率  像素数/米 kb*b|pWlO  
  vResolution  As Long  '垂直分辩率 s[*I210  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 0?g&<q  
  ImportantColors As Long G>^ _&(c@2  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 6nk.q|n:g  
End Type $)O\i^T  
R<> uCF0  
DV bY   
m`3gNox  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader wlX K2D  
Public sRECT As RECT ?7*J4.  
QRY7ck:N  
28,HZaXhc  
Public conn As ADODB.Connection u bi6=  
Public rsTrain As ADODB.Recordset ;xE1#ZT  
Public rsOperater As ADODB.Recordset u7u1lx>S  
Public rsGoods As ADODB.Recordset '^t(=02J  
Public rsGood2 As ADODB.Recordset ^6^A/] v  
Public rsSender As ADODB.Recordset fVBu?<=d  
Public rsReceover As ADODB.Recordset |i'w"Tz4  
Public rsTrainTMP As ADODB.Recordset A%#."2vq~  
0Szt^l7  
~!dO2\X+  
'打开采集卡 s[/)v:  
'设置参数 dC}4 Er  
'设置为实时单帧采集到缓存方式 %aJ8wYj*  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 3D  rW[\  
zU>bT20x/  
y{qKb:~wv  
Sub Main() EO.}{1m=hx  
  Dim i As Integer, status As Long Z@>WUw@ F  
     NEMC  
   InitBMPinfo FiNB$A  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 \o!B:Vb<  
    BMPHeader.Tag = &H4D42 }Mh`j $  
    BMPHeader.ImageWidth = FrameW $-]PD`wmY  
    BMPHeader.ImageHeight = FrameH +?[iB"F  
    BMPHeader.BMPHeaderSize = &H28 I#t# %!InH  
    BMPHeader.PlaneNumber = 1 CY.i0  
    BMPHeader.bpp = 8 cA B^]j  
    BMPHeader.Compression = 0 C'0=eel[  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 ^$\#aTyFK  
    BMPHeader.vResolution = &H1274 oo,3mat2C  
    BMPHeader.ColorsinBMP = 256 1\Vp[^#Vx  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP 8F`799[p  
    BMPHeader.DataOffset = Len(BMPHeader) 0bMbM^xV6  
    For i = 0 To 255 ez*O'U  
      BMPHeader.Pallate(i) = RGB(i, i, i) jowR!rqf  
    Next i k v3V|  
    BMPHeader.IMAGESIZE = FrameH * FrameW [IuF0$w=dj  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE P0szY"}  
>:U{o!N`#_  
a`QKN rA2  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) }2_ i<4,L  
     WG*S:_?  
    BMP1.ImageWidth = FrameW UXV>#U?  
    BMP1.ImageHeight = FrameH * 2 Os|F  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight =Cr F(wVO"  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE kv/mqKVr  
4}=Z+tDu>  
  '确定标志位置,为pilarX, pilarY确定初始值 ehYGw2  
   PilarW = mkW h|&qWv  
   PilarH = mkH  '此两项为固定值 h`p9H2}0  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) bMF`KRP2  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 xHdv?69,  
   r)t-_p37  
   2Y{r2m|o  
  '连续采集记录文件 {nmBIk2v  
  ' 建立一个缓冲区为页对齐方式的文件 N u9+b"Wr  
  If Dir(TmpFile) <> "" Then |/p2DU2  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ 0Z~G:$O/i  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) Uv /?/;si  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 $P~Tt4068  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 ,n+~S^r  
  Else ?t];GNU` l  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ S QVyCxcX_  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) c`G~.paY|  
  End If E./Gt. Na  
  If hFile = 0 Then -qndBS  
    MsgBox TmpFile & ": File Open Error", vbOKOnly |zSoA=7?  
    Exit Sub oQ8If$a}  
  End If FZhjI 8+,~  
  '采集参数记录文件 i/WiSwh:  
hBCFile = FreeFile() RjCEo4b-.H  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile P&] PJt5  
   GGwHz]1L  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 HTUY|^^D  
If hMEM = 0 Then BnLE +X  
    fStatus = GetLastError < {dV=  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ ( &Z`P  
     & "请向技术人员报告该错误代码。", vbOKOnly 9 l9|w4YJs  
    CloseHandle hFile 2(sq*!tX  
    Exit Sub MDKiwT@#  
End If xu0pY(n^r  
k7Z1Y!n7  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) ^c]lEo  
If hMemWork = 0 Then ZnYoh/  
    fStatus = GetLastError ~w9ZSSb4  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ q'awV 5y  
     & "请向技术人员报告该错误代码。", vbOKOnly |yow(2(F@  
     '释放已成功分配的内存 |G]M"3^  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) .9;wJ9Bw[  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) e!~x-P5M`  
     \?.Tq24  
    CloseHandle hFile rN^P//  
    Exit Sub r6eApKZ>f6  
End If 6*H F`@(  
VjVL/SO/  
' Test writing -( ,iwF b  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& |F#L{=B  
     LK[%}2me  
   '初始化采集卡参数 q+-Bl  
   iCurrentCard = -1 CK+_T}+-  
   hBoard = okOpenBoard(iCurrentCard) x?B8b-*  
   Debug.Print hBoard O(QJiS  
   If hBoard = 0 Then (t)a u  
      ExitGrabber m2$Qp{C6H  
      End DR6 OR B7  
   End If i^'Uod0d.  
   okGetBufferSize hBoard, mBufferAddr, BufferSize R+O[,UM^I~  
   If mBufferAddr = 0 Then UN*XLHio  
     MsgBox "缓存不存在!" #/ Qe7:l  
     ExitGrabber j8ebVq  
   End If Mw+8p}E  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) (Q09$  
   [3QKBV1\  
   .)eX(2j\  
   currentBr = 128: currentContr = 128 !EQMTF=(  
   '设置视频输入参数 Hh1OD?N)  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 %@d~)f  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input <+c6CM$#}V  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 p#95Q  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 K+_$ WT_  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 "ewB4F[  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 _ mw(~r8R  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) BSu ]NOwe  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) ^g56:j~?  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) WSW,}tFp"  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 )FrXD3 p  
   4h[^!up.7  
   '设置采集参数 %v(\;&@  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 o!+jPwEU  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 4^O'K;$leD  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 c);(+b  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 lx&ME #~  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 hVcV_  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 qrmJJSJ  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 \WeGO.i-  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 C}{$'#DV2  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 l1qWl   
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 BK1Aq3*)  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 M(2c{TT  
   Wg+fT{[f|  
   i`1QR@11  
   okCloseBoard hBoard )0:@T)G  
   Sleep 50 t~0}Emgp<(  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 n3kYVAgF  
   _ %HyXd  
   '设置数据传送方式 e/<Og\}P/  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 CL$mK5u  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 ?g$dz?^CK&  
   U\A*${  
   sRECT.Right = -1   '用于获得当前设置值 :8~*NSEFd  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) LAwl9YnG:  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom $fE$j {  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 "K8<X  
   sRECT.Left = 0 S?5z  
   sRECT.Top = 0 vK?{Z^J][  
   sRECT.Right = sRECT.Left + FrameW &<P!o_+eb  
   sRECT.Bottom = sRECT.Top + FrameH * 2 QDC]g.x  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) v&EHp{8Qd  
   0#mu[ O  
   sRECT.Right = -1   '检查新设置值 @:s|X  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) G*|2qX"o  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom u&>o1!c*P  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) `8 Dgk}  
   i }5 #n  
   If TESTSignal = False Then {AY `\G  
      'ExitGrabber |h,aV(Q  
   End If n2+eC9I  
   `"E|  
   y8KJoVP iM  
   {]}}rx'|P  
   '设为实时采集状态 v?7.)2XcX  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) ^vmyiF  
   c!BiGw,;  
   >_y>["u6J#  
   '单帧采集 hD>O LoO  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 m"!!)  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) U9KnW]O%"  
   okCaptureTo hBoard, BUFFER, 0, 1 'single ;ml;{<jI  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 5"[Qs|VjA6  
   '   Sleep 20 9* %Uoy:  
   'Loop Z=Oo%lM6B  
   okGetCaptureStatus hBoard, True DaW_-:@s  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize 46dh@& U  
   '写入768*576测试图象 4V7{5:oa  
   ArrayToBMP TmpBMP Z;_WU  
   RJ%~=D  
   '打开数据库 /EOtK|E  
   Set conn = New ADODB.Connection \DE`tkV8  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ By 8C-jD  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ b7/1 ]  
      "; Mode=Read|Write" uL!{xuN  
   conn.Open yp=2nU"o  
   :LL>C)(f  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) g=;c*{  
   frmRecord.Visible = True he/UvMu  
   frmQuery.Visible = True yS#LT3>l  
   Load frmReceiveFromComm S) [`Bm  
   (l.`g@(L  
   '调试参数 SZCF db  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then or u.a   
     SignalBox.Visible = True sY t8NsQ  
   End If m#'2 3  
   If InStr(UCase(Command()), "/COMM") > 0 Then @^vVou_  
     frmReceiveFromComm.Visible = True > @ulvHL  
   End If Vl!Z|}z  
I hvL2 zB  
End Sub uE>2 *u\  
L44-: 3  
Sub ExitGrabber() j`\}xDg  
  '关闭数据库 =J,aBp  
  '关闭采集卡 1@H3!V4  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) mB$r>G/'  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) $b#"Rv  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) 0j1I  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) TZq']Z)#  
  okStopCapture hBoard j+n1k^jC  
  okCloseBoard hBoard qPpC)6-Q  
  CloseHandle hFile %cD7}o:u  
  Close #hBCFile EY(@R2~#J  
  conn.Close >Z?3dM~[  
  End ti'a^(  
End Sub J*8fGR%  
;fhFv&`mE  
Function ArrayToBMP(ByVal File As String) /0 ,#c2aq  
Dim BytesWrite As Long \)ac,i@fy  
tLpDIA_8  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ w*ig[{ I  
  CREATE_ALWAYS, 0&, 0&) gU Cv#:  
m?_S&/+*  
If hTmpFile = 0 Then tWi@_Rlx;  
   ArrayToBMP = False oSt-w{ !  
   Exit Function #Vanw!  
End If i+&*W{Re  
r}P{opn$t  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 74%,v|  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& Pb.-Z@  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN J%3%l5 /  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& Z8Fb x+~"  
S*:b\{[f>  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN i`Es7 }  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& #`/KF_a3\>  
v"L<{HN  
If BytesWrite < pFrameSize Then :JqH.Sqk  
  ArrayToBMP = False  7[55  
End If Jjz:-Uqq2  
lhx6+w  
CloseHandle hTmpFile 77OH.E|$  
xv9Z~JwH  
End Function <!&&Qd-d6H  
!h2ZrT9 _  
Function ArrayToBMP1(ByVal File As String) H~@E&qd  
X LPO_ tD  
Dim BytesWrite As Long " 7RQrz  
fAfsKO*  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ ^zQ;8)ng  
  CREATE_ALWAYS, 0&, 0&) gQ*0Mk  
v[ru }/4  
If hTmpFile = 0 Then u(SdjLf:  
   ArrayToBMP1 = False iwL\Ha  
   Exit Function O'" &9  
End If z4 8,{H6h  
'u$$ scGt  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN Xi5ZQo!t  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& LI?rz<H!D  
lC.Yu$O5  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN {3C~cK{  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& L^)&"6oSa  
&?*M+q34  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN Fy<dk}@  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0&  x9 <cT'  
jR\T\r4  
If BytesWrite < pBufferSize Then )k3zOKZ;  
  ArrayToBMP1 = False :a3Pnq$]E  
End If "-vm=d~\  
JcZs\ fl9  
CloseHandle hTmpFile }@}jwi)l  
j%b/1@I  
End Function w/N.#s^  
@ q2Yka  
'使用该过程建立的文件要求在用后关闭 Fp-d69Npo  
Public Function ArrayToBMP2(File As String) As Boolean q?&vV`PG5  
&-9wU Z  
Dim BytesWrite As Long W z3y+I/&  
(eN\s98)/  
ArrayToBMP2 = True ow ~(k5k:  
vI#\ Qe  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ ]xA;*b;| h  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) Y ,B0=}  
D2~e@J(K  
If hTmpFile = 0 Then 7[:9vY  
   ArrayToBMP2 = False R1X9  
   Exit Function ~d 7!)c`z  
End If ;]MHU/  
DVRE;+Jt  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN w:& m_z#M  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& b3x!tuQn  
+is;$ 1rq  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN X #-U  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& U=p,drF,A  
yuk64o2QE  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN ./)A6O*#  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& NZ'S~Lr   
6.2_UN^<  
If BytesWrite < pFrameSize Then KQ xKU?b1  
  ArrayToBMP2 = False J \1&3r|R  
End If X<_(gg  
&?/h#oF@\  
CloseHandle hTmpFile xe2Ap[Y'M  
'6fMF#X4F  
End Function d$kGYMT"  
"a;JQ:  
Private Function TESTSignal() As Boolean {Os$Uui37\  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long "W|Sh#JF  
Q! ]  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) IC/'<%k  
7Rk eV  
If extsign = 1 Then 4)-LlYS_d<  
   TESTSignal = True 3*3WO,9  
Else YrjF1 hJ  
    If extsign = 0 Then G1vWHa7n;f  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly y:D|U!o2V  
        TESTSignal = False mKPyM<Q  
        Exit Function R|ViLty  
    End If @P4fR7  
End If Ezm ~SY  
^x4I  
'测试视频输入类型 :p(3Ap2TY  
'video type ^$24231^  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 b-@VR  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) MMD4b}p  
If videotype = 1 Then .3A66 O~zT  
        '"隔行信号(Interlaced)" E:(flW=  
Else )wo'i]#2:  
   If videotype = 0 Then \QstcsEt  
       '"逐行信号(Non-interlaced)" G#8HY VF  
   Else b|wCR%  
     If videotype = -1 Then SPe Se/  
       ' "不支持" f$N udG!S  
     End If NHUx-IqOX  
   End If sE-E\+  
End If ^/2n[orl5  
<u*~RYA2  
'测试垂直扫描线数 !t{3IE  
'video scanlines WL7R.!P  
scanlines = -1 M/ 0!B_(R  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) D&/(Avx.  
    If scanlines = -1 Then E:f0NV3"1  
        ' "不支持" EMmNlj6  
    Else v1QE|@  
        'Trim(Str(ScanLines)) + " 行数/幅" *n N;!*J  
    End If Gb<)U[Hfd  
I7nt<l!  
'测试帧频 "44VvpQC  
'video field frequency UBrYN'QRNt  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) ~a4htj  
    If fieldfrq = -1 Then pRD8/7@(B{  
        'lblSignal(8) = "不支持" ,-&ler~[  
    Else }?^5\otu  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" @/ wJW``;  
    End If #]oVVf_  
End Function +T+f``RcK  
1 +O- g  
#q%xJ[  
Sub PicIdentify() g9H~\w  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 D!ToCVo s  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 OnC|9  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 {%'(IJ|5z  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 f:GZb?Wyd  
amK?LDf]  
  Dim fPTR As Long, cFrame As Long r Ka7[/  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer "Git@%80  
     ce/Rzid  
cV_nYcLkz  
cFrame = 0 Lf&p2p?~c  
:O{`!&[>L  
uR|Jn)/m(  
Do While cFrame < tFrames `B"=\0  
   -wy$ ?Ha  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) @ O5-w  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) m\__Fl  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize >o>r@;  
   .ZFs+8 qU>  
  frmRecord.RText.Text = Str(cFrame) ;M{ @23?`  
  frmRecord.RText.Refresh !ui i|"  
       }>=k!l{  
  If CheckMark = True Then X5cl'J(j9  
   ArrayToBMP TmpBMP YW}q@AY7  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) K~5QL/=1  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" Bl2y~fCA  
   [iwn"e  
   DrawSlice /-b)`%Q|Y  
   -]~&Pi|  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) WQ<J<$$uu  
   'If i = vbNo Then ec[S?-  
   '  Exit Do j08}5Eo  
   'End If :se o0w]  
   'cFrame = cFrame + 1 a=& a)FR  
   G)';ucs:,  
  End If 13I 7ah  
  DoEvents '`#2'MXG  
  cFrame = cFrame + 1 scCOiK)  
Loop Gmi4ffIb3  
End Sub Ka&[ Oz<w  
FRQ0tIp  
j8$*$|  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 3gaijVN  
DmM<Kkg.J  
'如标志区模式反差存在则为TRUE,否则返回FALSE b-'41d}Hn  
DKAqQ?fS  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long WLQm|C,  
CheckMark = True znw\Dn?g  
   K3$83%E  
'复制标志区 mEm znA  
For i = 1 To mkH Pdmfn8I]%  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW P}KN*Hn.  
Next i L"&j(|{  
rJ4 O_a5/  
For j = 1 To PilarW * PilarH / 2  57Q^ "sl  
   mTop = mTop + MKpilar(j) '^'vafs-/@  
Next j CDQ}C=4  
)C5<puh  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH Lo\+T+n  
   mBot = mBot + MKpilar(j) $*V:; -H  
Next j :D8V*F6P  
a?.hvI   
mTop = mTop / PilarW / PilarH * 2 [h+MA>%!  
mBot = mBot / PilarW / PilarH * 2 ykH?;Xu  
Kgbgp mW  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 X#j-Ld{j  
UJ 1iXV[h"  
'平均值极值化 7c1xB.g   
  For j = 1 To PilarH * PilarW ?1K|.lr  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) !s06uh  
  Next j DnS# cs~  
   fHCLsI  
mTop = 0: mBot = 0 A,{X<mLFb  
For j = 1 To PilarH * PilarW / 2 dq28Y$9~  
  mTop = mTop + MKpilar(j) 2--"@@  
Next j Dj'aWyW'  
a ?/GEfd  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW WLd{+y5#  
  mBot = mBot + MKpilar(j) %|}obiV)  
Next j O6NgI2[O  
R"EX$Zj^E  
"~0m_brf  
  mTop = mTop / PilarH / PilarW * 3 .8S6;xnkC  
  mBot = mBot / PilarH / PilarW * 3 Q<3=s6@T  
   Q"n*`#Yt'  
4 7ra`*  
If mBot > iWhite And mTop < iBlk Then @tWyc%t  
  CheckMark = True q{HfT d  
Else OW- [#r  
  CheckMark = False bYGK}:T8U  
End If Q0i.gEwe  
End Function abh='5H|^|  
:3M2zV cf  
Sub Capture1Frame() @cA`del  
   okCaptureTo hBoard, BUFFER, 0, 1 'single Fd*)1FQKT  
   okGetCaptureStatus hBoard, True 4d#w}  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize x+x 6F  
End Sub Z|K+{{C  
{O9CYP:  
"rOe J~4 X  
Sub CopyMark(iBlk As Integer, iWhite As Integer) v*SSc5gFG  
'复制标志区并返回标志区暗区与亮区的亮度平均值 JziuwL5,  
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 yT%"<m6Y*\  
   obKWnet  
'复制标志区 tT'*Uu5  
For i = 1 To mkH ?F1NZA[%t  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW U:ggZ` .  
Next i y Q-&+16^  
%Sr/'7 K  
For j = 1 To mkW * mkH / 2 Mo\LFxx>4{  
   mTotal = mTotal + MKpilar(j) @,F8gv*  
Next j wWv")dk3i  
9>\P]:  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 I ugYlt  
q{5wx8_U  
mTotal = 0 ,f8<s-y4Sg  
For j = mkW * mkH / 2 + 1 To mkW * mkH GoP,_sd\O  
   mTotal = mTotal + MKpilar(j) =T ;>$&qs  
Next j ?Y7'OlO  
Kq@nBkO4  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 5@ecZ2`)+h  
swJ3_WhbdT  
'背景亮度 `mXbF  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW DvCs 5  
  For i = 1 To 4 * FrameW `,gGmh  
    bsTotal = bsTotal + BsLine(i) ")' o5V  
  Next i u@tJu'X  
  bsAV = bsTotal / FrameW / 4 &4Q(>"i L4  
{"$ Q'T  
End Sub bmgK6OyVR  
rVgz+'rFD[  
D 's'LspQ  
Sub AdjIMGbright(Optional bInit As Boolean = True) P,r9  <  
9otA5I^v  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) 4bLk+EY4A  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 aG.j0`)%  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 ~N2){0 j4  
     U]tbV<m%  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer k nrR%e;  
   2`hc0 IE  
  '按标准亮度与对比度采集一帧,确定背景亮度 <NZ^*]  
  currentContr = 128   '初始对比度 7cV9xIe^  
  currentBr = 128   '初始亮度 WPi^;c8  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 ,e{(r0  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 0g}+%5]yg  
  DoEvents NWWag}  
  Capture1Frame .V G$`g"  
  '获得图像上缘4行象素 <7N8L  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW -\6nT'P  
  CopyMark iBlack, iBright   '图像标志区亮度 \]ouQR.t@\  
  For i = 1 To 4 * FrameW MG)wVS<d_  
    bsTotal = bsTotal + BsLine(i) H=Rqr  
  Next i {U1 j@pKm  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 GxE"q-G  
   < 3C~<  
  Select Case bsAV ~SgW+sDF u  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 fmyyQ|]O"  
       currentBr = 150 $zS0]@Dj  
       currentContr = 60 {j i;~9'Q  
     Case 61 To 80   '有可见背景 7?a@i; E<  
       currentBr = 140 hfT HP  
       currentContr = 70 "~j SG7h  
     Case 81 To 100  '有清晰背景 D%GB2-j R  
       currentBr = 128 _i{$5JJ+K2  
       currentContr = 80 ivg:`$a[  
     Case 100 To 150  '有明亮背景 qD=o;:~Km  
       currentBr = 140                '5:30-6:00钟实测数据 }1E'a>^|  
       currentContr = 50 ]H<5]({F  
     Case 151 To 180 =67dpQ'y  
       currentBr = 130 l*_%K}%?V  
       currentContr = 60 `##qf@M  
     Case 181 To 220  '背景全为白色 5$Lo]H *  
       currentBr = 110 t)P5bQ+$u9  
       currentContr = 130 SQ! wq  
     Case 221 To 255  '背景全为白色 Tap=K|b ]  
       currentBr = 100 [ fvip_Pt  
       currentContr = 100 5[l9`Cn&A  
  End Select ji QJ{yY  
   M:x?I_JG8  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 ,_;+H*H>"  
        Case 100 To 150 u=NpL^6s<  
          currentBr = currentBr - 10 sk !92mQ  
        Case 151 To 255 RzCC>-  
          currentBr = currentBr - 20 Z0*Lm+d9z  
  End Select fq(r,h=|  
   3Z=OUhn9  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 CBw/a0Uck  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 vFz%#zk>  
End Sub Ylbh_ d~BU  
'{=dEEi  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) PkA_uDhw  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long kXimJL_<g  
     ?&$??r^i  
    For i = 1 To 8 R\k= CoJJ  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& Y2709LWmP  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& 8:^`rw4a0  
    Next i ?&#z3c$}  
     Ncr38~;w  
    For j = 1 To 1024 YoiM\gw  
      L1 = L1 + LeftBK(j, 0) a)J3=Z-  
      L2 = L2 + LeftBK(j, 1) *fyC@fI>  
      R1 = R1 + RightBK(j, 0) "8MG[$Y  
      R2 = R2 + RightBK(j, 1) EOJk7  
    Next j d'ddxT$GG  
    diffL = Abs(L1 - L2) / 1024 B;xw @:H  
    diffR = Abs(R1 - R2) / 1024 %"tLs%"7=P  
End Sub W/_=S+C vK  
AffVah2o:  
Function CheckSlice() As Boolean k[lYd k  
  CopySlice avSL, avSLR, avSLL [<SM*fQ>t  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then *lHI\5  
    CheckSlice = True d~+8ui{-U  
  Else y,&.<Yc  
    CheckSlice = False #;FHyKx  
  End If qjcy{@ j  
End Function P \<dy?nZ  
mUW|4zl i}  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) 9Fb|B  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long `L p3snS  
  For i = 1 To FrameH }YUUCq&  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize T \%{zz_(  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize Zwy8 SD'L  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize E^uau=F  
  Next i [DrG;k?  
  For i = 1 To FrameH rmpx8C Y"  
    For j = 1 To sSize "q@OM f  
       total = total + Slice(j, i) 3GVE/GtU  
       totalL = totalL + SliceL(j, i) o=i)s2   
       totalR = totalR + SliceR(j, i) {TT@Mkz_QC  
    Next j *>Sb4:  
  Next i (2J_Y*N~>  
  avSL = total / FrameH / sSize p ;E zmz  
  avSLR = totalR / FrameH / sSize '5xf?0@s.  
  avSLL = totalL / FrameH / sSize -L e:%q2  
End Sub ?^]29p_  
*:t]|$;E\  
Sub DrawSlice() t}m6];  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B hnWo.5;$  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B o('W2Bs-o  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B *zoAD|0N  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) 8B ZTHlUB  
End Sub wn*<.s  
Sub DrawMark(pic As Control) )=VSERs  
   Dim i As Long, j As Long P|}~=2J  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B ghvF%-."1  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B N)'oX3?x  
   For i = 1 To PilarH = 7 U^pT  
     For j = 1 To PilarW ,4dES|)sP  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) }#~@HM>6Z  
     Next j MQ;c'?!5[!  
   Next i 0CXh|AU  
End Sub p&1IK8i"  
VB6EM|bphl  
Function avIMG() As Integer S%KY%hUt  
  Dim i As Long, j As Long, totalIMG As Long klHOAb1  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize yNp  l0 d  
  For i = 1 To pFrameSize _4qP0LCa  
    totalIMG = totalIMG + pBuffer(i) i! G^=N  
  Next i Co6ghH7T  
  avIMG = totalIMG / pFrameSize vqh@)B+)  
End Function (I3:u-A  
Ju5<wjQR\  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer s+Qm/ h2  
  Dim i As Long, j As Long, totalIMG As Long d>"t* >i]>  
  For i = 1 To FrameH gQy {OU  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth 8joJ e>9VJ  
  Next i _Eq*  
  For i = 1 To FrameH * barWidth jR~2mf!h*e  
    totalIMG = totalIMG + pBuffer(i) ,arFR'u>  
  Next i p x;X}Cd  
  avRegion = totalIMG / pFrameSize o6f^DG3*  
End Function >XzCHtEP  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 ydp?%RB3w  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 |~mq+:44+  
TTjj.fq6  
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 kIS&! V  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long J/(3: a>  
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 bni :B?#  
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 4ujw/`:/m  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long Id8^6FLw  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 aYQ!`mS::M  
C~o6]'+F_  
EoLF7j<W  
Private Const GENERIC_READ = &H80000000 g Z3VT{  
Private Const GENERIC_WRITE = &H40000000 |RT#ZMJek  
1B~H*=t4h  
Private Const FILE_SHARE_READ = &H1 ;u;YfOr  
Private Const FILE_SHARE_WRITE = &H2 dRg1I=|{_  
Private Const OPEN_EXISTING = 3 oQJK}9QR  
n"B"Aysz  
Private Const INVALID_HANDLE_VALUE = -1 rAqg<fR*  
arf`%9M  
'//file seek TbyQ'MbUv  
Private Const FILE_BEGIN = 0 + >o/Ob  
Private Const FILE_CURRENT = 1 1M&n=s _  
Private Const FILE_END = 2 F5Ce:+h  
q 4_&C&7  
Private Const ERROR_SUCCESS = 0& h>B>t/k?  
*yAC8\v  
'//device io control x:8xGG9  
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 ;OW`(jC  
w-Zb($_  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 2YvhzL[um  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 4xLU15C  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 6hKavzSi  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 MsOO''o  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C ;p ~@*c'E  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 "kyy>H9)  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F T xRa&1  
`o(PcX3/}  
'//type hg7`jE&2  
Private Type LARGE_INTEGER \ B 0xL,o<  
    lowpart As Long 2GRh8G&5  
    highpart As Long ,sPsL9]$  
End Type )fSQTbB;0  
xQs2 )  
Private Enum MEDIA_TYPE *au&ODa  
    Unknown fd >t9.  
    F5_1Pt2_512 [sG=(~BU  
    F3_1Pt44_512 b;\qF&T  
    F3_2Pt88_512 )mO|1IDTN  
    F3_20Pt8_512 b6!?K!imT  
    F3_720_512 w91gM*A  
    F5_360_512 k>#,1GbNZy  
    F5_320_512 =!3G,qV  
    F5_320_1024 e"en ma\_  
    F5_180_512 e#`wsht N:  
    F5_160_512 Q7]:vs)%  
    RemovableMedia GRz`fO  
    FixedMedia !Dp4uE:Pq  
End Enum RW 23lRA6  
qe!`LeT#  
Private Type DISK_GEOMETRY Qg  
    Cylinders           As LARGE_INTEGER L L Oe  
    MediaType           As MEDIA_TYPE PQAN,d  
    TracksPerCylinder   As Long V.J[Uwf  
    SectorsPerTrack     As Long fx|$(D@9  
    BytesPerSector      As Long TL@_m^SM  
End Type A S;ra,x  
xy`aR< L  
'//private vars ji {V#  
Private hDisk           As Long             'disk handle (1\!6  
Private lpGeometry      As DISK_GEOMETRY    'disk info KfJF9!U*?  
Private lBufferSize     As Long             'the buffer size of read/write qA:CV(Z  
$5nOiaQL  
Public Function OpenDisk(ByVal FileName As String) As Boolean _QCspPT' c  
'// 打开磁盘 K V ^ `  
    hDisk = CreateFile(FileName, _ s$xctIbm?,  
                        GENERIC_READ Or GENERIC_WRITE, _ G`E%uyjG$j  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ *=}$@O S  
                        ByVal 0&, _ 3$+|nP:U  
                        OPEN_EXISTING, _ N,| :=gD_  
                        0, _ +GMM&6<  
                        0) "PGEiLY  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) ,c_[`q\  
End Function "^~f.N  
_5#f9,m1  
Public Function CloseDisk() As Boolean Bt|S!tEy  
'//关闭磁盘 K' N`rx.7  
    CloseDisk = CloseHandle(hDisk) (_-<3)q4  
End Function Nb\4Mv`  
c>d+q9M  
Public Function GetDiskGeometry() As Boolean Q%~b(4E^7P  
'//获取磁盘参数 h$|K vS  
    Dim dwOutBytes      As Long jeMh  
    Dim bResult         As Boolean y6Xfddd61  
     (A`/3Aq+  
    bResult = DeviceIoControl(hDisk, _ '7[{ISBXU  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ <x DD*u  
                                ByVal 0&, 0, _ &s_O6cqgh  
                                lpGeometry, Len(lpGeometry), _ M=n!tVlCV  
                                dwOutBytes, _ \>nPg5OT  
                                ByVal 0&) R(@7$  
     0[}"b(O{  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack ]od]S 8$5  
    GetDiskGeometry = bResult C$ cX{hV  
End Function 5T}$+R0&  
P7d" E  
Public Sub GetDiskInfo(MediaType As Long, _ AR'q2/cw  
                        Cylinders As Long, _ [La=z 7*  
                        TracksPerCylinder As Long, _ mJ0nyjX^  
                        SectorsPerTrack As Long, _ cl{x5>.'#  
                        BytesPerSector As Long) ->&AJI0  
'//返回磁盘的参数 uy{mSx?td  
    MediaType = lpGeometry.MediaType H?ssV^k  
    Cylinders = lpGeometry.Cylinders.lowpart %*]3j^b Q+  
    TracksPerCylinder = lpGeometry.TracksPerCylinder 69(z[opW  
    SectorsPerTrack = lpGeometry.SectorsPerTrack `Q6@,-(3  
    BytesPerSector = lpGeometry.BytesPerSector 'wz*GMGWC  
2Xk(3J!!'a  
End Sub lY!`<_Am  
rFZB6A<(]  
Public Property Get BufferSize() As Long Oa\!5Pw1  
'//返回每次读/写的缓冲大小 > taT;[Oa  
    BufferSize = lBufferSize dsqqq,>Q  
End Property ]hTYh ^'e  
4%2QF F @  
$6atr-Pb  
Public Function LockVolume() As Boolean )K>XLaG)  
'// 将卷锁定 9ET2uDZpL  
    Dim dwOutBytes  As Long h";G vjy  
    Dim bResult     As Boolean \^SL Zhe  
     ,6PV"E)_  
    bResult = DeviceIoControl(hDisk, _ Y>Q9?>}Q  
                                FSCTL_LOCK_VOLUME, _ yyxGVfr  
                                ByVal 0&, 0, _ Rj9ME,u  
                                ByVal 0&, 0, _ 1eI >Yy>}  
                                dwOutBytes, _ pu nc'~  
                                ByVal 0&) ^Qz8`1`;Z  
    LockVolume = bResult AS`0.RC-  
End Function 'R8VCj  
GEfX,9LF&  
NZYtA7  
Public Function UnlockVolume() As Boolean sl-LX)*N#  
'// 将卷解锁 V| z|H$-  
    Dim dwOutBytes As Long MGX %U6  
    Dim bResult As Boolean ^sd+s ~ xx  
     fHYEK~!C04  
    bResult = DeviceIoControl(hDisk, _ cqr!*  
                                FSCTL_UNLOCK_VOLUME, _ S(mJ; C  
                                ByVal 0&, 0, _ !TP8LQ  
                                ByVal 0&, 0, _ p #'BV'0bl  
                                dwOutBytes, _ 5+:b #B  
                                ByVal 0&) L+bO X  
    UnlockVolume = bResult V^nYG$si  
End Function ULMG"."IH  
;Avd$&::  
\ntmD?kA  
Public Function DismountVolume() As Boolean 2#C!40j&\  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 O:Bfbna  
    Dim dwOutBytes As Long r|cl6s!P  
    Dim bResult As Boolean zTrAk5E  
     b,/fz6 {N  
    bResult = DeviceIoControl(hDisk, _ `zRgP#  
                                FSCTL_DISMOUNT_VOLUME, _ kx3H}od]  
                                ByVal 0&, 0, _ yAR''>  
                                ByVal 0&, 0, _ n@{fqj  
                                dwOutBytes, _ b_cnVlN[  
                                ByVal 0&) J]nb;4w  
    DismountVolume = bResult ?/)Mt(p  
End Function -\\}K\*MJ  
C*Z gjFvB  
v>.nL(VLjP  
Public Function ReadDisk(ByVal Cylinders As Long, _ |f'U_nE#R/  
                    ByVal Tracks As Long, _ LslQZ]3MY  
                    db() As Byte) As Boolean |gx{un`  
'//按柱面和磁道来读取磁盘数据 d /&aC#'B  
    Dim iPos    As Long L7_Mg{  
    Dim lRead   As Long ui`xgR\6Rh  
     vlIet$ k  
    iPos = Cylinders * Tracks * lBufferSize 75wQH*  
     3SVI|A5(d  
    If SeekAbsolute(0, iPos) Then Q bfm*JP~  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) :+ @-F>Q  
    End If kmNY ;b6Y$  
End Function 6tI7vLmG  
Y }'C'PR  
Public Function WriteDisk(ByVal Cylinders As Long, _  >>Hsx2M  
                     ByVal Tracks As Long, _ m,aJ(8G  
                     db() As Byte) As Boolean 9c8zH{T_{  
'//按柱面和磁道来写磁盘数据 \bqNjlu  
    Dim iPos    As Long |uV1S^ !A  
    Dim lRead   As Long I yIh0B~i  
     uNl<= 1  
    iPos = Cylinders * Tracks * lBufferSize )-|A|1Uo  
     PHi'&)|  
    If SeekAbsolute(0, iPos) Then NWNH)O@  
        WriteDisk = WriteBytes(lBufferSize, db()) f!e8xDfA  
    End If B o.x  
End Function &1893#V  
Wra*lQb/B  
)QaI{ z  
'///////////////////////////////////////////////////////////////////////////////////// [yL %+I  
'//file system _)p@;vGV  
a+szA};  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean I(P| `"  
'//seek file yEtI5Qk  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte W!.UMmw`  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) ?cCh?> h  
    If LowPos = -1 Then HD ?z   
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) ,W5pe#n  
    Else R}Uv i9?  
        SeekAbsolute = True Crh5^?  
    End If NwD*EuPF:  
     gWqmK/.U.0  
End Function Hx2UDHF  
26>e0hBh&  
j#Ly!%d p  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean `r'q(M  
'//read data to array !Qjpj KRy  
    Dim RetVal    As Long 7!hL(k[  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) U}MU>kzb  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF c)#b*k,lw<  
    ReadBytes = Not (RetVal = 0) f[.RAHjk  
     M:6H%6eT  
End Function ch1EF/"  
yfiRMN"2  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean DUEA"m h  
'//write data from array mLPQ5`_  
    Dim RetVal As Long Ud^+a H  
    Dim BytesToWrite As Long wd~e3%JM  
    Dim BytesWritten As Long (' /S~  
     2 W|4  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) ?+D_*'65D  
     ii2X7Q  
    WriteBytes = Not (RetVal = 0) $@Zb]gavt?  
End Function 9 }|Bs=q  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 qc|;qPj   
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ `5<  
DWORD dwCB; Sq%BfP)a(  
LARGE_INTEGER  offset; Y<:%_]]  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); 2$yKa5SaX  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); dwv xV$Nt  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ Sq/M %z5'  
DWORD error = GetLastError(); &E.0!BuqV  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); 91E!4t}I  
return FALSE; fU!C:  
} KArf:d  
return TRUE; Xp1xhb*^  
} qnyFRPC  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : o ]2=5;)  
g v&xC 6>  
介个真的看不懂。 tQ5gmj  
你说你老啦,喜欢怀旧了,才想起来填坑。 SLSJn))@!  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 @{@x2 '-A  
Yt++  ?  
8'Xpx+v  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : ]d9;YVAU  
佩服,玩也玩得这么专业! r|fJ~0z  
:)g=Ah BF  
R5 X<8(4p  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : W ;,Uh E  
伍SIR,再次抱拳佩服 wDem }uO  
Wgq*|teW  
5G_*T  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : UQPd@IVu6  
引用第19楼伍胥之于06-14-2010 12:33发表的  : _:c8YJEG{  
VaZS_ qGe:  
s)375jCg a  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 }qc[ysDK]  
6.EfM^[  
我连一级也没有考过。 @xtcjB9  
.
[uc;M6o}?  
+{]/ b%P  
引用
'|J-8"  
矬子里拔将军... gEO#-tMjOQ  
你们那里的俗语是吧? 0"#tK4  
kzLj1Ix2  
我们这里说"矮子里拔长脚"..应该是同一个意思... &hB~Z(zS!  
w/d9S(  
有趣....各地有表达意思一样却方式不同的俗语.... 4oT2 5VH  
Nq9Qsia&  
6%U1%;  
你的文章写的有脸皮,没屁眼的, RT)0I;  
让看客大为不满... dB<BEe\$g.  
W5 fO1F  
你等着,,估计你以后接到的午夜凶铃就多了... {h&*H[Z z  
 +;Q &  
8s?;<6  
我到现在也没有接到你的午夜凶铃呢! m3F.-KPO  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : H<}<f:  
每个人的故事对其他人都是故事, T oy~\  
自己的故事也是其中之一. .oaW#f}0P  
跳出来看, ]v rpr%K  
不过是众人中的一个人的故事. KKGAk\X  
 O7s0M?4  
所以,接着听故事. @`wBe#+\  
fS1N(RZ 1  
女人们有兴趣的就等老伍开个新帖或者跟贴, v^[tK2&v  
听他痛说恋爱革命历史.... dI>)4()  
gLl?e8[F  
杂家接着听他自学程序员历史, Ea!}r| ~]0  
高级程序员考了吗? Z)P x6\?+  
e1~C>  
Hi,_qlc+  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! [53@ '@26  
'bY^=9&|  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 xb8fV*RO8A  
;)0vxcMB  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 ^zs CF0  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : 'V 1QuSd  
哦, 打倒忽悠大家的家伙.       $Jb+}mlT  
^YenS6`F  
L)8;96  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : KkJ cH U  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 v SHb\V#  
d cPh @3  
1tQZyHc42;  
其实标题没有什么,卡总既然改了就不必再改回了。 Qs#v/r  
si3i#l&.b_  
主要是当初写的时候真是顶着锅盖写的。 =!{}:An1$  
',m,wp`  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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