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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 tAPf#7{|   
.Q^V,[on1T  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : _'4S1  
9o4h~Imu  
老五,I 服了U。 +`iJ+  
k?rJGc G  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 kE:{#>[Uz  
EywBT  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean ; !C_}P  
1:r#m- \  
Dim regEX As New RegExp t .}];IJP  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 ddN G :  
O~v~s ' c&  
Dim LastTitle0String As String, LastTitle0No As Long pSI8"GwQ  
Dim LastTitle1String As String, LastTitle1No As Long CYlS8j  
Dim LastTitle2String As String, LastTitle2No As Long K&,";9c  
Dim LastTitle3String As String, LastTitle3No As Long uQ&> Wk  
Dim LastTitle4String As String, LastTitle4No As Long *<[zG7+&[  
Dim LastTitle5String As String, LastTitle5No As Long Wffz&pR8  
Dim LastTabelString As String, LastTableNo As Long z4~p(tl  
Dim LastFigureString As String, LastFigureNo As Long 1=,y +Xpw  
Y;'SD{On  
Dim strSeperator As String >_\[C?8  
N}1yDN  
Sub ConvertWidth(fTEXT As String, rText As String) Zu<S<??Jf  
        Selection.Find.ClearFormatting ^KnK \  
        Selection.Find.Replacement.ClearFormatting #WJ*)$A@&  
        Selection.Find.Wrap = wdFindContinue 5^R?+<rd  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText B[q"o I`  
        DoEvents ];jp)P2o  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True 1w,34*-}  
