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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 ~![R\gps  
~$5[#\5%G  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : yl*S|= 8;k  
^,50]uX_  
老五,I 服了U。 +VfJ: [q  
6Dch+*4*@  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 `S2=LJ  
,}<v:!  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean ~ohW9Z1  
6w54+n  
Dim regEX As New RegExp V9+7A  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 mu(S 9  
GXwV>)!x  
Dim LastTitle0String As String, LastTitle0No As Long tNtP+v-{  
Dim LastTitle1String As String, LastTitle1No As Long /OZF3Pft  
Dim LastTitle2String As String, LastTitle2No As Long joa$Y6  
Dim LastTitle3String As String, LastTitle3No As Long FT=w`NE,+  
Dim LastTitle4String As String, LastTitle4No As Long 6oC(09  
Dim LastTitle5String As String, LastTitle5No As Long mZORV3bN  
Dim LastTabelString As String, LastTableNo As Long sUA)I%Q!  
Dim LastFigureString As String, LastFigureNo As Long \Ew2@dF{O  
a/_ `1  
Dim strSeperator As String 1m&(3% #{  
B^oXUEOImq  
Sub ConvertWidth(fTEXT As String, rText As String) 4Hu.o7  
        Selection.Find.ClearFormatting }/6jom9U?  
        Selection.Find.Replacement.ClearFormatting BPW :W }  
        Selection.Find.Wrap = wdFindContinue *Owq_)_ (|  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText &iuc4"'  
        DoEvents 7eY*Y"GX  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True K[sfsWQ.  
End Sub ^<< Wqmx  
h><;TAp  
Sub ClearDomain() ";Lpf]<  
        With Selection.Find " jy'Dpy0m  
            .ClearFormatting Qv8Z64#  
            .Replacement.ClearFormatting Eh JYdO[e  
            .Wrap = wdFindContinue K@h v[4  
            Me.txtStatus.Text = "清除所有域代码" KzhldMJ^zq  
            DoEvents 9nB:=`T9  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False ^ c:(HUo#  
        End With U,/>p=s  
End Sub Ek84yme#  
B1Xn <Wv  
Private Sub cmdCheck_Click() Y40{v(Pi  
    bContinue = True .n"aQ@!  
    Dim NoSeries1(1 To 16) As String >2_J(vm>  
    Dim NoSeries2(1 To 16) As String %lvSO/F+  
    Dim NoSeries5(1 To 16) As String . a~J.0co  
    Dim NoSeriesRM(1 To 16) As String M6?*\ 9E  
    Dim paraTotal As Long, ParaText As String d6_ CsqV  
    Dim ttString As String, ttNo As String XI pXP,Yy  
     a7ZPV1k  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long n U/v(lN  
:.@gd7T  
    Me.txtStatus.Visible = True k;"=y )@o  
    Me.lbParaType.Visible = True m]V5}-?al  
    Me.cmdCheck.Enabled = False Iu%S><'+  
     2;A].5>l  
     m'Wz0b^BO  
     &a O3N  
     nF05p2Mh  
    Dim ParaType As String, rText As String & %1XYpA.0  
     b" p,~{  
    Selection.WholeStory ]zu" x9-`  
    Selection.NoProofing = True %c [by  
     ($]y*| Obn  
    tm1 = Now #b:8-Lt:M  
     T*z >A  
        ActiveWindow.View.Type = wdNormalView 8K{ TRPy  
     Hl]3F^{  
    NoSeries1(1) = "一" I#m5Tl|#  
    NoSeries1(2) = "二" 4e9mN~  
    NoSeries1(3) = "三" ^oj)# (3C  
    NoSeries1(4) = "四" R}*e%EG/  
    NoSeries1(5) = "五" <V9L AWeS  
    NoSeries1(6) = "六" sz_|py?0  
    NoSeries1(7) = "七" 55fV\3F|R  
    NoSeries1(8) = "八" s fazrz`h  
    NoSeries1(9) = "九" c 8#A^q}  
    NoSeries1(10) = "十" m7fmQUk  
    NoSeries1(11) = "十一" +DksWb D  
    NoSeries1(12) = "十二" z!eY=G'  
    NoSeries1(13) = "十三" n pBpYtG  
    NoSeries1(14) = "十四" \6*3&p  
    NoSeries1(15) = "十五" 7` &K=( .  
    NoSeries1(16) = "十六" t(^c]*r~  
     p1CY?K  
    NoSeries2(1) = "㈠" &c0U\G|j  
    NoSeries2(2) = "㈡" EI]NOG 0  
    NoSeries2(3) = "㈢" Q4C28-#  
    NoSeries2(4) = "㈣" |0dmdrKD  
    NoSeries2(5) = "㈤" (eSa{C\  
    NoSeries2(6) = "㈥" oC"c%e8  
    NoSeries2(7) = "㈦" kE=}.  
    NoSeries2(8) = "㈧" GV* B$  
    NoSeries2(9) = "㈨" <$_B J2Z  
    NoSeries2(10) = "㈩" G!@tW`HO  
     rj<r6  
    NoSeries5(1) = "①" Wn<3|`c  
    NoSeries5(1) = "②" (@~d9PvB>  
    NoSeries5(3) = "③" On#RYy^}  
    NoSeries5(4) = "④" dtr8u  
    NoSeries5(5) = "⑤" 2BEF8o]Np  
    NoSeries5(6) = "⑥" n a_Y<R`  
    NoSeries5(7) = "⑦" 4$@)yZ  
    NoSeries5(8) = "⑧" In5' (UHW:  
    NoSeries5(9) = "⑨" pGh2 4E  
    NoSeries5(10) = "⑩" GRS[r@W[1  
     : >4{m)  
     ?$v#;n?@I  
    NoSeriesRM(1) = "I" <T{PuS1<o  
    NoSeriesRM(2) = "II" Ar N*9  
    NoSeriesRM(3) = "III" [<7Hy,xr_  
    NoSeriesRM(4) = "IV" 7$k[cL1  
    NoSeriesRM(5) = "V" |lrLTI^a  
    NoSeriesRM(6) = "VI" _da>=^hFJ  
    NoSeriesRM(7) = "VII" 7 i,}F|#8  
    NoSeriesRM(8) = "VIII" tGe|@.!  
    NoSeriesRM(9) = "IX" Xh;Pbm|K  
    NoSeriesRM(10) = "X" s7#w5fe  
    NoSeriesRM(11) = "XI" \-gZ_>)  
    NoSeriesRM(12) = "XII" k?KKb /&b  
    NoSeriesRM(13) = "XIII" fHdPav f,S  
    NoSeriesRM(14) = "XIV" ` A])4q$  
    NoSeriesRM(15) = "XV" 3w#kvtDVm  
    NoSeriesRM(16) = "XVI" Ag^Cb'3X  
     1 f).J  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) S8^W)XgC;  
     JiCDY)bu  
    If i = vbNo Then `XS6t)!ik  
        Exit Sub lt[{u$  
    End If F`r=M%yh  
     ~Qeyh^wo  
    If Me.chkSuper.Value Then Ns?y) G>:  
        Me.txtStatus.Text = "检查修改所有的上标格式"  5k{a(I  
     ~bhesWk8!  
        CheckSuperScript w-pdpbHV  
         TI YI\/a\;  
    End If }hv>LL  
     t?iCq1  
    If Me.chkStyle.Value Then x/ lW=EQ  
        Me.txtStatus.Text = "设置样式,请稍候...." weYP^>gH'  
        DoEvents ]z;%%'gW6  
        CeateOrModifyStyle G BV]7.  
    End If d#T~xGqz  
     vE^Hk!^  
     TeSF  
     I MpEp}7  
    ClearDomain 5v<B B`XWp  
         f =B)jYI  
     Tn8Z2iC  
     ^W{+?q'  
    If Me.chkLIST.Value Then FE,&_J"  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" K FvNsqd  
     <:fjWy  
        ConvertListToOrdinary M S)(\&N  
    End If 2' $ p(  
     Ni7~ Mjjt  
     "z8L}IC!e5  
    Dim pType As String, trimpTEXT As String UB|f{7~&  
    If Me.chkNum.Value = True Then ;<O Iu&,*  
        Me.txtStatus.Text = "转换全角数字形式为半角" HeCQF=R  
        ConvertWidth "1", "1" c%n[ v3]  
        DoEvents |9$K'+'  
        ConvertWidth "2", "2" : $lx]  
        DoEvents !7]4sXL{  
        ConvertWidth "3", "3" wK!4:]rhG  
        DoEvents e/'d0Gb-  
        ConvertWidth "4", "4" LzEs _B=9  
        DoEvents 9l5l"Wj&  
        ConvertWidth "5", "5" :''^a  
        DoEvents v `9IS+Z  
        ConvertWidth "6", "6" Yh\ } i  
        DoEvents "9:1>Gr{G  
        ConvertWidth "7", "7" n(\5Z&  
        DoEvents OB FG!.)  
        ConvertWidth "8", "8" +q[puFfl  
        DoEvents sluR @[l  
        ConvertWidth "9", "9" 4{7O}f  
        DoEvents OQIQ   
        ConvertWidth "0", "0" c$ya{]a  
        DoEvents ~&8ag`  
        ConvertWidth "a", "a" Ii_X^)IL(  
        DoEvents 6&5p3G{%0  
        ConvertWidth "b", "b" -}_-#L!Q  
        DoEvents TL lR"L5  
        ConvertWidth "c", "c" 5B)Z@-x2  
        DoEvents n.Iu|,?q  
        ConvertWidth "d", "d" Ze[ezu  
        DoEvents zc%#7"FM  
        ConvertWidth "e", "e" c;C:$B7  
        DoEvents { AdPC?R`  
        ConvertWidth "f", "f" 96x0'IsaG  
        DoEvents ) ,1MR=  
        ConvertWidth "g", "g" Q&S\?cKe  
        DoEvents [Dni>2@0  
        ConvertWidth "h", "h" dOh`F~ Y)e  
        DoEvents R s_bM@  
        ConvertWidth "i", "i"  Gqvj  
        DoEvents tQ=M=BPZ  
        ConvertWidth "j", "j" !)FM/Xj,o  
        DoEvents maW,YOyRN  
        ConvertWidth "k", "k" n@r'b{2;l  
        DoEvents 4RTuy+ M  
        ConvertWidth "l", "l" `Hld#+R  
        DoEvents O RAKg.49  
        ConvertWidth "m", "m" G'T/I\tB  
        DoEvents gh>'O/9  
        ConvertWidth "n", "n" F$T@OT6  
        ConvertWidth "o", "o" H48`z'o  
        ConvertWidth "p", "p" 794V(;sW,  
        ConvertWidth "q", "q" Uax[Zh[Cg  
        ConvertWidth "r", "r" {P ZN J 2~  
        ConvertWidth "s", "s" h)2W}p{a4=  
        ConvertWidth "t", "t" dP}=cZ~  
        ConvertWidth "u", "u" xcz[w}{eEq  
        ConvertWidth "v", "v" bR"hl? &c  
        ConvertWidth "w", "w" bq{":[a  
        ConvertWidth "x", "x" aVcQ  
        ConvertWidth "y", "y" /X>Fn9 mM  
        ConvertWidth "z", "z" /2Q@M>  
        ConvertWidth "A", "A" ('BFy>@  
        ConvertWidth "B", "B" T>,3V:X  
        ConvertWidth "C", "C" L8sHG$[  
        ConvertWidth "D", "D" JFf*v6:,  
        ConvertWidth "E", "E" [9| 8p$  
        ConvertWidth "F", "F" A SME~]]?  
        ConvertWidth "G", "G" :d\ne  
        ConvertWidth "H", "H" MdM^!sk&`  
        ConvertWidth "I", "I" sJu^deX  
        ConvertWidth "J", "J" oju)8H1o#  
        ConvertWidth "K", "K" o\6A]T=R  
        ConvertWidth "L", "L" Yz4)Q1  
        ConvertWidth "M", "M" o Vk*G  
        ConvertWidth "N", "N" x@/ N9*  
        ConvertWidth "O", "O" R%B"Gtl)  
        ConvertWidth "P", "P" Q[+&n*  
        ConvertWidth "Q", "Q" No#1Ikw  
        ConvertWidth "R", "R" hqOy*!8'@  
        ConvertWidth "S", "S" XG2&_u&  
        ConvertWidth "T", "T" .4P5tIn\  
        ConvertWidth "U", "U" Y?G\@ 6  
        ConvertWidth "V", "V" 0]%0wbY1  
        ConvertWidth "W", "W" Wm!lWQu7  
        ConvertWidth "X", "X" @y?<Kv}s  
        ConvertWidth "Y", "Y" n%GlO KC  
        ConvertWidth "Z", "Z" ,w&8 &wj  
        ConvertWidth "^l", "^p" F=)9z+l#  
        ConvertWidth "(", "(" ~$xLR/{y  
        ConvertWidth ")", ")" +s?0yH-%p  
     ~H"Q5Hr   
    End If xrb %-vT  
/3`#ldb%}  
    With ActiveDocument M5DQ{d<r  
        Dim tbl As Table \l)<NZ\  
        For Each tbl In .Tables ;T6{J[ h  
            tbl.Rows.Alignment = wdAlignRowCenter #'m&<g,  
            tbl.Range.Font.NameFarEast = "楷体" [^sv.  
            tbl.Range.Font.NameAscii = "Times New Roman" p!5= 1$  
            tbl.Range.Font.Size = 10.5 gw [\7  
        Next 5=]q+&y\H  
        Set tbl = Nothing Uv|z c  
    End With <,/k"Y=  
     xDv 5'IGBb  
     |L|)r)t  
    With ActiveDocument Sz4G,c  
         I{#&!h>]U  
        For i = 1 To .TablesOfContents.Count U,Py+c6  
            .TablesOfContents(i).Delete P6q`i<  
        Next {hYH4a&Hb  
         CFdR4vu EI  
         AfAg#75q  
         1UG5Q-  
        paraTotal = .Paragraphs.Count =xz Dpn>f  
        paraCounter = 1 &s m7R i  
         J?4aSssE  
        LastTitle0No = 0 DL0jA/f  
        LastTitle1No = 0 ]r++YIg!j  
        LastTitle2No = 0 ! }%,rtI  
        LastTitle3No = 0 )Lt|]|1B{  
        LastTitle4No = 0 mHcxK@qw  
        LastTableNo = 0 ^Qrezl&  
        LastFigureNo = 0 Zq wxi1  
         |Yq0zc!  
        Dim Sec As Long e_mUO"  
         "o" ujQ(v  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) wXdtY  
        If Sec = 0 Then c *<"&  
            Exit Sub []B9Me  
        End If qIEe7;DO  
         yO }RkRA  
        k = 0 R1$O)A}k  
        Do While (paraCounter < paraTotal) And bContinue zGKDH=Yy ;  
            k = k + 1 F-K=Ot j  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then i=67  
                Exit Do iEd%8 F h  
            End If }2dz];bR  
            paraCounter = paraCounter + 1 3u]#Ra~5  
            If k Mod 20 = 0 Then t [gz#'  
                Me.lbCounter.Caption = paraCounter m?LnO5Vs  
                DoEvents ' *hy!f]  
            End If Np$peT[  
        Loop 29eg.E  
         l"9.zPvT<  
         kT|{5Kn&s  
        Do While (paraCounter < paraTotal) And bContinue (Ic{C5'  
             }py6H[  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) Ut"~I)S{LT  
            ShapeHeight = 0 ?M2#fD]e  
            ShapeWidth = 0 $r0~& $T&  
           CZE!rpl  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth N$u;Q(^  
             t\YN\`X D  
            Select Case ParaType llG^+*Y8t  
                Case "【】表格内容" (Uk1Rt*h  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" FCO5SX #-g  
                Case "章" S<), ,(  
                    LastTitle0No = LastTitle0No + 1 %{GYTc \'X  
                    '新一章开始,复位其下属标题编号 GMc{ g  
                    LastTitle1No = 0 nT UKA  
                    LastTitle2No = 0 g-B~" tp  
                    LastTitle3No = 0 Hj&mwn]  
                    LastTitle4No = 0 ki/xo^Y2<  
                     #XSs.i{  
                    k = Val(ttNo) ]WZ_~8  
                    If k = 0 Then '非数字编号章节 B<)c{kj  
                        If ttNo <> NoSeries1(LastTitle0No) Then |0!oSNJ  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString )na 8a!  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText \;w$"@9  
                        End If BGAqg=nDV  
                    Else 0Xw Dk$l<  
                        If Val(ttNo) <> LastTitle0No Then ~3p :jEM.[  
                            rText = "第" & LastTitle0No & ttString :5kgJu  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText }~gBnq_DDU  
                        End If GS),rNBur  
                         _3_d;j#G U  
                    End If &+t! LM  
                     ] ;@"-H  
                    '章段落设置 m(Hb! RT  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 &=bWXNU.  
                    .Paragraphs(paraCounter).Style = "QLNU章节" m e\S:  
                    .Paragraphs(paraCounter).Range.Select 77y_?di^I  
                    Selection.EndKey unit:=wdLine T(UdV]~]"  
                    tc = Replace(rText, vbCr, "") V?KACYd@O  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False +RIG8w]  
                Case "一级标题" ;qM I3wF  
                    LastTitle1No = LastTitle1No + 1 f5)4H  
                    '新一级标题开始,复位其下属标题编号 }` &an$Mu  
                    LastTitle2No = 0  Co e q<  
                    LastTitle3No = 0 ZM)Y Rdh  
                    LastTitle4No = 0 %3v:c|r  
                     a%3V< "f  
                    If ttNo <> NoSeries1(LastTitle1No) Then &S\q* H=}i  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString J LOTl.  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText b-sbRR  
                    End If IYtM'!u  
                   bcgh}D  
                     |Ld/{&Qr  
                    '一级标题段落设置  格式:一、标题内容 Z0yy<9q]2  
                    .Paragraphs(paraCounter).Range.Text = rText [Yt!uhww  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" Bvbv~7g (  
                    .Paragraphs(paraCounter).Range.Select D$k<<dv v  
                    Selection.EndKey unit:=wdLine R <kh3T  
                    tc = Replace(rText, vbCr, "") UdBP2lGd  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False dQhh,}  
                Case "二级标题" 7D5;lM[_  
                    LastTitle2No = LastTitle2No + 1 }jj@A !N  
                    '新二级标题开始,复位其下属标题编号 8J60+2Wa  
                    LastTitle3No = 0 $L|YllD%  
                    LastTitle4No = 0 f-at@C1L%L  
                     +h!OdWD9  
                    If ttNo <> NoSeries1(LastTitle2No) Then | CNsa  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString I%dFVt@  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText ^T}6o Ud  
                    End If :]?y,e%xu,  
                     1.+w&Y5   
                    '二级标题段落设置 格式:(一)、标题内容 t- Rp_2t  
                    .Paragraphs(paraCounter).Range.Text = rText iTb k]$  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" rL+K Sb  
                     ;Od;q]G7L  
                    .Paragraphs(paraCounter).Range.Select  VlGg?  
                    Selection.EndKey unit:=wdLine ^4jIT1  
                    tc = Replace(rText, vbCr, "") q2qbbQ6H  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False Z#8O)GK  
                 <@;Y.76~  
                Case "三级标题" YS$?Wz  
                    LastTitle3No = LastTitle3No + 1 " oWiQ{\IP  
                    '新三级标题开始,复位其下属标题编号 1$cX` D`  
                    LastTitle4No = 0 o_un=ygU  
                     }%j@%Ep[  
                    If Val(ttNo) <> LastTitle3No Then XhF7%KR  
                            rText = LastTitle3No & ". " & ttString lWYZAF>?Ym  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText qEd!g,Sx  
                         uFd.2,XNP  
                    End If R-v99e iN  
                    '三级标题段落设置 格式:1. 标题内容 [" ' 0vQ  
                    .Paragraphs(paraCounter).Range.Text = rText Q~/TqG U  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" PFP/Pe Ng;  
                    .Paragraphs(paraCounter).Range.Select V wj^h  
                    Selection.EndKey unit:=wdLine eBZ^YY<*g  
                    tc = Replace(rText, vbCr, "") oBVYgv)  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False 3$YgGum  
                Case "四级标题" &?.k-:iN  
                    LastTitle4No = LastTitle4No + 1 d,"?tip/SX  
                     ,^dyS]!d$  
                    If Val(ttNo) <> LastTitle4No Then _)4YxmK%  
                            rText = "(" & LastTitle4No & "). " & ttString a-I3#3VJ@  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText *0 y|0J+ 0  
                     n0o'ns  
                    End If 6>I{Ik@>  
                    '四级标题段落设置 格式:(1). 标题内容 g.CUo:c  
                    .Paragraphs(paraCounter).Range.Text = rText -49z.(@ki  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" WdXi  
                    .Paragraphs(paraCounter).Range.Select n}8J-/(|+  
                    Selection.EndKey unit:=wdLine xRZ9.Agv_  
                    tc = Replace(rText, vbCr, "") P#`Mg@.  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False &p\fdR4e  
                 #N`~. 96  
                Case "表格标题" 8"2 Y$*)(  
                    LastTableNo = LastTableNo + 1 3U#z {%  
                     cO$ PK  
                    If ttNo <> CStr(LastTableNo) Then W/dl`UDY  
                            rText = "表" & LastTableNo & ". " & ttString D;@*  
                            ErrMsg.AddItem "表格编号错误:" & ParaText qPgLSZv  
                   &_Py{Cv@Dw  
                    End If FB<#N+L\  
                     h> K~<BAz'  
                    '表格名称段落设置 格式:表1. 表格名称 MMs#Y1dH  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" >BC?% |l  
                    xe = Replace(rText, vbCr, "") yGN@Hd:9  
                    .Paragraphs(paraCounter).Range.Select + V:P-D  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 7%aaqQ1T  
                    Selection.Range.Text = xe 3?Ckk{)&  
                    Selection.EndKey -7_`6U2"  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False +J`EBoIo  
                 j~+<~2%c  
                Case "表格首行" MPt:bf#  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" E\U6n""]  
                Case "图片标题" ,3^gB,ka  
                    LastFigureNo = LastFigureNo + 1 h-rPLU;Bw  
                     l#8SlRji  
                    If ttNo <> CStr(LastFigureNo) Then ;g[C=yhK`C  
                            rText = "图" & LastFigureNo & ". " & ttString R-Y|;  
                            ErrMsg.AddItem "表格编号错误:" & ParaText AF5$U8jf  
                   n[zP}YRr  
                    End If u(ep$>[F#_  
                    '图片名称段落设置 格式:图1. 图名称 Fv n:V\eb  
                    .Paragraphs(paraCounter).Range.Text = rText 79:Wo>C3-  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" wRwTN"Yg  
                    .Paragraphs(paraCounter).Range.Select &Nx'Nq9y  
                    Selection.EndKey unit:=wdLine e/@tU'$  
                    xe = Replace(rText, vbCr, "") =*Z=My}3~  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False xFZ A1 8  
                Case "正文" S"FIQ&n  
                     '正文名称段落设置 #bX~.jKW  
                    .Paragraphs(paraCounter).Style = "QLNU正文" }{Y)[w#R  
               Case "文献条目" % j],6wW5J  
                    With .Paragraphs(paraCounter) $+` YP  
                        '.Range.Select np|3 os  
                        'Selection.ClearFormatting I>k >^  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” #*^vd{fl  
                        .Style = "QLNU参考文献" #V4kT*2P)  
                    End With *%JncK '  
               Case "图表注解" voRr9E*n  
                    With .Paragraphs(paraCounter) \I r&&%  
                        .Range.Font.NameFarEast = "楷体" ~RSOUrR  
                        .Range.Font.NameAscii = "Times New Roman" m&)5QX  
                        .Range.Font.Size = 9 '小5号字 q'kZ3 G   
                         pDr%uL  
                        .Alignment = wdAlignParagraphCenter K/;FP'.  
                        .LeftIndent = 0 /]=d Pb%  
                        .RightIndent = 0 ,fS}c pV  
                        .FirstLineIndent = 0 3e UTV<!  
                        .LineSpacing = 12 & [)1LRt_  
                        .LineSpacingRule = wdLineSpaceExactly J 00<NRxj"  
                        .LineUnitAfter = 0 w9D<^(_}/  
                        .LineUnitBefore = 0 as\6XW$;Q  
                        .OutlineLevel = wdOutlineLevelBodyText 2UYtFWB9o  
                        .PageBreakBefore = False # 4E@y<l$  
                        .RightIndent = 0  SJY<#_b  
                        .WordWrap = True u|m>h(O  
                        .LineUnitAfter = 0.5 sjOyg!e  
                         %mR roR6  
                    End With +QNFu){G  
                Case Else / d S!  
                    '不作处理 =ogzq.+|  
            End Select Tjo K]]  
             k%w5V>]1  
            '含有inlineshape的段落处理 l"%|VWZ{iq  
            If ShapeHeight > 30 Then *hI  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 \VmqK&9   
            End If ` aTkIo:ms  
             i_OoR"J%  
            If (ShapeWidth + ShapeHeight) > 150 Then C2GF N1i  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" Kp") %p#  
            End If d4c-(ZRl  
             X#9}|rT 56  
            '段落计数器递 Q9X7- \n  
            paraCounter = paraCounter + 1 p8<Y5:`  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter ..yuEA  
            Me.txtStatus.Text = ParaText FY%v \`@1*  
            DoEvents JZ 6 {W  
        Loop y7#$:+jQv  
    End With XGE:ZVpW  
     VO ^ [7Y  
    msg = "" y(&JE^GfX  
     (fON\)l  
    For i = 0 To Me.ErrMsg.ListCount - 1 /60 `"xH  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) mG[S"?C  
    Next @-dM'R6C  
     Uq/#\7/rL  
      /1-  
     {~DYf*RZ  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg X E]YKJ?|k  
    Me.cmdCheck.Enabled = True fu|N{$h%X  
    Me.txtStatus.Visible = True olPV"<;+pO  
    Me.lbParaType.Visible = False 6x KbK1W  
     =PXQ X(_  
    bContinue = False 2XJn3wPi  
End Sub (p<QRb:&Z  
f sa   
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) ]_NN,m>z  
    Dim pTEXT As String <VD^f  
     `_Bvae j?,  
    pTEXT = ChKRange.Text %FnaS u  
     XWvT(+J  
    ParaType = "其它" @ mm*S:Gt#  
    TitleString = pTEXT J_tj9 +r^  
    TitleNo = "N/A" <b!ieK?\F3  
     [Af&K22M(X  
    shpCounter = ChKRange.InlineShapes.Count " @!z+x[8  
    If shpCounter <> 0 Then q0Fq7rWP  
        MaxShpHeight = 0: TotalShpWidth = 0 G1MuH%4  
        For i = 1 To shpCounter iTgGf  
            k = ChKRange.InlineShapes(i).Height 4HlOv % 8  
            l = ChKRange.InlineShapes(i).Width z)Xf6&  
            If k > MaxShpHeight Then b#0y-bR  
                MaxShpHeight = k hQ&S*f&='  
            End If sGIY\%  
            TotalShpWidth = TotalShpWidth + l 1Sox@Ko  
        Next =ECw'  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then  (A 2x  
            Exit Sub ;=X6pK  
        End If ) |`eCzCB  
    End If Vm.&JVb  
     gd'#K~?  
    '空行 )&di c6r  
    If Len(pTEXT) <= 2 Then #*uSYGdc  
        Exit Sub zAEq)9Y"l'  
    End If 0wZ_;FN*-  
     ?Dro)fH1  
         <1[WNj2[  
    '是否为表格中的文字 %&KJtKe  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then gwk$|aT@  
        ParaType = "表格内容" %zE_Q  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) $Z)Dvy|  
        If k = 1 Then lyiBRMiP|  
            ParaType = "表格首行" 96 ;17h$  
        End If zmkqqiDp_  
        Exit Sub Iu6KW:x  
    End If g|*2O}<  
     U JG)-x  
    '例外情况:脚注 Ms5m.lX  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then Z qX  U  
        ParaType = "脚注" dw,Nlf~*0  
        Exit Sub X1U7$/t  
    End If Bb[%?~ E!  
     Q\G8R^9j p  
    '例外情况:尾注 ^,zE Nqg7  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then ,j wU\xo`C  
        ParaType = "尾注" " 6 /`  
        Exit Sub {<~0nLyJS  
    End If <apsG7(7  
     "sF&WuW|  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then n k]tq3.[  
        ParaType = "页眉页脚" vQ=W<>1   
        Exit Sub $2E n^  
    End If >B$ZKE  
     DX.u"&Mm  
     V-a/%_D  
    With regEX ty]JUvR@  
        .Global = True V^aX^;  
         dDN#>|  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" rP.qCl+J  
        If regEX.Test(pTEXT) Then MfU G@  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") Ggy_ Ctu  
            TitleString = regEX.Replace(pTEXT, "$3") CBx1.xL  
            TitleNo = regEX.Replace(pTEXT, "$1") T[M?:~  
            ParaType = "章" ]Po9a4w#  
            Exit Sub B e+'&+  
        End If "~x\bSY  
         @O+yxGA  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" B]dHMLzl  
        If regEX.Test(pTEXT) Then _3<J!$]&p  
            ParaType = "一级标题" )#[?pYd  
            regEX.Execute (pTEXT) ey<u  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") ^ ab%Mbb  
            TitleString = regEX.Replace(pTEXT, "$3") ]k Ls2? \  
            TitleNo = regEX.Replace(pTEXT, "$1") :T3I"  
            Exit Sub VKy:e.  
        End If G1M}g8 ]h  
         k$kq|  
        '全角或半角括号中的数字 [0CoQ5:d?&  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" P0U=lj/ b  
        If regEX.Test(pTEXT) Then Hno@  
            ParaType = "二级标题" 3F 2> &p|7  
            regEX.Execute (pTEXT) f XxdOn.  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") ~/1kCZB  
            TitleString = regEX.Replace(pTEXT, "$5") ]d?`3{h9LD  
            TitleNo = regEX.Replace(pTEXT, "$2") b?7?iV4  
            Exit Sub yA*~O$~Y  
        End If p c&/'zb  
         @K36?d]e  
        '阿拉伯数字  1. 2. dT8m$}h9  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" [7B:{sH  
        If regEX.Test(pTEXT) Then F7J-@T<  
            ParaType = "三级标题" [dFxW6n  
            regEX.Execute (pTEXT) c38RE,4U  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 I1U{t  
            TitleString = regEX.Replace(pTEXT, "$3") P8!Vcy938  
            TitleNo = regEX.Replace(pTEXT, "$1") B1m@  
            Exit Sub S!8eY `C.  
        End If B9|!8V  
         3:jKuOX  
        '全角或半角括号中的阿拉伯数字 `),7*gn*)  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" E^L  
        If regEX.Test(pTEXT) Then / 3:R{9S%  
            ParaType = "四级标题" o:#l r{  
            regEX.Execute (pTEXT) 9,Zg'4",d  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") e:{v.C0ez  
            TitleString = regEX.Replace(pTEXT, "$5") x P{L%.  
            TitleNo = regEX.Replace(pTEXT, "$2") qgrRH'  
            Exit Sub #C,M8~Q7  
        End If +<6L>ZAL  
         x{<WJ|'B  
        '表格名称 )hj77~{ +  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" ~PaD _W#xP  
        If regEX.Test(pTEXT) Then +B^ / =3P  
            ParaType = "表格标题" NylN-X7[#  
            regEX.Execute (pTEXT) %@q52ZQ  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) B, nCx=\S  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) YIb5jK `  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) $s.:wc^  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 r=4'6!  
            Exit Sub dluNA(Xc-  
        End If T[>h 6d  
          Y2vzK;  
        '图片名称 JC`|GaUy  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" &H, 5f#  
        If regEX.Test(pTEXT) Then i`7{q~d=  
            ParaType = "图片标题" u7G@VZ Ux5  
            regEX.Execute (pTEXT) wl^bvHG  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") P{5p'g ,  
            TitleString = regEX.Replace(pTEXT, "$3") [CBA Lj5  
            TitleNo = regEX.Replace(pTEXT, "$1") Cl[ '6Lk  
            Exit Sub c#nFm&}dm  
        End If k\|G%0Jw  
         `;WiTE)&)  
        '参考文献 'p-jMD}O  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 Nkn0G _  
        If regEX.Test(pTEXT) Then ~R-S$qizAC  
            ParaType = "文献条目" s`xp6\$  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") CyO2Z  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") 1B= vrG q  
            Exit Sub vn3<LQ]  
        End If ElhTB  
         =[(1u|H 9  
        prfx = Left(pTEXT, 2) Rct|"k_"Ys  
        If prfx = "注:" Or prfx = "注:" Then {YWj`K  
            ParaType = "图表注解" 1g9Q vz3  
            Exit Sub Qi2yaEB  
        End If qc~6F'?R  
         Lx,"jA/  
         :s+AIo6  
        ParaType = "正文" q,V JpqQ  
         2NA GXWE  
    End With jV8mn{<  
End Sub G/_#zIN`8M  
!uLAW_~  
Sub ConvertListToOrdinary() ZgF-.(GV  
    Dim st As Paragraph n l Xg8t^G  
    With ActiveDocument m9ts&b+TE  
        For i = .Paragraphs.Count To 1 Step -1 9>u2; 'Ls  
            Set st = .Paragraphs(i) WK0?$[|=r  
            lst = st.Range.ListFormat.ListString K+Q81<X~  
            If lst <> "" Then A=!&2(  
                st.Range.ListFormat.RemoveNumbers PXm{GLXRS;  
                st.Range.InsertBefore lst & " " 3  8pw  
            End If CCfuz&  
        Next Htl6Mr*{  
    End With 2H;&E1:  
    Set st = Nothing 2\l7=9 ]\3  
End Sub }$#e&&)n  
G& cm5  
Private Sub UserForm_Activate() K CJ zE>  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" =$Sf]L   
    Me.lbTotal.Font.Bold = True J|_&3@r  
    Me.txtStatus.Visible = False *D #H-]9  
    Me.cmdCheck.Enabled = True fJLlz$H  
[ik D4p=  
End Sub \+fP&   
&>0=v  
j(F%uUpN  
Sub CheckSuperScript() t&:'A g .G  
    Selection.Find.ClearFormatting 'x<gC"0A  
    Selection.Find.Replacement.ClearFormatting i0{pm q  
    With Selection.Find %d($\R-*O  
        .Text = "[【\[[〖](*)[】\]〗]]" sY7:Lzs.,  
        .Replacement.Text = "[\1]" lG>rf*ei~  
        .Replacement.Font.Superscript = True [Ua4{3#  
        '.Replacement.Font.Color = wdColorBlue Q R2J;Oj_  
        .Forward = True u$[ '}z0:  
        .Wrap = wdFindContinue -liVYI2s  
        .FORMAT = True 7oA$aJQ  
        .MatchCase = False vmJ1-<G4*  
        .MatchWholeWord = False 1QtT*{zm$F  
        .MatchByte = False n|lXBCY7K  
        .MatchAllWordForms = False fF[n?:VV  
        .MatchSoundsLike = False w7p%6m  
        .MatchWildcards = True 2/=CrK  
    End With \D?6_ ,O  
    Selection.Find.Execute Replace:=wdReplaceAll y;Q_8|,F  
End Sub #Bj{ 4OeV  
Ttn=VX{ \  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) (*7edc"F  
    bContinue = False *ntq;]  
    Set regEX = Nothing #9EpQc[4  
End Sub kU_bLC?>D  
~cy/\/oO  
Sub CeateOrModifyStyle() W*;~(hDz  
' nf +8OH7  
' `GC7o DL  
Dim stl As Style suj? e6  
     )52:@=h*l  
    Options.Pagination = False J)A1`(x&T  
     '@2pOq  
    On Error Resume Next g 2;JJ}  
    For Each stl In ActiveDocument.Styles HKv:)h{ ?  
        stl.Delete \6)l(b;  
    Next tf|/_Y2  
    On Error GoTo 0 dr^pzM!N  
     g[*+R9'  
    Set stl = Nothing j/3827jw=  
     | ctGxS9  
    DoEvents (S0MqX*  
    On Error Resume Next d~C YZ  
     .x$+R%5U  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph # <0%_Ca  
     gSEj/?  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph <i^Bq=E<rJ  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph +`kfcA#pi  
     XD{U5.z>y  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph 5!}xl9D  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph vmAMlgZ8{<  
     !tCw)cou  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph Namw[Tg J  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph 1lfkb1BM  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph %/ ~6Qq  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph 8NudY3cU!  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph Z/sB72K1  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph 8HX(1nNj}  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph h|yv*1/|  
     .a:"B\B`  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph 4LtFv)i  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph Xw`vf7z*  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph Zw| IY9D  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph =#^%; 66z  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph I8gGP'  
     yU\&\fD>j  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph '?E^\\"*  
    On Error GoTo 0 5g&.P\c{  
    DoEvents ~-GgVi*I  
     P .3j |)NW  
    'BaseStyle r^ S 4 I&  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False Mr<2I  
    With ActiveDocument.Styles("BaseStyle").Font Vi23pDZ5  
        .NameFarEast = "宋体" CY)/1 # J  
        .NameAscii = "Times New Roman" @Rj&9/\L  
        .NameOther = "宋体" B @HW@j  
        .Size = 10.5 qW6a|s0}  
        .Bold = wdUndefined dl'pl  
        .Italic = wdUndefined *rSMD_>  
        .Subscript = wdUndefined HC*=E.J  
        .Subscript = wdUndefined d, iW#,  
         uT8/xNB!  
        .Underline = wdUnderlineNone ) I 4d_]&  
        .UnderlineColor = wdColorAutomatic 5,I'6$J  
        .StrikeThrough = False @}!1Uk3u d  
        .DoubleStrikeThrough = False &BqRyUM$F  
         %lbSV}V)  
        .Outline = False upQ:C>S  
        .Emboss = False ~;aSX1   
        .Shadow = False Ah='E$t  
        .Hidden = False Q7&Yy25   
        .SmallCaps = False A`Z!=og=  
        .AllCaps = False />Tyiy]2uu  
        .Color = wdColorAutomatic ]G1{@r)  
        .Engrave = False ?}m/Q"!1  
        .Scaling = 100 ,G e7 9(  
        .Kerning = 1 6LL/wemq  
        .Animation = wdAnimationNone apa~Is1  
        .DisableCharacterSpaceGrid = False w3PE.A"Q  
        .EmphasisMark = wdEmphasisMarkNone A1{P"p!  
    End With I.Co8is  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat bWt>tEnf  
        .LeftIndent = 0 .6xP>!E}Q  
        .RightIndent = 0 " _jIqj6C  
        .SpaceBefore = 0 = PcmJG]  
        .SpaceBeforeAuto = False } Ga@bY6  
        .SpaceAfter = 0 <_uLf9j a  
        .SpaceAfterAuto = False %O%+TR7Z  
         skR/Wf9DH  
        .LineSpacingRule = wdLineSpaceSingle YM 0f_G=  
        .Alignment = wdAlignParagraphJustify ,]i ^/fT  
         T_\HU*\  
        .WidowControl = False xYc)iH6&  
        .KeepWithNext = False UA!h[+Z  
        .KeepTogether = False l2+qP{_4  
        .PageBreakBefore = False j Rm:9`.Q  
        .NoLineNumber = False dD1`[%  
         4wX{N   
        .FirstLineIndent = CentimetersToPoints(0) M]!R}<]{  
        .OutlineLevel = wdOutlineLevelBodyText N $M#3Y;  
        .CharacterUnitLeftIndent = 0 Kw3fpNd  
        .CharacterUnitRightIndent = 0 {0q;:7Bt  
        .CharacterUnitFirstLineIndent = 0 ^ox^gw)  
        .LineUnitBefore = 0 =2s 5>Oz+  
        .LineUnitAfter = 0 nj!)\U  
        .AutoAdjustRightIndent = True x|_%R v  
        .DisableLineHeightGrid = True >J[g)$,  
         Vs]+MAL  
        .FarEastLineBreakControl = True -\6tVF11z  
        .WordWrap = True ! o:m*:  
        .Hyphenation = False lzB y;i  
         &}nU#)IX  
        .HangingPunctuation = True 'C1=(PE%`  
        .HalfWidthPunctuationOnTopOfLine = True ? 1?^>M  
        .AddSpaceBetweenFarEastAndAlpha = True 'BpK(PlUh  
        .AddSpaceBetweenFarEastAndDigit = True ^5qX+!3r{  
        .BaseLineAlignment = wdBaselineAlignBaseline [g]ks   
    End With }el. qZ  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False +)^F9LPl  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll "L1cHP~d  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese 8U/q3@EC  
    ActiveDocument.Styles("BaseStyle").NoProofing = False VFT G3,kI  
     ^uW](2  
    '一级标题题样式 `x lsvK>  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") _K )B  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" sT[)r]`T  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False 9.qIhg  
    With ActiveDocument.Styles("QLNU一级标题").Font im>Sxu@  
        .NameFarEast = "黑体" C.C)&&|X  
        .NameAscii = "Arial Black"  LS,/EGJ  
        .NameOther = "黑体" `FH Hh  
        .Name = "黑体" WiH%URFB  
        .Size = 16              '三号 0AY23/  
        .Bold = True XASoS5  
        .Italic = wdUndefined xH; qJRHa  
        .Subscript = wdUndefined n <6}  
        .Superscript = wdUndefined R@5jEf  
    End With X, <&#l  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat >T%Jlj3ZG  
         9<k<HmkD  
        .LeftIndent = CentimetersToPoints(0) %RL\t5 TV  
        .RightIndent = CentimetersToPoints(0) [3nhf<O  
        .FirstLineIndent = CentimetersToPoints(0) [y\ZnoB  
         E8T4Nh_  
        .LineSpacingRule = wdLineSpaceSingle b3wE8Co  
        .Alignment = wdAlignParagraphCenter W'E!5T^  
         )UI$ s"  
        .WidowControl = True .6 !IO^`[  
        .KeepWithNext = True F:%= u =  
        .KeepTogether = True [`_&d7{-4b  
        .OutlineLevel = wdOutlineLevelBodyText <&n3"  
         S6B(g_D|  
        .LineUnitBefore = 0.5 i6-q%%]6  
        .LineUnitAfter = 0.5 N6c']!aM@  
    End With TYw0#ZXo  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False W8,XSUl  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll Cfyas'  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese YPDc /  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True b,Ed}Ir  
    DoEvents mn{8"@Z  
     }Jk.c~P)  
    '二级 ! W$ u~z  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") o$'Fz[U  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" *DLv$/(0  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False d@b0z$<s  
    With ActiveDocument.Styles("QLNU二级标题").Font  .LEQ r)  
        .NameFarEast = "黑体" GxLoNVr  
        .NameAscii = "Arial Narrow" SIKy8?Fn  
        .NameOther = "黑体" x +! <_p  
        .Name = "黑体" nSz Fs(]f  
        .Size = 15        '小三号 ?g}n$%*5y!  
        .Bold = False 'X_iiR8n@p  
        .Outline = False +Q_X,gZ  
        .Italic = wdUndefined *#+d j"  
        .Subscript = wdUndefined bS3qX{5  
        .Superscript = wdUndefined GD}3 r:wDs  
    End With I--WS[  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat $|C%G6!s?@  
        .LeftIndent = CentimetersToPoints(0) g:q+.6va"  
        .RightIndent = CentimetersToPoints(0) u'd+:uH  
        .FirstLineIndent = CentimetersToPoints(0) 5{zXh  
         hQ i[7r($8  
        .LineSpacingRule = wdLineSpaceSingle ;*:d)'A  
        .Alignment = wdAlignParagraphLeft xB68RQe)  
         I}p uN!  
        .WidowControl = True !aeL* `;  
        .KeepWithNext = True b\7-u-   
        .KeepTogether = True qDqIy+WR  
        .PageBreakBefore = False i92{N$*x  
        .OutlineLevel = wdOutlineLevelBodyText >B>CV8p6w  
         &vj+3<2  
        .LineUnitBefore = 0.5 -WB? hmx  
        .LineUnitAfter = 0.5 HPCzh  
         _c['_HC  
    End With U)zd~ug?m  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False  V-}d-Y  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll oIt.Pc~;'#  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese M/5/Tp  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True i 6kW"5t  
    DoEvents [zm&}$nnN  
     aP!a?xq  
    '三级标题样式 R)I 8 )  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ,cWO Ak  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" r[eZV"  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False 'AF2:T\  
    With ActiveDocument.Styles("QLNU三级标题").Font @\i6m]\X  
        .NameFarEast = "宋体" W([)b[-*  
        .NameAscii = "Times New Roman" VD,F?L!  
        .NameOther = "黑体" +%>s\W+?]  
        .Name = "黑体" G#HbiVH9  
        .Size = 14               '四号 Gs7mO  
        .Bold = False Sr)/ Mf  
        .Outline = False ?6p6OB  
        .Italic = wdUndefined {v+i!a'+  
        .Subscript = wdUndefined h76#HUBr!  
        .Superscript = wdUndefined =3{h9  
    End With 3Ym5SrKK  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat @ ~ N:F~  
        .LeftIndent = CentimetersToPoints(0) G`R Ed-Z[  
        .RightIndent = CentimetersToPoints(0) S&6}9r  
        .FirstLineIndent = CentimetersToPoints(0) Y` LZ/Tgk  
         @@*->  
        .LineSpacingRule = wdLineSpaceSingle R 9o:{U]  
        .Alignment = wdAlignParagraphLeft DvG.G+mo#  
         6^ wg'u]c  
        .WidowControl = True Q#}} 1}Ja  
        .KeepWithNext = True ;QR|v  
        .KeepTogether = True j23OgbI  
        .PageBreakBefore = False 76c4~IG#  
        .OutlineLevel = wdOutlineLevelBodyText R# 8D}5[&  
         [NFg9y;{h  
        .CharacterUnitLeftIndent = 0 t+q LQY}=  
        .CharacterUnitRightIndent = 0 1#^[{XlAx  
        .CharacterUnitFirstLineIndent = 2 %Wom]/&,'  
          k1L GT&  
        .LineUnitBefore = 0.5 Fw+JhI VP  
        .LineUnitAfter = 0 j+* VP  
    End With @?aNvWeavH  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False u%V =Ze  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll en=Z[ZIPO  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese $.QnM  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True s.6S :  
    DoEvents ,4NvD2Y  
     }[!;c+ke  
    '四级标题样式 90k|W >  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") .Y&_k  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" )"m FlS<I  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False =oluw|TCe7  
    With ActiveDocument.Styles("QLNU四级标题").Font  c?}C {  
        .NameFarEast = "宋体" RoxzCFsI\  
        .NameAscii = "Times New Roman" \C ZiU3  
        .NameOther = "宋体" .'lc[iI9)d  
        .Name = "宋体" vPi\ v U{  
        .Size = 12               '小四号 mppBc-#EYr  
        .Bold = True $sU?VA'h  
        .Outline = False CHdw>/5  
        .Italic = wdUndefined ]RPv@z:V  
        .Subscript = wdUndefined !}"npUgE  
        .Superscript = wdUndefined 8.o[K  
    End With tW|B\p}  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat Fz?ON1\  
         st{:] yTRk  
        .LeftIndent = CentimetersToPoints(0) `tVBV :4\  
        .RightIndent = CentimetersToPoints(0) Y">Q16(  
        .FirstLineIndent = CentimetersToPoints(0) u4IgPCTZ+  
         a,d\< mx  
        .LineSpacingRule = wdLineSpaceSingle 3 a:(\:?z  
        .Alignment = wdAlignParagraphLeft  .#zx[Io  
         BC(f1  
        .WidowControl = True ({m["d  
        .KeepWithNext = True (*/P~$xIj  
        .KeepTogether = True jn^i4f>N  
        .PageBreakBefore = False $B~a*zZ7  
        .OutlineLevel = wdOutlineLevelBodyText W$EX6jTGI  
         6aM `qz)  
        .CharacterUnitLeftIndent = 0 RL~\/#  
        .CharacterUnitRightIndent = 0 3_fLaf A  
        .CharacterUnitFirstLineIndent = 2 (8GJLs 8  
         /_*:  
        .LineUnitBefore = 0 c500:OSB  
        .LineUnitAfter = 0 kX'1.<[  
         '$ s:cS`=  
    End With j6/ 3p|E  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False N?kXAT B  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll ).9-=P HlX  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese }.NR+:0  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True \Wt&z,  
    DoEvents oFoG+H"&7\  
     bsr  
    '正文校式 x4*8q/G=D  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") n j; KnZ  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" 5`^"<wNI  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False ?b#/*T}ac  
    With ActiveDocument.Styles("QLNU正文").Font l2 gI2Cioa  
         \z:p"eua z  
        .NameFarEast = "宋体" pA4/ '7nCl  
        .NameAscii = "Times New Roman" vD:.1,72  
        .NameOther = "宋体" -3wg9uZ &  
        .Name = "宋体" 7vNS@[8  
         WN>.+qM~8  
        .Size = 12               '小四号 6:v8J1G(<  
         O_-.@uo./(  
        .Bold = wdUndefined qI<*Cze  
        .Italic = wdUndefined To}L%)   
        .Subscript = wdUndefined ?TMo6SU  
        .Superscript = wdUndefined A7VF >{L./  
         0K7-i+\#  
        .Outline = False &4O"Xs`ka  
        .Emboss = False :7W5R  
        .Shadow = False ;r49H<z   
        .Hidden = False bkmX@+Pe  
         I}n"6'*  
        .DisableCharacterSpaceGrid = True R j(="+SPj  
    End With #@2`^1  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat $ n  n4  
         .NCQiQ  
        .LeftIndent = CentimetersToPoints(0) xtpD/,2  
        .RightIndent = CentimetersToPoints(0) VY=~cVkzS  
        .FirstLineIndent = CentimetersToPoints(0) { zlq6z  
         "y "C#:5  
        .LineSpacingRule = wdLineSpaceExactly \Vm{5[:SA  
        .LineSpacing = 20 &|9mM=^  
        .Alignment = wdAlignParagraphLeft Z6K9E=%)c  
         ;f?OT7>kN  
        .WidowControl = False EIEwrC  
        .KeepWithNext = False vIN6W   
        .KeepTogether = False x[WT)  
        .PageBreakBefore = False hh+GW*'~  
        .Hyphenation = False zL OmtZ(['  
         ~i))Zc3,g\  
        .OutlineLevel = wdOutlineLevelBodyText tI.(+-q  
         e Yyl=YW  
       T1n GBl\(  
        .CharacterUnitLeftIndent = 0 `"GD'Oa  
        .CharacterUnitRightIndent = 0 }9Y='+.%^  
        .CharacterUnitFirstLineIndent = 2 nqgfAQsE)  
         x~Se-#$  
        .LineUnitBefore = 0 F:hJ^:BP  
        .LineUnitAfter = 0 m"86O:S#d  
        .SpaceBefore = 0 pm5Yc@D  
        .SpaceAfter = 0 /Klwh1E  
         at7/KuY!~  
        .DisableLineHeightGrid = True $N,9 e  
    End With lDMYDy{<  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False g0g/<Tv[  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll #g~~zwx/N  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese Y)BKRS~  
    ActiveDocument.Styles("QLNU正文").NoProofing = True oWs&W  
    DoEvents u>k;P UH4  
     d@C ;rzR  
    '图片段落样式 _32ltnBX  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") h=`rZC  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" A javV  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False [0/?(i|  
    With ActiveDocument.Styles("QLNU图片段落").Font Cgq9~U !  
        .Size = 12               '小四号 Ko/_w_  
        .Italic = wdUndefined tHJ1MDw'  
        .Subscript = wdUndefined uKpl+>  
        .Superscript = wdUndefined 168 U-<  
    End With )byQ=-< 1  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat q69a-5q  
         {sX*SbJt  
        .LeftIndent = CentimetersToPoints(0) _'2r=a#`  
        .RightIndent = CentimetersToPoints(0) fQOaTsyA  
        .FirstLineIndent = CentimetersToPoints(0) tE>3.0U0Q  
         p&vQ* }  
        .LineSpacingRule = wdLineSpaceSingle i;/qJKr&#  
        .Alignment = wdAlignParagraphCenter iW* 0V3  
        .KeepWithNext = True KC}B\~ +  
        .OutlineLevel = wdOutlineLevelBodyText C$ZY=UXz!T  
         r)+dK }xl  
        .CharacterUnitLeftIndent = 0 BOt\"N  
        .CharacterUnitRightIndent = 0 EnwiE  
        .CharacterUnitFirstLineIndent = 0 KgAc0pz{7H  
         w\$b(HC  
        .LineUnitBefore = 0 [jAhw>  
        .LineUnitAfter = 0 xU@Z<d,k  
    End With %}'sFu m`  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False ?ZTB u[  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll U> q&+:+  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese B-@f.NO/s  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True _QXo4z!a8  
    DoEvents dE ^(KBF  
     #GWQ]r?  
     J3$`bK6F6  
    '第X章 <9@VY  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Hsp|<;Yg  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" P-+^YN,  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False >x!N @G  
    With ActiveDocument.Styles("QLNU章节标题").Font qn+mlduU  
        .NameFarEast = "黑体" p,kJ#I  
        .NameAscii = "Arial Black" ;GH(A=}/Y  
        .NameOther = "Arial Black" b#82G`6r  
        .Name = "黑体" T,WWQm  
        .Size = 16 X 8[T*L.  
        .Bold = True T0tG1/O\  
        .UnderlineColor = wdColorAutomatic Bu 6t3  
        .Outline = False r9b`3yr=  
        .Italic = wdUndefined ?$ YE  
        .Subscript = wdUndefined [K"v)B'  
        .Superscript = wdUndefined SG43}  
        .Scaling = 100 9]AKNQq m  
        .DisableCharacterSpaceGrid = True r>z8DX @  
    End With w`!Yr:dU  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat K =7 (=Y{  
        .LineSpacingRule = wdLineSpaceSingle dW:  
        .Alignment = wdAlignParagraphCenter YRC`2)_'  
        .WidowControl = True *qz]vUb/0  
        .KeepWithNext = True jj.]R+.G  
        .KeepTogether = True ~PoGuj2wA  
        .PageBreakBefore = True W_iP/xL  
        .OutlineLevel = wdOutlineLevelBodyText 1$Eiv8xd  
         Or_9KX2  
        .LeftIndent = CentimetersToPoints(0) b[*d i{?-  
        .RightIndent = CentimetersToPoints(0) SxOM@A  
        .FirstLineIndent = CentimetersToPoints(0) JmY"Ja,&  
         R^PQ`$W 'R  
        .CharacterUnitLeftIndent = 0 N>]u;HjH  
        .CharacterUnitRightIndent = 0 b~#rUOXb8?  
        .CharacterUnitFirstLineIndent = 0 \7og&j-h  
         -09<; U  
        .LineUnitBefore = 1 ]}'WNy6c&x  
        .LineUnitAfter = 0.5 aQRZyE}  
         7[u&%  
        .AutoAdjustRightIndent = False PN\2 ^@>_  
        .DisableLineHeightGrid = True 1 ViDS  
        .FarEastLineBreakControl = True g2iSc   
        .WordWrap = True "QiUuD=  
    End With `P# h?tZ  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False f5sk,Z  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll >fb*X'Zi%  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese 0 _&oMPY  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True 2<.}]yi  
    DoEvents ](Sp0t  
     uQ8]j.0  
    '表格标题 $&a`zffG  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") JBU qZ  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" {p2%4  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False f(##P|3>R  
    With ActiveDocument.Styles("QLNU表格标题").Font d]@9kG  
        .NameFarEast = "楷体" -Tz9J4xU&  
        .NameAscii = "Arial" $ 1?YVA7  
        .Name = "楷体" iqOd] H]v  
        .Size = 10.5 9cj=CuE  
        .Bold = True 08.dV<P  
        .Underline = wdUnderlineNone 8eLNKgc  
        .Italic = wdUndefined B<0lif|  
        .Subscript = wdUndefined cDAO5^  
        .Superscript = wdUndefined }F1^gN&QF  
        .Color = wdColorAutomatic sq<y2j1oF  
    End With {ifYr(|p`  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat HX<5i>]0\u  
         ;{Ovqo|  
        .LineSpacingRule = wdLineSpaceSingle 7L]fCw p[  
        .Alignment = wdAlignParagraphCenter ?np` RA  
        .KeepWithNext = True <Ft.{aNq$c  
        .KeepTogether = True i<@|+*>M  
        .OutlineLevel = wdOutlineLevelBodyText JH?[hb  
         =)y=M!T2  
        .LeftIndent = CentimetersToPoints(0) xNm<` Y?  
        .RightIndent = CentimetersToPoints(0) =Wl CE_  
        .FirstLineIndent = CentimetersToPoints(0) B*?v`6  
         Ex<-<tY  
        .CharacterUnitLeftIndent = 0 K-#Rm%J+Wy  
        .CharacterUnitRightIndent = 0 $(_i>&d<  
        .CharacterUnitFirstLineIndent = 0 ){wE)NN  
         F] ~`57  
        .LineUnitBefore = 1 & }P62&  
        .LineUnitAfter = 0 ?;i6eg17<  
         zL7+HY* 3o  
    End With M)|} Vn;!  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False */Y@:Sjf  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll 2QBq  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese -M/ny-; `}  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True v"bOv"!al  
    DoEvents 'X[3y^q  
H"n"Q:Yp  
    '表格首行 ^M,Q<HL  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") p\!+j@H:  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False 8ALYih7"W  
    With ActiveDocument.Styles("QLNU表格首行").Font cFuvi^n\  
        .NameFarEast = "楷体" KH[%HN5v  
        .NameAscii = "Times New Roman" z{tyB  
        .Name = "楷体" l(<o,Uv[`  
        .Size = 9 . e]!i(5I  
        .Bold = True .m+KXlP  
        .Underline = wdUnderlineNone dc:|)bK M  
        .Italic = wdUndefined ea B-u  
        .Subscript = wdUndefined <M 7WWtmx  
        .Superscript = wdUndefined f+F /`P%  
    End With \hm=AGI0  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat ^WUF3Q**OU  
        .LineSpacingRule = wdLineSpaceSingle * .Kc-f4mP  
        .Alignment = wdAlignParagraphCenter %q:V  
         J#JZ^59lOS  
        .LeftIndent = CentimetersToPoints(0) Q+ uYr-  
        .RightIndent = CentimetersToPoints(0) ob0clJX  
        .FirstLineIndent = CentimetersToPoints(0) ,AM6E63  
         }l_) d  
         w"aD"}3  
        .CharacterUnitLeftIndent = -0.5 5[;p<GqGN  
        .CharacterUnitRightIndent = -0.5 _#-(XQa  
        .CharacterUnitFirstLineIndent = -0.5 D5U\~'{L  
         &&t4G}*  
        .LineUnitBefore = 0 N4$0ptz#}G  
        .LineUnitAfter = 0 B)Gm"bLCOZ  
        .SpaceBefore = 0 &z,w0FOre  
        .SpaceAfter = 0 8"p>_K=  
         MMcHzRF  
    End With 9]d$G$Kv9  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False V xsW3*`  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll T>L6 X:d  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese 0p~:fm  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True ZpWG  
    DoEvents IY :iGn8R  
}_Jai4O  
    '表格内容 Y&+<'FA  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") < FN[{YsA  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False [kn`~hI  
    With ActiveDocument.Styles("QLNU表格内容").Font /Nxy?g|,  
        .NameFarEast = "楷体" i12iB+q  
        .NameAscii = "Times New Roman" _-&Au%QNJ`  
        .Name = "楷体" !d"J,.)  
        .Size = 9 9C`Fd S   
        .Bold = False Zcdt\;HKr  
        .Underline = wdUnderlineNone .YLg^JfZ  
        .Italic = wdUndefined Gn&)*qCO  
        .Subscript = wdUndefined iD{;!dUZ  
        .Superscript = wdUndefined OyTBgS G?a  
    End With pU}>}  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat "Tfbd^AU  
        .LineSpacingRule = wdLineSpaceSingle dGHRHX i  
        .Alignment = wdAlignParagraphCenter K uFDkT!  
         0y6nMI  
        .LeftIndent = CentimetersToPoints(0) ~ZL}j+L/  
        .RightIndent = CentimetersToPoints(0) 7gPkg63  
        .FirstLineIndent = CentimetersToPoints(0) J *^|ojX  
         K cY 2lTvx  
        .CharacterUnitLeftIndent = -0.5 c\-I+lMBi  
        .CharacterUnitRightIndent = -0.5 w~1K93/p!  
        .CharacterUnitFirstLineIndent = -0.5 ))Aj X  
        .LineUnitBefore = 0 m]&d TZV  
        .LineUnitAfter = 0 dD!} P$  
        .SpaceBefore = 0 6Zkus20  
        .SpaceAfter = 0 {?#g*QF|^  
    End With K b{  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False "iOT14J!7  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll \N7 E!82  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese f} #pKsX.  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True HO$s&}t  
    DoEvents 0 oM~e  
$s?q>Z)  
    '图片标题 ^oPf>\),C  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") iF<VbQP=X^  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" HnU}Lhjzj  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False Mi:$<fEX  
    With ActiveDocument.Styles("QLNU图片标题").Font $|sRj!F  
        .NameFarEast = "楷体" 8l)^#"ySA  
        .NameAscii = "Times New Roman" szWh#O5=  
        .Name = "楷体" 8[xb+_  
        .Size = 10.5 9\|3Gm_  
        .Bold = True *mq+w&  
        .Underline = wdUnderlineNone syV &Ds)  
        .Italic = wdUndefined t;ggc{  
        .Subscript = wdUndefined @hg1&pfxZ<  
        .Superscript = wdUndefined 6%O"   
        .Outline = False '{Iv?gh"  
        .Shadow = False pdmeB  
        .Color = wdColorAutomatic aS62S9nwX  
    End With 54tpR6%3p  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat a^~l[HSF  
        .LineSpacingRule = wdLineSpaceSingle X0p=jBye~>  
        .Alignment = wdAlignParagraphCenter gK`6 NUj  
         qhiQ!fMQ  
        .KeepWithNext = wdUndefined r;}kw(ukC  
        .KeepTogether = True :? yv0Iu  
        .OutlineLevel = wdOutlineLevelBodyText {3`9A7bG  
         Z7OWpujCvN  
        .LeftIndent = CentimetersToPoints(0) 1*(^<x+n  
        .RightIndent = CentimetersToPoints(0) OTa lR;:]r  
        .FirstLineIndent = CentimetersToPoints(0) J[]YG+r  
         J/ <[irC  
        .CharacterUnitLeftIndent = 0 Ql#:Rx>b  
        .CharacterUnitRightIndent = 0 .4.zy]I  
        .CharacterUnitFirstLineIndent = 0 ?hsOhUs(5  
         #;2Ju'e#z  
        .LineUnitBefore = 0 epz2d~;  
        .LineUnitAfter = 0 HJoPk'p%  
    End With vek9. 4! ]  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False o;-)84Aa  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll Fi1gM}>py  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese %mh K1,  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True @cSz!E}  
    DoEvents (x#4BI}L9)  
(hdP(U77  
    '目录项 S'2B  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") [o\O^d  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" C:$lH  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False @[.%A;E4  
    With ActiveDocument.Styles("QLNU目录项").Font 1R1J/Z*V/  
        .NameFarEast = "黑体" 3Pkzzyk_|D  
        .NameAscii = "Times New Roman" kS3wa3bT  
        .NameOther = "Times New Roman" G#n27y nh  
        .Name = "黑体" obS|wTG~  
        .Size = 10.5 36.L1!d)pE  
        .Bold = False i]xyD'0  
        .Italic = wdUndefined S}ZM;M  
        .Underline = wdUnderlineNone >/}v8 k1v  
        .Color = wdColorAutomatic  t\u0\l>  
        .Superscript = wdUndefined ^;Ap-2Ww  
        .Subscript = wdUndefined wrw~J  
    End With c7P"1  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat }B}?qV  
         =f=MtH?0y  
        .LineSpacingRule = wdLineSpaceSingle D.U)R7(  
        .Alignment = wdAlignParagraphLeft 1JJ Q(b  
         uppA`>  
        .WidowControl = False Sxf<8Px9i  
        .KeepWithNext = False C$ nT&06o  
        .KeepTogether = False Dj #G{X".  
        .PageBreakBefore = False Hi <{c  
        .NoLineNumber = False c,4UnEoCR  
        .OutlineLevel = wdOutlineLevelBodyText gb8nST$r  
         0|P RCq  
        .LeftIndent = CentimetersToPoints(0) TfVB~"&  
        .RightIndent = CentimetersToPoints(0) !:a pu!  
        .FirstLineIndent = CentimetersToPoints(0)  fW|1AUD,  
         !<@k\~9^D  
        .CharacterUnitLeftIndent = 0 vsHY;[  
        .CharacterUnitRightIndent = 0 pA4oy  
        .CharacterUnitFirstLineIndent = 0 RcMW%q$dG  
         YD7i6A  
        .LineUnitBefore = 0 $w#C;2k]N  
        .LineUnitAfter = 0 bU(t5 [  
    End With 8H3|^J  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False ZrXvR`bsw  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll .6f %"E,  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot :!'aP\uE  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese }(O 7tC  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True X=mzo\Aos  
    DoEvents }4  5|  
     DRj\i6-v  
    '参考文献 Xn9TQ"[4  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") )r5QOa/  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" 1k3wBc 5<  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False *A;~~ SQ  
    With ActiveDocument.Styles("QLNU参考文献").Font 97NF*-)N  
        .NameFarEast = "宋体" Y)g<> }F  
        .NameAscii = "Times New Roman" dX,2cK[aG  
        .NameOther = "Times New Roman" oq(um:m  
        .Name = "Times New Roman" *ZF7m_8u{  
        .Size = 12 #&5m=q$EI  
        .Bold = False T6%*t#8r  
        .Italic = wdUndefined {pE")O7~P  
        .Subscript = wdUndefined ld$LG6[PA  
        .Superscript = wdUndefined M($dh9A_  
        .Underline = wdUnderlineNone  3m  
        .UnderlineColor = wdColorAutomatic a]BnHLx  
        .Color = wdColorAutomatic D8C@x`  
        .Engrave = False ! E#XmYhX=  
    End With (]vHW+'  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat HG5|h[4Gt  
         Z?O aY4  
        .LineSpacingRule = wdLineSpaceExactly d]$z&E  
        .LineSpacing = 16 {&,a)h7&  
        .Alignment = wdAlignParagraphLeft T/dchWG  
        .WidowControl = False )pW(Cp  
        .KeepWithNext = False (,[m}Qb?!  
        .KeepTogether = False M E4MZt:>  
        .PageBreakBefore = False qun#z$  
        .OutlineLevel = wdOutlineLevelBodyText wQlK[F]!>  
         c+ Ejah+  
        .LeftIndent = CentimetersToPoints(0) j'#W)dp(  
        .RightIndent = CentimetersToPoints(0) L&][730  
        .FirstLineIndent = CentimetersToPoints(0) #rF|X6P  
         G6]M~:<i  
        .CharacterUnitLeftIndent = 0 I[WW1P5  
        .CharacterUnitRightIndent = 0 Uw)?u$+ P  
        .CharacterUnitFirstLineIndent = -2 p4bQCI  
         /{\tkvv-Z  
        .LineUnitBefore = 0 WojZ[j>  
        .LineUnitAfter = 0 wVP{R3  
        .SpaceBefore = 0 K q: +{'  
        .SpaceAfter = 0 Fpzps!(;=  
         0^?(;AK  
    End With ePP-&V"`"  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False W5<1@  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll 218ZUg -a  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS n,bZj<3t  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True >-c;  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese CJ%bBL'.  
    DoEvents )g(2xUk-y  
71m dU6Kq  
    ' JyvX NV,  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") ;vc$;54K  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" BO5F6lyQ0P  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False @;"HslU\Q  
    With ActiveDocument.Styles("QLNU论文题目").Font L'`W5B@  
        .NameFarEast = "黑体" v% VCFJ  
        .NameAscii = "Arial Black" :S{[^ -"  
        .NameOther = "Arial Black" b6'%nR*f  
        .Name = "Arial Black" 593 D/^}D  
        .Size = 16 & 2& K9R  
        .Bold = False .3Jggp  
        .Italic = wdUndefined  # G0jMQ  
        .Superscript = wdUndefined r8pTtf#Q  
        .Subscript = wdUndefined dNB56E)5`J  
        .Underline = wdUnderlineNone [^A93F  
        .UnderlineColor = wdColorAutomatic XTXRC$B  
        .Color = wdColorAutomatic :%{MMhb x  
]}<wS ]1  
    End With ?r"m*fY%  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat TGY^,H>J  
        .LineSpacingRule = wdLineSpaceSingle GX4# IRq  
        .Alignment = wdAlignParagraphCenter Azxy!gDT"  
        .WidowControl = True ]<WKi=  
        .KeepWithNext = True IwiR2K  
        .KeepTogether = True j$4To t  
        .PageBreakBefore = True K!lGo3n]  
        .NoLineNumber = False OAEJ?ik  
        .OutlineLevel = wdOutlineLevelBodyText w(]Q `  
         /9/=]  
        .LeftIndent = CentimetersToPoints(0) Ha)eeE$  
        .RightIndent = CentimetersToPoints(0) X48Q{E+  
        .FirstLineIndent = CentimetersToPoints(0) aqK<}jy  
         X25cU{  
        .CharacterUnitLeftIndent = 0 l[fU0;A  
        .CharacterUnitRightIndent = 0  U(dT t  
        .CharacterUnitFirstLineIndent = 0 W1w)SS  
         ;Bd0 =C  
        .LineUnitBefore = 1 Ps4spy0Fp  
        .LineUnitAfter = 1 gxycw4kz  
         RM|<(kq  
        .BaseLineAlignment = wdBaselineAlignAuto GE\@mu *pO  
    End With XwOj`N{!H  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False >}\!'3)_  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll \Se>u4~L  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS D[x0sly  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True rgWGe6;!  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese =q.2S; ?  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True _Y40a+hk]  
    DoEvents J0~Ha u  
     =mxmJFA  
    '中文摘要 8B"jvrs  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") rg]eSP3 W  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" )wQR2$x~  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False ~Yv"=  
    With ActiveDocument.Styles("QLNU中文摘要").Font 9?:SxI;v  
        .NameFarEast = "宋体" ~3dBt@%0  
        .NameAscii = "Times New Roman" ZX sm9  
        .NameOther = "Times New Roman" {*bXO8vi((  
        .Name = "Times New Roman" 5 S$*YRp  
        .Size = 12 Ji\8(7 {8  
        .Bold = wdUndefined vZ\~+qV,A  
        .Superscript = wdUndefined -\:pbR  
        .Subscript = wdUndefined Vf`n>  
        .Italic = wdUndefined 8j. 9Sk/  
        .Underline = wdUnderlineNone f`*Ip?V-  
        .UnderlineColor = wdColorAutomatic BI?M/pIm  
        .Color = wdColorAutomatic m jC6(?V  
    End With M\BLuD  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat CL5u{i5  
        .LineSpacingRule = wdLineSpaceExactly v[T5D:  
        .LineSpacing = 20 />S=Y"a/7  
        .Alignment = wdAlignParagraphLeft S^HuQe!#  
         Y.Na9&-(  
        .WidowControl = False CTv-$7#  
        .KeepWithNext = False 4E}]>  
        .KeepTogether = True d}GO(  
        .PageBreakBefore = False MM"{ehd{^a  
        .NoLineNumber = False .h-:) e*  
        .OutlineLevel = wdOutlineLevelBodyText ExqI=k`Zs  
         X!2/cgU7  
        .LeftIndent = CentimetersToPoints(0) B9`nV.a  
        .RightIndent = CentimetersToPoints(0) U{ gJn#e/.  
        .FirstLineIndent = CentimetersToPoints(0) )zkk%mE/IM  
         oIdMDp^$  
        .CharacterUnitLeftIndent = 0 ]xBQ7Xqf|  
        .CharacterUnitRightIndent = 0 k%?wNk>  
        .CharacterUnitFirstLineIndent = 2 n a])bBn  
        .LineUnitBefore = 0 _f z-fG 1  
        .LineUnitAfter = 0 6Daz1Pxd+  
         lwIU|T<4  
    End With ,YX[6eZr  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False !n~p?joJ*  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll [~,~ e   
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS ~Aq;g$IJZ  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True 7Q7z6p/\v  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese |d?0ZA:z  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True e*;-vS9H  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete 8 C@iD%  
    DoEvents m*tmmP4R  
     *`YR-+0  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Sp: `Z1kH  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" g!( j.xe  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False Lj6$?(x}  
    With ActiveDocument.Styles("QLNU英文标题").Font eVL'Ao&Ho  
        .NameFarEast = "黑体" & ok2Xw  
        .NameAscii = "Arial Narrow" a$.(Zl  
        .Name = "Arial Narrow" 3de<H=H'  
        .Size = 16 qP- *  
        .Bold = True v?F~fRH  
        .Bold = wdUndefined dWwh?{ n  
        .Superscript = wdUndefined 3N|,c]|  
        .Subscript = wdUndefined UbE*x2N  
        .Italic = wdUndefined !run3ip`Z  
         dU+28  
        .Underline = wdUnderlineNone m7Nm!Z7  
        .UnderlineColor = wdColorAutomatic J b Hn/$  
        .StrikeThrough = False ':lADUt  
        .DoubleStrikeThrough = False J'`,];su  
    End With $rD&rsx6  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat R R<92R  
        .LineSpacingRule = wdLineSpaceSingle QXqBb$AXi,  
        .Alignment = wdAlignParagraphCenter *aT3L#0(  
        .WidowControl = True % zHsh  
        .KeepWithNext = False g|tnYN  
        .KeepTogether = False LRW7_XYz  
        .PageBreakBefore = False _"6{Rb53v=  
        .NoLineNumber = False >_XRh  
        .FirstLineIndent = CentimetersToPoints(0) 6":=p:PT.  
        .OutlineLevel = wdOutlineLevelBodyText pi[:"}m]/P  
         RNE} )B  
        .LeftIndent = CentimetersToPoints(0) ]fg?)z-Z  
        .RightIndent = CentimetersToPoints(0) n,SDJsS^  
        .FirstLineIndent = CentimetersToPoints(0) hVo]fD|W  
         wy eiz7  
        .CharacterUnitLeftIndent = 0 4<CHwIRHY  
        .CharacterUnitRightIndent = 0 )"s <hR ,  
        .CharacterUnitFirstLineIndent = 0 }A; J-7g6  
         {]]qd!,  
        .LineUnitBefore = 1 .YKqYN?y4  
        .LineUnitAfter = 1 8Ih+^Y a  
         DfgqB3U[  
    End With jXB<"bw  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False $q.% 4  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll y[BUWas(  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS 5rK7nLb  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True $q);xs  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese Eqj&SA  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True Z%Q[W}iD  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete P#]%C  
    DoEvents ^noKk6Aaa  
`O ?61YUQH  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") G]X72R?g  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" }D j W  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False 7'\<\oT  
    With ActiveDocument.Styles("QLNU英文摘要").Font @U08v_,  
        .NameFarEast = "宋体" zBV7 b| j  
        .NameAscii = "Arial" `?{i dg  
        .NameOther = "Arial" CK eT%3  
        .Name = "Arial" 3QM6M9M  
        .Size = 12 nm2bBX,fh  
        .Bold = wdUndefined RI9&KS  
        .Italic = wdUndefined gTcLS|& H  
        .Superscript = wdUndefined BR*,E~%  
        .Subscript = wdUndefined {>'GE16x  
    End With E8j >Toz  
     w K0vKdi  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat 6a5 1bj!f  
         c,-3+b  
        .LineSpacingRule = wdLineSpaceExactly q'9u8b  
        .LineSpacing = 20 Cg^=&1 |  
         fw Ooi 'jb  
        .Alignment = wdAlignParagraphJustify PMC5qQ%x  
         ('QfB<4H1  
        .WidowControl = False t$m~O?I  
        .KeepWithNext = False A J<Sa=  
        .KeepTogether = False U<QO@5  
        .PageBreakBefore = False B%QvFxZz  
        .NoLineNumber = False `3m7 b!0k  
         Y4 q;  
        .OutlineLevel = wdOutlineLevelBodyText 'M+iw:R__  
         bII pJQ1.[  
        .LeftIndent = CentimetersToPoints(0) musZCg$  
        .RightIndent = CentimetersToPoints(0) b7 %Z~  
        .FirstLineIndent = CentimetersToPoints(0) {Hg.ctam  
         4/e|N#1`;[  
        .CharacterUnitLeftIndent = 0 [Zc8tE2oN  
        .CharacterUnitRightIndent = 0 Q{1Q w'+@  
        .CharacterUnitFirstLineIndent = 2 ~{lSc/SP|  
         tJ`tXO  
        .LineUnitBefore = 0 N# $ob 9  
        .LineUnitAfter = 1 9bd$mp  
         {?yZdL:m)  
    End With PLlad\  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False Y3^UJe7E  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll +Z99x#  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS 31v0V: j  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False ?o307 r  
    DoEvents s>hNwb/  
2 Z W {  
    Options.Pagination = True Wv!#B$J~U  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." 8i"v7}  
    DoEvents %>u (UmFO  
    ActiveDocument.Repaginate <=2\xJfxB  
5'>DvC p%M  
End Sub H y}oSy26  
.&fG_(6|  
5nC#<EE  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: WrJgU&H{  
&/o4R:i  
用VBA控制WORD自己修订学生毕业文的格式。 p,#t[K  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? x -CTMKX  
R]L$Ld< ij  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

?**9hu\BG  
P0 4Q_A  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 p}MH LM  
第6车皮 :}+ m[g  

fK1^fzV  
I`KBj6n  
第9车皮 ^!x}e+ o  
wrEYbb  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 &4V"FHy2  
od`:w[2\  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 liG3   
G[[NDK  
Main2.bas K)n0? Q_>  
}hX"A!0  
Attribute VB_Name = "SubMain" Bl8&g]dk  
Option Explicit Q =cbHDB  
_<P~'IN+n  
'采集文件与临时文件 MESPfS+  
Public Const TmpFile As String = "d:\30-0600.dat" sow/JLlbC  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 C@q&0\HN  
2z=GKV  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long {1j[RE  
Public hBCFile As Long  '记录采集参数的文件 `@r#o&  
Public Const TmpBMP As String = "d:\1.bmp" ^"\., Y  
Public hTmpFile As Long lITZ|u  
fP 5!`8  
$[-{Mm  
'采集窗口参数常量 ^jMo?Zwy  
Public Const FrameH As Long = 280&  tmf= 1M  
Public Const FrameW As Long = 768& KqT~MPl  
Public Const pFrameSize As Long = FrameW * FrameH DU: sQS4  
#$(w fb9  
'标志区范围,用于识别车辆 D:Y `{{  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X X>6VucH{\  
Public Const mkW As Integer = 28  '识别标志立柱宽度 rXR}]|;>  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) kzcD}?mSS  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) u#m(Py  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 QWWoj[d#  
'车缝检测位置常数 iWNTI  
Public Const sSize As Long = 32& Y2Y!^A89  
Public Const sPos As Long = 310& V7 dAB,:  
Public Const sPosL As Long = 200& )B' U_*  
Public Const sPosR As Long = 500& Cb/?hT  
'车缝检测框位置 ALY% h!L  
Public Slice(1 To sSize, 1 To FrameH) As Byte bU i@4S  
Public SliceL(1 To sSize, 1 To FrameH) As Byte ,9;d"ce  
Public SliceR(1 To sSize, 1 To FrameH) As Byte .1C|J  
Public avSL As Integer, avSLR As Integer, avSLL As Integer Q`X5W  
*cn#W]AE  
sw@* N  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 Bt^];DjH  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 Y)X58_En  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 C JNz J(  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long /+F|+1   
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte G ]mX+?  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 ^. i;,  
lt&30nf=  
lZup n?  
e`Z3{H}  
'一次连续采集的帧数 ~IE5j,SC  
Public tFrames As Long > AV R3b  
@5# RGM)5^  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 6uH1dsD  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 umWZ]8  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize {\HE'C/?  
n!(g<"  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte _\Cd.  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte ^2PQ75V@.  
Public pWorkSpace(1 To FrameW * FrameH) As Long ,-XJ@@2gM  
Public Const pBufferSize As Long = FrameW * FrameH * 2 oFeflcSz  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 4';]fmf@[i  
N#`aVW'{v2  
Public hBoard As Long   '采集卡标识 V-(LHv  
Public mBufferAddr As Long  '缓存地址 R.)U<`||  
Public BufferSize As Long  '缓存大小(字节) 7l})`> k  
Public iCurrentCard As Long fJ3qL# '  
Public CapStatus As Long ^(0tNX/XD  
Public iFrames As Long K!9rH>`\  
Public currentBr As Byte, currentContr As Byte {@u}-6:wAT  
?JD\pYg[/  
Public hMEM As Long, mStatus As Long cMEM}Qh T  
Public Const hMemSize As Long = pFrameSize * 4 [+st?;"GF  
Public hMemWork As Long 3*gWcPGe  
Public Const hMemWorkSize As Long = pFrameSize * 5 |k4ZTr]?  
].2it{gF?b  
sE8.,\  
}PY? ZG  
'串口接收轨道衡数据 rHtT>UE=  
Public WeightFromCom As String 4l?98  
Public bReceiveComplete As Boolean E4'D4@\W  
\[+\JWJj  
)LYj,do  
Public Type GrayBMPHeader rS 4'@a  
  Tag As Integer 1% )M-io  
  FileLength As Long    '文件大小 :6z0Ep"  
  Reserve1 As Long N2_=^s7  
  DataOffset As Long    '图像数据偏移量 Y e}y_W  
  BMPHeaderSize As Long  '文件头长 Hvq< _&2  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… ku'%+svD  
                        'the following sizes are possible: oLn| UWe_  
                        '28h - windows 3.1x, 95, nt, … dMwVgc:  
                        '0ch - os/2 1.x (;T; ?v`-  
                        'f0h - os/2 2.x 5W!E.fz* T  
IfZaK([  
  ImageWidth As Long           '图像宽(像素数) 2r~ Nh](  
  ImageHeight As Long          '图像高(像素数) ;61m  
  PlaneNumber As Integer  '图像层数 ~QsQ7SAs  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap  1Nk}W!v  
                                        '4 - 16 color bitmap !P!|U/|c  
                                        '8 - 256 color bitmap I$`Vw >  
                                        '16 - 16bit (high color) bitmap B!le=V,@,  
                                        '24 - 24bit (true color) bitmap 7,e=|%7.  
                                        '32 - 32bit (true color) bitmap 1*r {%6  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) `q exEk@S  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) #1zWzt|DW  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) ++13m*fA  
                                    '3 - bitfields (also identified by bi_bitfields) ~::gLm+f  
  IMAGESIZE As Long  '图像数据字节数 Dg#Ab8  
  hResolution  As Long  '水平分辩率  像素数/米 gHlahg  
  vResolution  As Long  '垂直分辩率 f41!+W=  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 ):+H`Hcm  
  ImportantColors As Long Hf %;FaJ=  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 g-%uw[pf  
End Type /d >f p  
7q|(ZZa  
8}Y( @ %4  
+WwQ!vWWd  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader _pNUI {De  
Public sRECT As RECT Te> 7I  
Drlt xI)  
ryx<^q  
Public conn As ADODB.Connection &K^h'>t'  
Public rsTrain As ADODB.Recordset F ,{nG[PL  
Public rsOperater As ADODB.Recordset I01On>"@7  
Public rsGoods As ADODB.Recordset T"Q4vk,3*J  
Public rsGood2 As ADODB.Recordset @/JGC%!  
Public rsSender As ADODB.Recordset 't{=n [  
Public rsReceover As ADODB.Recordset .#h ]_%  
Public rsTrainTMP As ADODB.Recordset AX1'.   
2+GF:[$  
;:9 x.IkxC  
'打开采集卡 ){>;eky  
'设置参数 hP,1;`[1  
'设置为实时单帧采集到缓存方式 `>8|  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 L#u6_`XJ+  
:7Vm]xd}do  
kQIWD N  
Sub Main() XR\ iQ  
  Dim i As Integer, status As Long zPV/{)S  
     cx2s|@u0  
   InitBMPinfo nL+* Ja  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 SQ5*?u\  
    BMPHeader.Tag = &H4D42 igz:ek`  
    BMPHeader.ImageWidth = FrameW ;lAz@jr+  
    BMPHeader.ImageHeight = FrameH eS@RA2  
    BMPHeader.BMPHeaderSize = &H28 `bT{E.(T  
    BMPHeader.PlaneNumber = 1 B>Nxc@=D  
    BMPHeader.bpp = 8 YQN=.Wtc  
    BMPHeader.Compression = 0 %e%nsj6  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 aXC`yQ?  
    BMPHeader.vResolution = &H1274 XpH[SRUx  
    BMPHeader.ColorsinBMP = 256 -"a+<(Y  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP i%*x7zjY{  
    BMPHeader.DataOffset = Len(BMPHeader) 3 XfXMVm  
    For i = 0 To 255 @R2| =ox  
      BMPHeader.Pallate(i) = RGB(i, i, i) 1}8e@`G0.]  
    Next i 6w}:w?=6  
    BMPHeader.IMAGESIZE = FrameH * FrameW +nMgQOs  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE ?EX'j >  
O:7y-r0i  
+d6E)~qKL  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) [1nI%/</>  
     ~*B1}#;  
    BMP1.ImageWidth = FrameW 5Cy)#Z {  
    BMP1.ImageHeight = FrameH * 2 &9s6p6 eb  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight x\Sp~]o3C  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE |x<  
']vX  
  '确定标志位置,为pilarX, pilarY确定初始值 2 yP#:T/z  
   PilarW = mkW m; ABHq#  
   PilarH = mkH  '此两项为固定值 )X^nzhZ2O"  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) &7DE$ S  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 dIO\ lL   
   =,@SZsM*B  
   5Ij_$ a  
  '连续采集记录文件 +Kq>r|;  
  ' 建立一个缓冲区为页对齐方式的文件 %q*U[vv  
  If Dir(TmpFile) <> "" Then c= a+7>  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ ]K9 x<@!  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 1|gP :t}  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 6xFZv t  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 )edM@beY_  
  Else ~hvhT}lE  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ Y,(eu*Za  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) yJp& A  
  End If .X2mEnh  
  If hFile = 0 Then <O>Q;}>gfc  
    MsgBox TmpFile & ": File Open Error", vbOKOnly 7OWiG,  
    Exit Sub Z@ws,f^e  
  End If %okEN !=  
  '采集参数记录文件 ao-C9|2>NU  
hBCFile = FreeFile() i ^IvT  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile #Y18z5vo  
   bY>o%LL-  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 QHs]~Ja  
If hMEM = 0 Then &6\rKOsn  
    fStatus = GetLastError R9CAw>s  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ %?wuKZLnc  
     & "请向技术人员报告该错误代码。", vbOKOnly ldX]A#d.  
    CloseHandle hFile 6U /wFT!7$  
    Exit Sub t'Q48QAb?  
End If D9LwYftZ  
ZY/at/v  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) IeU.T@ $  
If hMemWork = 0 Then >Le mTr  
    fStatus = GetLastError sG VC+!E  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ |\_O8=B%  
     & "请向技术人员报告该错误代码。", vbOKOnly X2e|[MWkp  
     '释放已成功分配的内存 2hu6  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) If&p$pAH?  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) Pdn.c1[-a  
     Sej$x)Q\t  
    CloseHandle hFile {9l4 pT3  
    Exit Sub W;-Qze\D  
End If ,Xh4(Gn#b  
T]vD ,I+  
' Test writing _+;x 4K;  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& Zh(f2urKV  
     ttw@nv% @  
   '初始化采集卡参数 r\Nn WS J  
   iCurrentCard = -1 hsE!3[[  
   hBoard = okOpenBoard(iCurrentCard) 2d>PN^x  
   Debug.Print hBoard -%N (X8  
   If hBoard = 0 Then *TXq / 3g  
      ExitGrabber Qp=uiXs  
      End XW#4C*5?d  
   End If 7CIje=u.q  
   okGetBufferSize hBoard, mBufferAddr, BufferSize %eah=e  
   If mBufferAddr = 0 Then U50X`J  
     MsgBox "缓存不存在!" 8% |x)  
     ExitGrabber cKfYkJ)A'  
   End If uyA9`~p=#  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) <K0lS;@K  
   1_p'0lFe  
   q(r2\  
   currentBr = 128: currentContr = 128 WWe.1A,  
   '设置视频输入参数 ^Ue.9#9T&g  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 c"z%AzUV'  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input Rp<Xu6r  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 SUVr&S6Nk  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 ~T-.k 7t  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 =az$WRV+7!  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 u3ZG;ykM  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) hW},%  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) m:41zoV  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) /d=$,q1  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 53T2w,?  
   16+@#d%#p  
   '设置采集参数 B#DV<%GPl  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 k Z3tz?Du  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 VC+\RB#:-  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 zyR pHM$E  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 <^~F~]wnH  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 RTU:J67E  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 aH$~':[93  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 lR(&Wc\j  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 ^$L/Mv+  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 .U3p~M+  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 <7&b|f$CL  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 7RLh#D|  
   p>zE/Pw~  
   cn c$^[c  
   okCloseBoard hBoard ~8X' p6  
   Sleep 50 z]WT>4  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 "D k:r/  
   CeJ|z {F\  
   '设置数据传送方式 +\ySx^vi  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 <Q0&[q;Z  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 vLke,MKW  
   2<O8=I _  
   sRECT.Right = -1   '用于获得当前设置值 wLO/2V}/  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) !^7:Rr _  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom u<8Q[_E&  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 ;F+%{LgKl  
   sRECT.Left = 0 m88~ +o<G%  
   sRECT.Top = 0 P:=AD W c  
   sRECT.Right = sRECT.Left + FrameW f65Sr"qB3  
   sRECT.Bottom = sRECT.Top + FrameH * 2 q38; w~H  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) ]@P*&FRcZ  
   Gt%kok  
   sRECT.Right = -1   '检查新设置值 +?<j SmGW  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) t}tKm  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom Iu[EUi!"  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) /f[_]Le V]  
   QXz!1o+"  
   If TESTSignal = False Then a9I8W Q   
      'ExitGrabber lrE0)B5F  
   End If zXD@M{  
   "+WR[-n>\  
   O92Yd$S  
   l}^#kHSyd  
   '设为实时采集状态 ?4Lo"igAA  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) 0%t|?@HoN  
   4TKi)0 #7  
   G](K2=  
   '单帧采集 eXd(R>Mx  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 3pp w_?k  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) cm3Y!p{p"  
   okCaptureTo hBoard, BUFFER, 0, 1 'single 4_Jdh48-d  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 [Ok8l='  
   '   Sleep 20 st2>e1vg  
   'Loop $>UzXhf}\  
   okGetCaptureStatus hBoard, True s`B'vyoaa  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize hJ<2bgQo  
   '写入768*576测试图象 'YG`/@n;  
   ArrayToBMP TmpBMP _e 3'f:  
   ws=TR  
   '打开数据库 -^5R51  
   Set conn = New ADODB.Connection h$&XQq0T  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ Dpd$&Wr0Y  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ U)!AH^{32  
      "; Mode=Read|Write" Esjv^* v9-  
   conn.Open E;4a(o]{t  
   v(^rq  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) O,{ (  
   frmRecord.Visible = True fz&}N`n  
   frmQuery.Visible = True p(G?  
   Load frmReceiveFromComm kUt9'|9!  
   A-io-P7qyj  
   '调试参数 0o]K6 b  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then hF~B&^dd.  
     SignalBox.Visible = True 54{"ni 2a  
   End If JW\"S  
   If InStr(UCase(Command()), "/COMM") > 0 Then LTe7f8A  
     frmReceiveFromComm.Visible = True |-fx 0y   
   End If W24bO|>D  
zi ,Rk.  
End Sub %awS*  
k +Oq$Pi  
Sub ExitGrabber() *LRGfk+h  
  '关闭数据库 ]G B},  
  '关闭采集卡 ie!4z34  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) MUrY>FYgx  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) "!tB";n  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) }D^Gt)   
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) IO#W#wW$M  
  okStopCapture hBoard 1I`D$Xq~:  
  okCloseBoard hBoard XbC8t &Q],  
  CloseHandle hFile ,ln uu  
  Close #hBCFile B<LavX>F  
  conn.Close 7N"Bbl  
  End $ZRN#x@  
End Sub  kTz  
,&=`T 7i  
Function ArrayToBMP(ByVal File As String) ;$QJnQ"R  
Dim BytesWrite As Long rd)) H  
rieQ&Jt"  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ DR /)hAE  
  CREATE_ALWAYS, 0&, 0&) CnH R&`  
aK{\8L3]  
If hTmpFile = 0 Then }WbN)  
   ArrayToBMP = False 1aE/_  
   Exit Function l.x }I"tf  
End If co3 ,8\N0  
arP+(1U  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN c)8wO=!  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& 1Q5<6*QL"  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN $D5U#  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& zmFFBf"<  
u-_$?'l;~  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN 8ilbX)O  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& cPcV[6)5K9  
r!^\Q7  
If BytesWrite < pFrameSize Then }dUC^04  
  ArrayToBMP = False {nefS\#{  
End If w8 $Qh%J'<  
]3xa{ h~4  
CloseHandle hTmpFile dYd~ 9  
PHvjsA%"   
End Function p|d9 g ^  
tZ^;{sM  
Function ArrayToBMP1(ByVal File As String) <k](s  
,NEs{! T  
Dim BytesWrite As Long ugB{2oqi  
_6!/}Fm  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ `4 bd,  
  CREATE_ALWAYS, 0&, 0&) X{}#hyYk"  
R3n&o%$*  
If hTmpFile = 0 Then *fSM'q;  
   ArrayToBMP1 = False s8[9YfuW  
   Exit Function e<4z)  
End If N o(f0g.  
-ZP&zOsDr  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN gKN_~{{OD  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& \&5@yh  
A#X.c=  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN j/D)UWkR  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& $>=Nb~t!/  
`M ygDG+u  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN es[5B* 5  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& wW8 6rB  
+^? -}v  
If BytesWrite < pBufferSize Then CLEG'bZa,  
  ArrayToBMP1 = False Vb^s 'k  
End If //lZmyP?  
J'yN' 0  
CloseHandle hTmpFile 0> =)  
sjI[Vq  
End Function $`{q[{  
?d<:V.1U@  
'使用该过程建立的文件要求在用后关闭 yZp:hs#  
Public Function ArrayToBMP2(File As String) As Boolean k6'#  
\GvY`kt3  
Dim BytesWrite As Long vvAk<[  
Rr4CcM  
ArrayToBMP2 = True `E=rh3 L0o  
15 o.j!S  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ ;jU-<  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) xm|4\H&Bg  
93IOG{OAY  
If hTmpFile = 0 Then df6&Nu;4L  
   ArrayToBMP2 = False 'c0'P%[5A  
   Exit Function U;{,lS2l  
End If 0 jP00   
Y@H,Lk  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN W8$=a  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& N!BOq`#da  
g[au-.:  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN )O@^H   
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& Q *]`t@ q  
}c4E 2c  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN \'+{X(]  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& 8TZA T%4  
x}<G!*3  
If BytesWrite < pFrameSize Then I"sobZ`  
  ArrayToBMP2 = False 1qj%a%R  
End If xd fvme[  
P}9Y8$Y>U  
CloseHandle hTmpFile &]6K]sWJK{  
ZBR^[OXO  
End Function p@8krOo`  
CS5jJi"pD3  
Private Function TESTSignal() As Boolean NzAtdcwR  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long {Okik}Oh  
rtL9c w5  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) ^lai!uZVa  
Mc7<[a  
If extsign = 1 Then IHbow0'  
   TESTSignal = True 90iW-"l+[  
Else h:jI  
    If extsign = 0 Then 7e4tUAiuU  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly 5u)^FIBj  
        TESTSignal = False 1mn$Rh&dO  
        Exit Function ru/zLj:  
    End If EO/cW<uV'  
End If S~rVRC"<xo  
"1!.^<V*  
'测试视频输入类型 z]l-?>Zbg  
'video type .;Utkf'I  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 8U<.16+5Q  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) i %hn  
If videotype = 1 Then )_ b@~fC  
        '"隔行信号(Interlaced)" ( X 'FQ  
Else oyN+pFVB:$  
   If videotype = 0 Then _UBJPb@=U  
       '"逐行信号(Non-interlaced)" 1s} ``1>  
   Else e,#+Xx0M  
     If videotype = -1 Then t66f 7AR  
       ' "不支持" bOxjm`B<  
     End If Gp ^ owr  
   End If S?nNZW\6[  
End If ( #-=y~%  
_N,KHxsG8B  
'测试垂直扫描线数 ^mgI%_?1  
'video scanlines GATP  
scanlines = -1 1x\W52 1  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) 4-M6C 5#.  
    If scanlines = -1 Then dVVvG]  
        ' "不支持" TFJ{fLG  
    Else 0$"Q&5Y  
        'Trim(Str(ScanLines)) + " 行数/幅" Z;Ir>^<  
    End If }U?gKlLg  
c(Uj'uLc  
'测试帧频 [2QY  
'video field frequency N t>HztXd  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) R5NRCI  
    If fieldfrq = -1 Then tLXn?aNY  
        'lblSignal(8) = "不支持" UOLTCp?M;J  
    Else e1`)3-f  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" ;ad9{":J#B  
    End If F`;TU"pDf  
End Function uF]D  
}uvKE|umj  
o^_W$4Fc  
Sub PicIdentify() Ql#W /x,e  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 f^6&Fb>  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 ]O[+c*|w  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 M=\d_O#;Z  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 p9&gEW  
^i`3cCFB<  
  Dim fPTR As Long, cFrame As Long !8  wid&  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer nz&b5Xb2  
     z6FbM^;;  
} `>J6y9  
cFrame = 0 |%:q hs,  
Z M-/n>  
t7*G91Hoq&  
Do While cFrame < tFrames [al(>Wr9  
   Gh$y#0qr  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) )WP]{ W)r  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) Y uw E 0  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize ;Z!~A"~$>  
   (!_X:+0_  
  frmRecord.RText.Text = Str(cFrame) rY[3_NG%  
  frmRecord.RText.Refresh ui.QYAYaV  
       P,$ [|)[E  
  If CheckMark = True Then ,NaV [ "9$  
   ArrayToBMP TmpBMP Bt*&L[&57  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) 4 [5lX C  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧"  EbBv}9g  
   M5T=Fj86  
   DrawSlice g/U$!d_  
   Imh2~rw;  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) 2\nBqCxR  
   'If i = vbNo Then }j5R@I6P  
   '  Exit Do f*|8n$%   
   'End If 9LqMQv"xW  
   'cFrame = cFrame + 1 ]} 5I>l  
   {h vQ<7b  
  End If >tmnj/=&   
  DoEvents q#Yg0w~  
  cFrame = cFrame + 1 EBj,pk5M  
Loop (s V]UGrZ  
End Sub -~( 0O  
rSF;Lp)}  
D y`W5_xSz  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean t3  uB  
RR~sEUCo{  
'如标志区模式反差存在则为TRUE,否则返回FALSE ]|C_`,ux  
;Xfd1    
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long k Z+q  
CheckMark = True dr,B\.|jC  
   q19k<BqR  
'复制标志区 -+ ]T77r  
For i = 1 To mkH FhY{;-W(T  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW _:ZFCDO  
Next i ,yHzo  
v|4STR  
For j = 1 To PilarW * PilarH / 2 Z9J =vzsHE  
   mTop = mTop + MKpilar(j) u n?j  
Next j ?8wwd!)x%  
*c~'0|r  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH 1BMV=_  
   mBot = mBot + MKpilar(j) Q>}e IQ Y  
Next j AMh37Xo  
12:h49AP  
mTop = mTop / PilarW / PilarH * 2 j{Yt70Wv  
mBot = mBot / PilarW / PilarH * 2 DGa#d_I  
`zElBD  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 8CP9DS  
-(/2_&"  
'平均值极值化 abTDa6 /`v  
  For j = 1 To PilarH * PilarW ]b0zkoD9<  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) :Bx+WW&P.i  
  Next j IL+#ynC  
   5(iSOsb  
mTop = 0: mBot = 0 B&%L`v2[  
For j = 1 To PilarH * PilarW / 2 bK_0NrXP  
  mTop = mTop + MKpilar(j) 36kc4=  
Next j zx\.2<K  
l#2r.q^$|  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW 6o[0sM_];  
  mBot = mBot + MKpilar(j) ,-cpsN  
Next j V!pq,!C$v  
Xmf  
p~Yy"Ec;p  
  mTop = mTop / PilarH / PilarW * 3 oglXW8  
  mBot = mBot / PilarH / PilarW * 3 u|_LR5S!j  
   EFa{O`_@U  
"fX_gN?  
If mBot > iWhite And mTop < iBlk Then 2cs?("8e%  
  CheckMark = True 4f{[*6 GX  
Else 'WKu0Yi^'  
  CheckMark = False S 0R8'Y  
End If 2|0Je^$|  
End Function dxzvPgi?  
;-3h~k  
Sub Capture1Frame() q5:0&:m$4$  
   okCaptureTo hBoard, BUFFER, 0, 1 'single  /gqqKUx  
   okGetCaptureStatus hBoard, True 9_J!s  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize '|YtNhWZ?  
End Sub [ -9)T  
^w;o\G  
L<f-Ed9|  
Sub CopyMark(iBlk As Integer, iWhite As Integer) =Q /w%8G  
'复制标志区并返回标志区暗区与亮区的亮度平均值 [<en 1  
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 jsk:fh0~M  
   _9Dn \=g  
'复制标志区 4 o3)*  
For i = 1 To mkH ^G|w8t+^  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW  aNOAu/  
Next i u4Y6B ]Q  
Ap F*a$),  
For j = 1 To mkW * mkH / 2 ".~Mm F  
   mTotal = mTotal + MKpilar(j) ~=`f]IL  
Next j !7:EE,W~  
T!m42EvIvE  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 G ]L0eV  
q=P f^Xp  
mTotal = 0 -{yDk$"  
For j = mkW * mkH / 2 + 1 To mkW * mkH 92P ,:2`a  
   mTotal = mTotal + MKpilar(j) bjM-Hd/K  
Next j SBCL1aM  
th.M.jas  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 'sm[CNzS  
|Q5H9<*  
'背景亮度 %-@'CN P  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW 17V\2=Io  
  For i = 1 To 4 * FrameW #W>x \  
    bsTotal = bsTotal + BsLine(i) +l2e[P+q A  
  Next i & _Cxv8  
  bsAV = bsTotal / FrameW / 4 lEO?kn.:z  
g6rv`I $l  
End Sub r\A@&5#q  
p&k 0Rx0Q3  
Du)B9s  
Sub AdjIMGbright(Optional bInit As Boolean = True) [b7it2`dl  
7j@^+rkr3f  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) #t"9TP  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 J>f /u:.  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 +}Kk2Kg8  
     *)j@G:  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer +O|_P`HBoI  
    O]e6i%?  
  '按标准亮度与对比度采集一帧,确定背景亮度 XoDJzrL#  
  currentContr = 128   '初始对比度 Mq+viU&   
  currentBr = 128   '初始亮度 + 6x"trC  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 ]h #WkcXQ  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 S[-.tvI;Q  
  DoEvents q1N4X7<_  
  Capture1Frame |RHO+J  
  '获得图像上缘4行象素 &M0o&C-1/  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW [WcS[](ob  
  CopyMark iBlack, iBright   '图像标志区亮度 H "Q(2I  
  For i = 1 To 4 * FrameW N; rXl8  
    bsTotal = bsTotal + BsLine(i) 2"T8^r|U  
  Next i { M`  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 '4af ],  
   X?KGb{  
  Select Case bsAV  )v${&H  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景  .LX?VD  
       currentBr = 150 =ied}a :[  
       currentContr = 60 ,DE(5iDS  
     Case 61 To 80   '有可见背景 Sp<hai  
       currentBr = 140 TZ^{pvBy  
       currentContr = 70 yQu vW$  
     Case 81 To 100  '有清晰背景 \1=T sU&^  
       currentBr = 128 +V2C}NQ5R  
       currentContr = 80 hWe}' L-  
     Case 100 To 150  '有明亮背景 ,3G$`  
       currentBr = 140                '5:30-6:00钟实测数据 -(6eVI  
       currentContr = 50 -6u H.  
     Case 151 To 180 Nawp t%  
       currentBr = 130 pO\ S#GnX  
       currentContr = 60 }R`8h&J  
     Case 181 To 220  '背景全为白色 l0gH(28K  
       currentBr = 110 LTg?5GwD\j  
       currentContr = 130 dj? G.-  
     Case 221 To 255  '背景全为白色  Vil@?Y"  
       currentBr = 100 kFS0i%Sr  
       currentContr = 100 EwTS!gL  
  End Select lKf Mp1  
   11i"nR|  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 9U!JK3d  
        Case 100 To 150 FpP\-+Sl  
          currentBr = currentBr - 10 ^bF}_CSE  
        Case 151 To 255 s ;48v  
          currentBr = currentBr - 20 5?^]1P_  
  End Select M#=Y~PU  
   u=(H#o<#  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 G!AICcP^  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 $`^H:Djr  
End Sub ILNE 4n  
0v;ve  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) PqTYAN&F  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long -Bl/ 4p  
     `ff j8U  
    For i = 1 To 8 uEBQoP2  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128&  UP\8w#~  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& g;$E1U=R-E  
    Next i P1dN32H o  
     w+Ad$4Pf"  
    For j = 1 To 1024 lTn;3'  
      L1 = L1 + LeftBK(j, 0) ^%-NPo<  
      L2 = L2 + LeftBK(j, 1) CKJAZ2  
      R1 = R1 + RightBK(j, 0) )URwIe{  
      R2 = R2 + RightBK(j, 1) kJ/+IGV^v  
    Next j #o"tMh!f  
    diffL = Abs(L1 - L2) / 1024 aLV~|$: 2  
    diffR = Abs(R1 - R2) / 1024 ]a8eDy  
End Sub RwUW;hU  
}'u3U"9)  
Function CheckSlice() As Boolean Y3D3.T6Q  
  CopySlice avSL, avSLR, avSLL S*;#'j)4+  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then H!p!sn  
    CheckSlice = True G?>qd}]y0L  
  Else a a4$'8s  
    CheckSlice = False %wOOzp`  
  End If 2q+la|1Cr  
End Function uRP Ff77  
QxKAXq@)i  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) OdO{xG G@  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long [`q.A`Fd  
  For i = 1 To FrameH TLy ;4R2Nn  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize t9ER;.e  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize X)I/%{  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize 4\v~HFsv  
  Next i ggMUdlU  
  For i = 1 To FrameH _\p`4-.V  
    For j = 1 To sSize i"/r)>"b  
       total = total + Slice(j, i) O2C6V>Q;  
       totalL = totalL + SliceL(j, i) QT_Srw@  
       totalR = totalR + SliceR(j, i) STv(kQs  
    Next j $H4=QVj6  
  Next i Xu6jHJ@x  
  avSL = total / FrameH / sSize EH(tUwY%{  
  avSLR = totalR / FrameH / sSize ki#y&{v9Be  
  avSLL = totalL / FrameH / sSize g .3f2w  
End Sub SzRL}}I  
P;jlHZ9?O  
Sub DrawSlice() p#)e:/Qy  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B : g&>D#{  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B RTA%hCr!  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B VcP:}a< B\  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) eDuX"/kHA  
End Sub [S%J*sz~  
Sub DrawMark(pic As Control) O)l%OOv   
   Dim i As Long, j As Long &.hoC Po$  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B HTw#U2A;+  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B fH&zR#T7U4  
   For i = 1 To PilarH V!mWn|lf  
     For j = 1 To PilarW )#C_mB$-#  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) ;.\g-`jb  
     Next j ~'(9?81d  
   Next i T)`gm{T  
End Sub r|M'TA~:  
\Ph]*%  
Function avIMG() As Integer @sN^BX`z  
  Dim i As Long, j As Long, totalIMG As Long k@7kNMl  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize 8:~b &>   
  For i = 1 To pFrameSize ?b5H 2 W  
    totalIMG = totalIMG + pBuffer(i) ZHz^S)o\[s  
  Next i !TGr.R  
  avIMG = totalIMG / pFrameSize T{ok +$w2  
End Function vnDmFqel z  
@ozm;  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer !`Le`c  
  Dim i As Long, j As Long, totalIMG As Long b"^\)|*4;  
  For i = 1 To FrameH ]XY0c6 <  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth Kf|0*c  
  Next i {JTmP`&l  
  For i = 1 To FrameH * barWidth CDJ$hu  
    totalIMG = totalIMG + pBuffer(i) S q<3Rw  
  Next i 0Qt~K#mr/  
  avRegion = totalIMG / pFrameSize O /vWd "  
End Function bea|?lK  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 CNq[4T'~A  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 3XnE y +  
gbJG`zC>U  
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 G<|:605  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Y!F!@`%G  
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 sLNNcj(Cy>  
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 ("b*? : B  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long TKd6MZhT  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 <M=';h^w2  
v3~FR,Kl  
* ]>])ms)  
Private Const GENERIC_READ = &H80000000 W|0My0y  
Private Const GENERIC_WRITE = &H40000000 NfOp=X?Y  
FQ1arUOFW,  
Private Const FILE_SHARE_READ = &H1 ),yH=6  
Private Const FILE_SHARE_WRITE = &H2 L(;.n> /  
Private Const OPEN_EXISTING = 3 5 1"8Py  
\,hrk~4U;(  
Private Const INVALID_HANDLE_VALUE = -1 _Cj(fFL  
X`D+jiQ(f  
'//file seek |g+!  
Private Const FILE_BEGIN = 0 '\ XsTs#L  
Private Const FILE_CURRENT = 1 URLk9PI  
Private Const FILE_END = 2 sx:Hv1d  
pG~'shD~Dn  
Private Const ERROR_SUCCESS = 0&  UPR/XQ  
j|k @MfA  
'//device io control 6vF/e#},  
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long) As Long K0LbZMn,/  
^zHRSO  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 i]dz}=j'  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 y>)MAzz~\  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 jK e.gA  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 Qd?CTYNsv  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C 7r['  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 ,b4g.CV  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F - {0g#G  
1c / X  
'//type *CzCUu:%t  
Private Type LARGE_INTEGER YlrB@mE0n$  
    lowpart As Long tR5tPPw  
    highpart As Long 2p+C%"n>  
End Type 6A.P6DW  
^:+ Rg}]W^  
Private Enum MEDIA_TYPE j!7Qw 8  
    Unknown * O5:  
    F5_1Pt2_512 /e .D /;]  
    F3_1Pt44_512 JS PW>W"  
    F3_2Pt88_512 =D}4X1l  
    F3_20Pt8_512 I'?6~Sn3  
    F3_720_512 brfKd]i  
    F5_360_512 >2u y  
    F5_320_512 a&N%|b K  
    F5_320_1024 r  3|4gG  
    F5_180_512 XO%~6Us^  
    F5_160_512 k},>^qE  
    RemovableMedia i0iez9B  
    FixedMedia I ld7}R  
