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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 ([SU:F!uW(  
}001 K  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : bCo7*<I4  
q8/MMKCbX  
老五,I 服了U。 !W5 (  
w80oXXs[#  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 Si8p zd  
7gj4j^a^]{  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean J!c)s!`w  
$x zAv{  
Dim regEX As New RegExp BXtCSfY $  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读  ^E;kgED5  
Zq+v6fk_Mn  
Dim LastTitle0String As String, LastTitle0No As Long 9IjIIM2y  
Dim LastTitle1String As String, LastTitle1No As Long Of*Pw[vD  
Dim LastTitle2String As String, LastTitle2No As Long ~IYUuWF(  
Dim LastTitle3String As String, LastTitle3No As Long tXNm$Cq.|  
Dim LastTitle4String As String, LastTitle4No As Long 6 Q%jA7  
Dim LastTitle5String As String, LastTitle5No As Long wH>a~C:   
Dim LastTabelString As String, LastTableNo As Long _Gn2o2T  
Dim LastFigureString As String, LastFigureNo As Long iW$_zgN  
nV"~-On  
Dim strSeperator As String =bfJ^]R  
cqQ#p2<%  
Sub ConvertWidth(fTEXT As String, rText As String) u(@$a4z  
        Selection.Find.ClearFormatting |Luqoa  
        Selection.Find.Replacement.ClearFormatting uaT!(Y6  
        Selection.Find.Wrap = wdFindContinue L-ET<'u  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText +ieY:H[  
        DoEvents f.D?sHAn  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True a =J^  
End Sub KaPAa:Q  
TrlZ9?3#D  
Sub ClearDomain() Ro\8ZXUQa  
        With Selection.Find @i 2E\}  
            .ClearFormatting !hJ+Lp_  
            .Replacement.ClearFormatting gH12[Us'`  
            .Wrap = wdFindContinue )(bW#-  
            Me.txtStatus.Text = "清除所有域代码" B,?T%  
            DoEvents ")SFi^]  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False NCiW^# b  
        End With mk;&yh  
End Sub Vc 1\i  
|,S+@"0#  
Private Sub cmdCheck_Click() fz|cnU  
    bContinue = True cr%"$1sY;  
    Dim NoSeries1(1 To 16) As String '*K:  lx  
    Dim NoSeries2(1 To 16) As String XW[j!`nlk  
    Dim NoSeries5(1 To 16) As String Cy JEY-  
    Dim NoSeriesRM(1 To 16) As String 2L3)#22m*  
    Dim paraTotal As Long, ParaText As String ;Y 00TGU  
    Dim ttString As String, ttNo As String Rw"sJ)/  
     u ZNTHD  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long 6</ xL9#/  
(/=f6^}  
    Me.txtStatus.Visible = True 3 }duG/  
    Me.lbParaType.Visible = True h{%nC>m;  
    Me.cmdCheck.Enabled = False c/D+|X*  
     `#rL*;\uV  
     ]^yFaTfS  
     9+j0q%  
     ,f~J`3(&  
    Dim ParaType As String, rText As String <^VJy5>  
     ] ] !VK  
    Selection.WholeStory gqZ'$7So  
    Selection.NoProofing = True bGN:=Y'  
     j]{_s"O  
    tm1 = Now "Lzi+1  
     F0GxH?  
        ActiveWindow.View.Type = wdNormalView Y\D!/T  
     p)`{Sos  
    NoSeries1(1) = "一" !\-{D$E?H  
    NoSeries1(2) = "二" +9M^7/}H  
    NoSeries1(3) = "三" $Ipg&`S"  
    NoSeries1(4) = "四" HJ9Kz^TnC  
    NoSeries1(5) = "五" g2BHHL;`  
    NoSeries1(6) = "六" t)~"4]{*}D  
    NoSeries1(7) = "七" m4**~xfC  
    NoSeries1(8) = "八" /NLui@|R  
    NoSeries1(9) = "九" ,BH@j%Jmy  
    NoSeries1(10) = "十" (7vF/7BZ|_  
    NoSeries1(11) = "十一" x3hB5 p$q  
    NoSeries1(12) = "十二" <`.X$r*  
    NoSeries1(13) = "十三" o*-)Tq8GHE  
    NoSeries1(14) = "十四" R cAwrsd  
    NoSeries1(15) = "十五" I4'5P}1yp  
    NoSeries1(16) = "十六" '}9x\ 3E  
     =m!-m\B/  
    NoSeries2(1) = "㈠" 5&QJ7B,!  
    NoSeries2(2) = "㈡" U_Vs.M.p  
    NoSeries2(3) = "㈢" J1,9kCO  
    NoSeries2(4) = "㈣" M\o9I  
    NoSeries2(5) = "㈤" Yrb{ByO&  
    NoSeries2(6) = "㈥" x.]i }mt  
    NoSeries2(7) = "㈦" @Pm>sY}d<I  
    NoSeries2(8) = "㈧" VrHv)lUr  
    NoSeries2(9) = "㈨" T/b6f;t-s  
    NoSeries2(10) = "㈩" >tYm+coS  
     1ct;A_48  
    NoSeries5(1) = "①" /$i.0$L  
    NoSeries5(1) = "②" <NR#Y%}-V  
    NoSeries5(3) = "③" bfFeBBi  
    NoSeries5(4) = "④" 7r7YNn/?  
    NoSeries5(5) = "⑤" SzAJ2:qhl  
    NoSeries5(6) = "⑥" TITKj?*o  
    NoSeries5(7) = "⑦" :y+2*lV  
    NoSeries5(8) = "⑧" MDnKX?Y  
    NoSeries5(9) = "⑨" J*r*X.  
    NoSeries5(10) = "⑩" g,Lq)'N;O  
     6^V=?~a&z  
     .I7pA5V{#  
    NoSeriesRM(1) = "I" ^|/TC!v]M  
    NoSeriesRM(2) = "II" #H)v K"hF  
    NoSeriesRM(3) = "III" {o)Lc6T8s  
    NoSeriesRM(4) = "IV" VQ(jpns5  
    NoSeriesRM(5) = "V" lNy.g{2f<m  
    NoSeriesRM(6) = "VI" IshKH -  
    NoSeriesRM(7) = "VII" };mA^xO]j  
    NoSeriesRM(8) = "VIII" ~Y`ld L  
    NoSeriesRM(9) = "IX" Ok|* !!T  
    NoSeriesRM(10) = "X" y0Fb_"}  
    NoSeriesRM(11) = "XI" (]Z_UTT  
    NoSeriesRM(12) = "XII" Dl<bnx;0  
    NoSeriesRM(13) = "XIII" &TnS4O  
    NoSeriesRM(14) = "XIV" P60 ~ V"/P  
    NoSeriesRM(15) = "XV" )SaGH3~*C  
    NoSeriesRM(16) = "XVI" ./- 5R|fN  
     v:f}XK<  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) hcgMZT!<5  
     jfP*"uUK  
    If i = vbNo Then *M[?bk~~  
        Exit Sub wVX[)E\J  
    End If fFMlDg[];  
     zvvhFN2 s  
    If Me.chkSuper.Value Then  q['Euy  
        Me.txtStatus.Text = "检查修改所有的上标格式" 1 8|m)(W  
     ; ^*}#X d  
        CheckSuperScript &4{KV.  
         v]'ztFA  
    End If iNWw;_|1  
     ? }Z1bH  
    If Me.chkStyle.Value Then c' ^?/$H|  
        Me.txtStatus.Text = "设置样式,请稍候...." -c_74c50  
        DoEvents l>2E (Y|  
        CeateOrModifyStyle srPWE^&  
    End If _64A( U  
     p2Z?T}fa}&  
     xmN B29#  
     /@wg>&L]  
    ClearDomain z#zI1Am(O  
         X@'u y<tI-  
     `EEL1[:BR  
     Ye\rB\-  
    If Me.chkLIST.Value Then TCN8a/@z  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" ~,d,#)VE2q  
     61Bwb]\f/|  
        ConvertListToOrdinary 5 f@)z"j  
    End If Mz9 r5  
     HD@$t )mn  
     [^R^8k  
    Dim pType As String, trimpTEXT As String %d 1,a$*3}  
    If Me.chkNum.Value = True Then i{Uc6 R6  
        Me.txtStatus.Text = "转换全角数字形式为半角" Y4OPEo5o  
        ConvertWidth "1", "1" qaqBOHI6G  
        DoEvents O%Scjm-^X  
        ConvertWidth "2", "2" ++bf#qS<8D  
        DoEvents i)o2klIkB  
        ConvertWidth "3", "3" j5QuAU8  
        DoEvents c%^7!FSg  
        ConvertWidth "4", "4" ls?~+\Jb  
        DoEvents O)C\v F#  
        ConvertWidth "5", "5" |Z|-q"Rf  
        DoEvents 0QB iC]9  
        ConvertWidth "6", "6" !SC`D])l  
        DoEvents T]R|qlZ  
        ConvertWidth "7", "7" d:_t-ZZo  
        DoEvents rK@8/?y5  
        ConvertWidth "8", "8" cCSs  
        DoEvents _- [''(E  
        ConvertWidth "9", "9" ob+b<HFv  
        DoEvents S$f9m  
        ConvertWidth "0", "0" bH-ub2@qO  
        DoEvents #Z}Rf k(~  
        ConvertWidth "a", "a" ;PF`Wj  
        DoEvents w ~ .f  
        ConvertWidth "b", "b" e2L0VXbb  
        DoEvents <>n0arAn  
        ConvertWidth "c", "c" #=D) j  
        DoEvents !xzeMVI  
        ConvertWidth "d", "d" &X`C%h  
        DoEvents dah[:rP,n{  
        ConvertWidth "e", "e" z F_M*8=  
        DoEvents *]. 7dec/  
        ConvertWidth "f", "f" %OtFHhb  
        DoEvents d)"3K6s |5  
        ConvertWidth "g", "g" jG6]A"pr  
        DoEvents 2`AY~i9  
        ConvertWidth "h", "h" KLU-DCb%  
        DoEvents @* F"Q1 wI  
        ConvertWidth "i", "i" 3RiWZN  
        DoEvents Ot$-!Y;<  
        ConvertWidth "j", "j" Rh3eLt~|(  
        DoEvents pe0F0Ruy  
        ConvertWidth "k", "k" _ ?TN;  
        DoEvents CWf / H)~  
        ConvertWidth "l", "l" &qLf@1AD  
        DoEvents \@-@Y  
        ConvertWidth "m", "m" v:EB*3n5  
        DoEvents _ftI*ni:<  
        ConvertWidth "n", "n" W$QcDp]#p}  
        ConvertWidth "o", "o" ~{*7"o/  
        ConvertWidth "p", "p" +ylTGSZ S  
        ConvertWidth "q", "q" qBU-~"2t  
        ConvertWidth "r", "r" -B>++r2A^  
        ConvertWidth "s", "s" Gn22<C/  
        ConvertWidth "t", "t" eiuSvyY  
        ConvertWidth "u", "u" B5gj_^  
        ConvertWidth "v", "v" Zvhsyz|  
        ConvertWidth "w", "w" 3ovWwZ8&  
        ConvertWidth "x", "x" HvUxsdT  
        ConvertWidth "y", "y" +cWLjPD/}  
        ConvertWidth "z", "z" V GL aN%|  
        ConvertWidth "A", "A" 062,L~&E  
        ConvertWidth "B", "B" x"eRJii?  
        ConvertWidth "C", "C" 'QG xd!4  
        ConvertWidth "D", "D" &d9{k5/+\  
        ConvertWidth "E", "E" 9lTv   
        ConvertWidth "F", "F" /;{P}-H`ei  
        ConvertWidth "G", "G" ".f ;+wH  
        ConvertWidth "H", "H" [M?}uK ^  
        ConvertWidth "I", "I" k=2Lo  
        ConvertWidth "J", "J" G=)i{oC  
        ConvertWidth "K", "K" LU+3{O5y  
        ConvertWidth "L", "L" B6=ebM`q  
        ConvertWidth "M", "M" #:%&x@@c3P  
        ConvertWidth "N", "N" cy*?&~;  
        ConvertWidth "O", "O" jy7\+i  
        ConvertWidth "P", "P" @(l^]9(V\  
        ConvertWidth "Q", "Q" H1 2Fw'2  
        ConvertWidth "R", "R" pb^i^tA+A  
        ConvertWidth "S", "S" !y#"l$"xK  
        ConvertWidth "T", "T" ke{8 ^X~#  
        ConvertWidth "U", "U" +[Dj5~V  
        ConvertWidth "V", "V" uvgdY  
        ConvertWidth "W", "W" S,D8F&bg  
        ConvertWidth "X", "X" h,QKd>4:CF  
        ConvertWidth "Y", "Y" '#! gh?  
        ConvertWidth "Z", "Z" l_3`G-`2  
        ConvertWidth "^l", "^p" s|@6S8E  
        ConvertWidth "(", "(" $JSL-NkE  
        ConvertWidth ")", ")" .=U#eHBdAQ  
     Pnw]Tm}g  
    End If ~"dA~[r L  
Us%T;gW  
    With ActiveDocument D>|H 2  
        Dim tbl As Table Ulhk$CPA  
        For Each tbl In .Tables U T>s 5C  
            tbl.Rows.Alignment = wdAlignRowCenter k2E0/ @f{k  
            tbl.Range.Font.NameFarEast = "楷体" X#d~zk[r2  
            tbl.Range.Font.NameAscii = "Times New Roman" "vA}FV%tRq  
            tbl.Range.Font.Size = 10.5 xE1 eT ,  
        Next (As#^q\>B  
        Set tbl = Nothing O[# 27_dH  
    End With R|JC1f8P5  
     \%u3  
     L%">iQOG#  
    With ActiveDocument mCRt8 rY;  
         d^/3('H6  
        For i = 1 To .TablesOfContents.Count S(QpM.9*  
            .TablesOfContents(i).Delete fz;iOjr>  
        Next >82@Q^O  
         WJ)z6m]  
         -\+s#kE:  
         ~L]|?d "  
        paraTotal = .Paragraphs.Count |].pDwgt  
        paraCounter = 1 c_\YBe]wJ  
         k")R[)92b?  
        LastTitle0No = 0 9s_vL9u  
        LastTitle1No = 0 KgV3 j]d  
        LastTitle2No = 0 ]I-Z]m "  
        LastTitle3No = 0 :d3bt~b'  
        LastTitle4No = 0 >d~WH@o`G  
        LastTableNo = 0 g"Ljm7  
        LastFigureNo = 0 J5*tJoCYS  
         6\L0mcXR!  
        Dim Sec As Long "rTQG6`  
         P D4Tz!F  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) 4B=2>k  
        If Sec = 0 Then sfLMk E  
            Exit Sub Yj%U >),8  
        End If _AYXc] 4%  
         -8'C\R|J+  
        k = 0 0?sRDYaX;c  
        Do While (paraCounter < paraTotal) And bContinue hp8%.V$f  
            k = k + 1 h"`ucC8X  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then >o ea{u  
                Exit Do Cv }Qwy  
            End If Gn&-X]Rrl  
            paraCounter = paraCounter + 1 ktI/3Mb@  
            If k Mod 20 = 0 Then W>!_|[a  
                Me.lbCounter.Caption = paraCounter ekI2icD  
                DoEvents - *F(7$  
            End If Kqun^"Df  
        Loop  R=.4  
         S2n39 3  
         yPM3a7-Bm  
        Do While (paraCounter < paraTotal) And bContinue ]FD'5p{  
             t '9*R7=  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) ~SQ?BoCI[  
            ShapeHeight = 0 DQMHOd7g  
            ShapeWidth = 0 cQG +$0(  
           Xm +8  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth 'iy*^A `Y  
             0$_oT;{8  
            Select Case ParaType YiYV>gaf"H  
                Case "【】表格内容" dlU'2Cl7d  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" ur*T%b9&  
                Case "章" (E/lIou  
                    LastTitle0No = LastTitle0No + 1 Fd?"-  
                    '新一章开始,复位其下属标题编号 17D"cP  
                    LastTitle1No = 0 !)  S ?m  
                    LastTitle2No = 0 ~n[d4qV&  
                    LastTitle3No = 0 kR]!Vr*yh  
                    LastTitle4No = 0 ?!wgH9?8  
                     'jmTXWq*  
                    k = Val(ttNo) XIvn_ &d;G  
                    If k = 0 Then '非数字编号章节 ]D ZE%  
                        If ttNo <> NoSeries1(LastTitle0No) Then +${D  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString Mb"J@5P[4  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText D*Ik7Pe  
                        End If <Gav5R c  
                    Else JBZUv  
                        If Val(ttNo) <> LastTitle0No Then x8!ol2\`<  
                            rText = "第" & LastTitle0No & ttString f?oa"   
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText |nbf'  
                        End If ;`l'2 z@N  
                         \2nUa ;  
                    End If Ys  -T0  
                     : m)   
                    '章段落设置 >a"Z\\dF  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 i.=w]S j  
                    .Paragraphs(paraCounter).Style = "QLNU章节" 'sLiu8G  
                    .Paragraphs(paraCounter).Range.Select pX/n)q[  
                    Selection.EndKey unit:=wdLine ,B08i o-  
                    tc = Replace(rText, vbCr, "") uqM yoIc  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False H(2!1?N+  
                Case "一级标题" 7~&/_ 3  
                    LastTitle1No = LastTitle1No + 1 76>7=#m0u'  
                    '新一级标题开始,复位其下属标题编号 ,REJt  
                    LastTitle2No = 0 o]Ol8I  
                    LastTitle3No = 0 .U"8mP=&  
                    LastTitle4No = 0 G+F#n6Vx  
                     {D!6%`HKV+  
                    If ttNo <> NoSeries1(LastTitle1No) Then 1mfs 4  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString mK[)mC _8  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText _8Z_`@0  
                    End If \ |]Z8t7  
                   %Rz&lh/  
                     T(AVlI6  
                    '一级标题段落设置  格式:一、标题内容 <WjF*x p  
                    .Paragraphs(paraCounter).Range.Text = rText I<Ksi~*i  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" L,SGT8lL  
                    .Paragraphs(paraCounter).Range.Select )>b.;  
                    Selection.EndKey unit:=wdLine qzI&<4  
                    tc = Replace(rText, vbCr, "") Z-8Yd6 4  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False fq5_G~c =  
                Case "二级标题" ?I/qE='*  
                    LastTitle2No = LastTitle2No + 1 \=+b}mKV m  
                    '新二级标题开始,复位其下属标题编号 rm 4.aO~-F  
                    LastTitle3No = 0 /c"efnb!  
                    LastTitle4No = 0 N-jTc?mT~&  
                     on0]vEE  
                    If ttNo <> NoSeries1(LastTitle2No) Then Au{<hQ =  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString bKj%s@x  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText =1 O<E  
                    End If cZH-"  
                     0`)iIz  
                    '二级标题段落设置 格式:(一)、标题内容 LUH"  
                    .Paragraphs(paraCounter).Range.Text = rText 4 SHU  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" 9Q(+ZG=JkV  
                     SF}<{x_  
                    .Paragraphs(paraCounter).Range.Select a\IP12F?  
                    Selection.EndKey unit:=wdLine O:TlIJwW  
                    tc = Replace(rText, vbCr, "") uum;q-"  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False TlI<1/fP}  
                 RaWG w  
                Case "三级标题" Rp*R:3 C  
                    LastTitle3No = LastTitle3No + 1 \\{J'j>{f  
                    '新三级标题开始,复位其下属标题编号 !Gu%U$d  
                    LastTitle4No = 0 _$wmI/_J M  
                     af#pR&4}   
                    If Val(ttNo) <> LastTitle3No Then <EPj$::  
                            rText = LastTitle3No & ". " & ttString O=v#{ [  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText rEHkw '  
                         %)[+%57{  
                    End If !FA# K8  
                    '三级标题段落设置 格式:1. 标题内容 tniDF>Rb  
                    .Paragraphs(paraCounter).Range.Text = rText u$*56y   
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" TT50(_8  
                    .Paragraphs(paraCounter).Range.Select @[#$J0q q  
                    Selection.EndKey unit:=wdLine y_*PQZ$c<  
                    tc = Replace(rText, vbCr, "") 6An9S%:_  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False s7g(3<(  
                Case "四级标题" qb5#_1qz+^  
                    LastTitle4No = LastTitle4No + 1 "Vw m  
                     v^)bhIPe;  
                    If Val(ttNo) <> LastTitle4No Then P~s$EJL*  
                            rText = "(" & LastTitle4No & "). " & ttString %STliJ  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText &FH2fMLQ  
                     S!Omy:=;i  
                    End If -RO7 'm0  
                    '四级标题段落设置 格式:(1). 标题内容 "jTKSgv+q5  
                    .Paragraphs(paraCounter).Range.Text = rText )+6v  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" e{X6i^% m_  
                    .Paragraphs(paraCounter).Range.Select o@#Y8M  
                    Selection.EndKey unit:=wdLine |} {B1A  
                    tc = Replace(rText, vbCr, "") .!1S[  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False Q:|l`*.R  
                 gXonF'  
                Case "表格标题" %FS$zOsgGK  
                    LastTableNo = LastTableNo + 1 "z0zpHXek  
                     Eo\UAc  
                    If ttNo <> CStr(LastTableNo) Then hty0Rb[dH  
                            rText = "表" & LastTableNo & ". " & ttString %honO@$  
                            ErrMsg.AddItem "表格编号错误:" & ParaText /n5F(5<  
                   lc2i`MC  
                    End If {K4+6p  
                     :C}2=  
                    '表格名称段落设置 格式:表1. 表格名称 nSF``pp+  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" fwrJ!j  
                    xe = Replace(rText, vbCr, "") ddfs 8\  
                    .Paragraphs(paraCounter).Range.Select u)ev{)$TM  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 JJltPGT~Oa  
                    Selection.Range.Text = xe A a= u+  
                    Selection.EndKey pM{nh00[  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False t6,wjN-J  
                 e'*`.^  
                Case "表格首行" V?P,&c?84  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" a-"k/P#  
                Case "图片标题" VA"*6F   
                    LastFigureNo = LastFigureNo + 1 4Sm]>%F':  
                     <+^6}8-  
                    If ttNo <> CStr(LastFigureNo) Then 6`0m ta Q  
                            rText = "图" & LastFigureNo & ". " & ttString 4q'B<7{Q  
                            ErrMsg.AddItem "表格编号错误:" & ParaText PzV@umC1#f  
                   G0`h%  
                    End If ?gO8kPg/D  
                    '图片名称段落设置 格式:图1. 图名称 +$$$  
                    .Paragraphs(paraCounter).Range.Text = rText jn%!AH  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题"  *[r!  
                    .Paragraphs(paraCounter).Range.Select z-@=+4~  
                    Selection.EndKey unit:=wdLine `+zWu 55;  
                    xe = Replace(rText, vbCr, "") Q\GDrdA  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ,h{A^[yl  
                Case "正文" %.<H=!$  
                     '正文名称段落设置 y kW [B  
                    .Paragraphs(paraCounter).Style = "QLNU正文" uQ=^~K:Z~  
               Case "文献条目" R*oXmuOsYA  
                    With .Paragraphs(paraCounter) v}sY|p"  
                        '.Range.Select 6oinidB[l  
                        'Selection.ClearFormatting Ku/~ N#  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” ~XydQJ^*  
                        .Style = "QLNU参考文献" Xt{*N-v\  
                    End With -UZ@G~K  
               Case "图表注解" F,GN[f-  
                    With .Paragraphs(paraCounter) d'*]ns  
                        .Range.Font.NameFarEast = "楷体" TgTnqR@/  
                        .Range.Font.NameAscii = "Times New Roman" uK ("<u|  
                        .Range.Font.Size = 9 '小5号字 X53mzs  
                         F( Ak  
                        .Alignment = wdAlignParagraphCenter 9'DtaTmGW  
                        .LeftIndent = 0 O1D6^3w  
                        .RightIndent = 0 h 6%[q x<  
                        .FirstLineIndent = 0 FZ|CqD"#  
                        .LineSpacing = 12 `gpQW~*R-;  
                        .LineSpacingRule = wdLineSpaceExactly Uu"0rUzt  
                        .LineUnitAfter = 0 v! 42 DA)  
                        .LineUnitBefore = 0 ckjrk  
                        .OutlineLevel = wdOutlineLevelBodyText ,;<RW]r-P  
                        .PageBreakBefore = False .6m "'m0;  
                        .RightIndent = 0 e8h,,:l3j  
                        .WordWrap = True ;' nL:\  
                        .LineUnitAfter = 0.5 2/36dGFH  
                         vBvNu<v7te  
                    End With 1`LXz3uBe  
                Case Else '.Ym!r~wL  
                    '不作处理 p0{EQT`tMG  
            End Select R0;ef D  
             )9B:wc"  
            '含有inlineshape的段落处理 6*nAo8gl  
            If ShapeHeight > 30 Then b?Pj< tA  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 `_5GG3@Ff  
            End If 8ZcU[8r  
             >r)X:K+I  
            If (ShapeWidth + ShapeHeight) > 150 Then  :Pq.,s  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" v8/6wy?  
            End If `W `0Fwu9  
             Q<6P. PTya  
            '段落计数器递 ?X9]HlH  
            paraCounter = paraCounter + 1 Cs@ +r  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter F52B~@ .  
            Me.txtStatus.Text = ParaText sM\lO  
            DoEvents ]~>K\i  
        Loop y/? &pKH^  
    End With zSv^<`X3  
     tfkr+ /  
    msg = "" .> Z,uT^A  
     F?u^"}%Fc  
    For i = 0 To Me.ErrMsg.ListCount - 1 r]P,9  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) b[@V Ya  
    Next t` 8!AhOgc  
     g,]@4|  
     W~ULc 9  
     -$<O\5cAQ  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg q (+ZwaV@  
    Me.cmdCheck.Enabled = True 8BXqZVm.  
    Me.txtStatus.Visible = True ogeL[7  
    Me.lbParaType.Visible = False /}5B&TZ=(3  
     _2hXa!yO  
    bContinue = False .5> 20\b2  
End Sub G",.,Px  
b-@\R\T  
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) 6<Hu8$G|  
    Dim pTEXT As String rS*$rQCr=  
     !&] z*t  
    pTEXT = ChKRange.Text u-DK_^v4M  
     ( 0Naf  
    ParaType = "其它" t~M $%)h  
    TitleString = pTEXT ?Qqd "=k4  
    TitleNo = "N/A" K(T\9J.  
     !OcENV  
    shpCounter = ChKRange.InlineShapes.Count ~V)?>)T  
    If shpCounter <> 0 Then 7Bz*r0 9S  
        MaxShpHeight = 0: TotalShpWidth = 0 BF8"rq}r0  
        For i = 1 To shpCounter ,xths3.K  
            k = ChKRange.InlineShapes(i).Height JmOW ~W  
            l = ChKRange.InlineShapes(i).Width 5IqQ|/m<6  
            If k > MaxShpHeight Then ]M,06P>?  
                MaxShpHeight = k %G?K@5?j?  
            End If $R^A Ea7  
            TotalShpWidth = TotalShpWidth + l 59rY[&|  
        Next VjbG(nB?_  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then :Gh~fm3}  
            Exit Sub X1A<$Am1  
        End If Ulqh@CE)  
    End If ?M6ag_h3  
     $E(XjuS  
    '空行 beZ(o?uK  
    If Len(pTEXT) <= 2 Then dl l%4Sd  
        Exit Sub \ Aq;Q?  
    End If GlR~%q-jiQ  
     Y/U{Qc\ 6  
         xi'<y  
    '是否为表格中的文字 Vm8D"I5i  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then ';RI7)<  
        ParaType = "表格内容" x:5dC I  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber)  ?RD *1  
        If k = 1 Then 6J%iZ  
            ParaType = "表格首行" u/AT-e r;  
        End If |V`S >m%N  
        Exit Sub Sl~x$9`  
    End If =^h~!ovj:  
     Fa3gJ[ZAqf  
    '例外情况:脚注 _zC (J  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then (TSqc5^H  
        ParaType = "脚注" ~!+h?[miV  
        Exit Sub V`fL%du,3  
    End If &K:' #[3V  
     d*;$AYI#R  
    '例外情况:尾注 h(xP_Svj>  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then eZF'Ck y  
        ParaType = "尾注" hSqMaX%G  
        Exit Sub oEzDMImJ5  
    End If uhn %lV]  
     M?o{STt  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then 0^_MN~s(X  
        ParaType = "页眉页脚" Q!CO0w  
        Exit Sub ,EhVSrh)_4  
    End If #i@h{ R01  
     K5 vNhA  
     6Dm+'y]l  
    With regEX t 6u-G+}  
        .Global = True <fM>Yi5  
         6 ,N6jaW  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" R]b! $6Lt  
        If regEX.Test(pTEXT) Then  pbB2wt  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") WOndE=(V  
            TitleString = regEX.Replace(pTEXT, "$3") a&/HSf_G  
            TitleNo = regEX.Replace(pTEXT, "$1") % my  
            ParaType = "章" K&pM o.  
            Exit Sub pZ+j[!  
        End If q#1X[A()  
         }. %s xw  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" (:$9%,x  
        If regEX.Test(pTEXT) Then +cfziQ$'  
            ParaType = "一级标题" ZTf_#eS$  
            regEX.Execute (pTEXT) B.-A $/  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") gOE_ ]  
            TitleString = regEX.Replace(pTEXT, "$3") sp8[cO=  
            TitleNo = regEX.Replace(pTEXT, "$1") W\ULUK  
            Exit Sub 5RA<Z.  
        End If C;#" td  
         R "E<8w  
        '全角或半角括号中的数字 /)1v9<vM"  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" Xt(! a  
        If regEX.Test(pTEXT) Then t*+! n.p  
            ParaType = "二级标题" zW'/2W.  
            regEX.Execute (pTEXT) (5Ky6b9v  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") 0K3Hf^>m  
            TitleString = regEX.Replace(pTEXT, "$5") mC(u2  
            TitleNo = regEX.Replace(pTEXT, "$2") 2uu[52H8d%  
            Exit Sub l]vohLz 3!  
        End If ! Q[}s #g  
         ~%aJ Fs  
        '阿拉伯数字  1. 2. Oje|bxQ  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" Ysk, w,K  
        If regEX.Test(pTEXT) Then #)i&DJ^Y  
            ParaType = "三级标题" cS~!8`Fwy  
            regEX.Execute (pTEXT) S|2VP8xY9  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 &|z544  
            TitleString = regEX.Replace(pTEXT, "$3") w yD%x(  
            TitleNo = regEX.Replace(pTEXT, "$1") E\e]K !  
            Exit Sub DJ:38_F  
        End If  [y{E  
         nGZ \<-  
        '全角或半角括号中的阿拉伯数字 :QA@ c|(PF  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" +>E5X4JC  
        If regEX.Test(pTEXT) Then r%!FmS<  
            ParaType = "四级标题" +#v4B?NR  
            regEX.Execute (pTEXT) PHkDb/HIx|  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") 5LMj!)3  
            TitleString = regEX.Replace(pTEXT, "$5") 3}M \c)  
            TitleNo = regEX.Replace(pTEXT, "$2") ggCr-  
            Exit Sub oYq,u@oM  
        End If $,`VUe{  
         ^_w*XV  
        '表格名称 ??TdrTS  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" 8*k oxS  
        If regEX.Test(pTEXT) Then Qg>L,ZO  
            ParaType = "表格标题" ` !kL1oUYE  
            regEX.Execute (pTEXT) n2 na9dX)w  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) eJf>"IF-  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) U+!UL5k  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) ~x+Ykq0  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 OPJgIU%  
            Exit Sub -><QFJ  
        End If pYGYy'%A'  
         LD@7(?mlU  
        '图片名称 2E$i_jc  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" ;E2kT GT  
        If regEX.Test(pTEXT) Then ^fZGX<fH   
            ParaType = "图片标题" }wkaQQh  
            regEX.Execute (pTEXT) LY1KQuY  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") c9|a$^I6  
            TitleString = regEX.Replace(pTEXT, "$3") G"fdu(.@  
            TitleNo = regEX.Replace(pTEXT, "$1") )=(n/ vckM  
            Exit Sub zPE#[\O21B  
        End If %QE5<2k  
         gN\*Y  
        '参考文献 \6c8z/O7   
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 gL,"ef+nM  
        If regEX.Test(pTEXT) Then %g-0O#8}  
            ParaType = "文献条目" x?>!UqgkY  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") [#zE. TW  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") 49y *xMn  
            Exit Sub [,\i[[<  
        End If b#}t:yy  
         5\+EHW!o  
        prfx = Left(pTEXT, 2) ^(m0M$Wk*  
        If prfx = "注:" Or prfx = "注:" Then bQ=s8'  
            ParaType = "图表注解"  toN  
            Exit Sub iiehrK&T !  
        End If p9w%kM?  
         !SN WB  
         |?|K\UF(Y  
        ParaType = "正文" Z_jn27AC  
         %d-`71|lG^  
    End With t_Z _!Qy  
End Sub m\} =4b  
z-)*Q  
Sub ConvertListToOrdinary() 6o9sR)c ?  
    Dim st As Paragraph $*aE$O6l  
    With ActiveDocument 8+L7E-  
        For i = .Paragraphs.Count To 1 Step -1 Ahd\TH  
            Set st = .Paragraphs(i) $Gd5wmb!  
            lst = st.Range.ListFormat.ListString 7n [12:  
            If lst <> "" Then IE@ z@+\(  
                st.Range.ListFormat.RemoveNumbers jXH0BPa,  
                st.Range.InsertBefore lst & " " 7zi"caY  
            End If IF$^ 0q  
        Next I<9n(rA  
    End With %,Q;<axzi  
    Set st = Nothing )j(fWshP  
End Sub dd19 z%  
$KH@,;Xz  
Private Sub UserForm_Activate() ha ik  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" tbRE/L<  
    Me.lbTotal.Font.Bold = True "h`54 }0  
    Me.txtStatus.Visible = False ax;{MfsK  
    Me.cmdCheck.Enabled = True Flne=ij6g  
6BR \iZ  
End Sub t3Qm-J}wSB  
&:C{/QnA  
s.bT[0Vl  
Sub CheckSuperScript() [ArO$X3\  
    Selection.Find.ClearFormatting Wu]/(F  
    Selection.Find.Replacement.ClearFormatting JYl\<Z' {  
    With Selection.Find #EEG>M*xB  
        .Text = "[【\[[〖](*)[】\]〗]]" \/ X{n*Hw?  
        .Replacement.Text = "[\1]" Yo@m50s$  
        .Replacement.Font.Superscript = True 8_+vb#M  
        '.Replacement.Font.Color = wdColorBlue B5 tx f.  
        .Forward = True hQP6@KIe)  
        .Wrap = wdFindContinue ^$8Vh =D  
        .FORMAT = True QQSH +  
        .MatchCase = False `6n!$Cxo  
        .MatchWholeWord = False ~t$mw,  
        .MatchByte = False 0K`ZX&K?W  
        .MatchAllWordForms = False _u` B3iG  
        .MatchSoundsLike = False Y]M^n&f  
        .MatchWildcards = True Sn+F V+D  
    End With lJ("6aT?  
    Selection.Find.Execute Replace:=wdReplaceAll +i_'gDy$  
End Sub nh ?9R&  
$]Rl__;  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) #?A]v>I;C  
    bContinue = False jaL$LJV  
    Set regEX = Nothing X!2.IsIS8  
End Sub /bu'6/!`  
=]WW'~  
Sub CeateOrModifyStyle() li1v 4  
' zL6 \p)y  
' $8EV, 9^U  
Dim stl As Style ./'; P <)  
     }ty"fI3&iY  
    Options.Pagination = False 8Yo-~,Gb  
     p"g1V7B  
    On Error Resume Next DXt]b,  
    For Each stl In ActiveDocument.Styles u~ Vs wXc4  
        stl.Delete Rd .U;>  
    Next 5>N6VeM  
    On Error GoTo 0 f<) Ro$   
     0I(uddG3  
    Set stl = Nothing Bmi:2} j  
     3"f)*w7 d  
    DoEvents %GNUnr$  
    On Error Resume Next rL.<Z@ -  
     |K'Gw}fX/  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph p6B .s_G4  
     -qs(2^  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph #: dR^zr<  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph d?Ia#K9 3G  
     .A )\F",X  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph +p8qsT#7  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph :h^O{"au^  
     J2)-cY5G  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph QQ5lW  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph u'#`yTB6b  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph e~tr^$/(  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph h85 (N  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph 87&KQ_  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph Bm65 W  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph FGV}5L  
     (r a:?B  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph _ .-o%6  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph DxE^#=7iH;  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph HKq2Js  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph )RpqZe/h4  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph oqm  
     03P N{<  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph i#CaKS  
    On Error GoTo 0 \.K\YAM<  
    DoEvents N8Rm})  
     aW52.X z%8  
    'BaseStyle }<6oFUZ  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False ;"d?_{>7  
    With ActiveDocument.Styles("BaseStyle").Font ; ,Of\Efc|  
        .NameFarEast = "宋体" \[@Q}k[  
        .NameAscii = "Times New Roman" D2>hMc  
        .NameOther = "宋体" # Nu%]  
        .Size = 10.5 -d$8WSI 8  
        .Bold = wdUndefined UY?i E=  
        .Italic = wdUndefined SJ1w1^#Pz  
        .Subscript = wdUndefined >cGh|_9  
        .Subscript = wdUndefined (#!(Q) ]  
         I rtF4ia.  
        .Underline = wdUnderlineNone +Q@/F~1@6@  
        .UnderlineColor = wdColorAutomatic ))%@@l[  
        .StrikeThrough = False L?Kz P.(t+  
        .DoubleStrikeThrough = False c^i"}2+  
         %RCl+hOP.h  
        .Outline = False q[PD  
        .Emboss = False H1aV}KD  
        .Shadow = False ;zfQ3$@9  
        .Hidden = False v_?s1+w  
        .SmallCaps = False {bAWc.  
        .AllCaps = False A^}i^  
        .Color = wdColorAutomatic pDLu+ }@  
        .Engrave = False g:G%Ei~sF  
        .Scaling = 100 I$3"|7[n  
        .Kerning = 1 Oz4,Y+[#  
        .Animation = wdAnimationNone +YGw4{\EL  
        .DisableCharacterSpaceGrid = False d,GtH)(s  
        .EmphasisMark = wdEmphasisMarkNone aF; ]7i@  
    End With FYx `o\  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat cuV8#: i  
        .LeftIndent = 0 .-O@UQx.I  
        .RightIndent = 0 #Lhj0M;a  
        .SpaceBefore = 0 RTPq8S"  
        .SpaceBeforeAuto = False L&!g33J&  
        .SpaceAfter = 0 q 2_N90u  
        .SpaceAfterAuto = False # f|NM7  
         7\\~xSXh  
        .LineSpacingRule = wdLineSpaceSingle zAkc 67:  
        .Alignment = wdAlignParagraphJustify uv~qK:Nw(  
         hX>VVeIZ  
        .WidowControl = False yL.PGF1(  
        .KeepWithNext = False 8osS OOzM  
        .KeepTogether = False uI[-P}bSc&  
        .PageBreakBefore = False %h/#^esi  
        .NoLineNumber = False = ELDJt  
         n,Yr!W:h  
        .FirstLineIndent = CentimetersToPoints(0) n!l./>N  
        .OutlineLevel = wdOutlineLevelBodyText P/C+L[X=  
        .CharacterUnitLeftIndent = 0 K#JabT  
        .CharacterUnitRightIndent = 0 (T%F!2i([U  
        .CharacterUnitFirstLineIndent = 0 1Rb XM n  
        .LineUnitBefore = 0 ~7,2N.vO2  
        .LineUnitAfter = 0 jE?\Yv3  
        .AutoAdjustRightIndent = True `PQ?8z|  
        .DisableLineHeightGrid = True $ + GFOO  
         r {/ G\  
        .FarEastLineBreakControl = True 4BduUH  
        .WordWrap = True =,>TpE  
        .Hyphenation = False EL 8N[]RF  
         aUIc=Z  
        .HangingPunctuation = True HX /GLnY/X  
        .HalfWidthPunctuationOnTopOfLine = True iSZctsqE  
        .AddSpaceBetweenFarEastAndAlpha = True 0]h8)EW  
        .AddSpaceBetweenFarEastAndDigit = True /IrR,bvA  
        .BaseLineAlignment = wdBaselineAlignBaseline St~SiTJU  
    End With .@8m\  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False 4mM2C`I  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll E1{:z"  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese 9J2q`/6~e  
    ActiveDocument.Styles("BaseStyle").NoProofing = False d 0H  
     "&~?Hzm  
    '一级标题题样式 &k_wqV  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") z 1#0  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle"  23(E3:.  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False M0Kh>u  
    With ActiveDocument.Styles("QLNU一级标题").Font [U3D`V$xD  
        .NameFarEast = "黑体" Bp$+ F/  
        .NameAscii = "Arial Black" @sg T[P*ut  
        .NameOther = "黑体" Zy!)8<Cgm'  
        .Name = "黑体" +LI*!(T|lm  
        .Size = 16              '三号 T$.-{I  
        .Bold = True v8U1uOR,%  
        .Italic = wdUndefined aCYm$6LmA  
        .Subscript = wdUndefined 9znx 1AsN  
        .Superscript = wdUndefined j J`Zz  
    End With ['}^;Y?*o  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat .j:.WnW  
         ulPrb>i  
        .LeftIndent = CentimetersToPoints(0) k8x&aH  
        .RightIndent = CentimetersToPoints(0) lE YT{  
        .FirstLineIndent = CentimetersToPoints(0) JXSqtk=  
         4U! .UNi  
        .LineSpacingRule = wdLineSpaceSingle }!Diai*C  
        .Alignment = wdAlignParagraphCenter <*r<+S   
         aCH:#| B  
        .WidowControl = True o {Xw Li  
        .KeepWithNext = True \:_.N8"  
        .KeepTogether = True ;}>g1&q  
        .OutlineLevel = wdOutlineLevelBodyText #<tWYE  
         , SJK  
        .LineUnitBefore = 0.5 avxn}*:X.  
        .LineUnitAfter = 0.5 \yX !P1  
    End With _;J9q}X  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False OFQi&/  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll M::IE|h  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese z:i X]df  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True QS=$#Gp  
    DoEvents Io4:$w  
     C tC` : !Q  
    '二级 A9qO2kq7_  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") [K)1!KK,L  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle"  wc+N  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False !OZh fMVd  
    With ActiveDocument.Styles("QLNU二级标题").Font $*v20  
        .NameFarEast = "黑体" Dt~}9HrU  
        .NameAscii = "Arial Narrow" ( /x@W`  
        .NameOther = "黑体" ![P(B0Ct/  
        .Name = "黑体" n6!Ihip$  
        .Size = 15        '小三号 ]|$$:e^U9  
        .Bold = False @)2V"FE4i  
        .Outline = False "$E!_  
        .Italic = wdUndefined |B{$URu  
        .Subscript = wdUndefined 2YE]?!   
        .Superscript = wdUndefined Fzld0p9=  
    End With ^;k _  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat !k>H e*M}P  
        .LeftIndent = CentimetersToPoints(0) 1$!RKqT  
        .RightIndent = CentimetersToPoints(0) EY x2IJ  
        .FirstLineIndent = CentimetersToPoints(0) {Ohk uON  
         n;k97>m${x  
        .LineSpacingRule = wdLineSpaceSingle D 5r   
        .Alignment = wdAlignParagraphLeft "<.  
         jC Kt;lj  
        .WidowControl = True ?_Dnfa_  
        .KeepWithNext = True "! 6 B5Oz  
        .KeepTogether = True 'd.@4 9  
        .PageBreakBefore = False 4 _U,-%/  
        .OutlineLevel = wdOutlineLevelBodyText n0_Az2   
         Q@ )rw0$  
        .LineUnitBefore = 0.5 " ;R3260  
        .LineUnitAfter = 0.5 H;t8(-F@'  
         P15 *VPy  
    End With 6U>jU[/  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False g7U:A0Z  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll :UhFou_D4l  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese :5cu,&<Gv  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True +}-W.H%`0  
    DoEvents M(h H#_ $  
     zIQc#F6\5  
    '三级标题样式 JbC\l  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") =<'iLQb1  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" u$%#5_k  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False a] wcA  
    With ActiveDocument.Styles("QLNU三级标题").Font F;Xq:e8  
        .NameFarEast = "宋体" w[A3;]la  
        .NameAscii = "Times New Roman" (Y.$wMB  
        .NameOther = "黑体" R.YGmT' 2  
        .Name = "黑体" WGG) mh&-  
        .Size = 14               '四号 s-N?Tzi  
        .Bold = False V\M!]Nnxr  
        .Outline = False qnfRN'  
        .Italic = wdUndefined nog\,NT  
        .Subscript = wdUndefined kzVI :  
        .Superscript = wdUndefined ma-Y'  
    End With 3JE;:2O~P  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat ,^IZ[D>u)  
        .LeftIndent = CentimetersToPoints(0) U)w|GrxX  
        .RightIndent = CentimetersToPoints(0) !VJa$>,  
        .FirstLineIndent = CentimetersToPoints(0) ep}/dBg  
         t`1]U4s&I  
        .LineSpacingRule = wdLineSpaceSingle B L5  
        .Alignment = wdAlignParagraphLeft  ISnS;  
         +81+4{*  
        .WidowControl = True z Hs  
        .KeepWithNext = True SQ KY;p  
        .KeepTogether = True *1)NABp6D  
        .PageBreakBefore = False vS t=Ax3]  
        .OutlineLevel = wdOutlineLevelBodyText wCTR-pL^  
         iBiA0 W  
        .CharacterUnitLeftIndent = 0 ;?lM|kK  
        .CharacterUnitRightIndent = 0 F",abp!  
        .CharacterUnitFirstLineIndent = 2 9MzkG87J  
         oJ@PJvmR&a  
        .LineUnitBefore = 0.5 ,/b/O4`;y  
        .LineUnitAfter = 0 'lRHdD}s  
    End With 3F'dT[;  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False IV)W|/.  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll XsN#<"f;i  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese c+)|o!d  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True --%2=.X=  
    DoEvents m',_k Y3  
     T17LYHIT  
    '四级标题样式 A-wxf91+:  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Lr\ B  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" 5WJkeG ba  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False s=~7m.m  
    With ActiveDocument.Styles("QLNU四级标题").Font \HQb#f,  
        .NameFarEast = "宋体" P[P72WR  
        .NameAscii = "Times New Roman" Mjvso0zj  
        .NameOther = "宋体" "!/_ h >  
        .Name = "宋体" W>|b98NPu  
        .Size = 12               '小四号 Cm}UWX  
        .Bold = True =]xk-MY"|R  
        .Outline = False E|4XQ|B@  
        .Italic = wdUndefined 3 N%Ev o  
        .Subscript = wdUndefined Sw( H]  
        .Superscript = wdUndefined ^%X\ }><  
    End With k`~br249  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat FHcqu_;J  
         ?.A/E?Oc  
        .LeftIndent = CentimetersToPoints(0) ,M h/3DPgE  
        .RightIndent = CentimetersToPoints(0) p;t!"I:`?  
        .FirstLineIndent = CentimetersToPoints(0) ;Kq?*H  
         ?ZV0   
        .LineSpacingRule = wdLineSpaceSingle SyVbCj  
        .Alignment = wdAlignParagraphLeft [<fLPa  
         P_g0G#`4  
        .WidowControl = True IC-xCzR  
        .KeepWithNext = True pVa|o&,  
        .KeepTogether = True lg  
        .PageBreakBefore = False OK J%M]<  
        .OutlineLevel = wdOutlineLevelBodyText U [Lr+nKo\  
         RxVZn""  
        .CharacterUnitLeftIndent = 0 u7},+E)+B  
        .CharacterUnitRightIndent = 0 &#!1 Y[e^  
        .CharacterUnitFirstLineIndent = 2 hzA+ ,  
         h&rZR`g  
        .LineUnitBefore = 0 )kYDN_W  
        .LineUnitAfter = 0  k =O  
         ,G[Y< ~Hy  
    End With {=;<1PykLb  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False x]IJ;  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll HK VtO%&  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese O0eM*~zI  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True b&9~F6aM  
    DoEvents {W=5 J7  
     a.a ,_  
    '正文校式 eAjsMED  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") q w @g7  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" bYr*rEcA  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False wVc ^l  
    With ActiveDocument.Styles("QLNU正文").Font bas1(/|S  
         WS%yV|e  
        .NameFarEast = "宋体" !x")uYf  
        .NameAscii = "Times New Roman" dq0!.gBT2  
        .NameOther = "宋体" wR"17z7[]  
        .Name = "宋体" F(Je$c/J|~  
         MHA_b^7?  
        .Size = 12               '小四号 /. >%IcK  
         Q07&7SH_  
        .Bold = wdUndefined ZzxWKIE'c  
        .Italic = wdUndefined iV!V!0- @  
        .Subscript = wdUndefined xl@~K^c]  
        .Superscript = wdUndefined -wh  
         _n&#e r  
        .Outline = False KxWm63"  
        .Emboss = False Tl1H2s=G-  
        .Shadow = False x~](d8*=  
        .Hidden = False Y+5aT(6O  
         8d&%H,  
        .DisableCharacterSpaceGrid = True ClNuO  
    End With b Rr3:"=sE  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat "/%o'Fq  
         `^|l+TJG  
        .LeftIndent = CentimetersToPoints(0) ,Kt51vGi  
        .RightIndent = CentimetersToPoints(0) aj<r=  
        .FirstLineIndent = CentimetersToPoints(0) pnXwE-c_  
         ^z51f>C  
        .LineSpacingRule = wdLineSpaceExactly N*) O_Ki  
        .LineSpacing = 20 m^w{:\p  
        .Alignment = wdAlignParagraphLeft IsDwa qd|  
         1\g r ;b  
        .WidowControl = False F^5\w-gLY  
        .KeepWithNext = False #$}A$sm  
        .KeepTogether = False ARG8\qU  
        .PageBreakBefore = False AS'+p%(  
        .Hyphenation = False yR"mRy1  
         ,hm&]  
        .OutlineLevel = wdOutlineLevelBodyText %D~Mij  
         yet ~  
       [2!C ^ \t  
        .CharacterUnitLeftIndent = 0 i1*0'x  
        .CharacterUnitRightIndent = 0 FrE#l.)?!  
        .CharacterUnitFirstLineIndent = 2 Vlge*4q  
         ph~BxK )i6  
        .LineUnitBefore = 0 $#(j2sL1  
        .LineUnitAfter = 0 l hST%3Ld  
        .SpaceBefore = 0 KN>h*eze  
        .SpaceAfter = 0 ;d FJqo82  
         qqys`.  
        .DisableLineHeightGrid = True /QQjb4S}  
    End With Mq_P'/  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False ? 51i0~O=  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll "]OROJGa  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese 9TwKd0AT$&  
    ActiveDocument.Styles("QLNU正文").NoProofing = True I1I-,~hO  
    DoEvents <kWkc|z BY  
     Qj$w7*U  
    '图片段落样式 PKQ.gPu6*@  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") 9!.S9[[N  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" 6Cfsh<]b  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False unKgOvtj  
    With ActiveDocument.Styles("QLNU图片段落").Font (6b0rqPF  
        .Size = 12               '小四号 >]uu?! PU  
        .Italic = wdUndefined A4rkwM  
        .Subscript = wdUndefined - FJLM  
        .Superscript = wdUndefined N|3#pHm@  
    End With n~0MhE0H  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat rinTB| 5  
         E'NS$,h  
        .LeftIndent = CentimetersToPoints(0) {qOqtkj  
        .RightIndent = CentimetersToPoints(0) cwzgIm+  
        .FirstLineIndent = CentimetersToPoints(0) OL_jU2,fv  
         X#zp,7j?  
        .LineSpacingRule = wdLineSpaceSingle lQy-&d|=#^  
        .Alignment = wdAlignParagraphCenter y>)c?9X  
        .KeepWithNext = True ) $0>L5d:  
        .OutlineLevel = wdOutlineLevelBodyText {WQ6=wGpS  
         +r& :c [  
        .CharacterUnitLeftIndent = 0 z;_v l  
        .CharacterUnitRightIndent = 0 }0iHf'~DH*  
        .CharacterUnitFirstLineIndent = 0 q([{WZ:6Oq  
         2'-84  
        .LineUnitBefore = 0 T|0d2aa  
        .LineUnitAfter = 0 J~50#vHY  
    End With :Gew8G  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False t0Jqr)9}6  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll g's!\kr  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese v["_t/_  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True d8U<V<H<  
    DoEvents 1g jGaC  
     ?'tRu !~  
     7 p1B"%  
    '第X章 be$']}cP  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") G6+6u Wvl  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" qw>vu7/z  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False s+z5"3'n  
    With ActiveDocument.Styles("QLNU章节标题").Font }D.\2x(J  
        .NameFarEast = "黑体" {s@ 0<!  
        .NameAscii = "Arial Black" 96P&+  
        .NameOther = "Arial Black" 9,JWi{l Iv  
        .Name = "黑体" FZIC |uz  
        .Size = 16 a6O <t;&  
        .Bold = True n{&;@mgI  
        .UnderlineColor = wdColorAutomatic cBv"d ~  
        .Outline = False K\59vtga  
        .Italic = wdUndefined $?dQ^]<,  
        .Subscript = wdUndefined p#_ 5w  
        .Superscript = wdUndefined /)kx`G_  
        .Scaling = 100 DIJmISk  
        .DisableCharacterSpaceGrid = True @^o7UzS4z  
    End With hljKBx ~  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat E0yx @Vx  
        .LineSpacingRule = wdLineSpaceSingle !~vx|_$#  
        .Alignment = wdAlignParagraphCenter Od:-fw  
        .WidowControl = True o8v,17 8  
        .KeepWithNext = True s ZEa8  
        .KeepTogether = True *aFY+.;U`  
        .PageBreakBefore = True \9uK^oS  
        .OutlineLevel = wdOutlineLevelBodyText U3` ?Z`i(  
         ^@{"a  
        .LeftIndent = CentimetersToPoints(0) Bf6i{`!G  
        .RightIndent = CentimetersToPoints(0) xA`j:zn'j  
        .FirstLineIndent = CentimetersToPoints(0) Ob}XeN(L3  
         9X +dp  
        .CharacterUnitLeftIndent = 0 ael] {'h]  
        .CharacterUnitRightIndent = 0 ?%Ww3cU+J  
        .CharacterUnitFirstLineIndent = 0 9!kp3x/`  
         .!Kqcz% A  
        .LineUnitBefore = 1 ?~(#~3x  
        .LineUnitAfter = 0.5 &]shBvzl^  
         s|`wi}"x  
        .AutoAdjustRightIndent = False cbs ;  
        .DisableLineHeightGrid = True s`0IyQXVU  
        .FarEastLineBreakControl = True yz5! >|EB  
        .WordWrap = True pOh<I {r1  
    End With F ^aD#  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False /J&ks>St  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll 5G$ ,2i(  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese @LSh=o+  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True E.+%b;Eqe  
    DoEvents ~"<^4h  
     .wyuB;:  
    '表格标题 ~*9Ue@  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") $EEn]y  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" _N)&<'lB<  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False &Yc'X+'4  
    With ActiveDocument.Styles("QLNU表格标题").Font _:WNk(  
        .NameFarEast = "楷体" =LKM)d=1  
        .NameAscii = "Arial" 0L1sF'ZN  
        .Name = "楷体" |\/\FK]?]  
        .Size = 10.5 8R:Glif  
        .Bold = True WglpWp)  
        .Underline = wdUnderlineNone < (B|g&A  
        .Italic = wdUndefined Jb^{o+s53  
        .Subscript = wdUndefined s9OW.i]zX  
        .Superscript = wdUndefined iz{TSU  
        .Color = wdColorAutomatic WiZTE(NM`  
    End With (|rf>=B+H  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat 8FZC0j.^DH  
         +|7N89l  
        .LineSpacingRule = wdLineSpaceSingle 8n-Xt7z  
        .Alignment = wdAlignParagraphCenter %u_dxpx  
        .KeepWithNext = True z[myf] @  
        .KeepTogether = True xSNGf@1b  
        .OutlineLevel = wdOutlineLevelBodyText O&yAFiCd  
         3,X8 5`v^  
        .LeftIndent = CentimetersToPoints(0) .\&k]}0qA?  
        .RightIndent = CentimetersToPoints(0) >tx[UF@P@  
        .FirstLineIndent = CentimetersToPoints(0) 3D1y^ I  
         Px Gw5 :  
        .CharacterUnitLeftIndent = 0 }p?67y/  
        .CharacterUnitRightIndent = 0 6,MQT,F  
        .CharacterUnitFirstLineIndent = 0 S^| U"  
         #fHnM+  
        .LineUnitBefore = 1 Q\T?t  
        .LineUnitAfter = 0 "v( pluN|  
         ~P"Agpx3u  
    End With o4J@M{xb_  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False IkjJqz  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll xI~A Z:m  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese E`<ou_0N@q  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True .Eb]}8/}E  
    DoEvents 9I;~P &  
A~lc`m-  
    '表格首行 <VutwtA  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") 41s\^'^&  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False I,`;#Q)nx  
    With ActiveDocument.Styles("QLNU表格首行").Font \nPf\6;M  
        .NameFarEast = "楷体" :FfEjNil  
        .NameAscii = "Times New Roman" 4y?n62N8$  
        .Name = "楷体" q-ko)]  
        .Size = 9 ~!Nw]lb!  
        .Bold = True !c1M{klP  
        .Underline = wdUnderlineNone cofdDHXfQI  
        .Italic = wdUndefined >cg)Nq D  
        .Subscript = wdUndefined ^y KkWB*  
        .Superscript = wdUndefined O`" ~AY&  
    End With s=F[.X9lp  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat sR[!6[AA  
        .LineSpacingRule = wdLineSpaceSingle 5E1`qof  
        .Alignment = wdAlignParagraphCenter a]xGzv5  
         @rDBK] V  
        .LeftIndent = CentimetersToPoints(0) vy{k"W&S  
        .RightIndent = CentimetersToPoints(0) X!mJUDzh]  
        .FirstLineIndent = CentimetersToPoints(0) &;)B qqXc  
         \E<Qi3W>*  
         au/LoO#6Ro  
        .CharacterUnitLeftIndent = -0.5 =QbOvIq  
        .CharacterUnitRightIndent = -0.5 C"B'Dj  
        .CharacterUnitFirstLineIndent = -0.5 XWQ `]m)  
         }!R*Q`m  
        .LineUnitBefore = 0 rpDBKo  
        .LineUnitAfter = 0 @"1Z;.S8V  
        .SpaceBefore = 0 3\ ,t_6}  
        .SpaceAfter = 0 \ AH5 zdK  
         s2wDJ|  
    End With <\O8D0.d  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False / o I 4&W  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll o3GkTn O  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese B RskxyL&,  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True O9/)_:Wdh  
    DoEvents )KVr2y;RF  
:z&kbG  
    '表格内容 FI.F6d)E$  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") P}UxA!  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False ,(zV~-:9  
    With ActiveDocument.Styles("QLNU表格内容").Font 80'@+AD  
        .NameFarEast = "楷体" x<Gjr}  
        .NameAscii = "Times New Roman" .`5|NUhN  
        .Name = "楷体" 1K<}  
        .Size = 9 :vzIc3~c:`  
        .Bold = False .%e>>U>F  
        .Underline = wdUnderlineNone c%^B '  
        .Italic = wdUndefined KK2YT/K$SG  
        .Subscript = wdUndefined ]1Wxa?  
        .Superscript = wdUndefined 6$=>ckP  
    End With bhIShk[  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat y iI oqvP  
        .LineSpacingRule = wdLineSpaceSingle SA&(%f1d  
        .Alignment = wdAlignParagraphCenter (=;'>*L(  
         ( $2M"n  
        .LeftIndent = CentimetersToPoints(0) /|i*'6*  
        .RightIndent = CentimetersToPoints(0) DB-79U%W  
        .FirstLineIndent = CentimetersToPoints(0) =b>TFB=*N  
         ?[m1?  
        .CharacterUnitLeftIndent = -0.5 v[{7\Hha  
        .CharacterUnitRightIndent = -0.5 f!R7v|j P  
        .CharacterUnitFirstLineIndent = -0.5 EPH" 5$8  
        .LineUnitBefore = 0 {FKr^)g  
        .LineUnitAfter = 0 /j}Tv.'d  
        .SpaceBefore = 0 l~f3J$OkJ  
        .SpaceAfter = 0 Skg/iH"(  
    End With !rAH@y.l  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False @6tczU}ak  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll B5vLV@>]  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese /.CS6W^z  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True T 4p}5ew'  
    DoEvents * jWh4F,  
L6Brs"9B  
    '图片标题 e98QT9  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") WysWg7,r  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" >yXhP6  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False 'N+;{8C-{  
    With ActiveDocument.Styles("QLNU图片标题").Font <N$Hb2b  
        .NameFarEast = "楷体" xH{-UQ3R  
        .NameAscii = "Times New Roman" !#W>x49}  
        .Name = "楷体" K8MET&  
        .Size = 10.5 <I tS_/z  
        .Bold = True N>"L2E=z$|  
        .Underline = wdUnderlineNone 5[jS(1a`c  
        .Italic = wdUndefined 1/w8'Kf'u  
        .Subscript = wdUndefined ZvT,HJ0?  
        .Superscript = wdUndefined 8 b~  
        .Outline = False N{Z+  
        .Shadow = False yq k8)\p  
        .Color = wdColorAutomatic IF|;;*Z8  
    End With 9RHDkK{ 5  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat `y^\c#k  
        .LineSpacingRule = wdLineSpaceSingle 8>#ZU]cG  
        .Alignment = wdAlignParagraphCenter d~%7A5  
         Xb>SA|6[|  
        .KeepWithNext = wdUndefined B= ~y(Mb  
        .KeepTogether = True ?HZ^V  
        .OutlineLevel = wdOutlineLevelBodyText 8tQL$CbO  
         LO)!Fj4|  
        .LeftIndent = CentimetersToPoints(0) 3~Fag1Hp  
        .RightIndent = CentimetersToPoints(0) z EtsM U  
        .FirstLineIndent = CentimetersToPoints(0) WQ[n K5#  
         %aMC[i  
        .CharacterUnitLeftIndent = 0 r(uo-/7z  
        .CharacterUnitRightIndent = 0 -d#08\  
        .CharacterUnitFirstLineIndent = 0 t,JX6ni  
          c1s&  
        .LineUnitBefore = 0 XX%K_p`&Z  
        .LineUnitAfter = 0 d 94k  
    End With hk:>*B}  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False BlU&=;#r5>  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll ~5%3]  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese f7\X3v2W}3  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True d4  \  
    DoEvents BA1uo0S `S  
6)*fr'P  
    '目录项 ox&? `DO  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") *8?2+ )5"  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" (?R!y -  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False =Q<7[  
    With ActiveDocument.Styles("QLNU目录项").Font QY&c=bWAX"  
        .NameFarEast = "黑体" LOcZadr  
        .NameAscii = "Times New Roman" {R(CGrI  
        .NameOther = "Times New Roman" JG'%HJ"D  
        .Name = "黑体" b3R( O|  
        .Size = 10.5 pgh(~ [  
        .Bold = False vr4r,[B6y  
        .Italic = wdUndefined MQx1|>rG  
        .Underline = wdUnderlineNone U\:Y*Ai  
        .Color = wdColorAutomatic E]/2 u3p  
        .Superscript = wdUndefined TmLCmy!  
        .Subscript = wdUndefined 0>td[f  
    End With I8)D   
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat y,|2hrj/0E  
         ud5}jyJ  
        .LineSpacingRule = wdLineSpaceSingle 'Gc{cNbXIA  
        .Alignment = wdAlignParagraphLeft `G\Gk|4; 2  
         'q$Y m0nL  
        .WidowControl = False Q~Mkf&s  
        .KeepWithNext = False 6P717[  
        .KeepTogether = False YCltS!k  
        .PageBreakBefore = False jIe /X]  
        .NoLineNumber = False )AkBo  
        .OutlineLevel = wdOutlineLevelBodyText ^O@eyP  
         P4_B.5rrJ  
        .LeftIndent = CentimetersToPoints(0) K=JDl-#!  
        .RightIndent = CentimetersToPoints(0) #U L75  
        .FirstLineIndent = CentimetersToPoints(0) v9Ii8{ca|  
         hIV] ZYbH  
        .CharacterUnitLeftIndent = 0 )G^k$j  
        .CharacterUnitRightIndent = 0 k &J;,)V  
        .CharacterUnitFirstLineIndent = 0 9]lI?j]o  
         v9* +@  
        .LineUnitBefore = 0 F sWp>}o  
        .LineUnitAfter = 0 a dr\l5pWQ  
    End With :2S?|7U4  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False s)]T"87H'_  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll /96lvn]8lO  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot }lX$KuD  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese upaP,ik}~  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True W@r<4?O at  
    DoEvents [niFJI sc  
     _xePh  
    '参考文献 lCp6UkE  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") =O0A(ca"g  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" qm><}N7f  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False *`u|1}h|  
    With ActiveDocument.Styles("QLNU参考文献").Font .G\](%  
        .NameFarEast = "宋体" K=0xR*ll5  
        .NameAscii = "Times New Roman" ;xz_H$g  
        .NameOther = "Times New Roman" /"D,gn1S*  
        .Name = "Times New Roman" u_' -vZ_  
        .Size = 12 bk<Rp84vL  
        .Bold = False 1mJUl x  
        .Italic = wdUndefined 57{T p:|  
        .Subscript = wdUndefined c:.5@eq^  
        .Superscript = wdUndefined I]W7FZ=o  
        .Underline = wdUnderlineNone ;k`51 =Wi  
        .UnderlineColor = wdColorAutomatic YAT@xZs-  
        .Color = wdColorAutomatic :23S%B ~X  
        .Engrave = False Xzg >/w 8J  
    End With Kq Jln)7  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat H i8V=+  
         |"9&F  
        .LineSpacingRule = wdLineSpaceExactly Ly8=SIZ   
        .LineSpacing = 16 Ya\:C]   
        .Alignment = wdAlignParagraphLeft J(d+EjC  
        .WidowControl = False 0~RD@>]  
        .KeepWithNext = False 3 5.&!4}  
        .KeepTogether = False E7\K{]  
        .PageBreakBefore = False 6#*_d,xQT  
        .OutlineLevel = wdOutlineLevelBodyText 96 ~y\X@x  
         j]kgdAq>  
        .LeftIndent = CentimetersToPoints(0) .uauSx/#4  
        .RightIndent = CentimetersToPoints(0) gdTW ~b  
        .FirstLineIndent = CentimetersToPoints(0) " o`?-bQ:  
         eo4z!@pRN  
        .CharacterUnitLeftIndent = 0 WJONk_WAc  
        .CharacterUnitRightIndent = 0 CqC )H7A  
        .CharacterUnitFirstLineIndent = -2 <dP \vLH_  
         [HWVS  
        .LineUnitBefore = 0 8j70X <R  
        .LineUnitAfter = 0 (["kbPma  
        .SpaceBefore = 0 4PxP*j  
        .SpaceAfter = 0 :s_.K'4?a  
         &}e>JgBe0  
    End With }B7Txo,Z  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False z*jaA;#  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll H%Vf$1/TF  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS {D l@/fz  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True oOND]>  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese i4i9EvWp  
    DoEvents X [dfms;H  
K\%\p$ZD  
    ' _";w*lg}  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") &t<g K D  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" v"yu7tZ3N  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False oX:&;KA  
    With ActiveDocument.Styles("QLNU论文题目").Font : pUu_  
        .NameFarEast = "黑体" DKfpap}8u  
        .NameAscii = "Arial Black" DL4`j>2Ov  
        .NameOther = "Arial Black" +`Q]p" G  
        .Name = "Arial Black" qqZ4K:oC,  
        .Size = 16 ])F+ C/Px1  
        .Bold = False N9G xJ6  
        .Italic = wdUndefined e`={_R{N  
        .Superscript = wdUndefined S dmz (R  
        .Subscript = wdUndefined oH0g>E;  
        .Underline = wdUnderlineNone '9WTz(0?  
        .UnderlineColor = wdColorAutomatic < r~hU*u  
        .Color = wdColorAutomatic "}xIt)n%;  
4w ,&#L  
    End With /}E2Rr?{  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat f?/OV*  
        .LineSpacingRule = wdLineSpaceSingle %8u9:Cl):  
        .Alignment = wdAlignParagraphCenter myX&Z F_9  
        .WidowControl = True Nkj$6(N=zJ  
        .KeepWithNext = True {f`Y\_r$@  
        .KeepTogether = True ~HGSA(  
        .PageBreakBefore = True S`5bcxI_  
        .NoLineNumber = False 80lhhqRC  
        .OutlineLevel = wdOutlineLevelBodyText 0;><@{'  
         Sz B<PP2  
        .LeftIndent = CentimetersToPoints(0) Cn 5"zDK$  
        .RightIndent = CentimetersToPoints(0)  Yz0fOX  
        .FirstLineIndent = CentimetersToPoints(0) ^$'z#ZN1  
         td%J.&K_*'  
        .CharacterUnitLeftIndent = 0 2c[HA  
        .CharacterUnitRightIndent = 0 k;cX,*DIn  
        .CharacterUnitFirstLineIndent = 0 M| Gl&   
         I ]o|mjvs  
        .LineUnitBefore = 1 s(Gs?6}>T  
        .LineUnitAfter = 1 ._tEDY/1m  
         JW0\y+o~  
        .BaseLineAlignment = wdBaselineAlignAuto QObVJg,GD  
    End With Xn=yC Pi  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False 9FSa=<0wE  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll G?Gf,{#K  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS ,yNuz@^ P  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True H*k\C  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese dpq(=s`s  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True R7(XDX=[ s  
    DoEvents O@@nGSc@  
     BZ.l[LMp  
    '中文摘要 )C?H m^ #  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") D6@ c|O{Q  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" 4_VgJ9@  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False "Y:> ^F;  
    With ActiveDocument.Styles("QLNU中文摘要").Font ({Md({ |  
        .NameFarEast = "宋体" ~ 2Hw\fx  
        .NameAscii = "Times New Roman" +%9Re5R  
        .NameOther = "Times New Roman" 0'F/z%SMj  
        .Name = "Times New Roman" !Ltx2CB2]  
        .Size = 12 -j<E_!t  
        .Bold = wdUndefined k%~;mu"4}  
        .Superscript = wdUndefined AcnY6:3Y|  
        .Subscript = wdUndefined u VD^X*  
        .Italic = wdUndefined ;6hoG(3 +  
        .Underline = wdUnderlineNone SPlt=*C#_  
        .UnderlineColor = wdColorAutomatic _GxC|d  
        .Color = wdColorAutomatic p%*s3E1.D  
    End With S'|PA7a}h  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat 7P3/Ky@6  
        .LineSpacingRule = wdLineSpaceExactly AP>n- Z|  
        .LineSpacing = 20 Ewkx4,`Ff  
        .Alignment = wdAlignParagraphLeft W"@'}y  
         HN`qMGW^  
        .WidowControl = False rWJ5C\R  
        .KeepWithNext = False 5SUO`4L  
        .KeepTogether = True  YC 6guy>  
        .PageBreakBefore = False 9>- 6Y  
        .NoLineNumber = False P^F3,'N  
        .OutlineLevel = wdOutlineLevelBodyText M.dX;iM<  
         2Cy,#X%j>  
        .LeftIndent = CentimetersToPoints(0) w?u3e+  
        .RightIndent = CentimetersToPoints(0) ~Sb)i f  
        .FirstLineIndent = CentimetersToPoints(0) ?`xF>P]M  
         m,kYE9 {  
        .CharacterUnitLeftIndent = 0 C=oeRc'r1W  
        .CharacterUnitRightIndent = 0 fWA# n  
        .CharacterUnitFirstLineIndent = 2 ;Ngk"5  
        .LineUnitBefore = 0 8%;Wyqdf]  
        .LineUnitAfter = 0 3s%DF,  
         YJ ,"@n_  
    End With _Cz98VqRk  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False 0U% tjYk(  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll FY Flh^}  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS 'L3MHTM>[  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True :I&y@@UG  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese . U 6(>6-  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True *ilVkV"U  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete .zdaY, U  
    DoEvents 7{M&9| aK  
     "#pxZ B=  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") [g}#R#Y )  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" vde!k_,wZ  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False | )>+& xk  
    With ActiveDocument.Styles("QLNU英文标题").Font Xe&9| M  
        .NameFarEast = "黑体" %`s#p` Ol1  
        .NameAscii = "Arial Narrow" R%n*wGi_6b  
        .Name = "Arial Narrow" ?QF xds  
        .Size = 16 7=yM40  
        .Bold = True ,OwTi:yDr  
        .Bold = wdUndefined ]SAY\;,_  
        .Superscript = wdUndefined 1mtYap4  
        .Subscript = wdUndefined 0sw;h.VY  
        .Italic = wdUndefined B2$cY;LH  
         AEj%8jh  
        .Underline = wdUnderlineNone M {'(+a[  
        .UnderlineColor = wdColorAutomatic nl(GoX$vRQ  
        .StrikeThrough = False |H5GWZ O{^  
        .DoubleStrikeThrough = False :D3:`P>,c  
    End With pe,y'w{  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat g?xXX /Qe  
        .LineSpacingRule = wdLineSpaceSingle $ s1/Rmw  
        .Alignment = wdAlignParagraphCenter -32P}58R  
        .WidowControl = True <L8FI78[*  
        .KeepWithNext = False 9xJtDdy-O  
        .KeepTogether = False `'iO+/;GY  
        .PageBreakBefore = False %k?/pRv$>  
        .NoLineNumber = False arR<!y7  
        .FirstLineIndent = CentimetersToPoints(0) pFMjfWD,C  
        .OutlineLevel = wdOutlineLevelBodyText E7R%G OH  
         TT(R<hL  
        .LeftIndent = CentimetersToPoints(0) dKEy6C"@  
        .RightIndent = CentimetersToPoints(0) Z >R@  
        .FirstLineIndent = CentimetersToPoints(0) 71E~~$  
         _(m455HZ  
        .CharacterUnitLeftIndent = 0 V[%IU'{:  
        .CharacterUnitRightIndent = 0 {7oPDP  
        .CharacterUnitFirstLineIndent = 0 go=xx.WJ  
         Lbrn8,G\  
        .LineUnitBefore = 1 aJ=)5%$6kc  
        .LineUnitAfter = 1 >3b< Fq$  
         (p#c p  
    End With I&i6-xp  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False 'z}9BGR !  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll iu<Tv,{8  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS CIo`;jt K  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True Sx~mc_ekY  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese /,~]1&?}1  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True 6:}n}q,V  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete Or$"f3gq  
    DoEvents H~#$AD+H  
O\cc=7  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") E|-5=!]fX  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" T[e+iv<8j  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False "h1ek*(?<  
    With ActiveDocument.Styles("QLNU英文摘要").Font U:7 w8$_  
        .NameFarEast = "宋体" Xsanc@w)^C  
        .NameAscii = "Arial" ;,]4A{|  
        .NameOther = "Arial" D0bpD  
        .Name = "Arial" bYQ@!  
        .Size = 12 Q~f]?a`  
        .Bold = wdUndefined 8MDivr/@  
        .Italic = wdUndefined POl-S<QV  
        .Superscript = wdUndefined 1Z_w2D*  
        .Subscript = wdUndefined '-f` 5X  
    End With fO5L[U^`  
     h5l_/v d  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat r@i)Sluf  
         CTg79 ITYk  
        .LineSpacingRule = wdLineSpaceExactly 1Ci^e7 |?  
        .LineSpacing = 20 1+3-Z>^e  
         a(fiW%eFb  
        .Alignment = wdAlignParagraphJustify tkptm%I _  
         5FB3w48  
        .WidowControl = False -@w}}BR  
        .KeepWithNext = False lBG=jOS  
        .KeepTogether = False d^~yUk  
        .PageBreakBefore = False .1^ Kk3  
        .NoLineNumber = False #sF#<nHZ  
         |*ZM{$  
        .OutlineLevel = wdOutlineLevelBodyText Z3wdk6%:}  
         /160pl 4  
        .LeftIndent = CentimetersToPoints(0) ?r)>SB3(e  
        .RightIndent = CentimetersToPoints(0) 5G2ueRVb  
        .FirstLineIndent = CentimetersToPoints(0) 9i_@3OVl  
         $aT '~|?  
        .CharacterUnitLeftIndent = 0 D` cy.},L  
        .CharacterUnitRightIndent = 0 LdiNXyyzet  
        .CharacterUnitFirstLineIndent = 2 KMfIp:~  
         mPPB"uQ  
        .LineUnitBefore = 0 @Kt !uKrI  
        .LineUnitAfter = 1 p;o"i_!  
         /8:e| ]  
    End With 9_svtO]P  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False v#g:]T  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll \N|}V.r  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS P^Og(F8;  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False J<"Z6 '0v  
    DoEvents M/F <W!  
u#u/uS"  
    Options.Pagination = True Y/m-EL  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." O:,Gmft+  
    DoEvents O['[_1n_u]  
    ActiveDocument.Repaginate ]o'dr r  
leSBR,C  
End Sub hqHk,#  
qD"~5vtLqQ  
cRag0.[  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: y~t e!C  
3WGOftLzt  
用VBA控制WORD自己修订学生毕业文的格式。 (yT&&_zY4  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? 3$_ - 0>  
X,8Zn06M  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

3/s u1M[  
6k1_dRu  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 Sna s:#B!  
第6车皮 g6q67m<h  

x#tP)5n?s*  
5'"9)#Ve  
第9车皮 _ 3jY,*  
y]%Io]!d  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 ]`2=<n;=  
q{W@J0U  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 {/x["2a1  
4$+9Wv  
Main2.bas g $\Z-!(  
RfMrGC^?  
Attribute VB_Name = "SubMain" RQZ| :SvV  
Option Explicit [4qx+y pT  
=?} t7}#  
'采集文件与临时文件 "`Q.z~  
Public Const TmpFile As String = "d:\30-0600.dat"  ;Q;u^T`  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 rH9wRY(  
j#TtY|Po  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long "YUyM5X  
Public hBCFile As Long  '记录采集参数的文件 94umk*ib  
Public Const TmpBMP As String = "d:\1.bmp" z@nJ-*'U8  
Public hTmpFile As Long (1r.AG`g  
fXPD^}?Ux4  
tkFGGc}w\  
'采集窗口参数常量 ab1qcQ<  
Public Const FrameH As Long = 280& 0{/P1  
Public Const FrameW As Long = 768& F]hKi`@  
Public Const pFrameSize As Long = FrameW * FrameH e>Vr#a4  
pr2b<(Pm  
'标志区范围,用于识别车辆 \# .@*?fk  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X TS9=A1J#  
Public Const mkW As Integer = 28  '识别标志立柱宽度 38wt=0 br  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) 3%<Uq%pJ  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) *;~*S4/P   
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 6]%79?'A  
'车缝检测位置常数 '[ZRWwhr  
Public Const sSize As Long = 32& LV'@JFT-  
Public Const sPos As Long = 310& QPf#y7_@u  
Public Const sPosL As Long = 200& ?G[<~J3-E  
Public Const sPosR As Long = 500& X`dd"8%  
'车缝检测框位置 rRN7H L+b  
Public Slice(1 To sSize, 1 To FrameH) As Byte \(PC#H%  
Public SliceL(1 To sSize, 1 To FrameH) As Byte XCNfogl  
Public SliceR(1 To sSize, 1 To FrameH) As Byte 'Jb6CR n  
Public avSL As Integer, avSLR As Integer, avSLL As Integer Xj/U~  
Nj2f?',;U  
%=:*yf>}  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 BTXS+mvl  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 qYHAXc}$  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 m]yt6b4  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long &^C <J  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte kMGK 8y  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 NzmVQ-4  
OIK14D:  
s }]qlg  
v(v Lk\K7  
'一次连续采集的帧数 ps#+i  
Public tFrames As Long .!ThqYo  
P< +5So0  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 'sCj\N  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 }nDKSC/[V!  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize  q$$:<*Uy  
%rpJZ t  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte c$)Y$@D  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte KLI(Rve24  
Public pWorkSpace(1 To FrameW * FrameH) As Long X]J]7\4tF\  
Public Const pBufferSize As Long = FrameW * FrameH * 2 etX &o5A  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 h)EHaaf  
`.f {V  
Public hBoard As Long   '采集卡标识 J`T1 88  
Public mBufferAddr As Long  '缓存地址 4 7R4gs#W  
Public BufferSize As Long  '缓存大小(字节) Y"G U"n~  
Public iCurrentCard As Long =_%i5]89P  
Public CapStatus As Long }s_'q~R  
Public iFrames As Long Th&* d;  
Public currentBr As Byte, currentContr As Byte IR(6  
=)Cq jp  
Public hMEM As Long, mStatus As Long 78v4c Q Y  
Public Const hMemSize As Long = pFrameSize * 4 JJHr<|K  
Public hMemWork As Long x/NR_~Rnk  
Public Const hMemWorkSize As Long = pFrameSize * 5  =#N;ZG  
&+? JY|u  
Ex'6 WN~kD  
289@O-  
'串口接收轨道衡数据 4WV'\R+m  
Public WeightFromCom As String fUh7PF%  
Public bReceiveComplete As Boolean FhZ^/= As  
|sN>/89=/  
6N}>@Y5  
Public Type GrayBMPHeader x.rOP_rs  
  Tag As Integer +~O 0e-d  
  FileLength As Long    '文件大小 -jc8ku3*  
  Reserve1 As Long 5cbtMNP  
  DataOffset As Long    '图像数据偏移量 $]4>;gTL'  
  BMPHeaderSize As Long  '文件头长  >:whNp  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… olNgtSX  
                        'the following sizes are possible: 3:Aw.-,i\  
                        '28h - windows 3.1x, 95, nt, … o2 =UUD&  
                        '0ch - os/2 1.x OW (45  
                        'f0h - os/2 2.x 3s iWq9 .  