End Sub CB X}_]9X  
IT)3Et@Y  
Sub ClearDomain() eco&!R[G  
        With Selection.Find 1J72*`4OK  
            .ClearFormatting &r,)4q+  
            .Replacement.ClearFormatting K- $,:28  
            .Wrap = wdFindContinue E [6:}z<  
            Me.txtStatus.Text = "清除所有域代码" `/?'^A%Ik  
            DoEvents i"=lxqWeaV  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False CxN xb)c &  
        End With m;A[ 2 6X  
End Sub m@u% 3*:  
Ni%@bU $  
Private Sub cmdCheck_Click() CUHT5J*sY  
    bContinue = True x7Gf):,LK  
    Dim NoSeries1(1 To 16) As String 1/~=61msc  
    Dim NoSeries2(1 To 16) As String `23][V  
    Dim NoSeries5(1 To 16) As String L|}s Z\2!  
    Dim NoSeriesRM(1 To 16) As String :5.F  
    Dim paraTotal As Long, ParaText As String }-J0cV  
    Dim ttString As String, ttNo As String nMZ)x-  
     ky-nP8L}  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long z [ 'G"yCi  
+jK-k_  
    Me.txtStatus.Visible = True = R~zD4{"  
    Me.lbParaType.Visible = True YRCs&tgs  
    Me.cmdCheck.Enabled = False H cyoNY  
     Mi{ns $B%  
     N'-[>w7vK2  
     Nd+1r|e'  
     znPh7{|<  
    Dim ParaType As String, rText As String &r~s3S{pQ  
     /%s:aO  
    Selection.WholeStory RKE"}|i +S  
    Selection.NoProofing = True 2P)O 0j\/  
     7(oA(l1V  
    tm1 = Now ,Si{]y  
     PEm2w#X%L  
        ActiveWindow.View.Type = wdNormalView hF$qH^-c*A  
     .Zj`_5C  
    NoSeries1(1) = "一" R&BWCC{  
    NoSeries1(2) = "二" ZHa>8x;Mjl  
    NoSeries1(3) = "三" lG Bg8/[  
    NoSeries1(4) = "四" A)V*faD  
    NoSeries1(5) = "五" G~v:@  
    NoSeries1(6) = "六" !_ QT{H  
    NoSeries1(7) = "七" O`@- b#  
    NoSeries1(8) = "八" HsUh5;  
    NoSeries1(9) = "九" N_S~&(I|  
    NoSeries1(10) = "十" .}v" ` >x  
    NoSeries1(11) = "十一" lSW'qgh  
    NoSeries1(12) = "十二" ."=%]l 0  
    NoSeries1(13) = "十三" k].swvIi  
    NoSeries1(14) = "十四" z#ki# o  
    NoSeries1(15) = "十五" la)^`STh  
    NoSeries1(16) = "十六" E>f{j:M  
     ,[t? $Cy ;  
    NoSeries2(1) = "㈠" 2%L`b"9}V  
    NoSeries2(2) = "㈡" $B_%MfI  
    NoSeries2(3) = "㈢" \@WVeFr  
    NoSeries2(4) = "㈣" )XGz#C_P  
    NoSeries2(5) = "㈤" (ie%zrhS  
    NoSeries2(6) = "㈥" 1+WVh7gF  
    NoSeries2(7) = "㈦" \/?J)k3H.  
    NoSeries2(8) = "㈧" jU7[z$GX  
    NoSeries2(9) = "㈨" `}KxzD  
    NoSeries2(10) = "㈩" |/^S%t6*  
     ,a,2I  
    NoSeries5(1) = "①" )dqNN tS  
    NoSeries5(1) = "②" 9Li*L&B)  
    NoSeries5(3) = "③" 6_])(F3+w.  
    NoSeries5(4) = "④" \wk;Bo  
    NoSeries5(5) = "⑤" E5@=LS  
    NoSeries5(6) = "⑥" N%xCyZ  
    NoSeries5(7) = "⑦" R ZQH#+*t}  
    NoSeries5(8) = "⑧" m O]>]   
    NoSeries5(9) = "⑨" 'vZIAnB8  
    NoSeries5(10) = "⑩" * 4L dh}S!  
     1}c'UEr%)  
     R y#C#0  
    NoSeriesRM(1) = "I" 5lJL[{  
    NoSeriesRM(2) = "II" y.J>}[\&x  
    NoSeriesRM(3) = "III" c9fz x  
    NoSeriesRM(4) = "IV" Ul9^"o  
    NoSeriesRM(5) = "V" b T&{8a  
    NoSeriesRM(6) = "VI" VOZxLyj^9  
    NoSeriesRM(7) = "VII" W dD889\  
    NoSeriesRM(8) = "VIII" Mmu# hb|W  
    NoSeriesRM(9) = "IX" d +,!p8Q  
    NoSeriesRM(10) = "X" /\b* oPWJ  
    NoSeriesRM(11) = "XI" lFnYQab  
    NoSeriesRM(12) = "XII" 5cinI^x)f  
    NoSeriesRM(13) = "XIII" 9\<q =p~  
    NoSeriesRM(14) = "XIV" ~F@n `!c  
    NoSeriesRM(15) = "XV" Z#-N$%^F  
    NoSeriesRM(16) = "XVI" ;Tp9)UP)  
     [}ja \!P  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) MO0NNVVi%U  
     7/51_=%kR  
    If i = vbNo Then )J> dGIb  
        Exit Sub u*;H$&  
    End If $x+7.%1m)~  
     2/fol TR7  
    If Me.chkSuper.Value Then p\&/m  
        Me.txtStatus.Text = "检查修改所有的上标格式" 8K?}!$fz  
     D|*w6p("z  
        CheckSuperScript ;'8Wl  
         G^#>HE|  
    End If Wp8>Gfb2  
     HXSryjF?  
    If Me.chkStyle.Value Then ;"x+V gS'  
        Me.txtStatus.Text = "设置样式,请稍候...." v N\[2r%S  
        DoEvents g.@[mf0r  
        CeateOrModifyStyle l^nvwm`f#:  
    End If ?o?$HK   
     RuIBOo\XL7  
     H"8B4~* 7H  
     ~M-L+XZl(  
    ClearDomain H.4ISmXU  
         7~XA92  
     2m:K %Em6u  
     2=n `z) R  
    If Me.chkLIST.Value Then W/xPVmnV  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" xxvt<J  
     1h?ve,$  
        ConvertListToOrdinary t#|R"Q#  
    End If A1-,b.Ni  
     Ca5#'3Eh  
     *c[w9(fU  
    Dim pType As String, trimpTEXT As String T@U,<[,   
    If Me.chkNum.Value = True Then J ( d[05x0  
        Me.txtStatus.Text = "转换全角数字形式为半角" &BrFcXF  
        ConvertWidth "1", "1" 9!Q ZuZY  
        DoEvents ,++HiYOG}e  
        ConvertWidth "2", "2" Ht(TYq  
        DoEvents t^"8M6BqC;  
        ConvertWidth "3", "3" 0VtjVz*C7&  
        DoEvents k}H7bZug  
        ConvertWidth "4", "4" T`fT[BaY  
        DoEvents zpT^:Ag  
        ConvertWidth "5", "5" <_<zrXc]  
        DoEvents 4Ii5 V c  
        ConvertWidth "6", "6" U\H[.qY-  
        DoEvents  P>iZ gv  
        ConvertWidth "7", "7" P@ew' JL%  
        DoEvents O5-GrR^yt  
        ConvertWidth "8", "8"  ^AaE$G&:  
        DoEvents ub-e!{  
        ConvertWidth "9", "9" W j^@Zq#  
        DoEvents 452kE@=49  
        ConvertWidth "0", "0" SfC* ZM}<  
        DoEvents r^}0 qO,XM  
        ConvertWidth "a", "a" l3>e-kP  
        DoEvents O}Pqbx&  
        ConvertWidth "b", "b" x4c|/}\)*  
        DoEvents # euG$(  
        ConvertWidth "c", "c" b) Da6fp  
        DoEvents ~LpkA`Hn!  
        ConvertWidth "d", "d" x>Q% hl  
        DoEvents SA}Dkt&,  
        ConvertWidth "e", "e" g:)iEw>a  
        DoEvents d=qVIpZ  
        ConvertWidth "f", "f" f0sLe 3  
        DoEvents |~ fI=1;;x  
        ConvertWidth "g", "g" J.R\h!  
        DoEvents MWA,3I\.  
        ConvertWidth "h", "h" 6`Tx meIP  
        DoEvents .ZF%$H  
        ConvertWidth "i", "i" Z/G#3-5)p  
        DoEvents k+-?b(z)$  
        ConvertWidth "j", "j" n4S `k%CI  
        DoEvents LxhS 9  
        ConvertWidth "k", "k" bKM*4M=k  
        DoEvents SR?mSpq5  
        ConvertWidth "l", "l" h>D;QY  
        DoEvents NL$z4m0  
        ConvertWidth "m", "m" *c Xq=/s  
        DoEvents ;!S5P(  
        ConvertWidth "n", "n" ^rO"U[To  
        ConvertWidth "o", "o" \^" Vqx  
        ConvertWidth "p", "p" 2K};-}eW  
        ConvertWidth "q", "q" G`O*AQ}[  
        ConvertWidth "r", "r" 6c-3+,Y"#  
        ConvertWidth "s", "s" n]$rLm%^  
        ConvertWidth "t", "t" c86KDEF  
        ConvertWidth "u", "u" AF"7 _  
        ConvertWidth "v", "v" D1ZyJs#  
        ConvertWidth "w", "w" 9)W3\I>U-  
        ConvertWidth "x", "x" dv\bkDF4A  
        ConvertWidth "y", "y" TU^ZvAO&  
        ConvertWidth "z", "z" hQ<7k'V  
        ConvertWidth "A", "A" 6R<+_e+v  
        ConvertWidth "B", "B" tUx H 6IS  
        ConvertWidth "C", "C" /7#e  
        ConvertWidth "D", "D" \z.bORy  
        ConvertWidth "E", "E" z+Fu{<#(  
        ConvertWidth "F", "F" AaA!U!B  
        ConvertWidth "G", "G" R)JH D7 1  
        ConvertWidth "H", "H" A/I\MN|  
        ConvertWidth "I", "I" }W}(k2r  
        ConvertWidth "J", "J" ^.8~}TT-U  
        ConvertWidth "K", "K" HL4=P,'  
        ConvertWidth "L", "L" v:4j 3J$z  
        ConvertWidth "M", "M" HP]5"ziA  
        ConvertWidth "N", "N" 4!!PrXE  
        ConvertWidth "O", "O" -`X S2  
        ConvertWidth "P", "P" iZy>V$Aq  
        ConvertWidth "Q", "Q" Yft [)id  
        ConvertWidth "R", "R" L5I!YP#v  
        ConvertWidth "S", "S" u'#/vT#l  
        ConvertWidth "T", "T" ,H+Y1N4W(  
        ConvertWidth "U", "U" TS|Bz2(  
        ConvertWidth "V", "V" F*@2)  
        ConvertWidth "W", "W" 4%~*}  
        ConvertWidth "X", "X" Y,0Z&6 <  
        ConvertWidth "Y", "Y" we`BqZV  
        ConvertWidth "Z", "Z" XN U w  
        ConvertWidth "^l", "^p" /}~=)QHH  
        ConvertWidth "(", "(" /i>n1>~yn  
        ConvertWidth ")", ")" Itr 4 Pr  
     Rk g8  
    End If bpZA% {GS  
9n\>Yieu  
    With ActiveDocument U&BCd$  
        Dim tbl As Table  Jk(V ]  
        For Each tbl In .Tables &Ril[siw  
            tbl.Rows.Alignment = wdAlignRowCenter -V6caVlg  
            tbl.Range.Font.NameFarEast = "楷体" {guOAT- w  
            tbl.Range.Font.NameAscii = "Times New Roman" WyatHC   
            tbl.Range.Font.Size = 10.5 AH&RabH2  
        Next GD.Ss9_h1  
        Set tbl = Nothing r6uN6XCM  
    End With AE~a=e\x  
     G4SA u  
     qH4|k 2Lm  
    With ActiveDocument T{Xd>  
         s tajTN*J  
        For i = 1 To .TablesOfContents.Count < A Hzs  
            .TablesOfContents(i).Delete Pz0MafF|T  
        Next 3#t#N W*e  
         ;LP3  
         8b'@_s!_  
         d%0Gsga}  
        paraTotal = .Paragraphs.Count Dch\k<Te  
        paraCounter = 1 vO2WZ7E!  
         v%cCJ SO#  
        LastTitle0No = 0 6?[P^{GpH  
        LastTitle1No = 0 Qf^c}!I  
        LastTitle2No = 0 !xck ~EAS  
        LastTitle3No = 0 p%mHxYP  
        LastTitle4No = 0 yZNG>1 N  
        LastTableNo = 0 lH=|Qu  
        LastFigureNo = 0 b-VtQ%Q  
         o FP8s[B  
        Dim Sec As Long <{k{Coy  
         *:xOenI  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) E5rV}>(Y  
        If Sec = 0 Then \h=*pAf  
            Exit Sub .c}+kHv  
        End If oMg-.!6  
         |E?r+]  
        k = 0 q-;Y }q  
        Do While (paraCounter < paraTotal) And bContinue W/BPf{U  
            k = k + 1 Y|r7gy9%  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then SgxrU&::  
                Exit Do :5CyR3P  
            End If d"Zu10  
            paraCounter = paraCounter + 1 njxLeD e-  
            If k Mod 20 = 0 Then v%T'!(0j/  
                Me.lbCounter.Caption = paraCounter N gF7$@S  
                DoEvents <!>\ n\A  
            End If gyA J#N|  
        Loop pTq DPU  
         ZN)EbTpc\a  
         Rmmu#-{Y  
        Do While (paraCounter < paraTotal) And bContinue ^4  $4x  
             e&ysj:W5 "  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) kHhp;<  
            ShapeHeight = 0 1xS+r)_n@  
            ShapeWidth = 0 p*0[:/4  
           T>% 5<P  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth H; \C7w|  
             W=^.s>7G  
            Select Case ParaType Mw RLv,&"  
                Case "【】表格内容" V5ZC2H  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" _"Bj`5S  
                Case "章" kqih`E9P7B  
                    LastTitle0No = LastTitle0No + 1 tIDN~[1  
                    '新一章开始,复位其下属标题编号 *t| !xO  
                    LastTitle1No = 0 1}la )lC  
                    LastTitle2No = 0 \:{K",2  
                    LastTitle3No = 0 3E;@.jD  
                    LastTitle4No = 0 2 G_KTYJ  
                     uT, i&  
                    k = Val(ttNo) d]s^?=gM  
                    If k = 0 Then '非数字编号章节 M;<!C%K>  
                        If ttNo <> NoSeries1(LastTitle0No) Then ow9a^|@a  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString \ZADY.ha  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText K0( S%v|,}  
                        End If 8_4!Ar>2  
                    Else q]OIP"yv  
                        If Val(ttNo) <> LastTitle0No Then ;dUKFdKH}  
                            rText = "第" & LastTitle0No & ttString [(x<2MTj  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText $Okmurnn  
                        End If dV B#Np  
                         x@q.u3o9  
                    End If  ,==_u  
                     ,o n]Fts  
                    '章段落设置 C5V}L   
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 =QVkY7  
                    .Paragraphs(paraCounter).Style = "QLNU章节" *]U`]!Esp  
                    .Paragraphs(paraCounter).Range.Select N\__a~'0p  
                    Selection.EndKey unit:=wdLine ZcjLv  
                    tc = Replace(rText, vbCr, "") ![K\)7iKo  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False )/ 'Wbo L  
                Case "一级标题" QG?!XWz  
                    LastTitle1No = LastTitle1No + 1 :l o5,B;k  
                    '新一级标题开始,复位其下属标题编号 @ywtL8"1~  
                    LastTitle2No = 0 RBf#5VjOG!  
                    LastTitle3No = 0 %Ve@DF8G  
                    LastTitle4No = 0 FtyT:=Kpc  
                     5]I)qij q  
                    If ttNo <> NoSeries1(LastTitle1No) Then  4 Pc-A  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString af | mk@  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText R q@|o5O  
                    End If L>IP!.J]?  
                   ~{lb`M^]h  
                     jw{N#QDh  
                    '一级标题段落设置  格式:一、标题内容 4!{lySW  
                    .Paragraphs(paraCounter).Range.Text = rText 5@>hjXi"Y  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" c6vJ;iz  
                    .Paragraphs(paraCounter).Range.Select _f@,) n  
                    Selection.EndKey unit:=wdLine p*lP9[7  
                    tc = Replace(rText, vbCr, "") h+B7BjA>G  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False ]'Eg2(wy  
                Case "二级标题" 36OQHv;&  
                    LastTitle2No = LastTitle2No + 1 z[J=WI  
                    '新二级标题开始,复位其下属标题编号 D%o(HS\E  
                    LastTitle3No = 0 9Zl4NV&B  
                    LastTitle4No = 0 -&7? !<f  
                     ^/E'Rf3[A  
                    If ttNo <> NoSeries1(LastTitle2No) Then kbb!2`F!%  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString `{{6vb^g  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText JR] elRR  
                    End If W8^A{l4  
                     ;&J>a8B$  
                    '二级标题段落设置 格式:(一)、标题内容 lfM vNv  
                    .Paragraphs(paraCounter).Range.Text = rText ,V 52Fj  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" =nCA=-Jv  
                     n~yHt/T  
                    .Paragraphs(paraCounter).Range.Select 05ClPT\BCr  
                    Selection.EndKey unit:=wdLine H(.9tu A  
                    tc = Replace(rText, vbCr, "") [?7QmZK  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False ek<B=F  
                 A@< !'  
                Case "三级标题" {2:baoG-  
                    LastTitle3No = LastTitle3No + 1 =JE<oVP8  
                    '新三级标题开始,复位其下属标题编号 A)9]^@,  
                    LastTitle4No = 0 ZPw4S2yw3.  
                     #Q7:Mu+  
                    If Val(ttNo) <> LastTitle3No Then K Ha,6X  
                            rText = LastTitle3No & ". " & ttString w~Q\:<x&~Z  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText /~'C!so[v  
                         m] U  
                    End If Vc9Bg2f5  
                    '三级标题段落设置 格式:1. 标题内容 _@>*]g  
                    .Paragraphs(paraCounter).Range.Text = rText aPxSC>p  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" MV$E_@pg  
                    .Paragraphs(paraCounter).Range.Select D+uo gRS61  
                    Selection.EndKey unit:=wdLine C2rG3X^~Jm  
                    tc = Replace(rText, vbCr, "") va F1e:(  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False V.`hk^V,  
                Case "四级标题" cwvJH&%0  
                    LastTitle4No = LastTitle4No + 1 wT!?.Y)aj  
                     aMe &4Q  
                    If Val(ttNo) <> LastTitle4No Then a({Rb?b  
                            rText = "(" & LastTitle4No & "). " & ttString f3! Oc  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText aB~k8]q.  
                     Xk|a%%O*H  
                    End If s3A(`heoq  
                    '四级标题段落设置 格式:(1). 标题内容 9J7yR}2-F  
                    .Paragraphs(paraCounter).Range.Text = rText 'Iw`+=iVz  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" [VXQ&  
                    .Paragraphs(paraCounter).Range.Select ?@@$)2_*u  
                    Selection.EndKey unit:=wdLine m33&obSP  
                    tc = Replace(rText, vbCr, "") @ xo8"kl  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False YM;ro5_KF  
                 Awfd0L;9  
                Case "表格标题" Te}gmt+#%  
                    LastTableNo = LastTableNo + 1 C0w_pu  
                     DDmC3  
                    If ttNo <> CStr(LastTableNo) Then Fu{VO~w  
                            rText = "表" & LastTableNo & ". " & ttString I(VqtC:K.  
                            ErrMsg.AddItem "表格编号错误:" & ParaText =:g\I6'a  
                   zu?112-v2  
                    End If #0r^<Yn  
                     `m(ZX\W]  
                    '表格名称段落设置 格式:表1. 表格名称 kXhd]7ru  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题"  )XonFI  
                    xe = Replace(rText, vbCr, "") x/{-U05  
                    .Paragraphs(paraCounter).Range.Select hb*Y-$Zp  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 sT1 OAK\^  
                    Selection.Range.Text = xe ^jL)<y4`  
                    Selection.EndKey ek5j;%~g1  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False *bpN!2  
                 I52nQCXi  
                Case "表格首行" ~`e!$=  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" N: 3=G`Ws  
                Case "图片标题" g0biw?  
                    LastFigureNo = LastFigureNo + 1 }Jh.+k|_  
                     y]{b4e  
                    If ttNo <> CStr(LastFigureNo) Then PtuRXx  
                            rText = "图" & LastFigureNo & ". " & ttString YvG$2F|_)  
                            ErrMsg.AddItem "表格编号错误:" & ParaText e:-pqZT`  
                   aoW2c1`?Z  
                    End If  j7_,V?5z  
                    '图片名称段落设置 格式:图1. 图名称 Hz,Gn9:p  
                    .Paragraphs(paraCounter).Range.Text = rText 8 t =H  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" [K #$W  
                    .Paragraphs(paraCounter).Range.Select 66>X$nx(z  
                    Selection.EndKey unit:=wdLine g5 *E\T%8  
                    xe = Replace(rText, vbCr, "") P51cEhf  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False PYi<iSr  
                Case "正文" pSQ2wjps  
                     '正文名称段落设置 ?pJ2"/K   
                    .Paragraphs(paraCounter).Style = "QLNU正文" 5,XEN$^  
               Case "文献条目" OcF_x/#  
                    With .Paragraphs(paraCounter) *j83E[(]  
                        '.Range.Select 1 M!4hM Q  
                        'Selection.ClearFormatting Oi|cTZ@A-  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” j^#\k m B  
                        .Style = "QLNU参考文献" hO> q|+mC  
                    End With o Vk!C a  
               Case "图表注解" ]E"J^mflGK  
                    With .Paragraphs(paraCounter) nWCJY:q;5  
                        .Range.Font.NameFarEast = "楷体" C\"C12n{  
                        .Range.Font.NameAscii = "Times New Roman" 9-j-nx @)  
                        .Range.Font.Size = 9 '小5号字 ^[[@P(e>  
                         <k1muSe  
                        .Alignment = wdAlignParagraphCenter n,2p)#?  
                        .LeftIndent = 0 uu]C;wl  
                        .RightIndent = 0 [4qvQ7Y !  
                        .FirstLineIndent = 0 )M7yj O!  
                        .LineSpacing = 12 MbYgGE,LA  
                        .LineSpacingRule = wdLineSpaceExactly 4S>#>(n7=  
                        .LineUnitAfter = 0 8?L-3/  
                        .LineUnitBefore = 0 BIMX2.S1o  
                        .OutlineLevel = wdOutlineLevelBodyText 81#x/&E]  
                        .PageBreakBefore = False bh8GP]*E|  
                        .RightIndent = 0 $H@   
                        .WordWrap = True P2ySjgd  
                        .LineUnitAfter = 0.5 hs+)a%A3G  
                         9mtndTT 5u  
                    End With 4 w*m]D{  
                Case Else kygj" @EX  
                    '不作处理 4Kj 8 i  
            End Select mgjcA5z  
             a m5;B`}q  
            '含有inlineshape的段落处理 .DwiIr'  
            If ShapeHeight > 30 Then FB?V<x  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 ~,s'-  
            End If ecl6>PS$'  
             V 7~9z\lW  
            If (ShapeWidth + ShapeHeight) > 150 Then aC9iNm8w  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" cyd_xB5K  
            End If ysp,:)-%G@  
             Ye|gW=FUR  
            '段落计数器递 lu>G=uCJ  
            paraCounter = paraCounter + 1 c9H6\&  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter G@D8 [  
            Me.txtStatus.Text = ParaText h;E.y   
            DoEvents .3+ 8Ip#z  
        Loop '#A_KHD  
    End With o}waJN`yI  
     zuMz6#aCC8  
    msg = "" p79QEIbk=  
     vbd ;Je"  
    For i = 0 To Me.ErrMsg.ListCount - 1 a>#$&&oQ0  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) D{8B;+  
    Next u$nmnd`g  
     W1o6Sh8v(  
     G1X73qoHT<  
     ,%/F,O+#  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg cJm},  
    Me.cmdCheck.Enabled = True lgt&kdc%o  
    Me.txtStatus.Visible = True B;Z _'.i,d  
    Me.lbParaType.Visible = False !2B~.!&   
      !N\_D  
    bContinue = False xK[ [b  
End Sub l8M}82_  
Pt-mLINvG  
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) p{qA%D  
    Dim pTEXT As String 7{"F%`7L  
     #Z]Cq0=  
    pTEXT = ChKRange.Text yp]v Dm  
     K7x;/O  
    ParaType = "其它" b[&ri:AC  
    TitleString = pTEXT  nmL|v  
    TitleNo = "N/A" - ]We|{  
     \A!I ln  
    shpCounter = ChKRange.InlineShapes.Count ?gU - a  
    If shpCounter <> 0 Then _,F\%}  
        MaxShpHeight = 0: TotalShpWidth = 0 WB (?6"  
        For i = 1 To shpCounter Xq"9TYf$  
            k = ChKRange.InlineShapes(i).Height ZrP 8 />  
            l = ChKRange.InlineShapes(i).Width Y._ACQG3  
            If k > MaxShpHeight Then Y -BZV |  
                MaxShpHeight = k yIpgZ0:h  
            End If ={h^X0<s9  
            TotalShpWidth = TotalShpWidth + l H^B,b !5i  
        Next i%f C`@  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then JeVbFZ8  
            Exit Sub hms Aim9i  
        End If U;ujN8  
    End If PCDvEbpG  
     `K$;K8!1  
    '空行 ]*$o qn=m  
    If Len(pTEXT) <= 2 Then w5-^Py  
        Exit Sub kMzDmgoxNg  
    End If WzdlrkD  
     P-^-~/>n  
         ):+^893)  
    '是否为表格中的文字 iH>JR[A  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then ='Oxy  
        ParaType = "表格内容" "j&p3  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) g-x;a0MQx  
        If k = 1 Then 4,)QV_?  
            ParaType = "表格首行" +=L+35M  
        End If C2iOF/4  
        Exit Sub #"C* dNAB  
    End If RM%Z"pc Y6  
     RAEN  &M  
    '例外情况:脚注 =fy.'+  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then | Cfo(]>G  
        ParaType = "脚注" TgRG6?#^l  
        Exit Sub 1G(wE Se  
    End If uRuu!{$  
     \8{Tj54NA  
    '例外情况:尾注 G'HLnx}Yi  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then dj,lbUL  
        ParaType = "尾注" "AWk jdj  
        Exit Sub 5M8   
    End If rP6k}  
     1-4[w *u>  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then Cx) N;x  
        ParaType = "页眉页脚" jt @2S  
        Exit Sub ~d3BVKP5  
    End If h_Er$ZT64  
     2mx }bj8  
     2gvS`+<TP  
    With regEX 6QPbmO]z  
        .Global = True 8z&/{:Z@pH  
         T sJ71  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" YSZ[~?+  
        If regEX.Test(pTEXT) Then (a,`Y.  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") x1CMW`F  
            TitleString = regEX.Replace(pTEXT, "$3") Jx&+e,OST  
            TitleNo = regEX.Replace(pTEXT, "$1") N'5DB[:c:  
            ParaType = "章" zZ<~yi3A9  
            Exit Sub "1P2`Ep;  
        End If *:l$ud  
         D* HK[_5  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" `Sj8IxO  
        If regEX.Test(pTEXT) Then u7p:6W  
            ParaType = "一级标题" N0 t26| A  
            regEX.Execute (pTEXT) ~Ty6] A  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") Np~qtR  
            TitleString = regEX.Replace(pTEXT, "$3") LM.#~7jC  
            TitleNo = regEX.Replace(pTEXT, "$1") S[rfcL"  
            Exit Sub 1mEW]z  
        End If !P6y_Frpe  
         oY@]&A^ah  
        '全角或半角括号中的数字 9 771D  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" Eh`W J~  
        If regEX.Test(pTEXT) Then T(qHi?Y  
            ParaType = "二级标题" cwUor}<|  
            regEX.Execute (pTEXT) ov>`MCS,v  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") b]8\% =d  
            TitleString = regEX.Replace(pTEXT, "$5") [h\_yU[ P  
            TitleNo = regEX.Replace(pTEXT, "$2") a  ?wg~|g  
            Exit Sub wDh&S{N  
        End If .L]2g$W\p  
         3fop.%(  
        '阿拉伯数字  1. 2. iVqF]2 >  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" @:9mTP7  
        If regEX.Test(pTEXT) Then }u5J<*:bZ  
            ParaType = "三级标题" KA`)dMWL  
            regEX.Execute (pTEXT) YWq{?'AaR  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 ,.gI'YPQC  
            TitleString = regEX.Replace(pTEXT, "$3") ;ZrFy=Iv  
            TitleNo = regEX.Replace(pTEXT, "$1") sg]g;U  
            Exit Sub .R^]<b:`  
        End If q 7+|U%!9  
         xJvalb   
        '全角或半角括号中的阿拉伯数字 38JU-aq  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" J2`OJsMwWe  
        If regEX.Test(pTEXT) Then B)-P# ,}  
            ParaType = "四级标题" 0wETv  
            regEX.Execute (pTEXT) 6& 9q6IIy  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") O#U _mgfzJ  
            TitleString = regEX.Replace(pTEXT, "$5") 8H SGOs =8  
            TitleNo = regEX.Replace(pTEXT, "$2") f K4M:_u  
            Exit Sub 6>EoU-YX}l  
        End If m]\d9%-AT&  
         Hp fTuydU  
        '表格名称 `\-MpNw  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" Lr>4~1:`  
        If regEX.Test(pTEXT) Then y2C/DyuAY|  
            ParaType = "表格标题" ! }awlv;  
            regEX.Execute (pTEXT) 1T3YFt@&I  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) L\<J|87p?  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) N4 _V  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) nm,Tng oj  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 @qsOWx`l$  
            Exit Sub %bnjK#o"Q  
        End If ><@& &u.  
         C4C! -12  
        '图片名称 3'`X_C|d53  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" qkyYt#4E  
        If regEX.Test(pTEXT) Then <DdzDbgax  
            ParaType = "图片标题" NQvT4.*  
            regEX.Execute (pTEXT) IZ_ B $mo  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") Xb*>7U /'T  
            TitleString = regEX.Replace(pTEXT, "$3") Au?(_*/0  
            TitleNo = regEX.Replace(pTEXT, "$1") Q[Tbdc%1EG  
            Exit Sub D <Fl7QAb  
        End If *-_joAWTG  
         ZOzyf/?.  
        '参考文献 kZ 9n@($B  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 (b1rd  
        If regEX.Test(pTEXT) Then jRdW=/q+(  
            ParaType = "文献条目" Fg^zz*e  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") j)O8&[y=  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") RKz _GEH)  
            Exit Sub 23UXOY0BW  
        End If A'? W5~F  
         `VOLw*Ci  
        prfx = Left(pTEXT, 2) @] {:juD~  
        If prfx = "注:" Or prfx = "注:" Then ~/R}K g(  
            ParaType = "图表注解" (WS<6j[q  
            Exit Sub gem+$TFq  
        End If t== a(e  
         (pQ$<c  
         h1?.x  
        ParaType = "正文" 'nqVcN gb  
         '8Lc}-M4  
    End With n~&e>_;(.  
End Sub pvd9wKz  
Hkj| e6  
Sub ConvertListToOrdinary() yz=6 V%  
    Dim st As Paragraph Z@:R'u2Lk  
    With ActiveDocument AzBpQb*  
        For i = .Paragraphs.Count To 1 Step -1 n %P,"V  
            Set st = .Paragraphs(i) SB!m&;Tb  
            lst = st.Range.ListFormat.ListString ; >>/}J w\  
            If lst <> "" Then 4> [tjz.?k  
                st.Range.ListFormat.RemoveNumbers C)s*1@af  
                st.Range.InsertBefore lst & " " 9\NP)Vm$^  
            End If ,%]s:vk[u  
        Next A}n5dg0u  
    End With =}4lx^`oeT  
    Set st = Nothing c\eT`.ENk  
End Sub TsZX'Yn  
mc5$-}1V,  
Private Sub UserForm_Activate() +&TcTu#.`  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" OBp/:]  
    Me.lbTotal.Font.Bold = True }A_>J7w  
    Me.txtStatus.Visible = False X 7"hTD  
    Me.cmdCheck.Enabled = True p$%g$K  