End Enum s+'XQs^{aj  
V'C-'Ythwf  
Private Type DISK_GEOMETRY dGU8+)2cn  
    Cylinders           As LARGE_INTEGER ex!XB$X  
    MediaType           As MEDIA_TYPE x_k S g  
    TracksPerCylinder   As Long uS&LG#a  
    SectorsPerTrack     As Long V!W1fb7V  
    BytesPerSector      As Long Hk~k@Wft  
End Type puA |NT  
h mds(lv7  
'//private vars VcrVaBw  
Private hDisk           As Long             'disk handle 8!;$qVt  
Private lpGeometry      As DISK_GEOMETRY    'disk info r,Ds[s)B  
Private lBufferSize     As Long             'the buffer size of read/write R2CQXhiJ  
V8tghw  
Public Function OpenDisk(ByVal FileName As String) As Boolean 95[wM6?J  
'// 打开磁盘 ?d~]Wd!z  
    hDisk = CreateFile(FileName, _ W-ez[raY  
                        GENERIC_READ Or GENERIC_WRITE, _ z(rK^RT  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ 8ZW?|-i  
                        ByVal 0&, _ SD^E7W$?  
                        OPEN_EXISTING, _ RT/qcS^Oz  
                        0, _ Hg aZbb>'  
                        0) l 1|~  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) `[OXVs,7"  
End Function GyuV %  
3T?f5+@I  
Public Function CloseDisk() As Boolean .$P|^Zx,  
'//关闭磁盘 x^X$M$o,l  
    CloseDisk = CloseHandle(hDisk) )d:K:YXt  
End Function 5N1}Ns  
3(C :X1  
Public Function GetDiskGeometry() As Boolean 5a6VMqQ6  
'//获取磁盘参数 e62y  
    Dim dwOutBytes      As Long d+Ds9(gV  
    Dim bResult         As Boolean qF'~F`6  
     >(OYK}ZN  
    bResult = DeviceIoControl(hDisk, _ u0g*O]Y  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ |/*pT1(&  
                                ByVal 0&, 0, _ ]Z/R!y?l"G  
                                lpGeometry, Len(lpGeometry), _ >J@egIKzP  
                                dwOutBytes, _ -,|ha>r  
                                ByVal 0&) fx]eDA|$e  
     $ o " L;j  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack jWSb5#Pw  
    GetDiskGeometry = bResult HA1]M`&  
End Function d@Q][7  
K\aAM;)-  
Public Sub GetDiskInfo(MediaType As Long, _ 7OE[RX8!f  
                        Cylinders As Long, _ Ok*Z  
                        TracksPerCylinder As Long, _ guE2THnz3D  
                        SectorsPerTrack As Long, _ q1w|'V  
                        BytesPerSector As Long) bNXAU\M^  
'//返回磁盘的参数 ~$Y|ca  
    MediaType = lpGeometry.MediaType t$5jx  
    Cylinders = lpGeometry.Cylinders.lowpart .yX>.>"T|  
    TracksPerCylinder = lpGeometry.TracksPerCylinder v&r=-}z2!  
    SectorsPerTrack = lpGeometry.SectorsPerTrack IkU|W3Vo  
    BytesPerSector = lpGeometry.BytesPerSector  VGB-h'  
^aHh{BQ%  
End Sub ;:T9 IL  
`R0Y+#$8h  
Public Property Get BufferSize() As Long p/3BD&6  
'//返回每次读/写的缓冲大小 6"+8M 3M l  
    BufferSize = lBufferSize >D~w}z/fk  
End Property d/lffNS=  
=U c$D*  
pqH4w(;  
Public Function LockVolume() As Boolean UGCox-W"  
'// 将卷锁定 `36N n+A  
    Dim dwOutBytes  As Long 8kS~ENe?o  
    Dim bResult     As Boolean 6g~+( ({lQ  
     <6R"h -u"  
    bResult = DeviceIoControl(hDisk, _ ;iQp7aW{$  
                                FSCTL_LOCK_VOLUME, _ fnWsm4  
                                ByVal 0&, 0, _ +9C;<f  
                                ByVal 0&, 0, _ xDUaHE1co  
                                dwOutBytes, _ jq[x DwPG  
                                ByVal 0&) M J\r 4n  
    LockVolume = bResult v8~YR'T0`V  
End Function R*\~k%Z  
`s%QeAde  
ssA7Dx:  
Public Function UnlockVolume() As Boolean _ eiF@G  
'// 将卷解锁 !UcOl0"6  
    Dim dwOutBytes As Long "S(yZ6r"  
    Dim bResult As Boolean Hd374U<8]T  
     5 q65nF  
    bResult = DeviceIoControl(hDisk, _ [;Fofu Z  
                                FSCTL_UNLOCK_VOLUME, _ tt{`\1q  
                                ByVal 0&, 0, _ g|4w8ry  
                                ByVal 0&, 0, _ x6%#ws vS  
                                dwOutBytes, _ ,T{oy:rB  
                                ByVal 0&) Cg3ODfe  
    UnlockVolume = bResult q#'VJA:A5&  
End Function qv uxhzF  
wV:C<Mg7q  
k}U JVH21k  
Public Function DismountVolume() As Boolean `.8UKSH+  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 `kPc!I7Y  
    Dim dwOutBytes As Long `|?]CkP  
    Dim bResult As Boolean wVE:X3Ei  
     YZ**;"<G  
    bResult = DeviceIoControl(hDisk, _ -dG,*0 >  
                                FSCTL_DISMOUNT_VOLUME, _ 7k~Lttuk  
                                ByVal 0&, 0, _ B2(,~^39  
                                ByVal 0&, 0, _ [ f34a  
                                dwOutBytes, _ r0{]5JZt/  
                                ByVal 0&) LABNj{=D!  
    DismountVolume = bResult akCIa'>t  
End Function R8 jovr  
]u0Jd#@  
:XYy7xz<  
Public Function ReadDisk(ByVal Cylinders As Long, _ r[!(?%>j  
                    ByVal Tracks As Long, _ a:b^!H>#  
                    db() As Byte) As Boolean a q kix"J  
'//按柱面和磁道来读取磁盘数据 C_Gzv'C"L  
    Dim iPos    As Long ;(S|cm'>}  
    Dim lRead   As Long S(w\ZC  
     !W~<q{VTs  
    iPos = Cylinders * Tracks * lBufferSize  V7@ { D  
     ESv:1o`?n  
    If SeekAbsolute(0, iPos) Then hfv%,,e  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) si?HkJv5  
    End If @[v8}D  
End Function uy9!qk  
c{VJ2NQ+  
Public Function WriteDisk(ByVal Cylinders As Long, _ KuXkI;63J>  
                     ByVal Tracks As Long, _ f'_M0x  
                     db() As Byte) As Boolean \ iga Q\~  
'//按柱面和磁道来写磁盘数据 t !~ S9c  
    Dim iPos    As Long ] D6|o5  
    Dim lRead   As Long M _(2sq  
     P#*n3&Uu  
    iPos = Cylinders * Tracks * lBufferSize VDpxk$a  
     ;{Jb6'K1h  
    If SeekAbsolute(0, iPos) Then +$,dwyI2t  
        WriteDisk = WriteBytes(lBufferSize, db()) {cR3.% wX  
    End If <[<247%  
End Function V.2[ F|P;3  
PU Cx]5  
}dKLMNqPA  
'///////////////////////////////////////////////////////////////////////////////////// 7=3O^=Q ^Q  
'//file system bjzx!OCpV  
.Q[yD<)Ubs  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean n|C|&  
'//seek file nh0&'hA  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte a:}E& ,&M  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) (3W&A M  
    If LowPos = -1 Then Q7(eq0na  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) +N R n0 z(  
    Else Vhph`[dC{  
        SeekAbsolute = True ?bI?GvSh  
    End If ~!] m6/  
     mp:m`sh*i  
End Function '\t7jQ  
.CS v|:'1  
K'Spbn!nC  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean 0H+c4IW  
'//read data to array ._,trb>o  
    Dim RetVal    As Long $"fzBM?5  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) SH=:p^J  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF C0(sAF@  
    ReadBytes = Not (RetVal = 0) -l[ jEJS}  
     'hIU_  
End Function Noz&noq  
 C0<YH "  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean 9|3o<  
'//write data from array " @)lH  
    Dim RetVal As Long *~;8N|4<  
    Dim BytesToWrite As Long P^zy;Qs7  
    Dim BytesWritten As Long iC*U$+JG  
     7P*Z0%Q  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) 41}/w3Z4  
     =fWdk\Wv  
    WriteBytes = Not (RetVal = 0) lD3)TAW@ o  
End Function ;"@:}_t  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 2GUupnQkD  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ jb 3.W  
DWORD dwCB; j ug'g  
LARGE_INTEGER  offset; >[Rz <yv  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); G"> 0]LQ  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); F`srE6H  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ ?gG,t4D  
DWORD error = GetLastError(); tW(+xu36  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); MA6P"?  
return FALSE; ^@"c`  
} KZ  )Ys  
return TRUE; @yKZRwg  
} n$W"=Z;`  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : 2&x7W*  
oZ-FF'  
介个真的看不懂。 0I^Eo|  
你说你老啦,喜欢怀旧了,才想起来填坑。 nuxd S ,  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 I%i:)6Un-y  
lM+ xU;  
@G(xaU'u  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : ]?&H^"=  
佩服,玩也玩得这么专业! yLB~P7K  
"Y(^F bs  
s ^3[W0hL  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : SXh?U,5u  
伍SIR,再次抱拳佩服 \kyM}5G(<0  
wn1, EhHt  
B5 & YL  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : _<3r'Y,  
引用第19楼伍胥之于06-14-2010 12:33发表的  : M_; w %FV  
fQ1 0O(`g,  
RJLFj  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 (s ;zRb!4L  
j=\Mx6os  
我连一级也没有考过。 T1bFxim#b  
.
d9| T=R  
H<XlUCr_~+  
引用
mQL8QW[c  
矬子里拔将军... (Wn "3 ]  
你们那里的俗语是吧? Z7oaQ\fR  
W}?s^  
我们这里说"矮子里拔长脚"..应该是同一个意思... .5N Zf4:C  
7g8B'ex J  
有趣....各地有表达意思一样却方式不同的俗语.... xh`Du|jvm  
jQkUNPHu  
(qbc;gBy  
你的文章写的有脸皮,没屁眼的, Q~b_dx{m  
让看客大为不满... Uqr{,-]5v  
gLV^Z6eE  
你等着,,估计你以后接到的午夜凶铃就多了... i j!*CTG  
C6CGj8G  
g/!Otgfu  
我到现在也没有接到你的午夜凶铃呢! "d2LyQy  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : ~ J%m  
每个人的故事对其他人都是故事, #c :9 V2  
自己的故事也是其中之一. VGfD;8]z  
跳出来看, ~yd%~|  
不过是众人中的一个人的故事. wqf&i^_  
tG_-;03<`4  
所以,接着听故事. D)h["z|F  
5vYsA1Z   
女人们有兴趣的就等老伍开个新帖或者跟贴, C9GU6Ao  
听他痛说恋爱革命历史.... V!\n3i ?i  
aam1tm#Q  
杂家接着听他自学程序员历史, qq/_yt  
高级程序员考了吗? # .~.UHt  
?F9hDLX  
'8L(f w{k  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! T4l-sJ'|  
b5[f 5  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 EmF]W+!z%  
s !NisF  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 +A&EKk%$ |  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : I,?Fqg'sq  
哦, 打倒忽悠大家的家伙.      bCJ<=X,g`K  
~(w=U *  
n"K {uj))  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : B5?c'[V9  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 mcP{-oJ0W  
'Wx\"]:  
Gdc ~Lh  
其实标题没有什么,卡总既然改了就不必再改回了。 0pZ.; /<{  
[Ls2k&)0  
主要是当初写的时候真是顶着锅盖写的。 g 'd*TBnk  
9;xL!cy  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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