@V/Lqia  
  ImageWidth As Long           '图像宽(像素数) ew(CfW2  
  ImageHeight As Long          '图像高(像素数) >E;-asD  
  PlaneNumber As Integer  '图像层数 -c-#1_X5  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap ?dJ-g~  
                                        '4 - 16 color bitmap ;P9P2&c8c  
                                        '8 - 256 color bitmap j rX .e  
                                        '16 - 16bit (high color) bitmap :` >|N|i  
                                        '24 - 24bit (true color) bitmap \ltA&}!  
                                        '32 - 32bit (true color) bitmap W\s ]qsLS  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) &Q>)3]|p  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) {{b&l!  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) mE3^5}[>  
                                    '3 - bitfields (also identified by bi_bitfields) 4\)"Ih  
  IMAGESIZE As Long  '图像数据字节数 8}/v[8p  
  hResolution  As Long  '水平分辩率  像素数/米 \{F{yq(  
  vResolution  As Long  '垂直分辩率 5T?esF<  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 Y6T1_XG  
  ImportantColors As Long G.2ij%Zz  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 9$&+0  
End Type j9zK=eG  
xtef18i>  
,wJ#0?  
]Mu + DZ  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader ~7$E\w6  
Public sRECT As RECT *B 7+rd  
;[*jLi,uc  
/5^"n4/M  
Public conn As ADODB.Connection jd9GueV*(  
Public rsTrain As ADODB.Recordset jseyT#2  
Public rsOperater As ADODB.Recordset l0Myem v?z  
Public rsGoods As ADODB.Recordset +u1meh3u  
Public rsGood2 As ADODB.Recordset 3V]B|^S  
Public rsSender As ADODB.Recordset :3k&[W*  
Public rsReceover As ADODB.Recordset ,f`435R  
Public rsTrainTMP As ADODB.Recordset c+l1#[Dnc  
t?NB#/#%x  
ITj0u&H:  
'打开采集卡 (VYY-%N`  
'设置参数 a+$WlG/x  
'设置为实时单帧采集到缓存方式 \%nFCK0  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 !xs. [&u8  
x0^O?UR  
+*2wGAT  
Sub Main() | ,bCYK  
  Dim i As Integer, status As Long i{8T 8  
     jk-hIl&  
   InitBMPinfo s; 'XX}Y  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 4q"x|}a  
    BMPHeader.Tag = &H4D42 ^h+,Kn0@  
    BMPHeader.ImageWidth = FrameW 6"^Y n.  
    BMPHeader.ImageHeight = FrameH F+A"-k_\T#  
    BMPHeader.BMPHeaderSize = &H28 OhmKjY/}  
    BMPHeader.PlaneNumber = 1 t+'|&b][Qi  
    BMPHeader.bpp = 8 V[f-Nj Kf  
    BMPHeader.Compression = 0 ?CB*MWjd  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 G% wVQ|1  
    BMPHeader.vResolution = &H1274  lv_|ws  
    BMPHeader.ColorsinBMP = 256 F|K=].  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP %Z@+K_X9x  
    BMPHeader.DataOffset = Len(BMPHeader) sY4sq5'!  
    For i = 0 To 255 e0O2 >w  
      BMPHeader.Pallate(i) = RGB(i, i, i) h^F^|WT$  
    Next i b#U nE  
    BMPHeader.IMAGESIZE = FrameH * FrameW WvG0hts=[  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE v)|[=  
^,L vQW4  
D}|PBR  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) l[=7<F  
     RZm}%6##ZC  
    BMP1.ImageWidth = FrameW `UFRv   
    BMP1.ImageHeight = FrameH * 2 (Dr g  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight _3UH"9g{  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE 3$Ew55  
v?zA86d_  
  '确定标志位置,为pilarX, pilarY确定初始值 +Hz});ix<  
   PilarW = mkW ^06f\7A  
   PilarH = mkH  '此两项为固定值 !w['@x.  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) 3F'{JP  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 H`/Q hE  
   QUL^]6 $  
   L8K= Q  
  '连续采集记录文件 ^6!C":f  
  ' 建立一个缓冲区为页对齐方式的文件 %} WSw~X  
  If Dir(TmpFile) <> "" Then /\L|F?+@  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ 2j_YHv$I  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) V5y8VT=I  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项  %Gp%l  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 .Ap-<FB  
  Else Jx ;" @  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ ,1'9l)zP  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) Fw!wSzsk3  
  End If Fy|tKMhnc  
  If hFile = 0 Then u.( WW(/N  
    MsgBox TmpFile & ": File Open Error", vbOKOnly 70,V>=aJ  
    Exit Sub av>c  
  End If r j qX|  
  '采集参数记录文件 %,$Ms?,n`  
hBCFile = FreeFile() C3kxw1*   
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile - lHSojq~H  
   L/1zG/@  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 NvH9?Ek"  
If hMEM = 0 Then 0z) 8i P  
    fStatus = GetLastError (vm &&a@  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ 2Y_ `&  
     & "请向技术人员报告该错误代码。", vbOKOnly '< ]:su+  
    CloseHandle hFile {@Y|"qIN  
    Exit Sub EL!V\J`S_  
End If O$jj&  
6~8 A$:  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) =a>a A Z  
If hMemWork = 0 Then }} cz95  
    fStatus = GetLastError 5Hvg%g-c  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ fUQuEh5_  
     & "请向技术人员报告该错误代码。", vbOKOnly Bw-<xwD  
     '释放已成功分配的内存 r\7F}ZW/  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) y+f@8]  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) \\F^uM7,  
     &6fNPD(|  
    CloseHandle hFile s BP.P7u  
    Exit Sub ok;Yxp>  
End If M<Mr L[*j  
7Iu^ l4=2  
' Test writing GOJ*>GpS  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& ,Y&LlB 2  
     d (Ufj|;  
   '初始化采集卡参数 (Fq|hgOA>M  
   iCurrentCard = -1 yidUtSv=,  
   hBoard = okOpenBoard(iCurrentCard) 6@pP aq6  
   Debug.Print hBoard Az4+([  
   If hBoard = 0 Then 7%?2>t3~  
      ExitGrabber b_= $W  
      End 8hWB TUN  
   End If &7* |rshZ  
   okGetBufferSize hBoard, mBufferAddr, BufferSize hn9'M!*:O  
   If mBufferAddr = 0 Then `>CHE'_  
     MsgBox "缓存不存在!" a1Q|su{H  
     ExitGrabber ;h[p "  
   End If $0WO 4C%M  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) N9LBji;nH  
   Z;kRQ  
   f8`K8Y]4  
   currentBr = 128: currentContr = 128 X|+o4R?  
   '设置视频输入参数 QC7Ceeh]4  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 :uhU<H<,f  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input @y%4BU&>0  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度  L><# I  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 % 1Y!|306  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 6^U8Utx  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 aty"6~  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) g_lj/u]P  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) 5/j7C>  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) P7GuFn/p~2  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 D=}UKd  
   `N$:QWJ  
   '设置采集参数 b%`^KEvwfo  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 utIR\e#:B  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 yl|?+  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 lz>YjK:  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 )N[9r{3  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 zfvMH"1  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 s*`_Ka57]~  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 C Z8Fe$F  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 q$)$?"  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 z-<091,  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 2E~WcB  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 WP)r5;Hv`  
   #<ppiu$  
   om%L>zfB  
   okCloseBoard hBoard oBZ\mk L  
   Sleep 50 AR9D;YfR~  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 y<7C!E#b8  
   yZup4#>8  
   '设置数据传送方式 O@; ;GJ  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 }*.S=M]y $  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 r[xj,eIb  
   yOKpi&! r  
   sRECT.Right = -1   '用于获得当前设置值 +a$'<GvP  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) `"CIy_m  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom 5\RTy}w3x  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 H/8H`9S$  
   sRECT.Left = 0 2NS(;tBB0  
   sRECT.Top = 0 :s8^nEK  
   sRECT.Right = sRECT.Left + FrameW u6o:~=WwM  
   sRECT.Bottom = sRECT.Top + FrameH * 2 aRSGI ja<L  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) r0ml|PX  
   MfNxd 6w  
   sRECT.Right = -1   '检查新设置值 dQUZ11  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) w,hl<=:(FB  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom *_G(*yAe(  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) C!KxY/*Px  
   ~WH4D+  
   If TESTSignal = False Then ^(<Ecdz(  
      'ExitGrabber MD(?Wh  
   End If 2xBIfmR^y  
   -# 0(Jm'  
   nY(>|!  
   "YU<CO;4VV  
   '设为实时采集状态 E6"+\-e  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) l ;"v&?  
   l*^J}oY  
   VO#x+u]/  
   '单帧采集 3IXai)6U  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 g)7~vm2/,  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) O$QtZE61  
   okCaptureTo hBoard, BUFFER, 0, 1 'single qYD$_a  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 USgZ%xk2  
   '   Sleep 20 *1F DK{  
   'Loop [ kI|Thx  
   okGetCaptureStatus hBoard, True 9Q{-4yF9k  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize RTN?[`  
   '写入768*576测试图象 H4%2"w6|!  
   ArrayToBMP TmpBMP e>yPFXSk  
   y/}[S@4uB  
   '打开数据库 v&t~0jX,  
   Set conn = New ADODB.Connection 0k]$ he;h  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ N ]KS\  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ RLBeti>  
      "; Mode=Read|Write" /Y=Cg%+  
   conn.Open tHF -OarUO  
   +ZH-'l  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) =l6aSr  
   frmRecord.Visible = True ,(d\!T/]'  
   frmQuery.Visible = True 32y GIRV  
   Load frmReceiveFromComm oNW.-gNT  
   p,_,o3@~  
   '调试参数 }DH3_M!  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then !|!k9~v!  
     SignalBox.Visible = True vW`Dy8`06  
   End If 0=N,y  
   If InStr(UCase(Command()), "/COMM") > 0 Then a!UQ]prT  
     frmReceiveFromComm.Visible = True L eg)q7n  
   End If &PY~m<F  
a?Q\nu1  
End Sub P2y`d9,Q  
}xZR`xP(  
Sub ExitGrabber() )xJCH9h  
  '关闭数据库 =T_E]>FF9  
  '关闭采集卡 cd_\?7  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) gc~nT/lfK  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) Ze `=n  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) q-7C7q  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) +Sz%2 Q  
  okStopCapture hBoard w>-@h>Ln  
  okCloseBoard hBoard X.~z:W+  
  CloseHandle hFile k'O^HMAn!  
  Close #hBCFile 5%H(AaG*q  
  conn.Close \o-9~C\c*  
  End Swugt"`nN  
End Sub | 'mw r!  
ZJL8"(/R  
Function ArrayToBMP(ByVal File As String) :H9\nU1  
Dim BytesWrite As Long 7Mx F? I  
Q;9-aZ.H  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ MA}~bfB  
  CREATE_ALWAYS, 0&, 0&) X`/3X}<$7  
tK@|sZ>3\  
If hTmpFile = 0 Then yV{&x  
   ArrayToBMP = False B4tC3r  
   Exit Function R _#x  
End If h"~i&T h  
JQ5E;8J>  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 9o)sSaTx=  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& ?'RB)M=Og7  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN zKRt\;PW  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& A0mj!P9  
M%(B6};J  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN @9,=|kxK  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& MNC=r?  
m+66x {M2c  
If BytesWrite < pFrameSize Then }XmrfegF  
  ArrayToBMP = False 0r<?Ve  
End If 'gBns  
g.L~Z1-  
CloseHandle hTmpFile 9;W 2zcN  
^HS;\8Xvb  
End Function \X3Q,\H @  
--S1p0  
Function ArrayToBMP1(ByVal File As String) b2L9%8h  
a1^CpeG~  
Dim BytesWrite As Long x/BtB"e*5  
Uc>kiWW  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ \!O3]k,r  
  CREATE_ALWAYS, 0&, 0&) YUGE>"{  
:/rl \woA>  
If hTmpFile = 0 Then xIt'o(jQH  
   ArrayToBMP1 = False n $Nw/Vm  
   Exit Function 6Jrw PZB  
End If !H)$_d \uj  
VT>TmfN(I  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN Y.}"<{RQ  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& &xhwx>C`K  
&%@e6..Ex  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN 2@TgeV0Y[  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& jl-2)<  
o!6~tO=%  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN u^6@ !M  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& 5OHg% ^  
)FLDCer  
If BytesWrite < pBufferSize Then }j+Af["W?  
  ArrayToBMP1 = False F~bDA~  
End If r4YiXss  
pm2-F]  
CloseHandle hTmpFile DIqM\ ><  
dh9Qo4-{  
End Function %@L[=\ 9  
"|N58%  
'使用该过程建立的文件要求在用后关闭 6XP>qI,AJ  
Public Function ArrayToBMP2(File As String) As Boolean KU]co4]8^s  
w\V1pu^6@  
Dim BytesWrite As Long w!/\dqjv  
e0s*  
ArrayToBMP2 = True T]er_n  
H1bHQB  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ C8{bqmlm@  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) ni2GZ<1j  
$7bLw)7  
If hTmpFile = 0 Then _\/KI /  
   ArrayToBMP2 = False ye<b`bL2.  
   Exit Function %fbV\@jDCX  
End If [zC1LTXe  
1iA0+Ex(j  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN b]0]*<~y  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& (M0"I1g|w  
)2z<5 `  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN lw\+!}8(  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& ;C  ^!T  
h.Y&_= Gc  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN ^"dVz.  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& $ol]G`+  
V8w7U:K  
If BytesWrite < pFrameSize Then -JKl\E  
  ArrayToBMP2 = False 5taR[ukM  
End If rt rPRR\:"  
UWW^g@d4  
CloseHandle hTmpFile h+gaKh=k+  
N F$k~r  
End Function <mrvuWg0  
Ob~7w[n3  
Private Function TESTSignal() As Boolean (6}[y\a+  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long r5RUgt  
saRYd{%+  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) <wH"{ G3?  
a/\SPXQ/9  
If extsign = 1 Then hQeGr 2gMq  
   TESTSignal = True "U"phLX  
Else g 2LY~  
    If extsign = 0 Then /M : 7  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly T\ *#9a  
        TESTSignal = False %`EyG  
        Exit Function ~mF^t7n]  
    End If bUzo>fm_  
End If -(dtAo6  
1 5heLnei  
'测试视频输入类型 tG7F!um(  
'video type aM7e?.rU  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 ^ABt g#  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) Y9 /`w@"v  
If videotype = 1 Then u1}/SlCp  
        '"隔行信号(Interlaced)" n1!}d%:  
Else lGlh/B%  
   If videotype = 0 Then "|Ke/0rGB  
       '"逐行信号(Non-interlaced)" 'fK3L<$z#m  
   Else /IxoS  
     If videotype = -1 Then }s7@0#j@a  
       ' "不支持" C6?({ QB@  
     End If elqm/u  
   End If @Ojbu@A  
End If ]/9@^D}&  
{g C?kp  
'测试垂直扫描线数 +TZVx(Z&A  
'video scanlines B_uhNLd  
scanlines = -1 sH'IA~7   
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) &%UZ"CcA  
    If scanlines = -1 Then 6%a9%Is!O  
        ' "不支持" m >Rdsn~l  
    Else  ?v z[Zi  
        'Trim(Str(ScanLines)) + " 行数/幅" H|Y*TI2vf8  
    End If H9\,;kM)  