cE]#23  
End Sub e?b<-rL   
12%4>2}~>  
8"S? Toqq  
Sub CheckSuperScript() p/uOCQ|1l  
    Selection.Find.ClearFormatting z0&I>PG^  
    Selection.Find.Replacement.ClearFormatting 9]/j u  
    With Selection.Find GUK3`}!%  
        .Text = "[【\[[〖](*)[】\]〗]]" T]J#>LBd  
        .Replacement.Text = "[\1]" CU(W0D  
        .Replacement.Font.Superscript = True i(>v~T,(  
        '.Replacement.Font.Color = wdColorBlue ;]h:63 S  
        .Forward = True Sst`*PX:  
        .Wrap = wdFindContinue S1n 'r}z8  
        .FORMAT = True g|l|)T.s  
        .MatchCase = False +^.Q%b0Xx  
        .MatchWholeWord = False EC| b7  
        .MatchByte = False qxW 2q8QHo  
        .MatchAllWordForms = False gbRdng7(}  
        .MatchSoundsLike = False c'6$`nC  
        .MatchWildcards = True -[`FNTTV C  
    End With =Hs~fHa)  
    Selection.Find.Execute Replace:=wdReplaceAll c )o[3o7  
End Sub a'|Dm7'4t  
5Bc)QKh`l|  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) oWc +i U(  
    bContinue = False oE4hGt5x{  
    Set regEX = Nothing h?:Y\DlU'  
End Sub 0<S(zva7([  
p V))g e\  
Sub CeateOrModifyStyle() zoBjrAyD  
' ;R?9|:7  
' X{riI^(  
Dim stl As Style :`P;(h  
     x5Ee'G(  
    Options.Pagination = False (gv ~Vq  
     dQL! >6a  
    On Error Resume Next P1l@K2r  
    For Each stl In ActiveDocument.Styles &gR)bNIC_=  
        stl.Delete P X<,/6gz  
    Next 4==Lt Ep  
    On Error GoTo 0 &9'JHF!l  
     Uyyw'Ni  
    Set stl = Nothing :O}<Q  
     6.'+y1yS)  
    DoEvents Iq[,)$  
    On Error Resume Next {*C LWs4  
     #8d$%F))  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph 9qQFIw~S  
      goT:\2  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph s2ys>2k  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph &_ E*]Sj\  
     H{T)?J~  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph 57b;{kl  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph cBA 2;5E  
     t`mLZ <X  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph way-Q7  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph $bKa"T*  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph rzqUI*4%  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph 5OUe |mS  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph K\ \U F  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph j{'@g[HW  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph g)iSC?H  
     ]H|1q uT  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph .tb~f@xL  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph r4qFEFV3%  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph br'/>Un"  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph -Q8pWtt  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph w,.Hdd6  
     _ ?2xIo  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph ~qT+sc!t  
    On Error GoTo 0  93(  
    DoEvents uL4@e  
     P5P<-T{-c  
    'BaseStyle m"vV=6m|\  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False jWW2&cBm\  
    With ActiveDocument.Styles("BaseStyle").Font :r/rByd '  
        .NameFarEast = "宋体" Va/ p   
        .NameAscii = "Times New Roman" Ic/<jFZXM  
        .NameOther = "宋体" y!^RL,HIL  
        .Size = 10.5 6dmTv9e  
        .Bold = wdUndefined :1>R~2  
        .Italic = wdUndefined  U\~[  
        .Subscript = wdUndefined /qL&)24  
        .Subscript = wdUndefined } q ? iJ?P  
         fwQ%mU+  
        .Underline = wdUnderlineNone (Qq$ql27  
        .UnderlineColor = wdColorAutomatic /bylA`IM W  
        .StrikeThrough = False i9M6%R1m}E  
        .DoubleStrikeThrough = False {w^flizY  
         S[" &8Fy  
        .Outline = False ,O(XNA(C  
        .Emboss = False E|Grk  
        .Shadow = False <s#}`R.#2  
        .Hidden = False 8`qw1dF  
        .SmallCaps = False (<.1o_Q-LU  
        .AllCaps = False W:>RstbnMG  
        .Color = wdColorAutomatic J:mOg95<  
        .Engrave = False :7!/FBd  
        .Scaling = 100 Ck.GN<#-^P  
        .Kerning = 1 +o/;bm*U<K  
        .Animation = wdAnimationNone Ec6{?\  
        .DisableCharacterSpaceGrid = False MOmp{@  
        .EmphasisMark = wdEmphasisMarkNone I/)dXk~  
    End With ?t} [Wi}7  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat ^HL#)fK2I  
        .LeftIndent = 0 TCF[i E{  
        .RightIndent = 0 uYMW5k_,>  
        .SpaceBefore = 0 }wkBa]  
        .SpaceBeforeAuto = False FM7N|] m  
        .SpaceAfter = 0 9HEc=,D|  
        .SpaceAfterAuto = False 9AL\6 @<a*  
         6 <t\KMd  
        .LineSpacingRule = wdLineSpaceSingle 1ck2Gxn  
        .Alignment = wdAlignParagraphJustify 1 )j%]zd2  
         .+B)@?  
        .WidowControl = False "5jZS6A]  
        .KeepWithNext = False 3G8uXB_`}  
        .KeepTogether = False nw5#/5xw  
        .PageBreakBefore = False xD1B50y U  
        .NoLineNumber = False %NS]z;G  
         D1O7S]j  
        .FirstLineIndent = CentimetersToPoints(0) ,?#-1uIGL>  
        .OutlineLevel = wdOutlineLevelBodyText a<g zI  
        .CharacterUnitLeftIndent = 0 m9xu$z| e  
        .CharacterUnitRightIndent = 0 ,_lwT}*w  
        .CharacterUnitFirstLineIndent = 0 |ns^' q  
        .LineUnitBefore = 0 a k;Z;  
        .LineUnitAfter = 0 SqTm/ t  
        .AutoAdjustRightIndent = True `?6m0|\@  
        .DisableLineHeightGrid = True x{ZVq 4  
         xG}eiUbM`  
        .FarEastLineBreakControl = True Z gU;=.  
        .WordWrap = True "3j 0)  
        .Hyphenation = False *} w.xt  
         up2%QbN(  
        .HangingPunctuation = True 3^su%z_%  
        .HalfWidthPunctuationOnTopOfLine = True l2`8]Qr   
        .AddSpaceBetweenFarEastAndAlpha = True jv|IV  
        .AddSpaceBetweenFarEastAndDigit = True iZy k2kc  
        .BaseLineAlignment = wdBaselineAlignBaseline 3.d=1|E  
    End With Da@tpKU)p  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False |k+&we uY  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll "| Q&  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese ld@f:Zali  
    ActiveDocument.Styles("BaseStyle").NoProofing = False [bOy, ^@4  
     vP~F+z @g  
    '一级标题题样式 {U(h]'  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") |_=jXf\TL  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" $oua]8!  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False (x$k\H  
    With ActiveDocument.Styles("QLNU一级标题").Font 0`ib_&yI  
        .NameFarEast = "黑体" Ol%*3To  
        .NameAscii = "Arial Black" wc,y+C#V  
        .NameOther = "黑体" n`:l`n>N$  
        .Name = "黑体" :6M0`V;L  
        .Size = 16              '三号 O: BP35z_F  
        .Bold = True ga~vQ7I_  
        .Italic = wdUndefined G+g`=7  
        .Subscript = wdUndefined ;Ok11wOw  
        .Superscript = wdUndefined !J6s^um  
    End With }5]s+m  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat wA~Nfn ^  
         Y+=@5+G  
        .LeftIndent = CentimetersToPoints(0) 7T2W% JT-,  
        .RightIndent = CentimetersToPoints(0) !7 ^He3  
        .FirstLineIndent = CentimetersToPoints(0) #i ]@"R  
         Vi?Z`G]w!  
        .LineSpacingRule = wdLineSpaceSingle q3P3euK3  
        .Alignment = wdAlignParagraphCenter wFd*6%  
         7R2)Klt  
        .WidowControl = True bL[PNUG  
        .KeepWithNext = True eO9nn9lql  
        .KeepTogether = True Nm081ic2<  
        .OutlineLevel = wdOutlineLevelBodyText R\Q%_~1  
         1VZ>*Tl  
        .LineUnitBefore = 0.5 p$%h!.~99T  
        .LineUnitAfter = 0.5 iN {TTy  
    End With sw@ 2 ?+  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False #U_u~7?H$  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll r?+u}uH  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese Sl_zO?/PF  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True Uq+ _#{2(  
    DoEvents z vYDE]  
     ^LcI6 h  
    '二级 < NAR'{f  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") *HXq`B  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" h?1pGz)[C  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False a "1$z`ln  
    With ActiveDocument.Styles("QLNU二级标题").Font RU >vnDaC  
        .NameFarEast = "黑体" q-3KF  
        .NameAscii = "Arial Narrow" 1Ev+':%  
        .NameOther = "黑体" jN<]yhqf  
        .Name = "黑体" 0,A?*CO  
        .Size = 15        '小三号 \rN_CBM  
        .Bold = False 6aK --k  
        .Outline = False IGqmH=-  
        .Italic = wdUndefined Cg|uHI*  
        .Subscript = wdUndefined JWn{nJ$]  
        .Superscript = wdUndefined Q.] )yqX6  
    End With `i:0dVs  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat [ qI*]  
        .LeftIndent = CentimetersToPoints(0) FXSDN268  
        .RightIndent = CentimetersToPoints(0) V_1#7  
        .FirstLineIndent = CentimetersToPoints(0) Vlz T  
         =Fs LF  
        .LineSpacingRule = wdLineSpaceSingle .>nd@oU  
        .Alignment = wdAlignParagraphLeft ^+wz m2i  
         -*Pt781  
        .WidowControl = True LK%B6-;~-  
        .KeepWithNext = True  !fV6KkV  
        .KeepTogether = True {pg@JA  
        .PageBreakBefore = False G_<[sMC8  
        .OutlineLevel = wdOutlineLevelBodyText j bGH3 L  
         xXYens}  
        .LineUnitBefore = 0.5 i;xMf5Jz  
        .LineUnitAfter = 0.5 A_fU 7'B  
         V$_0VN'+Z  
    End With [uY 2N h  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False 1c4%g-]7  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll W|Tew-H{h_  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese w${=dW@K  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True ii2Z }qe  
    DoEvents 2Ee1mbZVw8  
     <EUSl|6  
    '三级标题样式 k:qou})#4  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") !?>)[@2 k6  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" mT>p:G  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False U`Ag| R  
    With ActiveDocument.Styles("QLNU三级标题").Font .#eXNyCe  
        .NameFarEast = "宋体" E 9:hK  
        .NameAscii = "Times New Roman" ]VH@\ f  
        .NameOther = "黑体" S p )}  
        .Name = "黑体" m pivg  
        .Size = 14               '四号 ri;M7rg`.{  
        .Bold = False Jqj6L993e  
        .Outline = False 8WGM%n#q  
        .Italic = wdUndefined Tz-cN  
        .Subscript = wdUndefined 3d<HIG^W}  
        .Superscript = wdUndefined prs<ZxbQb  
    End With ;E"mB4/)  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat |G@)B!>  
        .LeftIndent = CentimetersToPoints(0) ,+BgY4OY  
        .RightIndent = CentimetersToPoints(0) !491 \W0ZH  
        .FirstLineIndent = CentimetersToPoints(0) Om"3Q/&  
         \xZBu"  
        .LineSpacingRule = wdLineSpaceSingle V<pqc&f .  
        .Alignment = wdAlignParagraphLeft M^f1D&A  
         2"'8x?.V  
        .WidowControl = True DnFl *T>  
        .KeepWithNext = True #]N9/Hij#g  
        .KeepTogether = True _Xv/S_yW  
        .PageBreakBefore = False KEN-G  
        .OutlineLevel = wdOutlineLevelBodyText . R}y"O\  
         cs M|VNE>  
        .CharacterUnitLeftIndent = 0 .%<&W1  
        .CharacterUnitRightIndent = 0 o5@ jMU;  
        .CharacterUnitFirstLineIndent = 2 )89jP 088V  
         %Eh%mMb^  
        .LineUnitBefore = 0.5 7jbm w<d)9  
        .LineUnitAfter = 0 "poTM[]tZ7  
    End With pdHb  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False D` X6'PP  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll & NQR*Tn  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese Rx"Qwi,\U  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True gWo~o]f  
    DoEvents sN}@b8o@  
     PPO<{  
    '四级标题样式 NXNon*"  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") NETC{:j  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" UhTr<(@  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False uPXqTkod  
    With ActiveDocument.Styles("QLNU四级标题").Font nQH d\/B  
        .NameFarEast = "宋体" ?KXQ)Y/su  
        .NameAscii = "Times New Roman" yy1r,dw  
        .NameOther = "宋体" $?-o  
        .Name = "宋体" EXcjF  
        .Size = 12               '小四号 PZR%8 m}]u  
        .Bold = True kAliCD)  
        .Outline = False K@~#Gdnl  
        .Italic = wdUndefined |Z^g\l.j{  
        .Subscript = wdUndefined EM/+1 _u  
        .Superscript = wdUndefined /xbZC{R  
    End With E|;5Z*  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat mO> M=2A  
         ({VBp[Mh  
        .LeftIndent = CentimetersToPoints(0) +|<&#b0Xd  
        .RightIndent = CentimetersToPoints(0) ^z;,deoGh  
        .FirstLineIndent = CentimetersToPoints(0) (NC>[  
         d@4!^vD;  
        .LineSpacingRule = wdLineSpaceSingle hUxhYOp  
        .Alignment = wdAlignParagraphLeft 9y*! W  
         * _l o;  
        .WidowControl = True JJ0 CM:xe  
        .KeepWithNext = True I{I [N &N  
        .KeepTogether = True 1@S6[&_  
        .PageBreakBefore = False Nt-SC LDM  
        .OutlineLevel = wdOutlineLevelBodyText JW [\"`x!  
         XL=R]IC<.  
        .CharacterUnitLeftIndent = 0 Ur(o&,  
        .CharacterUnitRightIndent = 0 \87J~K'  
        .CharacterUnitFirstLineIndent = 2 WG luY>C;  
         %d J>8.jW@  
        .LineUnitBefore = 0 9p rsL#Fn  
        .LineUnitAfter = 0 kte.E%.PE  
         15 11<,  
    End With 7NC8<o;  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False 7 aD&\?  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll I=y j  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese mZVOf~9 E  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True [5*-V^m2  
    DoEvents *9ub.:EUwV  
     Hk*cO;c  
    '正文校式 |I5?5 J\  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") N>Y50  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" 'f7 *RSKqb  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False C'2 =0oou  
    With ActiveDocument.Styles("QLNU正文").Font 5a!e%j j  
         5@ +Ei25  
        .NameFarEast = "宋体" I 47GQho  
        .NameAscii = "Times New Roman" xBfe8lor  
        .NameOther = "宋体" f$|v0Xs  
        .Name = "宋体" U hhmG+  
         J8BT%  
        .Size = 12               '小四号 f}Tr$r  
         >#U <#  
        .Bold = wdUndefined [(F<|f:n  
        .Italic = wdUndefined *b{lL5  
        .Subscript = wdUndefined e@-Mlq)  
        .Superscript = wdUndefined F'$S!K58  
         G1_@! 4  
        .Outline = False TK/'=8  
        .Emboss = False b N e\{k  
        .Shadow = False vW-`=30  
        .Hidden = False I*S`I|{J  
         %O=V4%"m\  
        .DisableCharacterSpaceGrid = True 9PqgBq   
    End With @dCPa7:>&  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat arQ %  
         nSQ}yqM)  
        .LeftIndent = CentimetersToPoints(0) GR[>mkW!M  
        .RightIndent = CentimetersToPoints(0) 4 6lEJ  
        .FirstLineIndent = CentimetersToPoints(0) fP1OH&Ar  
         WTYFtZD[yH  
        .LineSpacingRule = wdLineSpaceExactly WriN]/yD  
        .LineSpacing = 20 ('6g)@=\U  
        .Alignment = wdAlignParagraphLeft ' VEr4&  
         3@`H<tP'6o  
        .WidowControl = False NVqC|uEAF  
        .KeepWithNext = False A=C3e4.C  
        .KeepTogether = False ![]I%'s  
        .PageBreakBefore = False 6Su@a%=j  
        .Hyphenation = False 9r+O!kF(  
         <ii1nz  
        .OutlineLevel = wdOutlineLevelBodyText h4\6 h  
         UdW(\%  
       HU[nN*  
        .CharacterUnitLeftIndent = 0 b\;u9C2y'  
        .CharacterUnitRightIndent = 0 za]p ,bMX  
        .CharacterUnitFirstLineIndent = 2 n_n|^4 w  
         ^+Vk#_2Q  
        .LineUnitBefore = 0 V<V\0n!0  
        .LineUnitAfter = 0 iq uTT~  
        .SpaceBefore = 0 ?g;ZbD  
        .SpaceAfter = 0 i;hc]fYb=K  
         o $`kpr  
        .DisableLineHeightGrid = True IPR tm!  
    End With t<k [W'#  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False J1p75c%  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll 5Vo}G %g  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese CCh8?sM  
    ActiveDocument.Styles("QLNU正文").NoProofing = True E RRT_G?  
    DoEvents wV[V#KpX8-  
     m?VRX .>  
    '图片段落样式 l5Wa'~0qA  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") .e2A*9,  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" :sV HY2x  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False 1uS-Tx  
    With ActiveDocument.Styles("QLNU图片段落").Font :6j :9lYL2  
        .Size = 12               '小四号 MhI)7jj`mt  
        .Italic = wdUndefined -+=:+LhSMb  
        .Subscript = wdUndefined ivX37,B\bS  
        .Superscript = wdUndefined >`<2}Me6  
    End With j"IM,=  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat soq".+Q  
         ^_KD&%M6  
        .LeftIndent = CentimetersToPoints(0) 0 {JK4]C  
        .RightIndent = CentimetersToPoints(0) s >VEuLY*  
        .FirstLineIndent = CentimetersToPoints(0) hJ[mf1je=  
         \}x'>6zr2  
        .LineSpacingRule = wdLineSpaceSingle "c/s/$k//  
        .Alignment = wdAlignParagraphCenter I>%S4Z+o  
        .KeepWithNext = True +e8>?dkq   
        .OutlineLevel = wdOutlineLevelBodyText 5nx<,-N*BP  
         #>:(#^Uu  
        .CharacterUnitLeftIndent = 0 &u1g7# #  
        .CharacterUnitRightIndent = 0 [)SR $/A  
        .CharacterUnitFirstLineIndent = 0 y /:T(tk$  
         ,#bb8+z&p  
        .LineUnitBefore = 0 ~x4B/zW?  
        .LineUnitAfter = 0 YZH#5]o8  
    End With #xP!!.DF(  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False #jLaIXms  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll $?)3&\)R  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese [+l  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True 0)oN[  
    DoEvents H : T N  
     \_*MJ)h)X  
     >GznG[Ku  
    '第X章 ~` \9Q  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") XJ h:U0  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" +|?|8"Qg  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False _rMT{q3  
    With ActiveDocument.Styles("QLNU章节标题").Font 5M Wvu,'%8  
        .NameFarEast = "黑体" %]<RRH.w  
        .NameAscii = "Arial Black" R@<_Hb;Aeb  
        .NameOther = "Arial Black" xEiX<lguyN  
        .Name = "黑体" =`1m-   
        .Size = 16 B8 0odU&  
        .Bold = True SCurO9RN  
        .UnderlineColor = wdColorAutomatic |#&V:GZp  
        .Outline = False }PFt  
        .Italic = wdUndefined f>8B'%]  
        .Subscript = wdUndefined (}C^_q:7d  
        .Superscript = wdUndefined [t.%&#baF  
        .Scaling = 100 >WGP{  
        .DisableCharacterSpaceGrid = True Sc/`=h]T  
    End With O5^J!(.O\Z  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat v<%kd[N  
        .LineSpacingRule = wdLineSpaceSingle !FB \h<6  
        .Alignment = wdAlignParagraphCenter wt}%2x} x  
        .WidowControl = True pYfV~Q^3  
        .KeepWithNext = True l7'{OB L  
        .KeepTogether = True !b7'>b'J<1  
        .PageBreakBefore = True Vj=Xcn#*8  
        .OutlineLevel = wdOutlineLevelBodyText dm2CA0   
         =F'M~3M   
        .LeftIndent = CentimetersToPoints(0) *vRI)>wU  
        .RightIndent = CentimetersToPoints(0) ~y)bYG!G  
        .FirstLineIndent = CentimetersToPoints(0) *f TG8h  
         {,Bb"0 \  
        .CharacterUnitLeftIndent = 0 Xn/ n|[  
        .CharacterUnitRightIndent = 0 )8$:DW;  
        .CharacterUnitFirstLineIndent = 0 =a9etF%B  
          L%WME8PB  
        .LineUnitBefore = 1 W{A #]r l  
        .LineUnitAfter = 0.5 NuD [-;N]  
         *^D@l%av;  
        .AutoAdjustRightIndent = False CzSZ>E$%U  
        .DisableLineHeightGrid = True '( *&Ax  
        .FarEastLineBreakControl = True If-,c^i  
        .WordWrap = True 7<3U?]0  
    End With om}/f`  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False 2Io6s '  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll ,!I?)hwOC  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese 7 DY WdDX  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True o9ctJf=qn  
    DoEvents &"[)s[m+t  
     oQ %\[s$  
    '表格标题 RV kU+7  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ;+i'0$;*w  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" 5 o#<`_=J  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False Z cm<Fw  
    With ActiveDocument.Styles("QLNU表格标题").Font (LRM~5KVg  
        .NameFarEast = "楷体" xJ~ gT  
        .NameAscii = "Arial" CZyz;Jtk  
        .Name = "楷体" hV-V eKjZ(  
        .Size = 10.5 . kc" E  
        .Bold = True *;hY.EuoFz  
        .Underline = wdUnderlineNone 3`A>j"  
        .Italic = wdUndefined 1~2R^#rm  
        .Subscript = wdUndefined U@6jOZ  
        .Superscript = wdUndefined 5LX8:~y  
        .Color = wdColorAutomatic sdJ%S*)5G$  
    End With ~)q  g  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat ebN(05ZV  
         D XV@DQ  
        .LineSpacingRule = wdLineSpaceSingle 4M}|/?<Br  
        .Alignment = wdAlignParagraphCenter N0Efw$u  
        .KeepWithNext = True 7G5y)Qb  
        .KeepTogether = True VEj$^bpp5s  
        .OutlineLevel = wdOutlineLevelBodyText y?pD(u  
         XXW]0{k:y  
        .LeftIndent = CentimetersToPoints(0) #bT8QbJ(  
        .RightIndent = CentimetersToPoints(0) e}42/>}#D  
        .FirstLineIndent = CentimetersToPoints(0) ;} lT  
         >Mvka;T]  
        .CharacterUnitLeftIndent = 0 | h&<_9  
        .CharacterUnitRightIndent = 0 <4bz/^  
        .CharacterUnitFirstLineIndent = 0 (j' {~FB  
         @Od^k#  
        .LineUnitBefore = 1 E6Q]A~  
        .LineUnitAfter = 0 Wy<[(Pd   
         "z^(dF|  
    End With B<|VeU  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False ~|r~NO 7[  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll D~#Ei?aH  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese .u1X+P7  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True rpUTn!*u/  
    DoEvents W1JvLU5L*r  
i8A-h6E  
    '表格首行 AAF']z<4_"  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") TF?~vS%@P  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False +GEdVB  
    With ActiveDocument.Styles("QLNU表格首行").Font [ D"5@  
        .NameFarEast = "楷体" &S39SV  
        .NameAscii = "Times New Roman" Py\/p Fvg  
        .Name = "楷体" ^fj30gw7\5  
        .Size = 9 9\VV++}s>o  
        .Bold = True AO,^v+ $  
        .Underline = wdUnderlineNone Fh4Exl@6  
        .Italic = wdUndefined a Z8f>t1Q  
        .Subscript = wdUndefined aUi^7;R&<  
        .Superscript = wdUndefined y9U~4  
    End With &ZL4/e  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat q)3QmA~  
        .LineSpacingRule = wdLineSpaceSingle @D$ogU,#  
        .Alignment = wdAlignParagraphCenter Pa'N)s<  
         D `av9I  
        .LeftIndent = CentimetersToPoints(0) Md&K#)9,(  
        .RightIndent = CentimetersToPoints(0) x~ID[  
        .FirstLineIndent = CentimetersToPoints(0) Ln8r~[tVE<  
          |$C fm}  
         tB`IBuy9!"  
        .CharacterUnitLeftIndent = -0.5 \c1>15  
        .CharacterUnitRightIndent = -0.5 `S A1V),~  
        .CharacterUnitFirstLineIndent = -0.5 p2 !w86 F  
         p_i',5H(  
        .LineUnitBefore = 0 d~q7!  
        .LineUnitAfter = 0 E.,  
        .SpaceBefore = 0 Sq x'nXgO  
        .SpaceAfter = 0 .I]EP-  
         P8[k1"c!  
    End With JfRLqA/  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False uFuP%f!yY  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll _ BoA&Ism  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese kZ=2# .  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True a4 mRu|x  
    DoEvents <tW/9}@p9  
OQVo4yl"  
    '表格内容 ; o(:}d  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") VAp  1{  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False OBf$Z"i  
    With ActiveDocument.Styles("QLNU表格内容").Font 'Hsd7Dpi}  
        .NameFarEast = "楷体" R5xV_;wD  
        .NameAscii = "Times New Roman" G!Yt.M 0  
        .Name = "楷体" y+ 4#Iy  
        .Size = 9  &\ K  
        .Bold = False  81!gp7c  
        .Underline = wdUnderlineNone ;B !p4 hu  
        .Italic = wdUndefined P('bnDU  
        .Subscript = wdUndefined p) ?6~\F:  
        .Superscript = wdUndefined Z>~7|vl  
    End With fg/hUUl  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat )"]( ?V  
        .LineSpacingRule = wdLineSpaceSingle 6]mAtA`Y  
        .Alignment = wdAlignParagraphCenter "jf_xZ$H-  
         8Vy/n^3)  
        .LeftIndent = CentimetersToPoints(0) :o:Z   
        .RightIndent = CentimetersToPoints(0) 3 bT?4  
        .FirstLineIndent = CentimetersToPoints(0) !+DhH2;)F  
         :jJ0 +Q  
        .CharacterUnitLeftIndent = -0.5 o1k+dJUd  
        .CharacterUnitRightIndent = -0.5 jW{bP_,"  
        .CharacterUnitFirstLineIndent = -0.5 ( j:eky  
        .LineUnitBefore = 0 K1w:JA6(  
        .LineUnitAfter = 0 OVE?;x>n/1  
        .SpaceBefore = 0 dM-~Qo  
        .SpaceAfter = 0 = toU?:.  
    End With ?7"v~d]>  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False xyHv7u%*  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll 8Y_lQfJa  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese _p?s[r*  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True (+}44Ldt  
    DoEvents g>g*1oS  
4]ko  
    '图片标题 UgD)O:xaU  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") -"I9`  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" k\RS L  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False ^\r{72!y  
    With ActiveDocument.Styles("QLNU图片标题").Font CSH*^nk':O  
        .NameFarEast = "楷体" y,K> Wb9e  
        .NameAscii = "Times New Roman" @k\,XV`T~t  
        .Name = "楷体" %~M#3Ywa  
        .Size = 10.5 gX| \O']6  
        .Bold = True {{AZW   
        .Underline = wdUnderlineNone \(}pm#O  
        .Italic = wdUndefined ZH`(n5  
        .Subscript = wdUndefined Fzt7@VNxc  
        .Superscript = wdUndefined xEv?2n@A  
        .Outline = False !$#5E1:\  
        .Shadow = False TPLv]$n  
        .Color = wdColorAutomatic  yyGn <  
    End With n]t3d  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat xZ(d*/6E  
        .LineSpacingRule = wdLineSpaceSingle >*\yEH9"   
        .Alignment = wdAlignParagraphCenter Ya-GDB;L  
         5=b6B=\*~  
        .KeepWithNext = wdUndefined nW`] =  
        .KeepTogether = True h+S]C#X,}  
        .OutlineLevel = wdOutlineLevelBodyText ?J-D6;  
         `XM0Mm%  
        .LeftIndent = CentimetersToPoints(0) 8U n 0<+b  
        .RightIndent = CentimetersToPoints(0) -j@IDd7  
        .FirstLineIndent = CentimetersToPoints(0) wYDdy gS  
         ]]y4$ [|L  
        .CharacterUnitLeftIndent = 0 |v<4=/.  
        .CharacterUnitRightIndent = 0 {Es1bO  
        .CharacterUnitFirstLineIndent = 0 DQ&\k'"\  
         1kD1$5  
        .LineUnitBefore = 0 v5&W)F  
        .LineUnitAfter = 0 T-]UAN"O  
    End With d$8K,-M  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False cC]]H&'Hg+  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll W XG0Z  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese +O)ZB$w4  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True $LG.rJ/*  
    DoEvents L* ScSxw  
t>x!CNb'C  
    '目录项 |XMWi/p  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") g`~;"%u7cn  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" b;nqhO[f}  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False b}*q* Bq  
    With ActiveDocument.Styles("QLNU目录项").Font v^;vH$B  
        .NameFarEast = "黑体" aimf,(+  
        .NameAscii = "Times New Roman" vQj{yJ\l1  
        .NameOther = "Times New Roman" Asy2jw\V  
        .Name = "黑体" ff=RKKnN  
        .Size = 10.5 a-AA$U9hj  
        .Bold = False ],vid1E  
        .Italic = wdUndefined MHGaf`7ro  
        .Underline = wdUnderlineNone $M~`)UeV_  
        .Color = wdColorAutomatic SwaMpNXL  
        .Superscript = wdUndefined #V$sb1u  
        .Subscript = wdUndefined I}m>t}QRI_  
    End With m_FTg)_=  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat qIB2eCXw  
         uJ8FzS>[V  
        .LineSpacingRule = wdLineSpaceSingle =1xVw5^F  
        .Alignment = wdAlignParagraphLeft \FF|b"E_=  
         _Fe=:q  
        .WidowControl = False @H^\PH?pp  
        .KeepWithNext = False )<Mo.  
        .KeepTogether = False ,@I\'os  
        .PageBreakBefore = False r?dkE=B  
        .NoLineNumber = False MZqHL4<|  
        .OutlineLevel = wdOutlineLevelBodyText rV2>;FG  
         t gHN\@yj  
        .LeftIndent = CentimetersToPoints(0) D_G]W W8  
        .RightIndent = CentimetersToPoints(0) m)]|mYjju  
        .FirstLineIndent = CentimetersToPoints(0) L0w2qF  
         0.c9 6&  
        .CharacterUnitLeftIndent = 0 [&l+Ve(  
        .CharacterUnitRightIndent = 0 L">m2/ HG  
        .CharacterUnitFirstLineIndent = 0 "ZA`Lp;%w  
         @Y<fj^]k  
        .LineUnitBefore = 0 eu?P6>urA  
        .LineUnitAfter = 0 P@x@5uC2  
    End With rv<qze;?|  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False ,b?G]WQrHs  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll >FJK$>[1:p  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot iRqLLMrn  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese LR'~:46#u  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True q^7=/d8  
    DoEvents Fq`@sM $  
     d*=qqe H  
    '参考文献 :XTxrYt28  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") eLbh1L  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" /iJsa&W}  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False 'Mhnu2d  
    With ActiveDocument.Styles("QLNU参考文献").Font ~}SQLYy7Z  
        .NameFarEast = "宋体" ?}S!8;d  
        .NameAscii = "Times New Roman" @}uo:b:Q  
        .NameOther = "Times New Roman" (cI@#x  
        .Name = "Times New Roman" kBY#= e).  
        .Size = 12 j&b<YPZ  
        .Bold = False *~w?@,}  
        .Italic = wdUndefined _X@ Q`d  
        .Subscript = wdUndefined O;T)u4Q&3  
        .Superscript = wdUndefined ]mjKF\  
        .Underline = wdUnderlineNone _@VKWU$$  
        .UnderlineColor = wdColorAutomatic M'oQ<,yW-  
        .Color = wdColorAutomatic 8#4Gs Q"  
        .Engrave = False QUg<~q)Oq  
    End With ;yCtk ~T%  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat Bo1 t}#7  
         lTFo#p_(  
        .LineSpacingRule = wdLineSpaceExactly *Wcq'S  
        .LineSpacing = 16 2vddx<&  
        .Alignment = wdAlignParagraphLeft bjN"H`Q  
        .WidowControl = False F!2VTPm9z  
        .KeepWithNext = False k^K%."INn  
        .KeepTogether = False CK_\K,xVT  
        .PageBreakBefore = False ,u!_mV  
        .OutlineLevel = wdOutlineLevelBodyText SRU#Y8Xv|  
         85Kf>z::c  
        .LeftIndent = CentimetersToPoints(0) wo$ F_!3u  
        .RightIndent = CentimetersToPoints(0) W .Al\!Gi  
        .FirstLineIndent = CentimetersToPoints(0) z6 h/C {  
         8%xiHPVg  
        .CharacterUnitLeftIndent = 0 gKgdu($NJ  
        .CharacterUnitRightIndent = 0 u'gsIuRJ  
        .CharacterUnitFirstLineIndent = -2 sDu&9+  
         Q8]S6,pt  
        .LineUnitBefore = 0 }uO2 x@  
        .LineUnitAfter = 0 &4)PW\ioY  
        .SpaceBefore = 0 75A60Uw  
        .SpaceAfter = 0 ^K 9jJS9K  
         238z'I+$G/  
    End With Ye^xV,U@  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False Vg mYm~y'  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll =/4}!B/  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS PWyFys  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True p%/lP{  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese $-6[9d-N  
    DoEvents Tz7R:S.  