`K7UWtp  
'测试帧频 &ir|2"HV  
'video field frequency }WA =  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) sck.2-f"  
    If fieldfrq = -1 Then :' =le*h  
        'lblSignal(8) = "不支持" A'tv[T d8,  
    Else K/YXLR +  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" .9u0WP95  
    End If q90 ~)n?  
End Function |EGC1x]j=  
lC=-1*WH  
Zt"#'1  
Sub PicIdentify() }PXtwp13&u  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 {X\%7Zef+  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 l\/u XP?  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 *@VS^JB  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 \wKnX]xGf  
 erQQ_  
  Dim fPTR As Long, cFrame As Long B:>>D/O  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer U!GfDt  
     s||c#+j"8  
]Sey|/@D  
cFrame = 0 .rw a=IW  
y$}o{VE{x  
h S 9^Bi  
Do While cFrame < tFrames w t6&N{@  
   MpVZ L29)  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) LE|DMz|J  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) BvLC%  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize * lJkk  
   !X5LgMw^;  
  frmRecord.RText.Text = Str(cFrame) Ueu~803~  
  frmRecord.RText.Refresh Al3*? H&  
       SIZ&0V  
  If CheckMark = True Then b}3t8?wG&  
   ArrayToBMP TmpBMP N!//m?}  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) !C;$5(k  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" dHkI9;  
   zcy`8&{A<?  
   DrawSlice y]okOEV0  
   rQ-,mq  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) ?$Dc>  
   'If i = vbNo Then ${5E  
   '  Exit Do TFNB %|  
   'End If }*P?KV (  
   'cFrame = cFrame + 1 G@3Jw[t  
   wpI"kk_@@  
  End If N}ugI`:  
  DoEvents (Fj"<  
  cFrame = cFrame + 1 S^x?<kYQau  
Loop FfX*bqy  
End Sub #Q1 |]  
7<*,O&![|  
YO9ofT  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean ^H!45ph?Jc  
S-[S?&c`  
'如标志区模式反差存在则为TRUE,否则返回FALSE T8BewO=}  
]i/Bq!d l  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long "$nff=]  
CheckMark = True zEKVyZd*{  
   m@y<wk(  
'复制标志区 U+Vb#U7;  
For i = 1 To mkH Lng@'Yr  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW )zydD=,bu  
Next i V/+D ]  
8Sk$o.Gy  
For j = 1 To PilarW * PilarH / 2 C)mR~Ey  
   mTop = mTop + MKpilar(j) -uN M_|MO  
Next j Zg4kO;r08  
NdmwQJ7e"  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH Y6`^E  
   mBot = mBot + MKpilar(j) Ftdx+\O_i&  
Next j P9o=G=i  
c 'rn8Jo}  
mTop = mTop / PilarW / PilarH * 2 z.~jqxA9  
mBot = mBot / PilarW / PilarH * 2 7lx ]`u>  
O|nLIfT  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 tH(g;flO)  
[;Jq=G8&t  
'平均值极值化 ]P96-x  
  For j = 1 To PilarH * PilarW 'si{6t|  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) 48,uO !  
  Next j z+K1[1SM  
   Mt*V-`+\  
mTop = 0: mBot = 0 /?1^&a  
For j = 1 To PilarH * PilarW / 2 [ <j4w  
  mTop = mTop + MKpilar(j) S "/-)_{  
Next j fCbd]X  
P& h]uNu  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW 1'%n?\OK66  
  mBot = mBot + MKpilar(j) ]G~Z'fs<(  
Next j $=5kn>[_Z%  
z~th{4#E ;  
&a+=@Z)kf  
  mTop = mTop / PilarH / PilarW * 3 @Hl+]arUh  
  mBot = mBot / PilarH / PilarW * 3 fizL_`uMqb  
   )~CNh5z 6Y  
oL7F^34;  
If mBot > iWhite And mTop < iBlk Then 25;(`Td 5  
  CheckMark = True *mz-g7  