7t78=wpLc  
    ' ,S~A]uH'  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") W 9bpKmc  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" ?ZkVk=t?  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False 3wfJ!z-E8  
    With ActiveDocument.Styles("QLNU论文题目").Font pBn;:  
        .NameFarEast = "黑体" 8^R~qpg%  
        .NameAscii = "Arial Black" c:s[vghH^#  
        .NameOther = "Arial Black" #vViEBVeN  
        .Name = "Arial Black" C\|HN=2eh  
        .Size = 16 Jq+@%#G  
        .Bold = False a t=;}}X  
        .Italic = wdUndefined Z'm( M[2K  
        .Superscript = wdUndefined EJJ&`,q  
        .Subscript = wdUndefined O<XNI(@  
        .Underline = wdUnderlineNone zOJzQZ~  
        .UnderlineColor = wdColorAutomatic M?kXzb\O  
        .Color = wdColorAutomatic  ?3i<^@?  
Rn{X+b.  
    End With G B>T3l"  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat dbF9%I@  
        .LineSpacingRule = wdLineSpaceSingle n:Dr< q .  
        .Alignment = wdAlignParagraphCenter h(^[WSa  
        .WidowControl = True tMo=q7ig  
        .KeepWithNext = True s8k4e6ak  
        .KeepTogether = True #jg3Ku;Y  
        .PageBreakBefore = True $]?M[sL\N7  
        .NoLineNumber = False 5z" X>!?^  
        .OutlineLevel = wdOutlineLevelBodyText JqEo~]E]  
         ;)sC{ "Jb  
        .LeftIndent = CentimetersToPoints(0) rKl  
        .RightIndent = CentimetersToPoints(0) B<~BX [  
        .FirstLineIndent = CentimetersToPoints(0) Hq,N OP  
         8P&z@E{y  
        .CharacterUnitLeftIndent = 0 ? :F Jc[J  
        .CharacterUnitRightIndent = 0 9A}y^=!`  
        .CharacterUnitFirstLineIndent = 0 w2K>k/v{-  
         ;:bnLSPo  
        .LineUnitBefore = 1 tcI Z 2H%  
        .LineUnitAfter = 1 nzU0=w}V  
         5rJ7CfVq  
        .BaseLineAlignment = wdBaselineAlignAuto Cio (Ptt:  
    End With HLh]*tQG  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False ~Q=^YZgn8  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll :;Npk9P(N  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS s##XC^;p[  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True ntZH O}'  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese QR$m i1Vv\  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True ff aMF~+  
    DoEvents j"&Oa&SH  
     3v)`` n@  
    '中文摘要 7qdB   
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") lnV!Xuf  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" CZ(fP86e  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False e C&!yY2g  
    With ActiveDocument.Styles("QLNU中文摘要").Font cWI7];/d;  
        .NameFarEast = "宋体" 2 F ~SH  
        .NameAscii = "Times New Roman" $tK/3  
        .NameOther = "Times New Roman" AO8%!+"_  
        .Name = "Times New Roman" jLEO-<)-)  
        .Size = 12 V<d` .9*}  
        .Bold = wdUndefined X"T)X#:)  
        .Superscript = wdUndefined VxU{ZD~<Z"  
        .Subscript = wdUndefined 2V$YZSw6q  
        .Italic = wdUndefined +V#dJ[,8;.  
        .Underline = wdUnderlineNone .;&4'ga 4  
        .UnderlineColor = wdColorAutomatic `>0(N.'T  
        .Color = wdColorAutomatic '/X m%S  
    End With !ed0  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat 5g2:o^  
        .LineSpacingRule = wdLineSpaceExactly yQC8Gt8  
        .LineSpacing = 20 xJFxrG'c  
        .Alignment = wdAlignParagraphLeft w}x&wWM  
         'tVe#oI  
        .WidowControl = False "h&[6-0'  
        .KeepWithNext = False _~!c%_  
        .KeepTogether = True *C^T CyBK;  
        .PageBreakBefore = False :} o{<U  
        .NoLineNumber = False =DI/|^j{ ;  
        .OutlineLevel = wdOutlineLevelBodyText sT91>'&  
         Pa ^_ s  
        .LeftIndent = CentimetersToPoints(0) Nh6!h%  
        .RightIndent = CentimetersToPoints(0) YO;@Tj2)x  
        .FirstLineIndent = CentimetersToPoints(0) #jw%0H;l]  
         i"{znKz vD  
        .CharacterUnitLeftIndent = 0 `,FhCT5  
        .CharacterUnitRightIndent = 0 WX $AOnEv  
        .CharacterUnitFirstLineIndent = 2  j 2e|  
        .LineUnitBefore = 0 rP}0B/  
        .LineUnitAfter = 0 }/7rA)_  
         0'R }'  
    End With o7yvXrpG(U  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False K !gocNOf  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll Ystd[  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS VJtRL')  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True .?r} 3Ch  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese M7neOQHq  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True ` )~CT  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete #?bOAWAwLh  
    DoEvents U#4>GO;A  
     r<"k /  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") O{=@c96rl  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" .y#>mXm>  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False z>spRl,dr  
    With ActiveDocument.Styles("QLNU英文标题").Font F4g3l    
        .NameFarEast = "黑体" U@)WTH6d  
        .NameAscii = "Arial Narrow"  L$[1+*  
        .Name = "Arial Narrow" =AeOkie  
        .Size = 16 Wk]E6yz6  
        .Bold = True Vv>hr+e  
        .Bold = wdUndefined ,){WK|_  
        .Superscript = wdUndefined A&Cs (e  
        .Subscript = wdUndefined g<i>252>  
        .Italic = wdUndefined ~Ecx>f4nX  
         s18 A  
        .Underline = wdUnderlineNone tj tN<y  
        .UnderlineColor = wdColorAutomatic 1xsB@D  
        .StrikeThrough = False H`T}k+e2-N  
        .DoubleStrikeThrough = False +)7h)uq  
    End With +qyx3c+  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat r#^uY:T%  
        .LineSpacingRule = wdLineSpaceSingle ,*;g+[Bhpl  
        .Alignment = wdAlignParagraphCenter p%e />N.P  
        .WidowControl = True B)Dsen  
        .KeepWithNext = False  e:6mz\J  
        .KeepTogether = False A)kdY!}  
        .PageBreakBefore = False =n M Aw&`  
        .NoLineNumber = False cUU"*bA#  
        .FirstLineIndent = CentimetersToPoints(0) ymA8`k5>@  
        .OutlineLevel = wdOutlineLevelBodyText {)- 3g~  
         qkq^oHI  
        .LeftIndent = CentimetersToPoints(0) w# ;y  
        .RightIndent = CentimetersToPoints(0) @Sz7*p  
        .FirstLineIndent = CentimetersToPoints(0) Kj|\ALI':  
         RIF*9=,S  
        .CharacterUnitLeftIndent = 0 Ewo6Q){X  
        .CharacterUnitRightIndent = 0  37|EG  
        .CharacterUnitFirstLineIndent = 0 M =GF@C;b  
         A*? Qm  
        .LineUnitBefore = 1 ,f[Oy:fr  
        .LineUnitAfter = 1 }9L;|ul6  
         0y/P  
    End With YU1z\pK  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False iD:T KB_r  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll ,uS}wJAX  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS 8*(|uX  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True 0JLQ.%_  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese HH^yruP\}  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True BU%gXr4Ra  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete vNAQ/Q  
    DoEvents "^Vfo$q  
4pFoSs?\  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") Qr[".>+  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" {uiL91j.  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False iMp_1EXe  
    With ActiveDocument.Styles("QLNU英文摘要").Font SCXtBZ`.G  
        .NameFarEast = "宋体" V"|j Dnn5  
        .NameAscii = "Arial" ]#J-itO  
        .NameOther = "Arial" <GoZ>  
        .Name = "Arial" n*N`].r#{=  
        .Size = 12 VqdR  
        .Bold = wdUndefined rF . Oo0  
        .Italic = wdUndefined 6am<V]Hw0F  
        .Superscript = wdUndefined YHo*IX')C?  
        .Subscript = wdUndefined q_0,KOGW  
    End With `AhTER  
     6$p6dmV|  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat e:=+~F(f  
         uq@_DPA7  
        .LineSpacingRule = wdLineSpaceExactly l`*R !\  
        .LineSpacing = 20 {7 nz:f  
         f >\~h,SLL  
        .Alignment = wdAlignParagraphJustify o>\epQt~/p  
         $`Aps7A  
        .WidowControl = False ] U[4r9V  
        .KeepWithNext = False qLm g18  
        .KeepTogether = False /U"3LX  
        .PageBreakBefore = False A,%NdM;t=5  
        .NoLineNumber = False FJ O- p  
         DbK-3F_  
        .OutlineLevel = wdOutlineLevelBodyText @86I|cY  
         lkgB,cflpi  
        .LeftIndent = CentimetersToPoints(0) B%KfB VC  
        .RightIndent = CentimetersToPoints(0) rh6m  
        .FirstLineIndent = CentimetersToPoints(0) `qj24ehc  
         ;d||u  
        .CharacterUnitLeftIndent = 0 s C?-L  
        .CharacterUnitRightIndent = 0 +v|]RgyW)  
        .CharacterUnitFirstLineIndent = 2 6"jV>CNc@  
         `HsI)RmX  
        .LineUnitBefore = 0 &+8cI^ kp  
        .LineUnitAfter = 1 :Pi="  
         ')j@OO3  
    End With /??nO Vvt  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False );ZxKGjc4  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll h,P#)^"  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS 6ieP` bct  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False hdxq@%Vs  
    DoEvents ,+E"s3NW  