Else N<O<wtXIj  
  CheckMark = False 3$9V4v@2  
End If cEIs9;  
End Function b"nD5r  
)S`=y-L$  
Sub Capture1Frame() B2Kh~Xd  
   okCaptureTo hBoard, BUFFER, 0, 1 'single }J`cRDO  
   okGetCaptureStatus hBoard, True Dqc2;>  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize 8<{i=V*x4  
End Sub 9 /=+2SZ  
t[/APm-k~>  
T0@$6&b%\z  
Sub CopyMark(iBlk As Integer, iWhite As Integer) ; Kh!OBZFo  
'复制标志区并返回标志区暗区与亮区的亮度平均值 YH&q5W,KX  
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 h!7Lvh`o  
   4>Y*owa4  
'复制标志区 tHEZuoi  
For i = 1 To mkH 92ngSaNC  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW IN,=v+A  
Next i oS~;>]W  
Y[s}?Xu]w#  
For j = 1 To mkW * mkH / 2 (K('@W%\?  
   mTotal = mTotal + MKpilar(j) H LCI  
Next j AYAbq}'Yt  
Ab8Ke|fA  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 '?6j.ms M  
mRy0zN>?  
mTotal = 0 )|GYxG;8C  
For j = mkW * mkH / 2 + 1 To mkW * mkH xKkXr-yb`f  
   mTotal = mTotal + MKpilar(j) 3pe1"maP  
Next j m:c0S8#:  
lV9   
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 3U'l'H,  
vwzElZ{C:v  
'背景亮度 }1 j'   
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW q7pe\~q  
  For i = 1 To 4 * FrameW &YBZuq2?  
    bsTotal = bsTotal + BsLine(i) 7M~/[f7Z{  
  Next i ;?y~ h$  
  bsAV = bsTotal / FrameW / 4 abp\Ih^b  
| 'j,|^<  
End Sub X6j:TF  
iZ4"@G:,  
QabLMq@n`  
Sub AdjIMGbright(Optional bInit As Boolean = True) * ).Y U[i  
x2f=o|]D'  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) DUwms"I,%  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 m%b# B>J,n  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 _Nh`-R%B)  
     p*U!94Pb  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer z 'V$)U$f  
   KV! (   
  '按标准亮度与对比度采集一帧,确定背景亮度 6(>,qt,9S  
  currentContr = 128   '初始对比度 QZ+G2$  
  currentBr = 128   '初始亮度 L^=G(op*  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 R+El/ya:6  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 tNQACM8F;  
  DoEvents +~sqv?8  
  Capture1Frame y[zjs^-vCv  
  '获得图像上缘4行象素 5n[''#D  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW Lf`<4 P  
  CopyMark iBlack, iBright   '图像标志区亮度 RIDl4c [  
  For i = 1 To 4 * FrameW +$F,!rV-s  
    bsTotal = bsTotal + BsLine(i) 1--Ka& H  
  Next i o+Mc%O Z  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 K'y|_XsBB)  
   V{ fG~19  
  Select Case bsAV CaVVlL  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 :%h|i&B  
       currentBr = 150 6Fc*&7Z+  
       currentContr = 60 ltKMvGEF  
     Case 61 To 80   '有可见背景 aMGyV"6(-6  
       currentBr = 140 %/d1x  
       currentContr = 70 vnS8N  
     Case 81 To 100  '有清晰背景 '>HLE)l  
       currentBr = 128 O Q$C#:?  
       currentContr = 80 j.[W] EfL~  
     Case 100 To 150  '有明亮背景 UjMWSPEBy  
       currentBr = 140                '5:30-6:00钟实测数据 &UNQ4-s  
       currentContr = 50 DPkH:X  
     Case 151 To 180 bwa*|{R  
       currentBr = 130 K)^8 :nt  
       currentContr = 60 211V'|a_ >  
     Case 181 To 220  '背景全为白色 H Qnc`2  
       currentBr = 110 '.jYu7   
       currentContr = 130 4(,M&NC  
     Case 221 To 255  '背景全为白色 l  h6N3d  
       currentBr = 100 <`?%Cz AO  
       currentContr = 100 [c XSk  
  End Select MY ^o0N  
   hVl@7B~  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 e-%q!F(Bf  
        Case 100 To 150 /!N=@z)  
          currentBr = currentBr - 10 h^,av^lg^  
        Case 151 To 255 w&e3#p  
          currentBr = currentBr - 20 c& K`t  
  End Select @1i<= r  
   =G !]_d0  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 q7I!wD9Cff  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 7EVB|gTp  
End Sub /.~zk(-&h  
yb>R(y  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) '2UQN7@d  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long c7.M\f P  
     rs,'vV-2\  
    For i = 1 To 8 bz1AmNZG  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& HA[7)T N1E  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& <+<Nsza  
    Next i [NV/*>"j&  
     {v T9I4d8  
    For j = 1 To 1024 clk]JA (  
      L1 = L1 + LeftBK(j, 0) 3#Iq5vT  
      L2 = L2 + LeftBK(j, 1) 57q?:M=^  
      R1 = R1 + RightBK(j, 0) ]^Xj!01~  
      R2 = R2 + RightBK(j, 1) s5V|.R  
    Next j C;%dZ  
    diffL = Abs(L1 - L2) / 1024 qFl|q0\ A  
    diffR = Abs(R1 - R2) / 1024 a}iP +#;  
End Sub x[u6_6=q9  
/ <%EKu5  
Function CheckSlice() As Boolean C{+JrHV%h  
  CopySlice avSL, avSLR, avSLL w"W;PdH)  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then $R+rB;=a!  
    CheckSlice = True YI`BA`BQ8  
  Else d%RH]j4  
    CheckSlice = False .Hk.'>YR  
  End If [7NO !^  
End Function #$]8WSl  
4a W[`  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) /,~g"y.;,  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long Xtloyph  
  For i = 1 To FrameH dK ;ebg9|  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize ~SmFDg$/m  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize 3d,:,f|h  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize 0{I-x^FI  
  Next i a!f71k r  
  For i = 1 To FrameH /x4L,UJ= P  
    For j = 1 To sSize ]re}E B\Rs  
       total = total + Slice(j, i) yYP>3]z  
       totalL = totalL + SliceL(j, i) Y/?z8g'p  
       totalR = totalR + SliceR(j, i) +(W7hK4ip  
    Next j V(g5Gn?  
  Next i 0g~Cd p  
  avSL = total / FrameH / sSize ] g8z@r"b  
  avSLR = totalR / FrameH / sSize drvrj~o:  
  avSLL = totalL / FrameH / sSize MTq/  
End Sub qz . l  
5" (FilM  
Sub DrawSlice() l%p,m [  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B }0f~hL24  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B suYbD!`(  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B EB@rIvUi,  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) 6G}4KGQc  
End Sub ZAn9A>5_  
Sub DrawMark(pic As Control) 3sW!ya-VZ  
   Dim i As Long, j As Long .&`apQD}  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B $sUn'62JlU  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B 4TYtgP1  
   For i = 1 To PilarH jp1e3 Cg  
     For j = 1 To PilarW a8gOb6qF/H  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) ,6o tm  
     Next j Z$B%V t  
   Next i ru~!;xT  
End Sub y7R=zkd C9  
=LgMG^@mu  
Function avIMG() As Integer \cf'Hj}  
  Dim i As Long, j As Long, totalIMG As Long @yC3a)=$L  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize &aa3BgxyE  
  For i = 1 To pFrameSize +zXcTT[V  
    totalIMG = totalIMG + pBuffer(i) i29a1nD4Hm  
  Next i awjAv8tPO!  
  avIMG = totalIMG / pFrameSize i r'C(zD=  
End Function >&k`NXS|V  
r8!pk~R5]  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer cmAdQ)(Kzd  
  Dim i As Long, j As Long, totalIMG As Long KXpbee  
  For i = 1 To FrameH fn.;C  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth '=eVem=  
  Next i TKiYEh  
  For i = 1 To FrameH * barWidth $~VIx% h  
    totalIMG = totalIMG + pBuffer(i) n&DBMU  
  Next i [_}8Vv&6  
  avRegion = totalIMG / pFrameSize P,(_y8  
End Function `U|zNizO  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 )]4=anJu@|  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 F S$8F  
ReL+V  
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 =BJe}AV  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long c-!3wvt)  
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 Koj9]2<0  
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 MmePhHf  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long <M}O&?N 8x  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 K4+|K:e  
Hs_7oy|P  
g#Ta03\  
Private Const GENERIC_READ = &H80000000 ZLdIEBi=  
Private Const GENERIC_WRITE = &H40000000 FjLMN{eH/  
qQ6@43TC  
Private Const FILE_SHARE_READ = &H1 \=`jo$S  
Private Const FILE_SHARE_WRITE = &H2 GV28&!4sS  
Private Const OPEN_EXISTING = 3 #&fu"W+D96  
@1<VvW=  
Private Const INVALID_HANDLE_VALUE = -1 mdo$d-d&  
SqdI($F\:  
'//file seek  rvK%m_r  
Private Const FILE_BEGIN = 0 4tx6h<L#s  
Private Const FILE_CURRENT = 1 7$t['2j3  
Private Const FILE_END = 2 CS5[E-%}T=  
9\T9pjdZE  
Private Const ERROR_SUCCESS = 0& ;>;it5 l=  
_OS,zZ0  
'//device io control <G`1(,g  
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 %o{IQ4Lz#  
;t,v/(/3  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 Azp!;+  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 L6;'V5Mg72  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 n3qRt  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 ^4'!B +}F  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C r*  l c#  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 MZB}O" r  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F '#e T  
{E7STLQ_%  
'//type ^]~!:Ej0  
Private Type LARGE_INTEGER ET 0(/Zz  
    lowpart As Long q_mxZM ->  
    highpart As Long 3-)}.8F  
End Type 25j\p{*  
B@VAXmCaoV  
Private Enum MEDIA_TYPE 6`bR' 0D  
    Unknown g+c%J#F=  
    F5_1Pt2_512 <P6d -+  
    F3_1Pt44_512 AT1{D!b  
    F3_2Pt88_512 N93R(x)%  
    F3_20Pt8_512 xU6dRjYhH9  
    F3_720_512 4 12E7   
    F5_360_512 hE$3l+  
    F5_320_512 ]mUt[Yy:z  
    F5_320_1024 fny6`_O  
    F5_180_512 ; sqxFF@  
    F5_160_512 zK{}   
    RemovableMedia ?r5a*  
    FixedMedia 9_e_Ne`i`?  
End Enum 3(vm'r&5n>  
='_3qn.  
Private Type DISK_GEOMETRY 7zJ2n/`m*  
    Cylinders           As LARGE_INTEGER IN;9p w  
    MediaType           As MEDIA_TYPE `&xdSH  
    TracksPerCylinder   As Long Uj3HAu  
    SectorsPerTrack     As Long !c-MC|  
    BytesPerSector      As Long j]]5&u/l  
End Type qDhZC*"9#D  
pG"h ZB3)  
'//private vars AZA5>Y  
Private hDisk           As Long             'disk handle J#t8xL  
Private lpGeometry      As DISK_GEOMETRY    'disk info Z,81L3#6  
Private lBufferSize     As Long             'the buffer size of read/write :XPat9 3w  
\pTv;(  
Public Function OpenDisk(ByVal FileName As String) As Boolean /=A@O !l  
'// 打开磁盘 rmtCCPF?0  
    hDisk = CreateFile(FileName, _ [?;L  
                        GENERIC_READ Or GENERIC_WRITE, _ ! hEZV&y  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ nZc6 *jiz  
                        ByVal 0&, _ m_BpY9c]5  
                        OPEN_EXISTING, _ 7Kb&BF|Q  
                        0, _ C8)Paop$  
                        0) Aayd3Ph0%  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) 1$6 u  
End Function MpvGF7H  
o@]n<ZYo  
Public Function CloseDisk() As Boolean _x#y   
'//关闭磁盘 bAuiMw7!  
    CloseDisk = CloseHandle(hDisk) 3>73s}3  
End Function Q2* 8c$  
;l `Ufx  
Public Function GetDiskGeometry() As Boolean +7n vy^m  
'//获取磁盘参数 n<<arO"cv  
    Dim dwOutBytes      As Long lN{>.q@V`r  
    Dim bResult         As Boolean 'zT7$ .L  
     p9mGiK4!  
    bResult = DeviceIoControl(hDisk, _ ,:MUf]Ky  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ p=Le oc1  
                                ByVal 0&, 0, _ U5@B7v1  
                                lpGeometry, Len(lpGeometry), _ #o9CC)q5G  
                                dwOutBytes, _ B,%KvL&xMX  
                                ByVal 0&) * LWihal  
     dLwP7#r  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack yf`_?gJ6d  
    GetDiskGeometry = bResult RL/7> YQ  
End Function BI<9xl]a  
D`X<b4e8/  
Public Sub GetDiskInfo(MediaType As Long, _ es\ qnq  
                        Cylinders As Long, _ F M YcZ+4  
                        TracksPerCylinder As Long, _  w}t}Sh  
                        SectorsPerTrack As Long, _ :`"- Jf  
                        BytesPerSector As Long) ?hR0 MnP  
'//返回磁盘的参数 Yl?s^]SFU  
    MediaType = lpGeometry.MediaType NLYf   
    Cylinders = lpGeometry.Cylinders.lowpart 9F6dKPN:  
    TracksPerCylinder = lpGeometry.TracksPerCylinder x!pd50-   
    SectorsPerTrack = lpGeometry.SectorsPerTrack gTB|IcOs  
    BytesPerSector = lpGeometry.BytesPerSector @\xEK5SG  
6c/0OM#  
End Sub N2k{@DY  
5J&Gc;  
Public Property Get BufferSize() As Long z7)$m0',?  
'//返回每次读/写的缓冲大小 $=^}J 6  
    BufferSize = lBufferSize D!Nc&|X^  
End Property fQg^^ZXe"  
x_?K6[G&}  
Eb63O  
Public Function LockVolume() As Boolean 9f5~hBlo  
'// 将卷锁定 b&1hj[`)  
    Dim dwOutBytes  As Long !8W0XUqh+  
    Dim bResult     As Boolean #UI`+2w  
     4gdXO  
    bResult = DeviceIoControl(hDisk, _ \yxGE+~P  
                                FSCTL_LOCK_VOLUME, _ R\#5;W^  
                                ByVal 0&, 0, _ [fb9;,x`  
                                ByVal 0&, 0, _ >r,z^]-  
                                dwOutBytes, _ Gv }  
                                ByVal 0&) c'Z)uquvP  
    LockVolume = bResult OT6Te&  
End Function ^T1caVb|>  
_FS #~z'j  
nmE H/a  
Public Function UnlockVolume() As Boolean yf R0vp<&  
'// 将卷解锁 0/fZDQH  
    Dim dwOutBytes As Long /Dt:4{aTOC  
    Dim bResult As Boolean 7!m<d,]N  
     ]VtP7 Y  
    bResult = DeviceIoControl(hDisk, _ |E||e10wR  
                                FSCTL_UNLOCK_VOLUME, _ DAORfFG74  
                                ByVal 0&, 0, _ Nlwt}7  
                                ByVal 0&, 0, _ tx`^'%GMA  
                                dwOutBytes, _ C#1'kQO  
                                ByVal 0&) ba ,n/yH  
    UnlockVolume = bResult eWD!/yr|  
End Function xy$aFPH!-  
MTgf.  
O*,O]Q  
Public Function DismountVolume() As Boolean D+jvF  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 tI#65ox#  
    Dim dwOutBytes As Long .'2I9P\!  
    Dim bResult As Boolean g/P1lQ)  
     CtD<% v3`  
    bResult = DeviceIoControl(hDisk, _ @KLX,1K  
                                FSCTL_DISMOUNT_VOLUME, _ w T_l>u  
                                ByVal 0&, 0, _ U7f o4y1}  
                                ByVal 0&, 0, _ lb=fS%  
                                dwOutBytes, _ /7,@q?v  
                                ByVal 0&) p-rQ'e  
    DismountVolume = bResult OPqhdqo  
End Function f><V;D#  
sE|8a  
D@[#7:rHL  
Public Function ReadDisk(ByVal Cylinders As Long, _ ;b=7m#5  
                    ByVal Tracks As Long, _ $ kMe8F_  
                    db() As Byte) As Boolean +u\w4byl  
'//按柱面和磁道来读取磁盘数据 EQZ/v gho  
    Dim iPos    As Long erTly2-SJ  
    Dim lRead   As Long 1<lf o^B  
     }NdLd!  
    iPos = Cylinders * Tracks * lBufferSize iS"6)#a72  
     '@\[U0?@K  
    If SeekAbsolute(0, iPos) Then f.oY:3h:  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) )-}<}< oO  
    End If ~ Hj c?*  
End Function M\IdQY-c  
6Rq +=X  
Public Function WriteDisk(ByVal Cylinders As Long, _ ;G"!y<F  
                     ByVal Tracks As Long, _ aYHs35  
                     db() As Byte) As Boolean K>XZrt  
'//按柱面和磁道来写磁盘数据 ?>vkY^/  
    Dim iPos    As Long )qFqf<:yc  
    Dim lRead   As Long 00y(E @~  
     _z.CV<  
    iPos = Cylinders * Tracks * lBufferSize <veypLi"R  
     rd[mC[ r  
    If SeekAbsolute(0, iPos) Then X(DP=C}v9  
        WriteDisk = WriteBytes(lBufferSize, db()) n: {f\  
    End If ~G6xk/+n-m  
End Function `Jj b4]  
Ag2Q!cq  
@$$ J}~{  
'///////////////////////////////////////////////////////////////////////////////////// mYXL  
'//file system hg'eSU$J  
{`J!DFfur  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean 0D  `9  
'//seek file r( wtuD23q  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte oq1wU@n  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) /6\uBy"Xt  
    If LowPos = -1 Then h2:TbQ  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) ^U,C])n  
    Else EKsOj&ZiJ  
        SeekAbsolute = True t0P_$+w.>  
    End If 8+(wAbp  
     1L\r:mx3  
End Function 9Q\B1Q  
5N ;xo??  
N#R8ez`  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean u3 &# UN  
'//read data to array 1 un!  
    Dim RetVal    As Long K!E\v4  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) @j%@Z  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF tO"AeZe%|  
    ReadBytes = Not (RetVal = 0) O]F(vHK\   
     ]<q!pE;t  
End Function HyYJ"54  
zqI|VH  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean I {%( G(  
'//write data from array JPgFTr  
    Dim RetVal As Long ]lE5^<<  
    Dim BytesToWrite As Long ,MHF  
    Dim BytesWritten As Long ;4v`FC>  
     3(.Y>er%U  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) [E2".F3  
     Zx6h%l,%  
    WriteBytes = Not (RetVal = 0) ?A*<Z%}1?  
End Function JV/:QV  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 R7FI{ A  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ ?\X9Ei  
DWORD dwCB; _l,-S Qgj  
LARGE_INTEGER  offset; X~\O]  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); 6bf!v  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); +#X+QG  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ %)&Tr`   
DWORD error = GetLastError(); rO/Sj<0^  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); b!"FM/ %  
return FALSE; o{mVXidE  
} X>]<rEh  
return TRUE; cN\_1  
} %y)hYLOJ  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : ^ $N3.O.  
yv)-QIC3  
介个真的看不懂。 z 5~X3k7  
你说你老啦,喜欢怀旧了,才想起来填坑。 J10&iCr{r*  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 wx2 z9Q  
9wdX#=I  
h]VC<BD6S  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : )c m^;(#pV  
佩服,玩也玩得这么专业! o$}$Z&LK  
zIU6bMMT3u  
e8z?) 4T  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : C!Fi &~  
伍SIR,再次抱拳佩服 >U]KPL[%  
WkPT6d  
0J;Qpi!u2v  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : ao@CPB6N  
引用第19楼伍胥之于06-14-2010 12:33发表的  : Nc?'},  
vr_Z0]4`C9  
F|8;Swb5  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 y'O<*~C(X  
@H}Hjg_>m  
我连一级也没有考过。 iMQ0Sq-%1  
.
U+!&~C^y  
6LabFX@{&  
引用
*dsI>4%m  
矬子里拔将军... }$(\,SzW  
你们那里的俗语是吧? @eq.&{&  
+R;s< pZ^  
我们这里说"矮子里拔长脚"..应该是同一个意思... y!_8m#n S  
|ZOdfr4uW  
有趣....各地有表达意思一样却方式不同的俗语.... A!R'/m'VG  
,}wFQ9*|W  
a`LkP%  
你的文章写的有脸皮,没屁眼的, f5/s+H!  
让看客大为不满... aF>&X-2  
]3 QW\k~  
你等着,,估计你以后接到的午夜凶铃就多了... ieXi6^M$  
 # J   
SEH[6W3  
我到现在也没有接到你的午夜凶铃呢! 0: B%,n UM  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : lR]FQnZ  
每个人的故事对其他人都是故事, @|e we. r  
自己的故事也是其中之一. e&!8UYP  
跳出来看, 6Xbf3So  
不过是众人中的一个人的故事. #L57d  
Np/vPaAk  
所以,接着听故事. zMd><UQP{  
{uJ"%  
女人们有兴趣的就等老伍开个新帖或者跟贴, L$y~\1-  
听他痛说恋爱革命历史.... 6;;2e> e  
ImbA2Gcs  
杂家接着听他自学程序员历史, "/Gw`^t  
高级程序员考了吗? ES8(:5  
oe!4ng[  
_'*(-K5&  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! m)Wq*&,o  
08! _B\  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 +[4y)y`  
d1'= \PYr  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 ?TI]0)  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : \acJ9N  
哦, 打倒忽悠大家的家伙.      8E&}+DR?  
aA-A>z  
#25Z,UU  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : gD10C,{  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 %KHO}gad1  
"[2CV!_  
$R(?@B(  
其实标题没有什么,卡总既然改了就不必再改回了。 hr _ 5D  
w`=_|4wFw  
主要是当初写的时候真是顶着锅盖写的。 ~XN--4%Q  
NAjY,)>'K  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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