>3y:cPTM5  
    Options.Pagination = True !o8(9F  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." Z< $ y)bf  
    DoEvents "A&HNkRz  
    ActiveDocument.Repaginate Np R&`]  
'E1m-kJz  
End Sub k!sk\~>YO  
YRJw,xl  
-l q,~`v  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: r WPoR/M  
%jmL #IN)  
用VBA控制WORD自己修订学生毕业文的格式。 _0qp!-l }  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? e'1}5Ky  
y4 ~;H{!  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

W: v w.  
l|p \8=  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 kt*""&R  
第6车皮  8DsXw@o  

6(uK5eD(!n  
qvH7otA  
第9车皮 -1 Ok_h"  
g-Y2U}&  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 &>m# "A\^  
gI SP .  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 {T0f]]}Q  
Gx]J6Z8  
Main2.bas 3. kP,  
_*SA_.0  
Attribute VB_Name = "SubMain" IP]"D"  
Option Explicit -! k$ Z  
!6UtwCVR  
'采集文件与临时文件 Q8kdX6NMd&  
Public Const TmpFile As String = "d:\30-0600.dat" DKG%z~R*  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 m6 )sX&  
^/<0r] =  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long A@kp` -  
Public hBCFile As Long  '记录采集参数的文件 lStYfO:<'v  
Public Const TmpBMP As String = "d:\1.bmp" dDAI fe2y  
Public hTmpFile As Long cCoa3U/  
:q x d])-  
$]Vvu{  
'采集窗口参数常量 61W ms@D%  
Public Const FrameH As Long = 280& Gs% cod  
Public Const FrameW As Long = 768& X(W d  
Public Const pFrameSize As Long = FrameW * FrameH v&NC` dVR  
!e}LB% zf  
'标志区范围,用于识别车辆 5ZRO {rf  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X v;q<h  
Public Const mkW As Integer = 28  '识别标志立柱宽度 ;;2Yfn'`9  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) \[Dxg`;4  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) l<]@5"wN  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 2$g3ABfV  
'车缝检测位置常数 +x3T^G  
Public Const sSize As Long = 32& LXIQpD,M  
Public Const sPos As Long = 310& KfO$bmwmx  
Public Const sPosL As Long = 200& Uo!#p'<w)p  
Public Const sPosR As Long = 500& 8$H_:*A?  
'车缝检测框位置 &{Zt(%\ '  
Public Slice(1 To sSize, 1 To FrameH) As Byte I}#_Jt3R  
Public SliceL(1 To sSize, 1 To FrameH) As Byte YtzB/q8I  
Public SliceR(1 To sSize, 1 To FrameH) As Byte pa6.Tp>  
Public avSL As Integer, avSLR As Integer, avSLL As Integer fJb<<6C  
5jTBPct   
sMq*X^z )?  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 ~ "^]\3#  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 B4yC"55  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 `Eijy3>h  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long }CiB+  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte e*7nq ~ B5  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 >0W:snNK  
&3SQVOW ~T  
Tq r]5  
u7oHqo`  
'一次连续采集的帧数 2&f] v`|M|  
Public tFrames As Long b0A*zQA_)  
SOq{`~,4B  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 QeK@ ++EVc  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 \m3;<A/3n  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize [q/tKdo@  
S+d@RMdes  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte 4+Sq[Rv0  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte _\9|acFT2O  
Public pWorkSpace(1 To FrameW * FrameH) As Long hpxqL% r  
Public Const pBufferSize As Long = FrameW * FrameH * 2 }E\ b_.  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 nty^De%  
bvf}r ,`Q7  
Public hBoard As Long   '采集卡标识 #sn2Vmi  
Public mBufferAddr As Long  '缓存地址 XF`,mV4  
Public BufferSize As Long  '缓存大小(字节) x2|YrkGv  
Public iCurrentCard As Long \M H\!  
Public CapStatus As Long :Kl~hzVSOa  
Public iFrames As Long ~JJuM  
Public currentBr As Byte, currentContr As Byte [/s^(2%  
|6%B2I&c  
Public hMEM As Long, mStatus As Long v[r5!,F  
Public Const hMemSize As Long = pFrameSize * 4 B>hC8^.S|w  
Public hMemWork As Long FJ|6R(T_  
Public Const hMemWorkSize As Long = pFrameSize * 5 0wx lsny?  
#+v Iq?  
pohA??t2:  
5ayM}u%\~  
'串口接收轨道衡数据 ;^q@w  
Public WeightFromCom As String {R2gz]v4  
Public bReceiveComplete As Boolean f__r " N  
L"w% ew  
.o(XnY)cgJ  
Public Type GrayBMPHeader GWNLET  
  Tag As Integer /.'tfy $  
  FileLength As Long    '文件大小 T+OQa+E@P  
  Reserve1 As Long [Ch)6p  
  DataOffset As Long    '图像数据偏移量 1^*M*>&d<  
  BMPHeaderSize As Long  '文件头长 e;y\v/A  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… A/XY' 3  
                        'the following sizes are possible: Q -!,yCu  
                        '28h - windows 3.1x, 95, nt, … %6\e_y%  
                        '0ch - os/2 1.x . C g2Y  
                        'f0h - os/2 2.x wF +9Iu  
E|(T (4;  
  ImageWidth As Long           '图像宽(像素数) %>dCAj"  
  ImageHeight As Long          '图像高(像素数) 7r`A6 \ !  
  PlaneNumber As Integer  '图像层数 JMMT886  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap \"]vSx >  
                                        '4 - 16 color bitmap QJL%J  
                                        '8 - 256 color bitmap v&hQ;v  
                                        '16 - 16bit (high color) bitmap -'j_JJ  
                                        '24 - 24bit (true color) bitmap ZeUA  e  
                                        '32 - 32bit (true color) bitmap tSr.0'CE  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) ? 1OZEzA!  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) y#4f^J!V  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) ]wH,534  
                                    '3 - bitfields (also identified by bi_bitfields) HC4vet  
  IMAGESIZE As Long  '图像数据字节数 F__j]}?  
  hResolution  As Long  '水平分辩率  像素数/米 #}/YnVk  
  vResolution  As Long  '垂直分辩率 ?R  4sH  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 3;wAm/Z:Q  
  ImportantColors As Long xQ[~ c1  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 "ooq1 0P  
End Type E4a`cGb  
)jM' x&Vg  
j4ARGkK5B  
}9&Z#1/  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader I Xm}WTgF!  
Public sRECT As RECT He#5d!cf:M  
PdUlwT? 8C  
_vQtV]  
Public conn As ADODB.Connection uQwKnD?F+e  
Public rsTrain As ADODB.Recordset *} pl  
Public rsOperater As ADODB.Recordset z|w@eQ",  
Public rsGoods As ADODB.Recordset XYJ7k7zc+Y  
Public rsGood2 As ADODB.Recordset I[r  
Public rsSender As ADODB.Recordset xWwQm'I2}  
Public rsReceover As ADODB.Recordset O "jX|5  
Public rsTrainTMP As ADODB.Recordset (]JZ1s|  
Z /#&c  
BO#XQ,  
'打开采集卡 }@kD&2  
'设置参数 P}] xz Vy  
'设置为实时单帧采集到缓存方式 {*gO1TZt9  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 J}Q4.1WG$  
v"y0D  
Q>jx`68'KI  
Sub Main() LL|uMe"Jb  
  Dim i As Integer, status As Long e)pQh& uD  
     Htg,^d 5  
   InitBMPinfo j.? '*?P  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 tE i-0J  
    BMPHeader.Tag = &H4D42 6qW/Td|g  
    BMPHeader.ImageWidth = FrameW 9~ bl  
    BMPHeader.ImageHeight = FrameH o"^+i#H!  
    BMPHeader.BMPHeaderSize = &H28 Q\pTyNAYn  
    BMPHeader.PlaneNumber = 1 zYCrfr  
    BMPHeader.bpp = 8  V Ae@P  
    BMPHeader.Compression = 0 k 8C[fRev  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 DAZzc :1Aj  
    BMPHeader.vResolution = &H1274 IFr q\H0  
    BMPHeader.ColorsinBMP = 256 [0M2`x4`  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP -dCM eC  
    BMPHeader.DataOffset = Len(BMPHeader) *Nv!Kuk  
    For i = 0 To 255 83 O+`f  
      BMPHeader.Pallate(i) = RGB(i, i, i) ,/d R  
    Next i (=hXt=hZ  
    BMPHeader.IMAGESIZE = FrameH * FrameW HgHhc&-  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE huMNt6P[  
sFd"VRAV~E  
BoJYP  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) X2X.&^  
     < r6e23  
    BMP1.ImageWidth = FrameW ~FnB!Mh}?  
    BMP1.ImageHeight = FrameH * 2 dKs^Dq  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight 'hTA O1n8  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE 2E V M*^A  
9ANC,+0p  
  '确定标志位置,为pilarX, pilarY确定初始值 S,9}p 1  
   PilarW = mkW ^Z?X\t  
   PilarH = mkH  '此两项为固定值 ikr|P&e#u  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) {`2R<O  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 vx:MLmZ.  
   G+k[.  
   :6~DOvY  
  '连续采集记录文件 $$U Mc-Pq  
  ' 建立一个缓冲区为页对齐方式的文件  .AEOf0t  
  If Dir(TmpFile) <> "" Then 7MRu=Z.-b  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ e,Ih7-=Er,  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 'S_kD! BO  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 t<_Jx<{2  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 KC+C?]~M  
  Else .~ )[>  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ !ke_?+ 8sY  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 1ga-8&!  
  End If 9.<dS  
  If hFile = 0 Then aNZJs<3;'D  
    MsgBox TmpFile & ": File Open Error", vbOKOnly mcbr3P  
    Exit Sub Ee &A5~  
  End If m!{}Y]FZn  
  '采集参数记录文件 ~ VNN  
hBCFile = FreeFile() Y,-?oBY  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile 4'&j<Ah[#  
   W/z\j/Rgc  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 ]_cBd)3P}  
If hMEM = 0 Then X bF;  
    fStatus = GetLastError ?vHow $  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ Y)?dq(  
     & "请向技术人员报告该错误代码。", vbOKOnly tc go 'V  
    CloseHandle hFile KmuE#Ia  
    Exit Sub n5nV4 61U  
End If 8vzjPWu  
qo1eHn4  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) #41fRmzC  
If hMemWork = 0 Then d>ltL`xn  
    fStatus = GetLastError [iJU{W  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ ?{bF3Mz=  
     & "请向技术人员报告该错误代码。", vbOKOnly p& B c<+3e  
     '释放已成功分配的内存 HK@LA3  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) x?hdC)#DWI  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) 4vri=P 2%  
     aE[>^~Lv}  
    CloseHandle hFile Vb${Oy+  
    Exit Sub 0_Gi1)  
End If b`x7%?Qn  
Mx ?{[zT"  
' Test writing .'3&!#3  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0&  2C9wOO  
     cR; zNS  
   '初始化采集卡参数 l `D>h2]  
   iCurrentCard = -1 Y2&>;ym!  
   hBoard = okOpenBoard(iCurrentCard) W$&kOdD!$  
   Debug.Print hBoard y[U/5! `zV  
   If hBoard = 0 Then h/h`?vWu  
      ExitGrabber g[VVxp!C<  
      End s%tPGjMq  
   End If m$T?~o o  
   okGetBufferSize hBoard, mBufferAddr, BufferSize U) tqo_  
   If mBufferAddr = 0 Then l2v4SvbX  
     MsgBox "缓存不存在!" fz%I'+!  
     ExitGrabber zzf;3S?  
   End If "AN2 K  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) '4gi*8Y  
   g.AMCM?z  
   |aH;@V  
   currentBr = 128: currentContr = 128 }E=:k&IDPB  
   '设置视频输入参数 _%g}d/v}pO  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 ]Y#$!fIx  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input DqgYc[UGA  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度  Vf:w.G A  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 :HSqa9>wa  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 @agW{%R:.  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 J(BtGGU'  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) ~7Ji+AJA  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) 6S-1Wc4  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) Qr`WPTQr"  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 ]LFY2w<  
   !Vtt.j &4  
   '设置采集参数 C4Pi6.wf  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 owClnp9K  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 f/spJ<B).4  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 V=<OV]0  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 n@pm5f  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 n^8LF9r  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 X[L6Av  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 yNY *Fl!  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 ~n)!e#p  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 |ITSd%`3_  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 Yjv[rH5v  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 +\SNaq~&  
   =NyN.^bwT  
   ahagt9[,:F  
   okCloseBoard hBoard wRgh`Hc\}  
   Sleep 50 g8 (zvG;Y  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 iI_ad7,u  
   ->DfT*)  
   '设置数据传送方式 e:9CD-  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 8 *@knkJ  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 {}Y QB'}  
   (*63G4Nz\  
   sRECT.Right = -1   '用于获得当前设置值 @\[UZVmBw  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) sb 3l4(8g  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom \;0J6LBc  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 7aH E:Dnwp  
   sRECT.Left = 0 =^. f)  
   sRECT.Top = 0 I(6k.PQ  
   sRECT.Right = sRECT.Left + FrameW DlB"o.  
   sRECT.Bottom = sRECT.Top + FrameH * 2 [al,UO  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) "j+zd&*={  
   FA 1E`AdU  
   sRECT.Right = -1   '检查新设置值 v#iKa+tx  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) !^Mk5E(  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom |yE_M-Nc  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) zk+&5d 4(  
   s>E u[ uA  
   If TESTSignal = False Then (mq 7{ ;7y  
      'ExitGrabber P8DT2|Z6f]  
   End If m5HP56a  
   2ql7*g?Uq@  
   ]h0Fv-[A  
   jEQr{X7bEL  
   '设为实时采集状态 >n,RBl  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) z/bJDSQ  
   pWo`iM& F  
   SB#YV   
   '单帧采集 !!Tk'=t9"3  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 5oz[Njq4  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) PV?XpT  
   okCaptureTo hBoard, BUFFER, 0, 1 'single NB]T~_?]*  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 c5_?jKpl  
   '   Sleep 20 yVe<[!hJ  
   'Loop RX",Zt$q  
   okGetCaptureStatus hBoard, True Xg*IOhF6x  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize ny:c&XS  
   '写入768*576测试图象 <v<TsEI  
   ArrayToBMP TmpBMP A1xY8?#?~c  
   7 4rmxjiN  
   '打开数据库 lQs|B '  
   Set conn = New ADODB.Connection Fs q=u-= :  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 3}::"X  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ g%z?O[CN  
      "; Mode=Read|Write" @kR/=EfS  
   conn.Open *u Ynu|UQH  
   O=os ,'"  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) . e2qa  
   frmRecord.Visible = True 'jp nQcwxx  
   frmQuery.Visible = True r!eCfV7  
   Load frmReceiveFromComm >S /Zd  
   .pNPC|XU  
   '调试参数 |RqCw7  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then 6l|pTyb1  
     SignalBox.Visible = True u@SE)qg  
   End If :[gM 5G  
   If InStr(UCase(Command()), "/COMM") > 0 Then 1x+Y gL5  
     frmReceiveFromComm.Visible = True >SJ# r Z  
   End If `r"euO r\  
1Yt;1k'  
End Sub x{u7#s1|/  
cnAwoTt4  
Sub ExitGrabber() L]{ 1"`#  
  '关闭数据库 1gp3A  
  '关闭采集卡 {;4AdZk  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) Qh%(yL!  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ${n=1-SMU  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) ,RFcR[ak  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) #pJ^w>YNy  
  okStopCapture hBoard |;q*Zy(  
  okCloseBoard hBoard wI + oG  
  CloseHandle hFile 7)zn[4v7qt  
  Close #hBCFile .+XGbs]kCi  
  conn.Close /ZAS%_as  
  End \m!swYy  
End Sub 1-@.[VI  
#84pRU~  
Function ArrayToBMP(ByVal File As String) EZkg0FhkZ  
Dim BytesWrite As Long Q2;zve&Dl  
kq6K<e4jO  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ \XR%pC   
  CREATE_ALWAYS, 0&, 0&) ARYqX\-e  
ZOl =zn  
If hTmpFile = 0 Then oD,f5Ci-  
   ArrayToBMP = False ^n5[pF}Gw  
   Exit Function 2#Fc4RR;  
End If sMAc+9G9k  
A:3bL: ;t  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN >j1\]uo  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& WXj}gL`  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN 8ID fYJ  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& O~F/pJN`  
L|G!of[8n  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN X&._<2  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& 'tK5s>gv<  
[T', ZLR|  
If BytesWrite < pFrameSize Then (j-[m\wF  
  ArrayToBMP = False ;czMsHu0X  
End If R4,j  
>b;fhdd:4  
CloseHandle hTmpFile hx$-d}W{  
YIA}F1:  
End Function jnFCt CB  
4ew|5Zex.~  
Function ArrayToBMP1(ByVal File As String) bu"R2~sb  
~:ddTv?F  
Dim BytesWrite As Long _H|c _  
t Be)#-O  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ 70! &  
  CREATE_ALWAYS, 0&, 0&) =p>"PqJ/7n  
c@:L7#8  
If hTmpFile = 0 Then ~o`I[-g)  
   ArrayToBMP1 = False y|!%C-P  
   Exit Function {H eIY2  
End If 6L~@jg~0A[  
gkS#=bv9e@  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN m3]|I(]`Xe  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& \ief [  
m`UNdFS  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN  =%AFn9q  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& -X(%K6{  
)AOD~T4s7  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN Fz7(Kuc  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& fclmxTy  
iK%<0m  
If BytesWrite < pBufferSize Then ' pOtd7Vr  
  ArrayToBMP1 = False :u#Ls,OZz  
End If Xr~6_N{J  
pYV$sDlD  
CloseHandle hTmpFile SymSAq0$F  
yvo~'k#c  
End Function 10 dVV[=  
0 3L"W^gc  
'使用该过程建立的文件要求在用后关闭 |i-Qfpn  
Public Function ArrayToBMP2(File As String) As Boolean .:,RoK1  
,-Fhb~u  
Dim BytesWrite As Long D3yG@lIP3  
0j%@P[zQ  
ArrayToBMP2 = True  G~T]m .  
*&B1(&{:V  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ MGIpo[  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) fAWjk&9  
2X2,( D!  
If hTmpFile = 0 Then ~*D)L '`2M  
   ArrayToBMP2 = False NUBzmnA>8  
   Exit Function \s Fdp!M}2  
End If v=?U {{xQ  
vrXmzq  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 8Dpf{9Y-E  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& Ky`rf}cI>  
MJ[#Gq\0R  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN zcItZP  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& FQ?,&s$Bmd  
P%>? O :a  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN :qy`!QPUm  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& K g&{ ?&  
V#!ihL/>  
If BytesWrite < pFrameSize Then l5S (x Q  
  ArrayToBMP2 = False RsU=fe,  
End If $DW3H1iW  
J=>?D@K  
CloseHandle hTmpFile i%H_ua  
qW e1`.o  
End Function I ,Q"<? &  
J) v~  
Private Function TESTSignal() As Boolean ,LZ6Wu$P  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long !o &+  
f&t]O$  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) ^ pMjii8IZ  
>x)YdgJ*  
If extsign = 1 Then phSF. WC  
   TESTSignal = True Q17"hO>kC  
Else <Fb3\T L  
    If extsign = 0 Then {s|rk  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly Fa^5.p  
        TESTSignal = False 13Ga #  
        Exit Function 9Qp39(l:  
    End If Ojp)OeF\  
End If X hFa9RC  
.z+?b8Q\  
'测试视频输入类型 u3kK!2cdP  
'video type 94%gg0azp  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 8Q^yh6z  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) a_I!2w<I  
If videotype = 1 Then \Q{@AC<?i  
        '"隔行信号(Interlaced)" =nOV!!  
Else LU4\&fd  
   If videotype = 0 Then HyXw^ +tsj  
       '"逐行信号(Non-interlaced)" TCp!4-~,  
   Else *=0Wh@?0  
     If videotype = -1 Then h{.KPK\  
       ' "不支持" "s2?cQv{#  
     End If YE&"IH]lF  
   End If ed*Cx~rT  
End If ` =dD6r  
c;e-[F7  
'测试垂直扫描线数 6cSMKbgZJ  
'video scanlines &oiX/UaY  
scanlines = -1 Z$0r+phQk=  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) (,Yb]/O*  
    If scanlines = -1 Then z h0m3|9O  
        ' "不支持" *=dFTd"#  
    Else I#@iA!  
        'Trim(Str(ScanLines)) + " 行数/幅" 4NbX! "0  
    End If > ZkcL7t9  
I"@X~Y7}  
'测试帧频 RH ow%2D  
'video field frequency W^0F(9~!(  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) d9|dHJf  
    If fieldfrq = -1 Then oM-{)rvQd  
        'lblSignal(8) = "不支持" qAm$yfYs`  
    Else 0.O pgv2K  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" &'Qz  
    End If +Uq9C-Iu  
End Function Y+<C[Fiq  
wNDLN`,^H  
Y5=~>*e  
Sub PicIdentify() FQB)rx P  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 aGNVqS%y  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 @B ~! [l  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 Pca~V>Hd  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 /7*jH2  
WKX5Dl  
  Dim fPTR As Long, cFrame As Long %Rr!I:[ $  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer F1R91V|  
     57IrD*{  
$-"AMZ899  
cFrame = 0 k);z}`7  
w Rb%-s  
sF]v$ kq  
Do While cFrame < tFrames ]R}#3(]1  
   &/=>:ay+#  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) VgZ<T,SuW  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) RGhl` ;  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize YS,kjL/  
   ~j 3B'  
  frmRecord.RText.Text = Str(cFrame) <1&kCfE&  
  frmRecord.RText.Refresh &d`Umm]  
       #NNj#  
  If CheckMark = True Then +,7dj:0S  
   ArrayToBMP TmpBMP xPb;_~  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) O;f^' N  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" #`:s:bwM:  
   JWy$` "{  
   DrawSlice 0~A<AF*t  
   tu77Sb  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) *jGB/ y  
   'If i = vbNo Then # j*$ `W;  
   '  Exit Do x@2rfs  
   'End If [V{JuG;s  
   'cFrame = cFrame + 1 KpC)A5u6  
   7GfgW02  
  End If 64s+ 0}  
  DoEvents w>; :mf  
  cFrame = cFrame + 1 twt Bt L  
Loop ^j';4'  
End Sub n<8$_?-  
Vv' e,m  
(U2G"  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean H#k"[eZ  
n0U^gsD4J  
'如标志区模式反差存在则为TRUE,否则返回FALSE Di9yd   
swG^L$r`  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long 2iI"|k9M  
CheckMark = True *)ed(+b  
   cGkl=-oQ'  
'复制标志区 *]z.BZI:  
For i = 1 To mkH l}335;(  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW b@^M|h.Va  
Next i +^gh3Y  
-QIcBzw;q  
For j = 1 To PilarW * PilarH / 2 T;GBZR%  
   mTop = mTop + MKpilar(j) ]~8bh*,=  
Next j JwB:NqB  
qh0)~JL4   
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH )]J I Q"rR  
   mBot = mBot + MKpilar(j) NUH;GMj,,  
Next j /`\-.S9  
C-qsyJgZy  
mTop = mTop / PilarW / PilarH * 2 o}v # Df  
mBot = mBot / PilarW / PilarH * 2 nen6!bw4  
"+_]N9%)  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 KU-z;}9s  
GWjKZ1p  
'平均值极值化 _|DP  
  For j = 1 To PilarH * PilarW 8jqt=}b  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) @<CJbFgJp  
  Next j ,M7sOp6}  
   jCW>=1:JGY  
mTop = 0: mBot = 0 #1hT#YN  
For j = 1 To PilarH * PilarW / 2 |C'w] QYm  
  mTop = mTop + MKpilar(j) 'nP'MA9b;a  
Next j , p1 (0i  
7zr\AgV9  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW ; VK;_d  
  mBot = mBot + MKpilar(j) .`Z{ptt>  
Next j W euV+}\b  
>1pD'UZIy7  
}yx{13:[  
  mTop = mTop / PilarH / PilarW * 3 3 4YYw@?}Y  
  mBot = mBot / PilarH / PilarW * 3 MP[v 9m@  
   <Ml,H% F  
Ou2 H~3^PL  
If mBot > iWhite And mTop < iBlk Then n8[sR;r5f  
  CheckMark = True ZyCAl9{p  
Else Rt7}e09HV  
  CheckMark = False  eno*JK  
End If R|V <2  
End Function z$ysp!  
$@x3<}X;  
Sub Capture1Frame() E=~H,~  
   okCaptureTo hBoard, BUFFER, 0, 1 'single @E O #Ms  
   okGetCaptureStatus hBoard, True {tOuKnnS  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize GOJi/R.{  
End Sub 7b+OIZB  
Vnh +2XiK  
)FWF T:P~  
Sub CopyMark(iBlk As Integer, iWhite As Integer) rctn0*MP  
'复制标志区并返回标志区暗区与亮区的亮度平均值 TzPx4L6?  
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 qqw6p j  
   \^Y#"zXo1  
'复制标志区 IS&`O= 7  
For i = 1 To mkH ZhxMA*fL  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW `Kym {og  
Next i r{\cm Ds  
:N8D1e-a  
For j = 1 To mkW * mkH / 2 C$*`c6R  
   mTotal = mTotal + MKpilar(j) mI9h| n   
Next j ejgg.G ^  
z mr=iK  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 F1M@$S ,  
IL.Jx:(0  
mTotal = 0 t)cG_+rJ  
For j = mkW * mkH / 2 + 1 To mkW * mkH ,z1# |Y  
   mTotal = mTotal + MKpilar(j) >-X& /i  
Next j  :U)e 8  
C^n L{ZP,  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 =#BeAsFfO  
nyQ FS  
'背景亮度 1"/V?ArfL  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW eoEb\zJ  
  For i = 1 To 4 * FrameW [ R~+p#l+Q  
    bsTotal = bsTotal + BsLine(i) -mY90]g  
  Next i !Q.c8GRUQ  
  bsAV = bsTotal / FrameW / 4 f@LUp^Z/v  
&=HM}h  
End Sub W3<O+S&  
R%#c~NOO  
d.2b7q09  
Sub AdjIMGbright(Optional bInit As Boolean = True) 0 p2 0Rt  
7IK<9i4O  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) }S#.Pw%  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 V2g$"W?3  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 *N>Qj-KAM_  
     .kC}. Q_  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer > 7;JZuVo  
   ^]U2Jd  
  '按标准亮度与对比度采集一帧,确定背景亮度 *}/xy SH3  
  currentContr = 128   '初始对比度 Lj~lfO  
  currentBr = 128   '初始亮度 T{uktIO/  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 l06 q1M 3  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 S<Q1 &],  
  DoEvents ykM#EyN  
  Capture1Frame 44%H? ,d  
  '获得图像上缘4行象素 4 T^M@+&|  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW ` b\4h/~  
  CopyMark iBlack, iBright   '图像标志区亮度 P*aD2("Z  
  For i = 1 To 4 * FrameW ~%<PEl|  
    bsTotal = bsTotal + BsLine(i) z7<^aS  
  Next i M<ad>M  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 .z[+sy_  
   I]k'0LG*^  
  Select Case bsAV ,1~Zqprn  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 *r-Bt1  
       currentBr = 150 46XB6z01  
       currentContr = 60 5@0c@Q  
     Case 61 To 80   '有可见背景 an5Ss@<4AA  
       currentBr = 140 8OBvC\%  
       currentContr = 70 @J r  
     Case 81 To 100  '有清晰背景 V?_%Y<|L  
       currentBr = 128 s|,]Nb=z/  
       currentContr = 80 xje{ kx#  
     Case 100 To 150  '有明亮背景 +ixDB0"\  
       currentBr = 140                '5:30-6:00钟实测数据 aNq Vs|H  
       currentContr = 50 W!X#:UM)  
     Case 151 To 180 Lvp/} /H/  
       currentBr = 130 J&3;6I &  
       currentContr = 60 +Og O<P  
     Case 181 To 220  '背景全为白色 3_h%g$04 s  
       currentBr = 110 hA@X;Mh^w  
       currentContr = 130 fLD9RZ8_  
     Case 221 To 255  '背景全为白色 qWanr7n]@  
       currentBr = 100 : +R5"my  
       currentContr = 100 ^k_!+8"q{  
  End Select Fn[~5/  
   Y\op9 Fw  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 s &.Z;X  
        Case 100 To 150 |HG%o 3E]  
          currentBr = currentBr - 10 qL'3MY.!  
        Case 151 To 255 "Q/3]hc.  
          currentBr = currentBr - 20 ux =a9  
  End Select y:,{U*49  
   CC)9Ks\  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 8vT:icl  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 wz, \zh  
End Sub r p @=  
'R'>`?Nh  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) N$y4>g  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long #e|eWi>  
     )j9FB  
    For i = 1 To 8 gIRCJ=e[b  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& Etl7V  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& AGv;8'`  
    Next i s]I],>}RU  
     BMdr.0  
    For j = 1 To 1024 v,M2|x\r}  
      L1 = L1 + LeftBK(j, 0) 1B 1d>V$*  
      L2 = L2 + LeftBK(j, 1) bTiw?i+6Dv  
      R1 = R1 + RightBK(j, 0) plf<O5'  
      R2 = R2 + RightBK(j, 1) yjSN;3t71  
    Next j ;8T<L[ ^U  
    diffL = Abs(L1 - L2) / 1024 @?1%*/  
    diffR = Abs(R1 - R2) / 1024 WEsH@ [  
End Sub yr=r? h}  
.Z^g 7 *s  
Function CheckSlice() As Boolean :w];N|48s  
  CopySlice avSL, avSLR, avSLL J BwTmOvQ  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then r! M2H {  
    CheckSlice = True t =*K?'ly  
  Else VLO>{"{'  
    CheckSlice = False 7q\c\qL  
  End If 8odVdivh  
End Function +]>a`~   
nuCK7X  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) @i`gR%  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long z N t7DK  
  For i = 1 To FrameH {$EXI]f  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize }`MO}Pz  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize "~[Rwh?  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize #E ~FF@a  
  Next i z)0VP QMT  
  For i = 1 To FrameH %bi mcRX#W  
    For j = 1 To sSize R80R{Ze  
       total = total + Slice(j, i) %b*%'#iK  
       totalL = totalL + SliceL(j, i) )ld7^G  
       totalR = totalR + SliceR(j, i) 9 .@(&  
    Next j [-CG&l2?L  
  Next i #>,cc?H-  
  avSL = total / FrameH / sSize p;5WLAF  
  avSLR = totalR / FrameH / sSize }UO,R~q~  
  avSLL = totalL / FrameH / sSize +p[~hM6?  
End Sub /F4:1 }  
<N*>9S,}  
Sub DrawSlice() eyE&<:F#J  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B >ciq4H43Q|  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B < G&v  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B $` oA$E3  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) H,I}R  
End Sub  jPs+i  
Sub DrawMark(pic As Control) cpy"1=K~M  
   Dim i As Long, j As Long ew"Fr1UGYZ  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B C{ti>'"V  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B gON6jnDO  
   For i = 1 To PilarH y H'\<bT  
     For j = 1 To PilarW ms{R|vU%b  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) ;CvGIp&y  
     Next j nY8UJy}<oL  
   Next i \8$`:3,@  
End Sub p']AXJ`Z  
Yn#8uaU  
Function avIMG() As Integer M ?3N  
  Dim i As Long, j As Long, totalIMG As Long H|!s.  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize 68!]q(!6F  
  For i = 1 To pFrameSize [yyV`&  
    totalIMG = totalIMG + pBuffer(i) Cn55%:  
  Next i |u+&xX7  
  avIMG = totalIMG / pFrameSize ]lo1Kw  
End Function OMZT\$9yT  
- VE#:&  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer KF'M4P  
  Dim i As Long, j As Long, totalIMG As Long P$QjDu-  
  For i = 1 To FrameH ku{aOV%  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth ~mp$P+M(%p  
  Next i _kd |:,  
  For i = 1 To FrameH * barWidth esHiWHAC  
    totalIMG = totalIMG + pBuffer(i) K]u|V0c  
  Next i j*zK"n  
  avRegion = totalIMG / pFrameSize jgstx3  
End Function }ot _k-  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 9,W-KM  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 /'1y`j<  
42u\Y_^ID  
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 moR]{2Cd{  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long zfZDtKq  
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 k$c j|-<  
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 8F * WT|]  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long yRYWx` G  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 J4vKfxEg  
4yA`);r62  
j[fQs,efK  
Private Const GENERIC_READ = &H80000000 f+920/>!Z  
Private Const GENERIC_WRITE = &H40000000 V!P3CNK  
QdTe !f|  
Private Const FILE_SHARE_READ = &H1 9PJDT]  
Private Const FILE_SHARE_WRITE = &H2 =l(JJ  
Private Const OPEN_EXISTING = 3 -1:Z^&e/  
/kz&9FM  
Private Const INVALID_HANDLE_VALUE = -1 HFr3(gNj@  
m\f_u*  
'//file seek 9yh@_~ rZ  
Private Const FILE_BEGIN = 0 >S!DIL  
Private Const FILE_CURRENT = 1 ETOc4hMO  
Private Const FILE_END = 2 !7 oy%{L  
p[)<d_  
Private Const ERROR_SUCCESS = 0& [FL I+;gY  
 SoX V  
'//device io control 8x" d/D  
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 Fjzk;o  
k)s 7Ev*  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 FT;JYkO  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 gp HwiFc  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 b8>9mKs  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 dO[4}FZ$  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C Dkb&/k:)  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 u\xm8}A  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F `VsGa  
Q.1ohj0)  
'//type M@kZ(Rkv  
Private Type LARGE_INTEGER l:eNu}{&  
    lowpart As Long &[RU.Q!_H  
    highpart As Long ='0!B]<G  
End Type f 99PwE(=  
/6zpVkV  
Private Enum MEDIA_TYPE &w0=/G/T=~  
    Unknown G!8pF  
    F5_1Pt2_512 {wP|b@(1t  
    F3_1Pt44_512 1 =<|h  
    F3_2Pt88_512 gcxk 'd  
    F3_20Pt8_512 6\;1<Sw*  
    F3_720_512 F 29AjW86  
    F5_360_512 YZl%JX  
    F5_320_512 \zU5G#LQ  
    F5_320_1024 _zh5KP[{  
    F5_180_512 p]&Q`oh  
    F5_160_512 1VFqT'  
    RemovableMedia d*$<%J  
    FixedMedia ? 6d4T  
End Enum %B*dj9n^q  
G 7]wg>*  
Private Type DISK_GEOMETRY QN XxpoS#  
    Cylinders           As LARGE_INTEGER >n~p1:$  
    MediaType           As MEDIA_TYPE gN(hv.nQ  
    TracksPerCylinder   As Long P;%QA+%7  
    SectorsPerTrack     As Long BUinzW z{a  
    BytesPerSector      As Long l;A_Aii(  
End Type !h!9SE  
BA-nxR  
'//private vars 3.X0!M;x  
Private hDisk           As Long             'disk handle ts<dUO  
Private lpGeometry      As DISK_GEOMETRY    'disk info P@YL.'KU)  
Private lBufferSize     As Long             'the buffer size of read/write 9/Dt:R3QU  
)|R9mW=k9P  
Public Function OpenDisk(ByVal FileName As String) As Boolean ap^=CEf   
'// 打开磁盘 Ra5'x)m36)  
    hDisk = CreateFile(FileName, _ l7,qWSsn K  
                        GENERIC_READ Or GENERIC_WRITE, _ O ).1>  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ RfT#kh/5  
                        ByVal 0&, _ by {G{M`X  
                        OPEN_EXISTING, _ }G8RJxy  
                        0, _ X-Sso9/q.  
                        0) V.IgEE]  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) 35Jno<TP'  
End Function ':7%@2Zo  
C/P,W>8  
Public Function CloseDisk() As Boolean r: _- Cj  
'//关闭磁盘 -S=Zsr\  
    CloseDisk = CloseHandle(hDisk) %qzpt{'?<  
End Function ZSuMQ32  
T#lySev  
Public Function GetDiskGeometry() As Boolean |wf: |%  
'//获取磁盘参数 {PM)D [$i  
    Dim dwOutBytes      As Long u1 uu_*  
    Dim bResult         As Boolean !U"1ZsO)l  
     tVhY=X{N?  
    bResult = DeviceIoControl(hDisk, _ Y/t:9Aau  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ /~_Cb= 7  
                                ByVal 0&, 0, _ TsPO+x$l  
                                lpGeometry, Len(lpGeometry), _ `p&ko$i2  
                                dwOutBytes, _ f77uqv(Y  
                                ByVal 0&) dt"[5;_P`  
     i\S } aCm  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack 6TE R Q  
    GetDiskGeometry = bResult 's{-1aW  
End Function tUmI#.v   
mu1oD;lQ  
Public Sub GetDiskInfo(MediaType As Long, _ HrA6wn\O  
                        Cylinders As Long, _ YbC6&_  
                        TracksPerCylinder As Long, _ }9=\#Le~\  
                        SectorsPerTrack As Long, _ @1 #$  
                        BytesPerSector As Long) Rk PY@>  
'//返回磁盘的参数 /$hfd?L  
    MediaType = lpGeometry.MediaType r +] J {k  
    Cylinders = lpGeometry.Cylinders.lowpart &)v X7*j  
    TracksPerCylinder = lpGeometry.TracksPerCylinder i3.8m=>  
    SectorsPerTrack = lpGeometry.SectorsPerTrack SnbH`\U"  
    BytesPerSector = lpGeometry.BytesPerSector 5 TD"  
~Exd_c9  
End Sub ufdC'2cp8  
S^ ?OKqS  
Public Property Get BufferSize() As Long ?ng?>!   
'//返回每次读/写的缓冲大小 TJ9,c2d+  
    BufferSize = lBufferSize +q ]  
End Property g<s[6yA  
B{ N KDkDH  
b`n+[UCPtn  
Public Function LockVolume() As Boolean `4cs.ab  
'// 将卷锁定 Vgs( feGs  
    Dim dwOutBytes  As Long {uO8VL5+Qx  
    Dim bResult     As Boolean #R|M(Z">q  
     F9e$2J)C  
    bResult = DeviceIoControl(hDisk, _ !MB%  
                                FSCTL_LOCK_VOLUME, _ Tk-PCra  
                                ByVal 0&, 0, _ |}*k|  
                                ByVal 0&, 0, _ SVp]} !jI  
                                dwOutBytes, _ /UjRuUC]  
                                ByVal 0&) 8w| j Z@  
    LockVolume = bResult H ^Xw<Z=  
End Function NDB]8C  
6|#^4D)  
z9$x9u  
Public Function UnlockVolume() As Boolean `n:IXD5'  
'// 将卷解锁 l;L&ijTQD  
    Dim dwOutBytes As Long O0"i>}g4  
    Dim bResult As Boolean {KL<Hx2M  
     p5C sw5  
    bResult = DeviceIoControl(hDisk, _ oKTIoTb  
                                FSCTL_UNLOCK_VOLUME, _ )2oWoZ vi9  
                                ByVal 0&, 0, _ J+&AtGq]u  
                                ByVal 0&, 0, _ a#1LGH7E8  
                                dwOutBytes, _  Iz2K  
                                ByVal 0&) M[_~7~4  
    UnlockVolume = bResult tc@ U_>{  
End Function v i0% jsI  
RlX;c!K  
>TsJ0E?3x  
Public Function DismountVolume() As Boolean 5;V#Z@S  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 OgrUP  
    Dim dwOutBytes As Long 4j!MjlG$  
    Dim bResult As Boolean /U1GxX:P,  
     v,RLN`CID  
    bResult = DeviceIoControl(hDisk, _ $B4}('&4FQ  
                                FSCTL_DISMOUNT_VOLUME, _ (FMYR8H*(  
                                ByVal 0&, 0, _ -!MDYj+U  
                                ByVal 0&, 0, _ f? F i{ m  
                                dwOutBytes, _ )dLESk  
                                ByVal 0&) b]s=Uv#)  
    DismountVolume = bResult }i/&m&VU  
End Function UTUIL D  
w;' F;j~  
+D4Nu+~BSN  
Public Function ReadDisk(ByVal Cylinders As Long, _ dv%gmUUf}k  
                    ByVal Tracks As Long, _ kTex>1W;  
                    db() As Byte) As Boolean UhY )rezh  
'//按柱面和磁道来读取磁盘数据 <uL?7P  
    Dim iPos    As Long "yc/8{U  
    Dim lRead   As Long UL [4sv6\9  
     W.\HfJ74  
    iPos = Cylinders * Tracks * lBufferSize VzpPopD,QW  
     #'<I!G  
    If SeekAbsolute(0, iPos) Then 6!bA~"N  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) )QTk5zt  
    End If /[[zAq{OA  
End Function %kJ:{J+w]  
scqG$~O)  
Public Function WriteDisk(ByVal Cylinders As Long, _ _OcgD<  
                     ByVal Tracks As Long, _ |1 is!leP  
                     db() As Byte) As Boolean iTD}gC  
'//按柱面和磁道来写磁盘数据 e=Kv[R'(M  
    Dim iPos    As Long ~>D;2 S(a  
    Dim lRead   As Long > Q@ *o  
     Sct-,K%i  
    iPos = Cylinders * Tracks * lBufferSize 5]; 8  
     _89 _*t(  
    If SeekAbsolute(0, iPos) Then * @G4i  
        WriteDisk = WriteBytes(lBufferSize, db()) ]Vl5v5_  
    End If ER5Q` H  
End Function *^c4q|G.-  
{<~XwJ.  
7^ KQQ([  
'///////////////////////////////////////////////////////////////////////////////////// X >%2\S  
'//file system ]Nt97eD)  
~<v.WP<:  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean X@9_ukdpu  
'//seek file )gR14a  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte 'A !Dg  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) vG\]xM'u  
    If LowPos = -1 Then ;y6Jo  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) o^&; `XOd  
    Else gKb4n Nt  
        SeekAbsolute = True >o 3X)  
    End If NfR ,m ]  
     l$,l3  
End Function Di*+Cz;gK  
'xStA  
g,y`[dr  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean qvYYKu  
'//read data to array =oT@h 9VI  
    Dim RetVal    As Long :v{ $]wg  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) 4 PD"[a="  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF PBn(k>=+  
    ReadBytes = Not (RetVal = 0) 9z'</tJ`  
     "XC6 l4Z  
End Function NFLmM  
7@EYF  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean h#]}J}si  
'//write data from array S;ulJ*qv  
    Dim RetVal As Long 2y_rsu\  
    Dim BytesToWrite As Long <?qmB }Y  
    Dim BytesWritten As Long o;];ng  
     f` A  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) _5 tw1 >  
     4C01=,6ye  
    WriteBytes = Not (RetVal = 0) QJdSNkc6  
End Function bHS2;K~  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 p6Z]oL q  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ 5)$U<^uy  
DWORD dwCB; "mPa >`?  
LARGE_INTEGER  offset; JEHV \ =  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); {]D!@87  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); _hh |/4(  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ y\0^c5}  
DWORD error = GetLastError(); n+Ag |.,|  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); E=QL4*?   
return FALSE; Ac7`nvI=  
} n"FOCcTIs  
return TRUE; BLaX p0  
} V'K$:9^x[8  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : ]@8=e'V  
hYWWvJ)S  
介个真的看不懂。 c=b\9!hr_E  
你说你老啦,喜欢怀旧了,才想起来填坑。 _b5iR<f  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 /GeS(xzQ  
s lI)"+6  
"mH^Owai  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : *AA1e}R{B  
佩服,玩也玩得这么专业! aLq;a  
GbE3 :;JI  
0jzA\$oD  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : gi6_la+  
伍SIR,再次抱拳佩服 19vD(KC<  
4<Y?#bm'  
o MAK[$k;  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : MI}D%n*  
引用第19楼伍胥之于06-14-2010 12:33发表的  : qSd $$L^  
tFQFpbI  
ZZ(@:F  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 9s)oC$\  
_6' g]4  
我连一级也没有考过。 S@#L!sT`u  
.
/b|sv$BN  
iiTUhO )  
引用
WToAT;d2h  
矬子里拔将军... -UVWs2W'$  
你们那里的俗语是吧? i&$uG[&P  
\) ;rOqh  
我们这里说"矮子里拔长脚"..应该是同一个意思... j$^]WRt  
?1uAY.~ZZB  
有趣....各地有表达意思一样却方式不同的俗语.... E(8g(?4  
1rEP)66N  
-{h[W bf  
你的文章写的有脸皮,没屁眼的, :]s] =q&]  
让看客大为不满... y ^\8x^Eg  
p1nA7;B-m  
你等着,,估计你以后接到的午夜凶铃就多了... i@* ^]'  
p"@|2a  
Z:_y,( 1Q  
我到现在也没有接到你的午夜凶铃呢! 9?8`" v  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : Pcs@`&}7r  
每个人的故事对其他人都是故事, [/G;XHL;?  
自己的故事也是其中之一. 7,TWCVap  
跳出来看, ?=kswf  
不过是众人中的一个人的故事. }U9jsm  
~<aB-. d  
所以,接着听故事. &}O!l'  
0,/x#  
女人们有兴趣的就等老伍开个新帖或者跟贴, %jk PrI  
听他痛说恋爱革命历史.... arZIe+KW  
1' m $_  
杂家接着听他自学程序员历史, {P&^Erx  
高级程序员考了吗? l i-YkaP  
TpgBS4q  
a"}#HvB+  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! Bv8C_-lV/  
kg@h R}  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 >9`ep7  
p/h&_^EXU  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 <Z' hZ  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : &v5.;8u+OV  
哦, 打倒忽悠大家的家伙.      ]/Yy-T#@  
: dIQV(iW  
ikN!u t  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : .^~l_ LkA  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 (;pi"/x[  
Z%5nVsm:G  
r}0C8(oq  
其实标题没有什么,卡总既然改了就不必再改回了。 -}X?2Q  
Np<&#s[dQ  
主要是当初写的时候真是顶着锅盖写的。 H >:4MY  
y (nsyA  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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