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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 Tb] h<S  
|]?7r?=J9v  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : T3-/+4$0v  
<S0gIg`)  
老五,I 服了U。 #O7phjzgD  
3:b5#c?R-  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 2V$YZSw6q  
+V#dJ[,8;.  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean s6I/%R3  
Sqla+L*  
Dim regEX As New RegExp tCu9 D  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 @%6"xnb `  
Oq 95zo  
Dim LastTitle0String As String, LastTitle0No As Long !Eb!y`jK  
Dim LastTitle1String As String, LastTitle1No As Long O{=@c96rl  
Dim LastTitle2String As String, LastTitle2No As Long .y#>mXm>  
Dim LastTitle3String As String, LastTitle3No As Long z>spRl,dr  
Dim LastTitle4String As String, LastTitle4No As Long {.r9l  
Dim LastTitle5String As String, LastTitle5No As Long =Unu>p}2V  
Dim LastTabelString As String, LastTableNo As Long '8|joj>G=  
Dim LastFigureString As String, LastFigureNo As Long =AeOkie  
~8[`( /hj  
Dim strSeperator As String \%.&$z3wz  
fc%C!^7  
Sub ConvertWidth(fTEXT As String, rText As String) uecjR8\e  
        Selection.Find.ClearFormatting Bo/i =/7%  
        Selection.Find.Replacement.ClearFormatting -nB. .q  
        Selection.Find.Wrap = wdFindContinue @u8kNXT;h  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText qnw8#!%I  
        DoEvents 1xU)nXXb  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True [Y6ZcO/-i  
End Sub Qs_]U  
EL9JM}%0v  
Sub ClearDomain() IZZ $p{  
        With Selection.Find "T6s;'k  
            .ClearFormatting ES []A&tf  
            .Replacement.ClearFormatting 7nbaR~ZV  
            .Wrap = wdFindContinue 4n2*2 yTg  
            Me.txtStatus.Text = "清除所有域代码" 1( ]{tF  
            DoEvents 8b+%:eJ  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False {CGk9 g" `  
        End With _(KzjOMt  
End Sub CrX1qyR  
,^qHl+'  
Private Sub cmdCheck_Click() fyv S1_  
    bContinue = True !]P=v`B.  
    Dim NoSeries1(1 To 16) As String sQT<I]e  
    Dim NoSeries2(1 To 16) As String , h.hgyt  
    Dim NoSeries5(1 To 16) As String g"D:zK)  
    Dim NoSeriesRM(1 To 16) As String L>,xG.oG  
    Dim paraTotal As Long, ParaText As String /ASpAl[J  
    Dim ttString As String, ttNo As String 4HyD=6V#  
     (}CA?/  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long  Kuh)3/7  
,v(ikPzd  
    Me.txtStatus.Visible = True 05;J7T<  
    Me.lbParaType.Visible = True l/bZE.GJ  
    Me.cmdCheck.Enabled = False Bv}nG|  
     ,uS}wJAX  
     V_T~5%9Fy  
     0JLQ.%_  
     E1|:t$>Ld  
    Dim ParaType As String, rText As String BU%gXr4Ra  
     )'`@rq!  
    Selection.WholeStory .Kk'N  
    Selection.NoProofing = True 4pFoSs?\  
     #vT~D>zj  
    tm1 = Now a.SxMF  
     \0^Je>-:U  
        ActiveWindow.View.Type = wdNormalView ;vgaFc]  
     <* djtO  
    NoSeries1(1) = "一" ^L's45&_  
    NoSeries1(2) = "二" 2!}rH w  
    NoSeries1(3) = "三" xc$jG?83#  
    NoSeries1(4) = "四" Z]^O=kX 7k  
    NoSeries1(5) = "五" f_ > lz  
    NoSeries1(6) = "六" m?`$NJST  
    NoSeries1(7) = "七" t` zPx#])  
    NoSeries1(8) = "八" R9%"Kxm  
    NoSeries1(9) = "九" _Ns_$_  
    NoSeries1(10) = "十" FdMTc(>  
    NoSeries1(11) = "十一" '6Yx03t  
    NoSeries1(12) = "十二" uq@_DPA7  
    NoSeries1(13) = "十三" l`*R !\  
    NoSeries1(14) = "十四" {7 nz:f  
    NoSeries1(15) = "十五" 7]8apei|  
    NoSeries1(16) = "十六" o>\epQt~/p  
     1zY" Uxp  
    NoSeries2(1) = "㈠" ] U[4r9V  
    NoSeries2(2) = "㈡" ,}$[;$ye  
    NoSeries2(3) = "㈢" Iyt.`z  
    NoSeries2(4) = "㈣" [L>AU; :  
    NoSeries2(5) = "㈤" 2sT\+C&H  
    NoSeries2(6) = "㈥" DbK-3F_  
    NoSeries2(7) = "㈦" ?,*KAGg%  
    NoSeries2(8) = "㈧" 2Xp?O+b#"O  
    NoSeries2(9) = "㈨" 5<|X++y}8)  
    NoSeries2(10) = "㈩" qjLFgsd  
     ?rgtbiSW-  
    NoSeries5(1) = "①" P64< O 5l/  
    NoSeries5(1) = "②" nnMRp7LQ-  
    NoSeries5(3) = "③" 6"jV>CNc@  
    NoSeries5(4) = "④" i8` 0-  
    NoSeries5(5) = "⑤" &+8cI^ kp  
    NoSeries5(6) = "⑥" :Pi="  
    NoSeries5(7) = "⑦" ')j@OO3  
    NoSeries5(8) = "⑧" /??nO Vvt  
    NoSeries5(9) = "⑨" );ZxKGjc4  
    NoSeries5(10) = "⑩" h,P#)^"  
     6ieP` bct  
     K=;oZYNd  
    NoSeriesRM(1) = "I" ,+E"s3NW  
    NoSeriesRM(2) = "II"  x5W. 3*  
    NoSeriesRM(3) = "III" oF(|NS^  
    NoSeriesRM(4) = "IV" o$,e#q)8  
    NoSeriesRM(5) = "V" >6 6v+  
    NoSeriesRM(6) = "VI" rs:a^W5t  
    NoSeriesRM(7) = "VII" l%MIna/Tp  
    NoSeriesRM(8) = "VIII" &, WQr  
    NoSeriesRM(9) = "IX" Bl v @u?  
    NoSeriesRM(10) = "X" Z`kI6  
    NoSeriesRM(11) = "XI" |(rTz!!-  
    NoSeriesRM(12) = "XII" DsGtc<l%  
    NoSeriesRM(13) = "XIII" .T^e8  
    NoSeriesRM(14) = "XIV" Y  kcN-  
    NoSeriesRM(15) = "XV" 7cZ(gdQ/  
    NoSeriesRM(16) = "XVI" CYN|  
      8=j_~&*  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) X h"8uJD  
     $jv/00:&  
    If i = vbNo Then A$ o?_  
        Exit Sub Cb;49;q  
    End If Z66q0wR7  
     ,c[f/sT\  
    If Me.chkSuper.Value Then 4'0rgS  
        Me.txtStatus.Text = "检查修改所有的上标格式" of?'FrU  
     ?h'd\.j{  
        CheckSuperScript Vw b6QIs  
         # ,27,#  
    End If k>72W/L^  
     3X}>_tj  
    If Me.chkStyle.Value Then qX!P:M  
        Me.txtStatus.Text = "设置样式,请稍候...." C(5B/W6  
        DoEvents PkxhR;4  
        CeateOrModifyStyle :HDU \|{^  
    End If nL&[R}@W  
     ^EmI;ks  
     Y%)@)$sK  
     dz yp:\&9  
    ClearDomain x)^t5"F  
         )nA fT0()0  
     @wOX</_g  
     ;TG< $4N  
    If Me.chkLIST.Value Then h$q=NTV  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" OqA#4h4^  
     /FA0(< -}  
        ConvertListToOrdinary ;Fm7!@u^0  
    End If p*" H&xA@  
     e'1}5Ky  
     H6]z98  
    Dim pType As String, trimpTEXT As String [78^:q-/0  
    If Me.chkNum.Value = True Then nn6&`$(Q~  
        Me.txtStatus.Text = "转换全角数字形式为半角" Ce_E S.  
        ConvertWidth "1", "1" j43-YdCJ  
        DoEvents %v 1NDhaXz  
        ConvertWidth "2", "2" 44(l1xEN+  
        DoEvents ,.&y-?  
        ConvertWidth "3", "3" ':_1z5  
        DoEvents j_HwR9^fd,  
        ConvertWidth "4", "4" fkK42*U@r  
        DoEvents w&^_2<a2  
        ConvertWidth "5", "5" 5$L=l  
        DoEvents ".T&nS[z  
        ConvertWidth "6", "6" TClgywL  
        DoEvents ^%k[YJtB=i  
        ConvertWidth "7", "7" <GRrw  
        DoEvents l d/\`s[i  
        ConvertWidth "8", "8" tu0agSpU  
        DoEvents :I^I=A%Pe(  
        ConvertWidth "9", "9" 8!u8ZvbFG  
        DoEvents ,xsFBNCC  
        ConvertWidth "0", "0" `f+l\'.s  
        DoEvents T_b$8GYfCY  
        ConvertWidth "a", "a"  w#\*{EN  
        DoEvents v6`TbIq%  
        ConvertWidth "b", "b" khtYn.eaL  
        DoEvents u}I\!-EX!v  
        ConvertWidth "c", "c" 2';f8JLY  
        DoEvents V.Ki$0>  
        ConvertWidth "d", "d" 'J"m`a8no  
        DoEvents W=@] YI  
        ConvertWidth "e", "e" W4o$J4IX{  
        DoEvents dUL3UY3  
        ConvertWidth "f", "f" b6A]/290x  
        DoEvents k874tD  
        ConvertWidth "g", "g" V50FX }i  
        DoEvents %vFoTu)2  
        ConvertWidth "h", "h" q\a'pp9d  
        DoEvents V?"SrXN>  
        ConvertWidth "i", "i" Kn+m9  
        DoEvents /4PV< [ :_  
        ConvertWidth "j", "j" HCTjFW>C  
        DoEvents Ju.B!)uS#  
        ConvertWidth "k", "k" 0NMekVi  
        DoEvents cq \()uF'c  
        ConvertWidth "l", "l" 6+Wkcr h  
        DoEvents o>}fKg<  
        ConvertWidth "m", "m" @ 80Z@Pj  
        DoEvents Foc) u~  
        ConvertWidth "n", "n" eW^_YG%(  
        ConvertWidth "o", "o" h#!u"'JW  
        ConvertWidth "p", "p" *P}v82C N  
        ConvertWidth "q", "q" O+Qt8,  
        ConvertWidth "r", "r" ffqz :6  
        ConvertWidth "s", "s" E||[(l,b  
        ConvertWidth "t", "t" yYM_  
        ConvertWidth "u", "u" a+Z95~*sZ"  
        ConvertWidth "v", "v" NRgNW1#  
        ConvertWidth "w", "w" ?Wz rv&E2  
        ConvertWidth "x", "x" dwAFJhgh  
        ConvertWidth "y", "y" }tRY,f  
        ConvertWidth "z", "z" *Af:^>mh  
        ConvertWidth "A", "A" 7BDRA},o  
        ConvertWidth "B", "B" 1JXa/f+  
        ConvertWidth "C", "C" TwZASn]o  
        ConvertWidth "D", "D" *iVCHQ~  
        ConvertWidth "E", "E" J}UG{RttI  
        ConvertWidth "F", "F" m}dO\;  
        ConvertWidth "G", "G" <"Cacf g  
        ConvertWidth "H", "H" ;.4A,7w#  
        ConvertWidth "I", "I" V"{+cPBO)  
        ConvertWidth "J", "J" G 0;5I_D/  
        ConvertWidth "K", "K" T,eP&IN  
        ConvertWidth "L", "L" dJ}E,rW}  
        ConvertWidth "M", "M" ypK1 sw  
        ConvertWidth "N", "N" DHlCus=ic  
        ConvertWidth "O", "O" \E3e vU  
        ConvertWidth "P", "P" ow{SsX  
        ConvertWidth "Q", "Q" }^ np  
        ConvertWidth "R", "R" KixS)sG  
        ConvertWidth "S", "S" =Vm"2g,aA  
        ConvertWidth "T", "T" io{uN/!X_J  
        ConvertWidth "U", "U" E Z}c8b  
        ConvertWidth "V", "V" kt*""&R  
        ConvertWidth "W", "W" ni$S@0  
        ConvertWidth "X", "X" b7_uT`<  
        ConvertWidth "Y", "Y" >uN)O-  
        ConvertWidth "Z", "Z" U*s QYt<?g  
        ConvertWidth "^l", "^p" RiX~YL eM  
        ConvertWidth "(", "(" 1JI\e6]I  
        ConvertWidth ")", ")" s]z-d!G  
     !$i*u-%4  
    End If g:sn/Zug]  
|n Fg"W  
    With ActiveDocument z]Dbca1a`  
        Dim tbl As Table P:gN"f6  
        For Each tbl In .Tables `pzXh0}|  
            tbl.Rows.Alignment = wdAlignRowCenter  8~>5k  
            tbl.Range.Font.NameFarEast = "楷体" [j]3='2}G  
            tbl.Range.Font.NameAscii = "Times New Roman" [spJ%AhV  
            tbl.Range.Font.Size = 10.5 v9qgfdBS5  
        Next E8=8OX/{Y  
        Set tbl = Nothing NY`$D}Bi  
    End With #gL$~.1  
     :"4Pr/}rT  
     &>m# "A\^  
    With ActiveDocument 5}uH;E)4  
         8(EK17rE `  
        For i = 1 To .TablesOfContents.Count wtY*{m2  
            .TablesOfContents(i).Delete NlS/PWc6(  
        Next cnR.J  
         =E?!!EIq.  
         <-1(G1v  
         "5,tEP!  
        paraTotal = .Paragraphs.Count ]'2;6%. 4  
        paraCounter = 1 c[~LI<>ic  
         :DlgNR` bq  
        LastTitle0No = 0 }Ra'`;D$  
        LastTitle1No = 0 " tUS>c/  
        LastTitle2No = 0 &(] @L\A  
        LastTitle3No = 0 Uz`K#Bz   
        LastTitle4No = 0 q{?ku!cL  
        LastTableNo = 0 z!r-g(^G  
        LastFigureNo = 0 _*I@ J/  
         ?!:$Z4G  
        Dim Sec As Long 3. kP,  
         @1w9!\7Vt  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) IP]"D"  
        If Sec = 0 Then -! k$ Z  
            Exit Sub 5B lptC  
        End If Q8kdX6NMd&  
         DKG%z~R*  
        k = 0 m6 )sX&  
        Do While (paraCounter < paraTotal) And bContinue Rt[zZv  
            k = k + 1 3k J8Wn  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then u ::2c  
                Exit Do JQhw>H9&  
            End If VQQtxHTC3  
            paraCounter = paraCounter + 1 1UHSt R  
            If k Mod 20 = 0 Then Xo{|m[,  
                Me.lbCounter.Caption = paraCounter 5zqlK-$  
                DoEvents ?x|8"*N  
            End If q@}eYQ=P|e  
        Loop f;u<r?>Z  
         0 =2D 90  
         .1[[Y}  
        Do While (paraCounter < paraTotal) And bContinue 8U5L |Ny.q  
             ,(6U3W*bu  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) RvQl{aL  
            ShapeHeight = 0 q-g3!  
            ShapeWidth = 0 9,4Lb]  
           i8\&J.  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth Sj$XRkbj:  
             cnUYhxE+s  
            Select Case ParaType LyRU2A  
                Case "【】表格内容" H|1owmbD  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" 1,tM  
                Case "章" eco i4f  
                    LastTitle0No = LastTitle0No + 1 9bL`0L  
                    '新一章开始,复位其下属标题编号 s:6p PJL  
                    LastTitle1No = 0 %)Pn<! L  
                    LastTitle2No = 0 j}2,|9ne  
                    LastTitle3No = 0  4|9c+^%^  
                    LastTitle4No = 0 }T}9AQ}|  
                     ~e ,D`Lv  
                    k = Val(ttNo) YM idSfi  
                    If k = 0 Then '非数字编号章节 I'_u4  
                        If ttNo <> NoSeries1(LastTitle0No) Then /WlpRf%  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString = 2 3H/  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText 0 s-IW  
                        End If u7oHqo`  
                    Else {PXN$p:'  
                        If Val(ttNo) <> LastTitle0No Then b0A*zQA_)  
                            rText = "第" & LastTitle0No & ttString SOq{`~,4B  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText *<PQp   
                        End If \m3;<A/3n  
                         uK:?6>H  
                    End If <F=U(WWn9  
                     0<8p G:BQ  
                    '章段落设置 x>?jfN,e  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 hpxqL% r  
                    .Paragraphs(paraCounter).Style = "QLNU章节" ;<JyA3i^V,  
                    .Paragraphs(paraCounter).Range.Select 39|4)1e  
                    Selection.EndKey unit:=wdLine | Vtd !9  
                    tc = Replace(rText, vbCr, "") XQW+6LEQ  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False "QWF&-kAI  
                Case "一级标题" D]H@Sx  
                    LastTitle1No = LastTitle1No + 1 PfaBzi9?f  
                    '新一级标题开始,复位其下属标题编号 * vL2n>HH  
                    LastTitle2No = 0 S+mZ.aFS0z  
                    LastTitle3No = 0 f xWW "B*A  
                    LastTitle4No = 0 |hp_<F9.  
                     _k0 X)N+li  
                    If ttNo <> NoSeries1(LastTitle1No) Then kIb)I(n  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString FY^[?lj  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText )} -,4Iu%  
                    End If z"b}V01F#  
                   (QPfrR=J4  
                     ]"jJ gO^  
                    '一级标题段落设置  格式:一、标题内容 SIBNU3;DL  
                    .Paragraphs(paraCounter).Range.Text = rText 7>Af"1$g  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" n( |~z   
                    .Paragraphs(paraCounter).Range.Select 7gLN7_2  
                    Selection.EndKey unit:=wdLine TV~ <1vj  
                    tc = Replace(rText, vbCr, "") #bqc}h9  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False '.sS"QdN  
                Case "二级标题" (8(7:aE $  
                    LastTitle2No = LastTitle2No + 1 jIq@@8@o  
                    '新二级标题开始,复位其下属标题编号 BM(8+Wj  
                    LastTitle3No = 0 'w?*4H  
                    LastTitle4No = 0 ;^9Ao>(?y  
                     zHI_U\"8D  
                    If ttNo <> NoSeries1(LastTitle2No) Then 5Iv3B|u  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString |a(%a43fC  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText DriJn`vtzq  
                    End If `uO(#au,U  
                     G8w<^z>pTg  
                    '二级标题段落设置 格式:(一)、标题内容 I.[2-~yf  
                    .Paragraphs(paraCounter).Range.Text = rText JMMT886  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" vPm&0,R*y:  
                     S1iF1X(+?X  
                    .Paragraphs(paraCounter).Range.Select %nTgrgS(=  
                    Selection.EndKey unit:=wdLine YceX)  
                    tc = Replace(rText, vbCr, "") q K sI}X~  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False y ~.k-b<{[  
                 /'V(F* g  
                Case "三级标题" {9tKq--@E9  
                    LastTitle3No = LastTitle3No + 1 $*035f  
                    '新三级标题开始,复位其下属标题编号 -R ^OYgF  
                    LastTitle4No = 0 7X h'VOljB  
                     1}moT#  
                    If Val(ttNo) <> LastTitle3No Then ~nQv yM!$  
                            rText = LastTitle3No & ". " & ttString h&$7^P  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText HA?<j|M  
                         "ooq1 0P  
                    End If N3D{t\hg  
                    '三级标题段落设置 格式:1. 标题内容 d-=RS]j;j  
                    .Paragraphs(paraCounter).Range.Text = rText )575JY `6K  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" J YA  
                    .Paragraphs(paraCounter).Range.Select qUH02" z@9  
                    Selection.EndKey unit:=wdLine @a08*"lbp  
                    tc = Replace(rText, vbCr, "") He#5d!cf:M  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False i'GBj,:  
                Case "四级标题" ax]Pa*C}  
                    LastTitle4No = LastTitle4No + 1 W 6_~.m"b  
                     ` D0>L '  
                    If Val(ttNo) <> LastTitle4No Then r#ISIgJXG  
                            rText = "(" & LastTitle4No & "). " & ttString j-e gsKR  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText ,t`u3ykh  
                     i8F^ N=  
                    End If -6URM`y'j  
                    '四级标题段落设置 格式:(1). 标题内容 VJK?"mX  
                    .Paragraphs(paraCounter).Range.Text = rText sD|P*ir  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" u&q RK>wLa  
                    .Paragraphs(paraCounter).Range.Select C@{#OOa  
                    Selection.EndKey unit:=wdLine aZ[ aZU  
                    tc = Replace(rText, vbCr, "") .eg?FB'7  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False N$8do?  
                 *hhPCYOm  
                Case "表格标题" 0b )^#+  
                    LastTableNo = LastTableNo + 1 ~uF%*  
                     DrfOz#a0Uu  
                    If ttNo <> CStr(LastTableNo) Then y4%u< /  
                            rText = "表" & LastTableNo & ". " & ttString ze+_iQ5  
                            ErrMsg.AddItem "表格编号错误:" & ParaText pvCf4pf~  
                   ea"!:cL(g  
                    End If :L~{Q>o  
                     }:5_vH0  
                    '表格名称段落设置 格式:表1. 表格名称 |\yVnk!c  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" ^BDM'  
                    xe = Replace(rText, vbCr, "") wT;3>%Mtr  
                    .Paragraphs(paraCounter).Range.Select F/MzrK\':m  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 Ck71N3~W  
                    Selection.Range.Text = xe RTPxAp+\5  
                    Selection.EndKey %\5 wHT+)  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False 4fK(<2i  
                 *Nv!Kuk  
                Case "表格首行" \7W4)>At-  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" ^6tcB* #A  
                Case "图片标题" -8j<`(M' 5  
                    LastFigureNo = LastFigureNo + 1 0q|.]:][Eo  
                     huMNt6P[  
                    If ttNo <> CStr(LastFigureNo) Then _0~WT  
                            rText = "图" & LastFigureNo & ". " & ttString NQ7 j{dJ?  
                            ErrMsg.AddItem "表格编号错误:" & ParaText _|VWf8?\  
                   T=/GFg'  
                    End If 5_bIc=L1  
                    '图片名称段落设置 格式:图1. 图名称 YL(7l|^!  
                    .Paragraphs(paraCounter).Range.Text = rText ]g#ur@Y%  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" zG\g{cB  
                    .Paragraphs(paraCounter).Range.Select {o2pCH  
                    Selection.EndKey unit:=wdLine Q_ zGs6  
                    xe = Replace(rText, vbCr, "") n|t?MoUP  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False hxIG0d!o  
                Case "正文" /%El0X  
                     '正文名称段落设置 >EVlMt27'  
                    .Paragraphs(paraCounter).Style = "QLNU正文" f L @rv  
               Case "文献条目" j"FX ?|4  
                    With .Paragraphs(paraCounter) (AHZmi V  
                        '.Range.Select q|*}>=NX  
                        'Selection.ClearFormatting <78]OZ] Z  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” Gi7jgv{{  
                        .Style = "QLNU参考文献" + 9vd(c  
                    End With wz!a;]agg  
               Case "图表注解" :lF[k`S T  
                    With .Paragraphs(paraCounter) h5+qP"n!?q  
                        .Range.Font.NameFarEast = "楷体" x$Gu)S  
                        .Range.Font.NameAscii = "Times New Roman" l>l)m-;O  
                        .Range.Font.Size = 9 '小5号字 ]:lqbg[J  
                         c$X0C&m  
                        .Alignment = wdAlignParagraphCenter %9D$N  
                        .LeftIndent = 0 ']nB_x7  
                        .RightIndent = 0 (&n4^tJ+_  
                        .FirstLineIndent = 0 I)wjTTM5  
                        .LineSpacing = 12 64qm  
                        .LineSpacingRule = wdLineSpaceExactly aBo8?VV]8  
                        .LineUnitAfter = 0 ]zGgx07d  
                        .LineUnitBefore = 0 q+A^JjzT  
                        .OutlineLevel = wdOutlineLevelBodyText l[KFK%?  
                        .PageBreakBefore = False oSmv  (O  
                        .RightIndent = 0 BUH~aV  
                        .WordWrap = True "`b"PQ<x  
                        .LineUnitAfter = 0.5 4)'8fi  
                         ?y.q<F)  
                    End With 0((3q'[ <  
                Case Else 7@[3]c<=  
                    '不作处理 "qL4D4  
            End Select =5NM =K  
             4nC`DJ;V  
            '含有inlineshape的段落处理 WM& k  
            If ShapeHeight > 30 Then $ O1w 6\}_  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 JsNqijVC  
            End If (C< ~:Y?%  
             bU`Ih# q  
            If (ShapeWidth + ShapeHeight) > 150 Then ye-o'%{  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" z93HTy9  
            End If ]SNA2?q  
             +f{CfWIKs  
            '段落计数器递 9fk@C/$  
            paraCounter = paraCounter + 1 d3A= (/>D  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter VieX 5  
            Me.txtStatus.Text = ParaText 6`sOhVD  
            DoEvents nWTo$*>W  
        Loop I y?_2m  
    End With #St=%!  
     S@AHI!"h=V  
    msg = "" h, |49~^@"  
     ,@+ 7(W  
    For i = 0 To Me.ErrMsg.ListCount - 1 ,vfi]_PK  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) 8"!Z^_y)  
    Next ,2Y P D4  
     g+5{&YD  
     mL\j^q,Y  
     E)eRi"a46  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg k+X=8()k  
    Me.cmdCheck.Enabled = True %GRD3S  
    Me.txtStatus.Visible = True YkRv~bc1]  
    Me.lbParaType.Visible = False wzX 1!?  
     j@4 yRl ^  
    bContinue = False D`nW9i7  
End Sub UQGOCP_  
txF)R[dZK  
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) 2ckAJcpEb/  
    Dim pTEXT As String UjmBLXz@T  
     BMw_F)hTO  
    pTEXT = ChKRange.Text kF:4 [d  
     4::>Ca^{  
    ParaType = "其它" EN lqoj1  
    TitleString = pTEXT Qr`WPTQr"  
    TitleNo = "N/A" ]LFY2w<  
     !Vtt.j &4  
    shpCounter = ChKRange.InlineShapes.Count C4Pi6.wf  
    If shpCounter <> 0 Then [ emUyF  
        MaxShpHeight = 0: TotalShpWidth = 0 f/spJ<B).4  
        For i = 1 To shpCounter aGK=VN}r  
            k = ChKRange.InlineShapes(i).Height n@pm5f  
            l = ChKRange.InlineShapes(i).Width /*5t@_0fe  
            If k > MaxShpHeight Then ^;J@]&[ ~  
                MaxShpHeight = k .&:GO D  
            End If u{0'" jVJ  
            TotalShpWidth = TotalShpWidth + l 3"2 8=)o  
        Next 7X3<8:%  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then [ vU$zZ<  
            Exit Sub }-3| v<d  
        End If [4)q6N5`f  
    End If ;#np~gL  
     AJ'YkSg  
    '空行  &!I^m  
    If Len(pTEXT) <= 2 Then %w <5 9d6  
        Exit Sub _ pu G?p  
    End If wJ_E\vP  
     wGd4:W  
         }}a<!L,{  
    '是否为表格中的文字 OrX x0Hn  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then "Aw| 7XII  
        ParaType = "表格内容" P;%4Imq3  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) i ! wzID  
        If k = 1 Then ?Ji.bnfK  
            ParaType = "表格首行" liEb(<$a  
        End If nSH A,c  
        Exit Sub j M%qv  
    End If hZ0p /Bdv  
     #"}Z'|X*  
    '例外情况:脚注 l O482l_t  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then LOY+^  
        ParaType = "脚注" >|<8QomD  
        Exit Sub I!(.tu6u6c  
    End If R} nY8zE  
     */gm! :Ym  
    '例外情况:尾注 Dp:u!tdbeg  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then zz ^2/l  
        ParaType = "尾注" 9Y:JA]U&8  
        Exit Sub O.7Q* ^_  
    End If B_FfXFQm<  
     iz'#K?PF_  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then rbP" n)0=  
        ParaType = "页眉页脚" 4:$?u}9[:[  
        Exit Sub #u8|cs!  
    End If j% %l$i~  
     &1hJ?uM01  
     )|>LSKT El  
    With regEX &5&C   
        .Global = True 28l",j)S  
         D#>+]}5@x  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" '}a[9v76  
        If regEX.Test(pTEXT) Then ,BM6s,\  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") ? !H <V@a  
            TitleString = regEX.Replace(pTEXT, "$3") ># FO0R  
            TitleNo = regEX.Replace(pTEXT, "$1") S>~QuCMY  
            ParaType = "章" &FrW(>2  
            Exit Sub ZyE2=w7n  
        End If WNkAI9B  
         Fs q=u-= :  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" k0|*8  
        If regEX.Test(pTEXT) Then g%z?O[CN  
            ParaType = "一级标题" @kR/=EfS  
            regEX.Execute (pTEXT) *u Ynu|UQH  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") =>ooB/  
            TitleString = regEX.Replace(pTEXT, "$3") . e2qa  
            TitleNo = regEX.Replace(pTEXT, "$1") rvT7 5dV0  
            Exit Sub r!eCfV7  
        End If >S /Zd  
         .pNPC|XU  
        '全角或半角括号中的数字 du2q6"  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" 6l|pTyb1  
        If regEX.Test(pTEXT) Then 'T54k  
            ParaType = "二级标题" :[gM 5G  
            regEX.Execute (pTEXT) $M\[^g(q  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") >SJ# r Z  
            TitleString = regEX.Replace(pTEXT, "$5") !ndc <],  
            TitleNo = regEX.Replace(pTEXT, "$2") 1Yt;1k'  
            Exit Sub x{u7#s1|/  
        End If cnAwoTt4  
         L]{ 1"`#  
        '阿拉伯数字  1. 2. 1gp3A  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" {;4AdZk  
        If regEX.Test(pTEXT) Then Qh%(yL!  
            ParaType = "三级标题" ${n=1-SMU  
            regEX.Execute (pTEXT) ,RFcR[ak  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 #pJ^w>YNy  
            TitleString = regEX.Replace(pTEXT, "$3") |;q*Zy(  
            TitleNo = regEX.Replace(pTEXT, "$1") wI + oG  
            Exit Sub 7)zn[4v7qt  
        End If .+XGbs]kCi  
         /ZAS%_as  
        '全角或半角括号中的阿拉伯数字 \m!swYy  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" 1-@.[VI  
        If regEX.Test(pTEXT) Then <wwcPe}  
            ParaType = "四级标题" EZkg0FhkZ  
            regEX.Execute (pTEXT) RYMOLX84  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") kq6K<e4jO  
            TitleString = regEX.Replace(pTEXT, "$5") x1)G!i  
            TitleNo = regEX.Replace(pTEXT, "$2") ARYqX\-e  
            Exit Sub [V`j@dV  
        End If DJ"O`qNV3  
         ^n5[pF}Gw  
        '表格名称 ehEXC  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" 9WQC\/w  
        If regEX.Test(pTEXT) Then 3=9yR* *  
            ParaType = "表格标题" VNx|nP&  
            regEX.Execute (pTEXT) i][7S mN  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) DKL< "#.7  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) 0*^)n&O  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) ;u LD_1%  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换  eWO^n>Y  
            Exit Sub LP bZ.  
        End If se](hu~w  
         _%Ay\4H^\  
        '图片名称 L{$ZL&  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" iqCKVo7:M  
        If regEX.Test(pTEXT) Then ^.Y"<oZSS  
            ParaType = "图片标题" E^S[8 =  
            regEX.Execute (pTEXT) Qg+0(odd  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") wC@5[e$  
            TitleString = regEX.Replace(pTEXT, "$3") B\&;eZY'G  
            TitleNo = regEX.Replace(pTEXT, "$1") T*>n a8W  
            Exit Sub TRG(W^<F  
        End If Sc "J5^  
         zECdj'/  
        '参考文献 M-KjRl  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 Oqzz9+  
        If regEX.Test(pTEXT) Then P/._ tQu6  
            ParaType = "文献条目" v#0R   
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") -ecP@,  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") Xui${UYN  
            Exit Sub 5,!,mor$]  
        End If \RZF q<6>  
         | ]`gps  
        prfx = Left(pTEXT, 2) )5P*O5kQ -  
        If prfx = "注:" Or prfx = "注:" Then +~J ?/  
            ParaType = "图表注解" @L|X('i  
            Exit Sub 0 1[LPN  
        End If c_xtwdkL9  
         'j=7'aX>K  
         &)L2a)  
        ParaType = "正文" ~~ ]/<d  
         }~dXz?{p8  
    End With 07-S%L7Z  
End Sub WAiEINQ^)  
Mn+;3qo{6  
Sub ConvertListToOrdinary() P8.tl"q  
    Dim st As Paragraph VAf~ ,T]Ww  
    With ActiveDocument mg)lr&-b  
        For i = .Paragraphs.Count To 1 Step -1 "|pNS)  
            Set st = .Paragraphs(i) bL 5z%bV  
            lst = st.Range.ListFormat.ListString -}k'a{sj=  
            If lst <> "" Then cOra`7L`  
                st.Range.ListFormat.RemoveNumbers :bMCmY  
                st.Range.InsertBefore lst & " " o[*</A }  
            End If wL,b.]  
        Next 9&5\L  
    End With O4FW/)gq  
    Set st = Nothing ~I6Er6$C^  
End Sub 5,>1rd<B  
~*D)L '`2M  
Private Sub UserForm_Activate() )F 6#n&2  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" ^\ &:'$f+8  
    Me.lbTotal.Font.Bold = True vTYI ez`g  
    Me.txtStatus.Visible = False VY8 p[`  
    Me.cmdCheck.Enabled = True 8Dpf{9Y-E  
Ky`rf}cI>  
End Sub MJ[#Gq\0R  
zcItZP  
[w l:"rm  
Sub CheckSuperScript() b3e:F{n ^  
    Selection.Find.ClearFormatting ZjY_AbD  
    Selection.Find.Replacement.ClearFormatting [6qa"Ie  
    With Selection.Find NLM ]KT  
        .Text = "[【\[[〖](*)[】\]〗]]" HbF.doXK  
        .Replacement.Text = "[\1]" HGmgQ>q@M$  
        .Replacement.Font.Superscript = True -bo2"*|m  
        '.Replacement.Font.Color = wdColorBlue RsU=fe,  
        .Forward = True 1QM*oj:  
        .Wrap = wdFindContinue `pY\Mmgv1  
        .FORMAT = True N)A?*s'v~  
        .MatchCase = False eSXt"t  
        .MatchWholeWord = False E!'H,#"P  
        .MatchByte = False CtVY;eG  
        .MatchAllWordForms = False >L/Rf8j&  
        .MatchSoundsLike = False _#9:cH*  
        .MatchWildcards = True L1*P<Cb  
    End With k%#`{#n i  
    Selection.Find.Execute Replace:=wdReplaceAll 9BB<. p  
End Sub 48M)A  
xbrxh-gV  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) -i|qk`Y  
    bContinue = False \/4ipU.  
    Set regEX = Nothing m` cw:  
End Sub %[4/UD=7  
N]: "3?%  
Sub CeateOrModifyStyle() iC&=-$vu  
' IXt2R~b  
' X hFa9RC  
Dim stl As Style .z+?b8Q\  
     ~u1ox_v`%(  
    Options.Pagination = False 94%gg0azp  
     8Q^yh6z  
    On Error Resume Next [.B)W);  
    For Each stl In ActiveDocument.Styles  Q^/5hA  
        stl.Delete ME~ga,|K  
    Next *w4jET>  
    On Error GoTo 0 `(1em%}  
     S{j|("W"[  
    Set stl = Nothing ~c[} %Ir>  
     0Mt2Rg}  
    DoEvents tA$,4B?  
    On Error Resume Next qie7iE`o  
     NAhV8  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph BQ[1,\>  
     La? q>  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph joDnjz=  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph PaV[{ CD  
     Ld? tVi  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph zfL$z,zgf  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph @Fqh]1t  
     ?*E Y~'I  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph ws tI8">  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph exV6&bdu  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph /ee:GjUkB  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph #(h~l> r  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph S5d:?^PGg  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph 4cL NPl<  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph y|q4d( P.  
     3tI=? E#  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph m_~ p G  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph  #/@U|g  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph &/R@cS6}'  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph k(o[T),_%0  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph AL! ^1hCF  
     @/yRE^c  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph \(.&E`r  
    On Error GoTo 0 $G5m/[KDI  
    DoEvents g^8dDY[%  
     :w(J=0Lt  
    'BaseStyle 0IBVR,q  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False nul?5{z@  
    With ActiveDocument.Styles("BaseStyle").Font JU:!lyd  
        .NameFarEast = "宋体" s W+YfJT  
        .NameAscii = "Times New Roman" lO8.Q"mxo  
        .NameOther = "宋体" SqFya  
        .Size = 10.5 V4qHaG  
        .Bold = wdUndefined $-"AMZ899  
        .Italic = wdUndefined 2.}<VivT  
        .Subscript = wdUndefined I*@\pc}  
        .Subscript = wdUndefined Dqe)8 r  
         Y\BB;"x1  
        .Underline = wdUnderlineNone @8Drhx  
        .UnderlineColor = wdColorAutomatic l9 )iLOj  
        .StrikeThrough = False RGhl` ;  
        .DoubleStrikeThrough = False C=@BkneQ  
         ~j 3B'  
        .Outline = False KM 4w{  
        .Emboss = False E!Hq%L!/  
        .Shadow = False u#%Ig3  
        .Hidden = False _`/0/69  
        .SmallCaps = False F/ 2@%,2n  
        .AllCaps = False a*CP1@O  
        .Color = wdColorAutomatic ~w Dmt  
        .Engrave = False -'JTVfm.  
        .Scaling = 100 f2 _LfbvH  
        .Kerning = 1 +%X_+9bd  
        .Animation = wdAnimationNone z=!$3E ecr  
        .DisableCharacterSpaceGrid = False - t4"BD  
        .EmphasisMark = wdEmphasisMarkNone >OE.6)'Rm  
    End With nFW^^v<  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat x +|Fw d  
        .LeftIndent = 0 <qZXpQ#  
        .RightIndent = 0 SDiZOypS  
        .SpaceBefore = 0 B P"PUl:  
        .SpaceBeforeAuto = False _baqN!N  
        .SpaceAfter = 0 lf0/ 0KH  
        .SpaceAfterAuto = False :7Rs$ -*Uk  
         mLk@&WxG  
        .LineSpacingRule = wdLineSpaceSingle NmST1pMk  
        .Alignment = wdAlignParagraphJustify )(*A1C[  
         {b^naE  
        .WidowControl = False Y_>z"T  
        .KeepWithNext = False y 4,2Xs9,  
        .KeepTogether = False < .$<d  
        .PageBreakBefore = False J[Y A1  
        .NoLineNumber = False =b32E^z,  
         hiaj!&+Q  
        .FirstLineIndent = CentimetersToPoints(0) riZFcVsB  
        .OutlineLevel = wdOutlineLevelBodyText I"Ji_4QV  
        .CharacterUnitLeftIndent = 0 0ang~_  
        .CharacterUnitRightIndent = 0 52m^jT Sx  
        .CharacterUnitFirstLineIndent = 0 ]~8bh*,=  
        .LineUnitBefore = 0 yt>Pf <AI  
        .LineUnitAfter = 0 qh0)~JL4   
        .AutoAdjustRightIndent = True zJI/j _~W  
        .DisableLineHeightGrid = True NUH;GMj,,  
         )&+_T+\  
        .FarEastLineBreakControl = True C-qsyJgZy  
        .WordWrap = True 0-0 )E&2  
        .Hyphenation = False nen6!bw4  
         yr& oJYM  
        .HangingPunctuation = True |/arxb&  
        .HalfWidthPunctuationOnTopOfLine = True % 2BFbaE  
        .AddSpaceBetweenFarEastAndAlpha = True 7;;W{W%  
        .AddSpaceBetweenFarEastAndDigit = True nX5*pTfjL3  
        .BaseLineAlignment = wdBaselineAlignBaseline N ED`GU  
    End With #i ?@S$  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False r{)d?Ho=  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll I.R3?+tZ  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese Yp 6;Y7^  
    ActiveDocument.Styles("BaseStyle").NoProofing = False i0-!!  
     PZNo.0M70  
    '一级标题题样式 )oTEB#J  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") U`F ybP2R~  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" vc6UA%/f  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False k}ps-w6:  
    With ActiveDocument.Styles("QLNU一级标题").Font H; TmG<S  
        .NameFarEast = "黑体" ?*}76u  
        .NameAscii = "Arial Black" @M#2T  
        .NameOther = "黑体" Mn>dI@/gM  
        .Name = "黑体" =d~]*[8  
        .Size = 16              '三号 Qu!\Cx@  
        .Bold = True @EfCNOy  
        .Italic = wdUndefined Sx;zvc  
        .Subscript = wdUndefined {9;~xx To  
        .Superscript = wdUndefined Q[J,j+f<  
    End With }Bc'(2A;,  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat ?MKf=! w  
         "c!s\iuBU  
        .LeftIndent = CentimetersToPoints(0) :m8ED[9b  
        .RightIndent = CentimetersToPoints(0) s%GiM  
        .FirstLineIndent = CentimetersToPoints(0) GOJi/R.{  
         7b+OIZB  
        .LineSpacingRule = wdLineSpaceSingle Vnh +2XiK  
        .Alignment = wdAlignParagraphCenter r4 +w?=`  
         :1_hQeq  
        .WidowControl = True _QvyFKAM  
        .KeepWithNext = True :FG}k Y  
        .KeepTogether = True /T#<g:   
        .OutlineLevel = wdOutlineLevelBodyText Ep5lm zg  
         C>v    
        .LineUnitBefore = 0.5 +D?d)lK  
        .LineUnitAfter = 0.5 (n"  )  
    End With {Hp?rY@  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False <kLY1 EILM  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll [7 <X&Q  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese ?[R G8,B  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True Z;%  
    DoEvents `6~*kCj5  
     hp-< 8Mf  
    '二级 Pdf_{8 r  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") d/Py,  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" W:(:hT6`j9  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False  `Z|s p  
    With ActiveDocument.Styles("QLNU二级标题").Font 7S] h:q%%  
        .NameFarEast = "黑体" 32~Tf,  
        .NameAscii = "Arial Narrow" ^l$(-#'y  
        .NameOther = "黑体" *!Am6\+  
        .Name = "黑体" + A0@# :B  
        .Size = 15        '小三号 {6 #3`  
        .Bold = False 4bAgbx-^  
        .Outline = False 6sP;O,UX  
        .Italic = wdUndefined Z6D4VZVF  
        .Subscript = wdUndefined EyBdL  
        .Superscript = wdUndefined LvWU %?  
    End With KNY<"b  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat =v:_N.Fh-c  
        .LeftIndent = CentimetersToPoints(0) ) V@qH]  
        .RightIndent = CentimetersToPoints(0) QMtt:f]?i  
        .FirstLineIndent = CentimetersToPoints(0) dZ%b|CUb  
         W**=X\"'  
        .LineSpacingRule = wdLineSpaceSingle ljiq+tT  
        .Alignment = wdAlignParagraphLeft =7e8N&-nv  
         Hkg@M?(  
        .WidowControl = True w-B\AK?}  
        .KeepWithNext = True !-N! 8 0  
        .KeepTogether = True &51/Pm2O  
        .PageBreakBefore = False (R6ZoBZ  
        .OutlineLevel = wdOutlineLevelBodyText @;rVB  
         am%qlN<  
        .LineUnitBefore = 0.5 <(f4#B P  
        .LineUnitAfter = 0.5 ]VwAHT&je  
         "VT5WFj  
    End With v~jN,f*  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False _ <>+Dk&  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll H ~ks"D1  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese xR_]^Get  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True +D h=D*  
    DoEvents Ku&(+e  
     ]m4LY.SQ  
    '三级标题样式 FblGFm"P  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ++ dV5  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" bzJKoxU  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False "*7I~.7U(*  
    With ActiveDocument.Styles("QLNU三级标题").Font ~B=\![  
        .NameFarEast = "宋体" s{s0#g  
        .NameAscii = "Times New Roman" UD9h5PgT  
        .NameOther = "黑体" 7PQedZ<\  
        .Name = "黑体" (S2<6Nm8  
        .Size = 14               '四号 N.64aL|1  
        .Bold = False ]ei] ) JI  
        .Outline = False !?l 23(d  
        .Italic = wdUndefined c'G\AbUVjE  
        .Subscript = wdUndefined 50I6:=@\\  
        .Superscript = wdUndefined a@8knJ|  
    End With PU'v o4  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat Ce:R p?  
        .LeftIndent = CentimetersToPoints(0) {;p /V\   
        .RightIndent = CentimetersToPoints(0) F)gL=6h  
        .FirstLineIndent = CentimetersToPoints(0) 66|lQE&n  
         iGhapD  
        .LineSpacingRule = wdLineSpaceSingle 9txZ6/  
        .Alignment = wdAlignParagraphLeft wSAm[.1i  
         R +\y" .  
        .WidowControl = True `Mjm/9+18  
        .KeepWithNext = True R=e`QMq  
        .KeepTogether = True e<p$Op  
        .PageBreakBefore = False 0I#<-9&d-  
        .OutlineLevel = wdOutlineLevelBodyText I?fE=2}9  
         PN.6BJvu  
        .CharacterUnitLeftIndent = 0 8vT:icl  
        .CharacterUnitRightIndent = 0 wz, \zh  
        .CharacterUnitFirstLineIndent = 2 r p @=  
         'R'>`?Nh  
        .LineUnitBefore = 0.5 N$y4>g  
        .LineUnitAfter = 0 #e|eWi>  
    End With )j9FB  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False gIRCJ=e[b  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll wZC'BLD  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese AGv;8'`  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True %kcg#p+tE  
    DoEvents BMdr.0  
     {^\-%3$  
    '四级标题样式 JQtH },T r  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 78.sf{I  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" >|iy= Zn%'  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False ;m5M: Z"  
    With ActiveDocument.Styles("QLNU四级标题").Font JfVay I=  
        .NameFarEast = "宋体" #zy%B  
        .NameAscii = "Times New Roman" mD=?C  
        .NameOther = "宋体" Ee|@l3)  
        .Name = "宋体" $< aBawLZO  
        .Size = 12               '小四号 B}MJ?uvA  
        .Bold = True QqwX Fk  
        .Outline = False =?f}h{8x>  
        .Italic = wdUndefined |SxEJ  
        .Subscript = wdUndefined c^bA]l^a  
        .Superscript = wdUndefined :?p{ga9  
    End With NNfCJ|  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat HhpP}9P;  
         'sA&Pm  
        .LeftIndent = CentimetersToPoints(0) V`H#|8\i  
        .RightIndent = CentimetersToPoints(0) K&X'^|en  
        .FirstLineIndent = CentimetersToPoints(0) Olno9_'  
         JNu- z:J  
        .LineSpacingRule = wdLineSpaceSingle `773& \PK  
        .Alignment = wdAlignParagraphLeft 5sE^MS1  
         m_Rgv.gE^  
        .WidowControl = True !e7vc[N  
        .KeepWithNext = True h)<R#xw  
        .KeepTogether = True .Yf h*  
        .PageBreakBefore = False )R|7> 97  
        .OutlineLevel = wdOutlineLevelBodyText S1+#qs {5a  
         gRFC n6Q  
        .CharacterUnitLeftIndent = 0 [%@zH  
        .CharacterUnitRightIndent = 0 }UO,R~q~  
        .CharacterUnitFirstLineIndent = 2 +p[~hM6?  
         ^s? wnEo;j  
        .LineUnitBefore = 0 <N*>9S,}  
        .LineUnitAfter = 0 ko:I.6-K  
         tS9m8(Hr%Q  
    End With s{IoL_PJP  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False n;=A'g|Q  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll Q0--.Q=:Y  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese bo*q{@Ue  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True x:bYd\ EJ[  
    DoEvents kN^)6  
     9F-k:hD |  
    '正文校式 : 1{j&$  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") h49Q2`  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" ;?[~]"  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False $e_ps~{7$  
    With ActiveDocument.Styles("QLNU正文").Font Q?tV:jogY  
         5{5ABV  
        .NameFarEast = "宋体" e"2QV vB  
        .NameAscii = "Times New Roman" %*gO<U4L]  
        .NameOther = "宋体" e56#Qb@$\  
        .Name = "宋体" w %zw+E  
         j~{2fd<>  
        .Size = 12               '小四号 y{"E) YY  
         U=t'>;(g  
        .Bold = wdUndefined \%C[l  
        .Italic = wdUndefined D# $gdjZ  
        .Subscript = wdUndefined 5^Y/RS i  
        .Superscript = wdUndefined 4tC_W!?$t  
         q1gf9` 0  
        .Outline = False &Ch)SD  
        .Emboss = False K@ i*Nl  
        .Shadow = False };j&)M  
        .Hidden = False N\fT6#5B  
         L!p|RKz9X  
        .DisableCharacterSpaceGrid = True H|Nw) *.  
    End With |-mazvA  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat joA+  
         LBE".+  
        .LeftIndent = CentimetersToPoints(0)  #.><A8J  
        .RightIndent = CentimetersToPoints(0) O`u!P\  
        .FirstLineIndent = CentimetersToPoints(0) $"i690  
          Ocb2XEF  
        .LineSpacingRule = wdLineSpaceExactly K$ &wO.  
        .LineSpacing = 20 BNy"YK$  
        .Alignment = wdAlignParagraphLeft |]q=D1/A  
         ep?0@5D}]  
        .WidowControl = False WAa?$"U2  
        .KeepWithNext = False cDx^}N!  
        .KeepTogether = False ;1dz?'%V  
        .PageBreakBefore = False W<4\4  
        .Hyphenation = False w=`z!x![/  
         ZFON]$Zk  
        .OutlineLevel = wdOutlineLevelBodyText md`ToU  
         vhHMxOZ;  
       :qbG%_PJ  
        .CharacterUnitLeftIndent = 0 93J)9T  
        .CharacterUnitRightIndent = 0 Q*8-d9C  
        .CharacterUnitFirstLineIndent = 2 "uCQm '  
         bxN;"{>Xz  
        .LineUnitBefore = 0 ]R@G5d  
        .LineUnitAfter = 0 A!D:Kc3  
        .SpaceBefore = 0 #SYWAcTkO}  
        .SpaceAfter = 0 `#f=&S?k  
         Q#N+5<]J)#  
        .DisableLineHeightGrid = True 1FJ[_ l  
    End With 6:,^CI|@ t  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False $imx-H`|  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll 9X%Klm 5w  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese d0B+syl&4l  
    ActiveDocument.Styles("QLNU正文").NoProofing = True (*ng$z Z$  
    DoEvents K[[k,W]qb  
     E1C_d'  
    '图片段落样式 [!le 9aNg  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") Wa(S20y F  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle"  e qR#`  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False /4?`F} 7)  
    With ActiveDocument.Styles("QLNU图片段落").Font mig3.is  
        .Size = 12               '小四号 f*],j  
        .Italic = wdUndefined mc'p-orAf  
        .Subscript = wdUndefined 78)^vvn5~  
        .Superscript = wdUndefined kut|A  
    End With q(7D8xG;F  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat Q8x{V_Pot  
         !_) ^bRd  
        .LeftIndent = CentimetersToPoints(0) 2FzS_\":I  
        .RightIndent = CentimetersToPoints(0) ^{s0d+@{  
        .FirstLineIndent = CentimetersToPoints(0) ;N\?]{ L  
         zl\#n:|  
        .LineSpacingRule = wdLineSpaceSingle =dBrmMh  
        .Alignment = wdAlignParagraphCenter KV_Ga8hs  
        .KeepWithNext = True sJoi fl 7  
        .OutlineLevel = wdOutlineLevelBodyText }#8uXA  
         <<6w9wNon  
        .CharacterUnitLeftIndent = 0 t {"iIz_S  
        .CharacterUnitRightIndent = 0 ak>NKK8P  
        .CharacterUnitFirstLineIndent = 0 9ojhI=:  
         hBhkb ~Oky  
        .LineUnitBefore = 0 {9".o,  
        .LineUnitAfter = 0 d mz3O(]$  
    End With yxN!*~BvL  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False G C'%s  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll qfu2}qUX~%  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese }^[@m#  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True >#?: x*[  
    DoEvents Bs?F*,zDJ  
     dLf8w>i`T  
     At(9)6n8  
    '第X章 fO^6q1a  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") jyhzLu  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" .Qt3!ek  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False uw=Ube(  
    With ActiveDocument.Styles("QLNU章节标题").Font W~3tQ!  
        .NameFarEast = "黑体" \NU [DHrMP  
        .NameAscii = "Arial Black" 6t:c]G'J  
        .NameOther = "Arial Black" l* Ei7 |Z  
        .Name = "黑体" cEdJn@ ,  
        .Size = 16 ]5f M?:<l  
        .Bold = True pXv[]v  
        .UnderlineColor = wdColorAutomatic }yw;L(3  
        .Outline = False j\f$r,4  
        .Italic = wdUndefined h<;[P?z  
        .Subscript = wdUndefined 3+3m`%G  
        .Superscript = wdUndefined LFyceFbm  
        .Scaling = 100 5V~p@vCx  
        .DisableCharacterSpaceGrid = True 4P!DrOB  
    End With UwkX[u  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat .4> s2  
        .LineSpacingRule = wdLineSpaceSingle M7R&J'SAY  
        .Alignment = wdAlignParagraphCenter q}$=bR1+  
        .WidowControl = True i[{] LiP  
        .KeepWithNext = True h)8+4?-4 I  
        .KeepTogether = True n-3j$x1Ne  
        .PageBreakBefore = True Ts .Z l{B  
        .OutlineLevel = wdOutlineLevelBodyText #<Nvy9  
         ATM:As:<@  
        .LeftIndent = CentimetersToPoints(0) A.9'pi'[9Q  
        .RightIndent = CentimetersToPoints(0) 4QAIQQS  
        .FirstLineIndent = CentimetersToPoints(0) k_<{j0z.  
         1:zu$|%7  
        .CharacterUnitLeftIndent = 0 [IFRwQ^%_O  
        .CharacterUnitRightIndent = 0 K9Xd? ]a  
        .CharacterUnitFirstLineIndent = 0 L5 9oh  
         a~F@3Pd  
        .LineUnitBefore = 1  IB{ZE/   
        .LineUnitAfter = 0.5 _M[[vXH  
         Ok~{@\  
        .AutoAdjustRightIndent = False ]t)M}^w  
        .DisableLineHeightGrid = True qLi9ym, ]  
        .FarEastLineBreakControl = True -! ,]Y10  
        .WordWrap = True (V.,~t@  
    End With > x ghq  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False 1lyOp   
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll 'S7@+kJ  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese j9ta0~x1*6  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True :IVMTdYf  
    DoEvents 3D{4vMm X  
     |.O!zRm  
    '表格标题 Ln2C#Uf  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") `l2<  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" VhFRh,J(T  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False d[e:}1  
    With ActiveDocument.Styles("QLNU表格标题").Font *}ee"eHs  
        .NameFarEast = "楷体" >B/&V|E  
        .NameAscii = "Arial" xg,]M/J  
        .Name = "楷体" /Jf`x>eiH  
        .Size = 10.5 1{x~iZa  
        .Bold = True ]Uu(OI<)  
        .Underline = wdUnderlineNone R #3Q$   
        .Italic = wdUndefined E[3FdX8  
        .Subscript = wdUndefined xcZ%,7  
        .Superscript = wdUndefined 2r}uE\GN  
        .Color = wdColorAutomatic Dg>'5`&  
    End With NnLhJPh  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat R^yZG{?t  
         FW)^ O%2s  
        .LineSpacingRule = wdLineSpaceSingle YNC0Z'c9  
        .Alignment = wdAlignParagraphCenter 3H'nRK},  
        .KeepWithNext = True ?[ S >&Vq  
        .KeepTogether = True c > mu)('U  
        .OutlineLevel = wdOutlineLevelBodyText AIl$qPKj&  
         OKZam ik~  
        .LeftIndent = CentimetersToPoints(0) q"+ q  
        .RightIndent = CentimetersToPoints(0) J4[x,(iq(  
        .FirstLineIndent = CentimetersToPoints(0) nKjeH@&#  
         p~q_0Pg%  
        .CharacterUnitLeftIndent = 0 u@bOEcxK  
        .CharacterUnitRightIndent = 0 7t-*L}~WA  
        .CharacterUnitFirstLineIndent = 0 ()C^ta_]  
         B2G5h baA  
        .LineUnitBefore = 1 B}q  
        .LineUnitAfter = 0 $]%<r?MUb-  
         AZy~Q9Kc  
    End With adO!Gs9f?  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False NB+$ym  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll 2&gVZz  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese Dl zmAN  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True tC?A so  
    DoEvents rX!+@>4_L  
sh !~T<yy  
    '表格首行 }^pQbFku  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") ! [|vx!p  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False O~#uQm  
    With ActiveDocument.Styles("QLNU表格首行").Font 762o~vY6$  
        .NameFarEast = "楷体" iVKbGgA  
        .NameAscii = "Times New Roman" F8S~wW=\w  
        .Name = "楷体" %<wQ  
        .Size = 9 -.b Io  
        .Bold = True ^%oG8z,L  
        .Underline = wdUnderlineNone g \qL}:  
        .Italic = wdUndefined t?9 ;cS4  
        .Subscript = wdUndefined ^3WIl ]  
        .Superscript = wdUndefined 53`9^|:  
    End With DO1 JPeIi  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat UN*dU  
        .LineSpacingRule = wdLineSpaceSingle }+{*, z  
        .Alignment = wdAlignParagraphCenter s-GleX<  
         F9k I'<Q  
        .LeftIndent = CentimetersToPoints(0) Q.9Ph ~  
        .RightIndent = CentimetersToPoints(0) )iEa2uJ  
        .FirstLineIndent = CentimetersToPoints(0) | or 8d>,  
         T6R7,Vt'v  
         7~kpRa@\P  
        .CharacterUnitLeftIndent = -0.5 wWJQ ~i?  
        .CharacterUnitRightIndent = -0.5 u+z .J4w  
        .CharacterUnitFirstLineIndent = -0.5 7O8V1Tt  
         kJur UDo  
        .LineUnitBefore = 0 CRc!|?  
        .LineUnitAfter = 0 ]Z.<c$  
        .SpaceBefore = 0 hsHVX[<5`  
        .SpaceAfter = 0 vn0cKz@  
         $kkp*3{ot  
    End With us\%BxxI9  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False A]Q1&qM%  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll {{.sEi*  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese O^X[9vr W  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True "#-Nqq  
    DoEvents .*EOVo9S  
' 1P=^  
    '表格内容 {+ C%D'  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") ^A *]&%(h  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False `R=a@DQ  
    With ActiveDocument.Styles("QLNU表格内容").Font 1H&?UP4=(  
        .NameFarEast = "楷体" ;.nP%jD  
        .NameAscii = "Times New Roman" V@#*``M,3  
        .Name = "楷体" -7-Fd_F8  
        .Size = 9 2vqmsl ?  
        .Bold = False >9o,S3  
        .Underline = wdUnderlineNone ]]J#7L#  
        .Italic = wdUndefined oh7#cFZZ0  
        .Subscript = wdUndefined z*M}=`M$  
        .Superscript = wdUndefined CJMaltPp&  
    End With e8d5(e  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat Y7*(_P3/  
        .LineSpacingRule = wdLineSpaceSingle _.d}lK3$2  
        .Alignment = wdAlignParagraphCenter $[M} K  
         O)R7t3t  
        .LeftIndent = CentimetersToPoints(0) GOYn\N;V2  
        .RightIndent = CentimetersToPoints(0) ,bZ"8Z"lss  
        .FirstLineIndent = CentimetersToPoints(0) ( }]37  
         85r)>aCMn  
        .CharacterUnitLeftIndent = -0.5 r@*=|0(OrK  
        .CharacterUnitRightIndent = -0.5 ASzzBR;?_  
        .CharacterUnitFirstLineIndent = -0.5 c&7Do}  
        .LineUnitBefore = 0 CB*`  
        .LineUnitAfter = 0 JCw{ ?^F"  
        .SpaceBefore = 0 ]]p19[4s  
        .SpaceAfter = 0 ,+ns {ppn  
    End With )(h&Q? Ar  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False gd oJ4b  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll 9RG\UbX)^|  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese =bs.2aN&^  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True /h?<MI\7V  
    DoEvents &YT_#M  
F5N>Uqr*oN  
    '图片标题 u<l# xud  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") N?qI pv/a.  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" .k# N7[q=  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False T!u'V'Ei2  
    With ActiveDocument.Styles("QLNU图片标题").Font \LIy:$`8  
        .NameFarEast = "楷体" >]Mq)V9  
        .NameAscii = "Times New Roman" ,} 9f(`  
        .Name = "楷体" S2J#b"Y  
        .Size = 10.5 -"~L2f" ?  
        .Bold = True do:QH.q8)  
        .Underline = wdUnderlineNone G$;>ueM  
        .Italic = wdUndefined 8- dRdQu ]  
        .Subscript = wdUndefined ./"mn3U  
        .Superscript = wdUndefined [c&2i`C  
        .Outline = False Bii6Z@kS  
        .Shadow = False ,U6*kvHS6  
        .Color = wdColorAutomatic E$]a?uA:  
    End With N <KKY"?I'  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat Sk8%(JD7  
        .LineSpacingRule = wdLineSpaceSingle b@=z rhQ  
        .Alignment = wdAlignParagraphCenter y#]}5gJ  
         u^`eKak"l  
        .KeepWithNext = wdUndefined V/aQ*V{  
        .KeepTogether = True Xtci0eS#V  
        .OutlineLevel = wdOutlineLevelBodyText !Oeq G  
         y#b;uDY  
        .LeftIndent = CentimetersToPoints(0) )8pc f`h{  
        .RightIndent = CentimetersToPoints(0) wzD\8_;6N  
        .FirstLineIndent = CentimetersToPoints(0) 3C277nx  
         zc6H o  
        .CharacterUnitLeftIndent = 0 6RK ~Dl&g  
        .CharacterUnitRightIndent = 0 =ud `6 {R  
        .CharacterUnitFirstLineIndent = 0 wqJ* %  
         \e?.h m q  
        .LineUnitBefore = 0 -'80>[}q/  
        .LineUnitAfter = 0 g~~m' ^  
    End With KK:N [x  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False ixOEdQ  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll HA$Y1}  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese q<-%L1kc 1  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True +VSZhg,Np8  
    DoEvents mWNR(()v  
>$2E1HW.  
    '目录项 \Os:6U=X-  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") 0Vf)Rw1%I  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" EKc C+g   
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False WwW"fkv  
    With ActiveDocument.Styles("QLNU目录项").Font ^Vag1 (hdq  
        .NameFarEast = "黑体" "Jb3&qdU  
        .NameAscii = "Times New Roman" |.1qy,|!X  
        .NameOther = "Times New Roman" 6 0`+ 9(^  
        .Name = "黑体" E9^(0\Z I  
        .Size = 10.5 V3## B}2[Y  
        .Bold = False e Wc_N  
        .Italic = wdUndefined .| T2\M  
        .Underline = wdUnderlineNone }C=Quy%Z<  
        .Color = wdColorAutomatic j h; 9 [  
        .Superscript = wdUndefined 'eqiY Y |  
        .Subscript = wdUndefined `Jn,IDq  
    End With ,+~2&>wj  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat g93I+  
         0;}Aj8Fle  
        .LineSpacingRule = wdLineSpaceSingle e&d3SQ%  
        .Alignment = wdAlignParagraphLeft pPoH5CzcK  
         ;5<P|:^  
        .WidowControl = False m])Lw@#9W  
        .KeepWithNext = False ;!'qtw"CB  
        .KeepTogether = False -Bj.hx*  
        .PageBreakBefore = False a*V9_Px$&  
        .NoLineNumber = False ;xL67e%?  
        .OutlineLevel = wdOutlineLevelBodyText $v FrUv  
         p?Z(rCp  
        .LeftIndent = CentimetersToPoints(0) -r!42`S  
        .RightIndent = CentimetersToPoints(0) / >%L[RJ4  
        .FirstLineIndent = CentimetersToPoints(0) &kb\,mQ  
         /Z:N8e  
        .CharacterUnitLeftIndent = 0 Y mq3ty]Pe  
        .CharacterUnitRightIndent = 0 $9G3LgcS  
        .CharacterUnitFirstLineIndent = 0 <#>Oy&E  
         Zotz?j VVr  
        .LineUnitBefore = 0 DYX-5~;!  
        .LineUnitAfter = 0 f:xUPH?+  
    End With YZ0en1ly  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False iDZrK%f l  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll i#k-)N _$  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot !~kEtC  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese 8G Y.){d!l  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True ,aI,2U91  
    DoEvents ]K7`-p~T  
     Lj4&_ b9  
    '参考文献 4 &|C}  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") Z)NrhJC  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" jM*AL X  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False X&s7% ]n +  
    With ActiveDocument.Styles("QLNU参考文献").Font P2On k l  
        .NameFarEast = "宋体" ; VBpp<  
        .NameAscii = "Times New Roman" 4KE)g  
        .NameOther = "Times New Roman" Te+^J8  
        .Name = "Times New Roman" U M@naU  
        .Size = 12 ?gLAWz  
        .Bold = False }f0u5:;Zth  
        .Italic = wdUndefined 9X3yp:>V  
        .Subscript = wdUndefined [G\o+D?2  
        .Superscript = wdUndefined =:4?>2)  
        .Underline = wdUnderlineNone ( ]OFS;%  
        .UnderlineColor = wdColorAutomatic !#.\QU|  
        .Color = wdColorAutomatic TaOOq}8c#  
        .Engrave = False L.kD,'G}>  
    End With _D-5}a"  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat .?f:Nb.O  
         w$b~x4y%  
        .LineSpacingRule = wdLineSpaceExactly J2'K?|,m  
        .LineSpacing = 16 }S,-uggz  
        .Alignment = wdAlignParagraphLeft tR<L`?4  
        .WidowControl = False NS Np  
        .KeepWithNext = False L%f;J/  
        .KeepTogether = False e[ }],W  
        .PageBreakBefore = False }hCaNQ&jH  
        .OutlineLevel = wdOutlineLevelBodyText B3Mx,uXT\  
         sW?B7o?  
        .LeftIndent = CentimetersToPoints(0) pzg&/m&F`  
        .RightIndent = CentimetersToPoints(0) q8/ihA6:  
        .FirstLineIndent = CentimetersToPoints(0) mk\i}U>`  
         @m?{80;uQ  
        .CharacterUnitLeftIndent = 0 z`OkHX*+2|  
        .CharacterUnitRightIndent = 0 d N<5JQql  
        .CharacterUnitFirstLineIndent = -2 H-Pq!9[DB  
         @LcT-3u  
        .LineUnitBefore = 0 +5-]iKh  
        .LineUnitAfter = 0 9Fk4|+OJ  
        .SpaceBefore = 0 [yC"el6PM  
        .SpaceAfter = 0 Yc d3QRB  
         [7RheXO <  
    End With U%q:^S%#eG  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False QhCY}Q?X  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll \BUqDd!  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS bK<}0Ja[  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True C%]."R cMC  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese FO Sbe]  
    DoEvents uWTN 2jr  
c#  xO<  
    ' QNb>rLj52  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") PRwu  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" a!D*)z Y  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False dnwdFsf  
    With ActiveDocument.Styles("QLNU论文题目").Font 8[M* x3  
        .NameFarEast = "黑体" qC..\{z  
        .NameAscii = "Arial Black" WO@H*  
        .NameOther = "Arial Black" *2=W5LaK.  
        .Name = "Arial Black" =5Wp&SM6  
        .Size = 16 [^M|lf   
        .Bold = False : c=v}  
        .Italic = wdUndefined 2A>C+Y[7\  
        .Superscript = wdUndefined Z:|9N/>T  
        .Subscript = wdUndefined /~*Cp9F"]  
        .Underline = wdUnderlineNone {V0>iN:~S  
        .UnderlineColor = wdColorAutomatic SF^x=[ir  
        .Color = wdColorAutomatic .uKx>YB}  
n8$=f'Hgb  
    End With odpUM@OAW  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat x{Sd P$  
        .LineSpacingRule = wdLineSpaceSingle k-Fdj5/  
        .Alignment = wdAlignParagraphCenter 2h<U  
        .WidowControl = True gD6tHg>_  
        .KeepWithNext = True {y b D  
        .KeepTogether = True U. (Tl>K|0  
        .PageBreakBefore = True <5I1DF[  
        .NoLineNumber = False Mn@$;\:  
        .OutlineLevel = wdOutlineLevelBodyText UWw}!1  
         tOM(U-7Z&  
        .LeftIndent = CentimetersToPoints(0) <BPRV> 0X  
        .RightIndent = CentimetersToPoints(0) H} 6CKP}  
        .FirstLineIndent = CentimetersToPoints(0) yb?{LL-uy  
         Oqmg;\pm  
        .CharacterUnitLeftIndent = 0 waCboK'  
        .CharacterUnitRightIndent = 0 a.DX%C /5  
        .CharacterUnitFirstLineIndent = 0 zP&q7 t;>  
         f^?uY8<  
        .LineUnitBefore = 1 i b]vX-  
        .LineUnitAfter = 1 um[! |g/  
         s^cc@C  
        .BaseLineAlignment = wdBaselineAlignAuto \TUE<<?1s  
    End With Yx ),6C3  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False 2e.N"eLNt  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll f>z`i\1oO  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS GRIa8>  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True U` hfvTi  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese { 5-zyE  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True \?&A u  
    DoEvents qg4fR' i  
     UiIF6-ZZ!  
    '中文摘要 ~ezCu_  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") + T2HE\  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" /$:U$JVb?l  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False sT`^ljp4  
    With ActiveDocument.Styles("QLNU中文摘要").Font Sdx Y>;  
        .NameFarEast = "宋体" AK*N  
        .NameAscii = "Times New Roman" %$TEDr!  
        .NameOther = "Times New Roman" LwOJ |jA(,  
        .Name = "Times New Roman" |s f*hlrJ  
        .Size = 12 'gDe3@ci!  
        .Bold = wdUndefined i3PKqlp.  
        .Superscript = wdUndefined 4P%m>[   
        .Subscript = wdUndefined 5V@&o`!=h  
        .Italic = wdUndefined VFSz-<L  
        .Underline = wdUnderlineNone Qn.[{rw  
        .UnderlineColor = wdColorAutomatic e\9g->DUs  
        .Color = wdColorAutomatic $O9Xx  
    End With jV^C19  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat ^=0 $  
        .LineSpacingRule = wdLineSpaceExactly ~@Kf2dHes  
        .LineSpacing = 20 A,BEKjR~J  
        .Alignment = wdAlignParagraphLeft 6IP$n($2  
         ru{f]|  
        .WidowControl = False /.P9MSz0G  
        .KeepWithNext = False P'tMu6+)  
        .KeepTogether = True nJT4w|Yx  
        .PageBreakBefore = False G52Z)^  
        .NoLineNumber = False J>%t<xYf4  
        .OutlineLevel = wdOutlineLevelBodyText HabzCH  
         d0 -~| `5  
        .LeftIndent = CentimetersToPoints(0) .oR3Q/|k]  
        .RightIndent = CentimetersToPoints(0) 8bOT*^b$H  
        .FirstLineIndent = CentimetersToPoints(0) 2]2H++  
         (ua q<Cvg  
        .CharacterUnitLeftIndent = 0 :6lwO%=F  
        .CharacterUnitRightIndent = 0 %hINpZMr  
        .CharacterUnitFirstLineIndent = 2 a4&:@`=  
        .LineUnitBefore = 0 sx5r(0Z  
        .LineUnitAfter = 0 w<t,j~ Pr#  
         %!y89x=E  
    End With w^{! U  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False *Hs*,}MS  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll .GCR!V  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS L2fVLK H  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True q8sb  n  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese "- eZZEl(  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True TnA?u (R%  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete I60DUuF  
    DoEvents iYKU[UP?  
     =Ndli>x}1  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ^VI,C|  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" g1 9S  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False `f)(Y1%.  
    With ActiveDocument.Styles("QLNU英文标题").Font }+0z,s~0.  
        .NameFarEast = "黑体" ntGq" o  
        .NameAscii = "Arial Narrow" b/<mRQ{  
        .Name = "Arial Narrow" y94kX:q  
        .Size = 16 ]1sNmi$T  
        .Bold = True a2yE:16o6  
        .Bold = wdUndefined O?ktWHUx  
        .Superscript = wdUndefined ^u)rB<#BR  
        .Subscript = wdUndefined wqy ^8N[K]  
        .Italic = wdUndefined OOB^gf}$'  
         8Kk\*8 <  
        .Underline = wdUnderlineNone >SDp uG&>  
        .UnderlineColor = wdColorAutomatic hCC}d0gf`n  
        .StrikeThrough = False 0E6lmz`O  
        .DoubleStrikeThrough = False XoItV  
    End With ;S JF%@x  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat aFY u}kl  
        .LineSpacingRule = wdLineSpaceSingle VT=K"`EpQ  
        .Alignment = wdAlignParagraphCenter nbmc[!PwG  
        .WidowControl = True [w+Q^\%bN  
        .KeepWithNext = False G{b:i8}l  
        .KeepTogether = False  c+2%rh1  
        .PageBreakBefore = False >]&X ^V%Q#  
        .NoLineNumber = False 7pet Hi  
        .FirstLineIndent = CentimetersToPoints(0) 0@pu@DP~  
        .OutlineLevel = wdOutlineLevelBodyText = .`jjDJ  
         eko]H!Ov(  
        .LeftIndent = CentimetersToPoints(0) A#DR9Eq  
        .RightIndent = CentimetersToPoints(0) t1ze-Ht;  
        .FirstLineIndent = CentimetersToPoints(0) !M;A*:-  
         w`gyE 6A  
        .CharacterUnitLeftIndent = 0 tln1eN((q  
        .CharacterUnitRightIndent = 0 +\`rmI  
        .CharacterUnitFirstLineIndent = 0 #$'FSy#  
         kus}W  J  
        .LineUnitBefore = 1 6t}XJB$+7  
        .LineUnitAfter = 1 |! LnAh  
         _k2w(ew?  
    End With jN/ j\x'  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False 4D"4zp7  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll ssl&5AS  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS HY)ESU !  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True @6&JR<g*t  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese ]sj0~DI*m  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True ;&f1vi4  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete |J3NR`-R  
    DoEvents Rj6|Y"gq9  
!/hsJ9  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") OM:v`<T!z  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" C1QV[bJK  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False kX2d7yQZz  
    With ActiveDocument.Styles("QLNU英文摘要").Font `;F2n2@  
        .NameFarEast = "宋体" ;7rv  
        .NameAscii = "Arial" f z}?*vPW  
        .NameOther = "Arial" 3z[ $4L'.  
        .Name = "Arial" Q$a  
        .Size = 12 'UfeluMd  
        .Bold = wdUndefined  KAc>-c<  
        .Italic = wdUndefined H+l,)Se  
        .Superscript = wdUndefined ?)i1b\4Go  
        .Subscript = wdUndefined "C74  
    End With -BhTkoN)  
     {1~T]5  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat 4# )6.f~  
         s-?fUqA  
        .LineSpacingRule = wdLineSpaceExactly R1%y]]*-P  
        .LineSpacing = 20 [uR/M  
         AyVrk 8G  
        .Alignment = wdAlignParagraphJustify ?CY1]d  
          ( Uk ,  
        .WidowControl = False 'fY9a(Xt.  
        .KeepWithNext = False IR$ (_9z  
        .KeepTogether = False u^4h&fL  
        .PageBreakBefore = False 9B/1*+ M  
        .NoLineNumber = False V'StvU  
         vV^dm)?  
        .OutlineLevel = wdOutlineLevelBodyText 4| Ui?.4=  
         DDw''  
        .LeftIndent = CentimetersToPoints(0) 4%_M27bu[  
        .RightIndent = CentimetersToPoints(0) $1 @,Qor  
        .FirstLineIndent = CentimetersToPoints(0) YD&_^3-XM  
         ? +`x e{k  
        .CharacterUnitLeftIndent = 0 zxKCVRJ  
        .CharacterUnitRightIndent = 0 N 8t=@~]  
        .CharacterUnitFirstLineIndent = 2 l [%lE  
         :"'nK6>  
        .LineUnitBefore = 0 W3JF5*  
        .LineUnitAfter = 1 3?E}t*/  
         0=![fjm  
    End With SSmHEy*r)  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False 97LpY_sU  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll )^/0cQcJ  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS W`L!N&fB  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False ]J@/p:S>  
    DoEvents \ =nrt?  
ycX{NDGs  
    Options.Pagination = True T+CajSV  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." o""~jc~  
    DoEvents Vb)zZ^va+  
    ActiveDocument.Repaginate G]*|H0j  
WzlC*iv  
End Sub bQQVj?8jp  
;n*J$B  
A6p`ma $L  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: ` }8&E(<  
]~jN^"o_B  
用VBA控制WORD自己修订学生毕业文的格式。 |t6~%6^8  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? AHd-  
f RHKQ(a#  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

^T079=$5  
+5X DF  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 I.V:q!4*  
第6车皮 %1}6q`:w  

j]5WK_~M  
Qn+:/ zA;  
第9车皮 ; O=h$8]  
E X "|H.(  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 ?J!3j{4e  
FxW&8 9G  
Main2.bas %s=Dj2+  
QU5Sy oL[  
Attribute VB_Name = "SubMain" {{{#?~3$7  
Option Explicit jAhP> t:  
iEHh{H(  
'采集文件与临时文件 9lzQ\}  
Public Const TmpFile As String = "d:\30-0600.dat" SoQR#(73HK  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 Y`ihi,s`H  
z@U} ~TvP  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long vmZ"o9-{#X  
Public hBCFile As Long  '记录采集参数的文件 Z~u9VYi!  
Public Const TmpBMP As String = "d:\1.bmp" l54 m22pfv  
Public hTmpFile As Long dt,3"J  
dl|gG9u4Q  
)u} Q:`9  
'采集窗口参数常量 M {a #  
Public Const FrameH As Long = 280& x\\7G^$<h  
Public Const FrameW As Long = 768& :E_a 0!'  
Public Const pFrameSize As Long = FrameW * FrameH 7{M>!} rY  
LR&_2e^[  
'标志区范围,用于识别车辆 /iQ(3F  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X D4Nu8Wr$  
Public Const mkW As Integer = 28  '识别标志立柱宽度 pbBoy+.>  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) ZFn(x*L  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) "lVqU  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 T3,1m= S  
'车缝检测位置常数 -4 Ux,9&  
Public Const sSize As Long = 32& [M+tB"_  
Public Const sPos As Long = 310& :%4imgY`  
Public Const sPosL As Long = 200& AHbZQulC  
Public Const sPosR As Long = 500& I0 Ia6w9  
'车缝检测框位置 ~}ovuf=%  
Public Slice(1 To sSize, 1 To FrameH) As Byte TwahR:T   
Public SliceL(1 To sSize, 1 To FrameH) As Byte uh3) 0.nR  
Public SliceR(1 To sSize, 1 To FrameH) As Byte nb, 2,H  
Public avSL As Integer, avSLR As Integer, avSLL As Integer b>=_*nw9  
`'4)q}bB  
|D#2GeBw1h  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 &"E lm  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 +]wuJSxc  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 {7"0,2 Hb?  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long '\7G@g?UZ  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte <M+R\SH-  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 yI;"9G  
+pmu2}E.3  
!!,0'c  
[0@`wZ  
'一次连续采集的帧数 zr_yO`{  
Public tFrames As Long \=e8%.#@J  
!DXNo(:r  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 b]fzRdhl  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 R= 5 **  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize ql{_%x?  
#/-_1H  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte X9=N%GY[  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte n=sXSxl  
Public pWorkSpace(1 To FrameW * FrameH) As Long X@wm1{!  
Public Const pBufferSize As Long = FrameW * FrameH * 2 }VCI=?-  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 a \5FAkI  
%V_-%/3Z  
Public hBoard As Long   '采集卡标识 6[ga$nF?  
Public mBufferAddr As Long  '缓存地址 FY'dJY3O  
Public BufferSize As Long  '缓存大小(字节) u?H 2%hD  
Public iCurrentCard As Long 5er@)p_  
Public CapStatus As Long blt'={Z?.x  
Public iFrames As Long ]N)DS+V/  
Public currentBr As Byte, currentContr As Byte x?,9_va]  
z~oDWANP  
Public hMEM As Long, mStatus As Long Z|m`7xeCy  
Public Const hMemSize As Long = pFrameSize * 4 kdrod[S  
Public hMemWork As Long |\9TvN^$`  
Public Const hMemWorkSize As Long = pFrameSize * 5 p .K*UP  
_t>"5s&i  
-*ELLY[  
<=um1P3X  
'串口接收轨道衡数据 ^))RM_ic  
Public WeightFromCom As String G=/k>@Di  
Public bReceiveComplete As Boolean R)8s  
!PUZ WO  
XEH}4;C'{  
Public Type GrayBMPHeader Zj9c9  
  Tag As Integer JAb 6zpP  
  FileLength As Long    '文件大小 uGH?N  
  Reserve1 As Long 7=}F{U  
  DataOffset As Long    '图像数据偏移量 QfpuZEUK  
  BMPHeaderSize As Long  '文件头长 =?Fkn4t  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… lU4}B`#"v  
                        'the following sizes are possible: [0; buVU.  
                        '28h - windows 3.1x, 95, nt, … Y%`SHe7M  
                        '0ch - os/2 1.x ]`o!1(GA  
                        'f0h - os/2 2.x >t+ qe/  
sfD5!Z9#1  
  ImageWidth As Long           '图像宽(像素数) ?A*Kg;IU  
  ImageHeight As Long          '图像高(像素数) ]ya; v '  
  PlaneNumber As Integer  '图像层数 <^R{U&Z@  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap Djt%r<  
                                        '4 - 16 color bitmap /BA{O&Ro^  
                                        '8 - 256 color bitmap e{w>%)rcP  
                                        '16 - 16bit (high color) bitmap ^4Uw8-/9  
                                        '24 - 24bit (true color) bitmap Ty4S~ClO#'  
                                        '32 - 32bit (true color) bitmap /pH(WHT+/H  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) i775:j~zx0  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) \_]En43mg  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) 4vZ4/#(x  
                                    '3 - bitfields (also identified by bi_bitfields) h1D?=M\9  
  IMAGESIZE As Long  '图像数据字节数 ~2 *9 {  
  hResolution  As Long  '水平分辩率  像素数/米 `#s#it'y  
  vResolution  As Long  '垂直分辩率 #KpY6M-H  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100  #@.-B,]  
  ImportantColors As Long p.JXS n  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 ^_5| BT@  
End Type qa'gM@]  
J >0b1  
n{5NNV6  
>4i>C  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader :py\ |  
Public sRECT As RECT 4mYCSu14:`  
IVvtX}  
|CD"*[j]  
Public conn As ADODB.Connection s|yVAt|=  
Public rsTrain As ADODB.Recordset $K}DB N; 4  
Public rsOperater As ADODB.Recordset _k66Mkd#b  
Public rsGoods As ADODB.Recordset (c\hy53dP  
Public rsGood2 As ADODB.Recordset " {de k  
Public rsSender As ADODB.Recordset rxZi8w>}  
Public rsReceover As ADODB.Recordset D)b}f`  
Public rsTrainTMP As ADODB.Recordset QV|>4^1D  
@E9" Zv-$  
db72W x0>  
'打开采集卡 mqtg[~dNc  
'设置参数 5p"BD'^:  
'设置为实时单帧采集到缓存方式 0HeD{TH\  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 %/9;ZV  
hlJpElYf  
zd %rs~*c  
Sub Main() \}*k)$r  
  Dim i As Integer, status As Long -6~'cm  
     e79KbLV  
   InitBMPinfo wEft4 o  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 $hrIO+  
    BMPHeader.Tag = &H4D42 HM[klH]s=  
    BMPHeader.ImageWidth = FrameW Jl<ns,Zg  
    BMPHeader.ImageHeight = FrameH {<$b Aj  
    BMPHeader.BMPHeaderSize = &H28 ~W0(1# i  
    BMPHeader.PlaneNumber = 1 /%rq hHs  
    BMPHeader.bpp = 8 aE VsU|  
    BMPHeader.Compression = 0 0DPxW8Y-`  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 vv0Q$ O->  
    BMPHeader.vResolution = &H1274 Bik*b)9y2  
    BMPHeader.ColorsinBMP = 256 u_O# @eOc  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP (#\pQ51  
    BMPHeader.DataOffset = Len(BMPHeader) a>mMvc"  
    For i = 0 To 255 VU.@R,  
      BMPHeader.Pallate(i) = RGB(i, i, i) s<QkDERMX  
    Next i Do7=#|bAM  
    BMPHeader.IMAGESIZE = FrameH * FrameW +=$  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE a|j%n  
uBnoQ~Qd[z  
<v 0*]NiX  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) fRZ KEIyk  
     kQ>^->w  
    BMP1.ImageWidth = FrameW #E7AmmqD%  
    BMP1.ImageHeight = FrameH * 2 q1VH5'p@  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight MHj,<|8Q  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE 9/o vKpY  
n`7f"'/:  
  '确定标志位置,为pilarX, pilarY确定初始值 m"2d$vro"  
   PilarW = mkW `8_z!)  
   PilarH = mkH  '此两项为固定值 {d3<W N  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) .10y0F L4  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 0$.m_0H  
   "j<bA8$Vw  
   L{{CAB!  
  '连续采集记录文件 _s.;eHp,  
  ' 建立一个缓冲区为页对齐方式的文件 +JyUe    
  If Dir(TmpFile) <> "" Then 1eS_ nLFw~  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ m}j:nk  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) T )~9Wac  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 _Q(g(p&  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 V\ 5 L?}  
  Else ]B\H ~Kn  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ H U+ I  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) cW8\d  
  End If BHFY%6J!  
  If hFile = 0 Then B~o-l*  
    MsgBox TmpFile & ": File Open Error", vbOKOnly i{c@S:&@^  
    Exit Sub Cr ? 4Ngw  
  End If m6mwyom.  
  '采集参数记录文件 h11.'Eej`  
hBCFile = FreeFile() \Gp*x\<^Z  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile {MdLX.ycc)  
   ?Ke eHMu  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 ^]C&tG0 !  
If hMEM = 0 Then 6i@\5}m=  
    fStatus = GetLastError csZ c|kDI  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ s,]%dG!  
     & "请向技术人员报告该错误代码。", vbOKOnly xG2F!WeF  
    CloseHandle hFile x*XH]&V  
    Exit Sub n'FwM\  
End If ,zTb<g  
R,2P3lv1v@  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) KDP H6  
If hMemWork = 0 Then v 4/-b4ET  
    fStatus = GetLastError Ddju~510  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ ?DV5y|}pj  
     & "请向技术人员报告该错误代码。", vbOKOnly "`Ge~N[$A  
     '释放已成功分配的内存 Mz]: }qmFA  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) ,FzeOSy'p  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) G[Lpe  
      cgu~  
    CloseHandle hFile tB7}|jC  
    Exit Sub Y]|:?G7l]  
End If  |J5 =J  
'])2k@o@  
' Test writing E6B!+s!]  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& xw^.bz|  
     Lv[OUW#S  
   '初始化采集卡参数 uGN^!NG-0  
   iCurrentCard = -1 Y5q3T`x E  
   hBoard = okOpenBoard(iCurrentCard) | tQiFC  
   Debug.Print hBoard qO1tj'U<  
   If hBoard = 0 Then } R4c  
      ExitGrabber =3 ~/:8o  
      End vxQ8t!-u  
   End If y3u+_KY-  
   okGetBufferSize hBoard, mBufferAddr, BufferSize {LzH&qu  
   If mBufferAddr = 0 Then o]n!(f<(*  
     MsgBox "缓存不存在!" B@YyQ'  
     ExitGrabber y@V_g'  
   End If YGvUwj'2a  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) !9iGg*0dx  
   ^D^JzEy'?C  
   Bf`9V713  
   currentBr = 128: currentContr = 128 ^eYqll /U  
   '设置视频输入参数 %^. %OCX:  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 5~sx:0;  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input UO Ug4  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 |R/.r_x,V?  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 !5@_j,lW(  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 Ck =;1sGh  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 =:,xxqy  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) bizTd  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) T GB_~Bqe  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) ,Tagj`@bHc  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 d%@~mcH>  
   ;TiUpg</_3  
   '设置采集参数 gR^>3n'  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 x`R Tp:#  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 [%A4]QzWh  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 R8ONcG  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 d5 Edu44  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 #EGA#SKoq  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 K0+.q?8D|  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 T\s)le  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 t>)45<PEw  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 tMx}*l|]  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 b,TiMf9},h  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 D#A~Nbc  
   )jrT6x^IB  
   r,P1^uHx  
   okCloseBoard hBoard {Rq1HH  
   Sleep 50 va|*c22;|  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 )D-c]+yt  
   SAV%4  
   '设置数据传送方式 2I1uX&g  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 qm*}U3K  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 zQ6p+R7D  
   0yM[Z':i'{  
   sRECT.Right = -1   '用于获得当前设置值 [k$*4 u >  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) H5cV5E0  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom C#;jYBtT7?  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 c?2MBtnu  
   sRECT.Left = 0 8 e~|.wOL  
   sRECT.Top = 0 abNV4 , M  
   sRECT.Right = sRECT.Left + FrameW h&3YGCl  
   sRECT.Bottom = sRECT.Top + FrameH * 2 ?jQ](i&  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) o\otgyoh  
   9Mp$8-=>7  
   sRECT.Right = -1   '检查新设置值 W=B"Q qL  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) AdZ;j6#  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom x"P);su  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) $*a'84-5G-  
   |WryBzZ>on  
   If TESTSignal = False Then cXMhq<GkAA  
      'ExitGrabber T=a=B(  
   End If nR>r2wMk@  
    6Si-u  
   b IW'c_ ,  
   iZ3W"Vd`b  
   '设为实时采集状态 ma$Prd  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) hG~reVNf  
   s^OO^%b  
   ^vs=f 95  
   '单帧采集 hJz):d>Im  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 Y<"7x#AB!  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) f ).1]~  
   okCaptureTo hBoard, BUFFER, 0, 1 'single 8N%Bn&   
   'Do While okGetCaptureStatus(hBoard, False) <> 0 5v)(8|.M  
   '   Sleep 20 GV6K/T :  
   'Loop ^>y@4qB  
   okGetCaptureStatus hBoard, True "& Dx=Yf  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize pg+[y<B  
   '写入768*576测试图象 V ==z"  
   ArrayToBMP TmpBMP l&YKD,H};  
   o'<^LYSnB  
   '打开数据库 spofLu.  
   Set conn = New ADODB.Connection )&{K~i;:  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ ;!< Znw  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ ~9\WFF/  
      "; Mode=Read|Write" qH,l#I\ CG  
   conn.Open S\6[EQ65  
   u}bf-;R  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) Nr<`Z  
   frmRecord.Visible = True y;?ie]3G  
   frmQuery.Visible = True m4E)qCvy  
   Load frmReceiveFromComm +y2[msBs  
   L(>=BK*  
   '调试参数 3=Ec "  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then ^04Q%,  
     SignalBox.Visible = True 8;Fn7k_Uf  
   End If P|2E2=G  
   If InStr(UCase(Command()), "/COMM") > 0 Then NCqo@vE  
     frmReceiveFromComm.Visible = True u,3,ck!B>@  
   End If j;_c+w!P  
kU-t7'?4  
End Sub :HxA`@Ok  
Z4$cyL'$P  
Sub ExitGrabber() 9vNkZ-1  
  '关闭数据库 7`IpBm<  
  '关闭采集卡 Rv,JU6>i  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) /"H`.LD.?  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ZD#9&q'4<  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) j/T>2|dA&  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) f~OU*P>V@  
  okStopCapture hBoard %n%xR%|  
  okCloseBoard hBoard mV73 \P6K  
  CloseHandle hFile ./j,Z$|  
  Close #hBCFile 2jsw"aHW  
  conn.Close p,pR!qC>  
  End o'~5pS(wq  
End Sub )?M9|u  
X2mREt9  
Function ArrayToBMP(ByVal File As String) g[>\4B9t  
Dim BytesWrite As Long l+][V'zL  
[OTJVpC  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ _qqr5NU  
  CREATE_ALWAYS, 0&, 0&) o`z r>  
[+ *$\  
If hTmpFile = 0 Then WnwhSr2  
   ArrayToBMP = False I|-p3g8\  
   Exit Function >R{qESmP=  
End If aq+Y7IR_  
@pI5lh  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 8l?piig#  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& $P7iRM]  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN CxhY$%C (L  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& plu$h-$d  
X7UuwIIP  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN pu!dqF<  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& &bz:K8c  
G!8Z~CPF  
If BytesWrite < pFrameSize Then 3($"q]Y  
  ArrayToBMP = False o~FRF0f*VP  
End If 5m=I*.qE  
-5>-%13  
CloseHandle hTmpFile MaBYk?TR~  
K'iIJA*Sn  
End Function ;VO.!5W@eg  
`I$ <S(h 7  
Function ArrayToBMP1(ByVal File As String) !{n<K:x1  
\? j E#^  
Dim BytesWrite As Long o[ENp'r  
]u-]'P  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ .I VlEG0  
  CREATE_ALWAYS, 0&, 0&) gw`B"c|  
5 )2:stT73  
If hTmpFile = 0 Then m+{K^kr[  
   ArrayToBMP1 = False ^[Ua46/"m  
   Exit Function cWGDee(  
End If *?+V65~dW  
b5IA"w  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN Dlo xrdOY&  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& 5WqXo {S  
Bx"7%[  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN B{oU,3U>  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& Nfe>3uQK  
LN l#h  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN nhSb~QqEh  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& 8;y&Pb~)  
b5m=7;u*h  
If BytesWrite < pBufferSize Then =K&\E2kA4  
  ArrayToBMP1 = False f\;65k_jq  
End If #zrTY9m7  
6+V\t+aug  
CloseHandle hTmpFile Z34Wbun4  
`6y{. $ z  
End Function P+t#4J  
)2UZ% ?V#  
'使用该过程建立的文件要求在用后关闭 /:<IIqO.  
Public Function ArrayToBMP2(File As String) As Boolean ]%uZ\Q;9p  
:{'k@J"| a  
Dim BytesWrite As Long z|?R/Gf8  
E| YdcS  
ArrayToBMP2 = True qjJBcu_C'S  
3'c\;1lhT  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ Sp}D ;7  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) t:JI!DR  
gx03xPeu  
If hTmpFile = 0 Then Et"?8\"n7  
   ArrayToBMP2 = False GEjd7s]C  
   Exit Function -IlJ^Al4  
End If lT\a2.E  
"'^4*o9  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN P^MOx4  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& .t&R>9cZ^  
2RF^s.W  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN 5!C_X5M  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& T,fI BD:  
r[.>P$U  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN #U=X NU}k  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& S1_6C:^k  
p\C%%  
If BytesWrite < pFrameSize Then ~Au,#7X)  
  ArrayToBMP2 = False .yT8NTu~0j  
End If % |q0-x  
SxyONp.$\  
CloseHandle hTmpFile FtufuL?JS  
(vR 9H(#  
End Function KtS)'jf  
Y=Z1Tdxa|  
Private Function TESTSignal() As Boolean r4x3$M c  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long 5dx&Qu'}ZS  
iDl;!b&V.  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) L.xZ_ 6  
o!E v;' D  
If extsign = 1 Then o }Tz"bN  
   TESTSignal = True krq/7|  
Else H7+X&#s%   
    If extsign = 0 Then sfr(/mp(  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly ?::NO Dg  
        TESTSignal = False {Z;jhR,  
        Exit Function 'B83m#HR#  
    End If ^1:U'jIXO  
End If /$n ~lf  
B:"THN^  
'测试视频输入类型 ~zm 7?_"@]  
'video type C ]Si|D  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 #X: 'aj98  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) k~%<Ir1V]  
If videotype = 1 Then ~,D@8tv  
        '"隔行信号(Interlaced)" t3Z_Dp~\  
Else m6eZ_ &+u  
   If videotype = 0 Then n I*/Mhx  
       '"逐行信号(Non-interlaced)" UV}73Sp  
   Else Ub0/r$]DK  
     If videotype = -1 Then Sj'ht=  
       ' "不支持" ej&<GM|  
     End If J" j.'.  
   End If VZ>On$hp  
End If IYWjH E+)d  
|vte=)%  
'测试垂直扫描线数 syx\gz  
'video scanlines Z') pf  
scanlines = -1 ERUt'1F?]  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) B) $c|dUV  
    If scanlines = -1 Then |W$DVRA  
        ' "不支持" UE _fpq  
    Else a/~aFmu6b  
        'Trim(Str(ScanLines)) + " 行数/幅" j9qREf9)  
    End If z eP}tzQO  
}MR1^  
'测试帧频 ,3v+PIcMM+  
'video field frequency D PrBFmHF  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) -Z4{;I[Q@  
    If fieldfrq = -1 Then TUL _TR  
        'lblSignal(8) = "不支持" /w QL  
    Else bG&"9b_c  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" sGY_{CZ:  
    End If QQk{\ PV  
End Function %I!:I Ta  
w.Ezg j  
y#Ht{)C  
Sub PicIdentify() 2)?(R;$,  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 <1w/hy&mWN  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 6{x,*[v  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 ~/_9P Fk  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 DfJ2PX}q  
Xf =XBoN|  
  Dim fPTR As Long, cFrame As Long jO9ip  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer "O+5R(XT  
     |6J ?8y  
?%R w(E  
cFrame = 0 E{=2\Wkcp  
|{g+Y  
qo+N,x9o  
Do While cFrame < tFrames 0,*%vG?Q  
   bLz*A-  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) BE&B}LfvfO  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) ;;5Uwd'-  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize 3`hUo5K  
   A]`El8_t"  
  frmRecord.RText.Text = Str(cFrame) Kzy/9  
  frmRecord.RText.Refresh uBg 8 h{>  
       !.7udYmB  
  If CheckMark = True Then ?!w^`D0}o  
   ArrayToBMP TmpBMP He0=-AR8  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) B}OY /J/*8  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" L+B?~_*  
   3 <|`0pt}  
   DrawSlice DPe]daF  
   !DjvsG1x  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) AJt!!crs  
   'If i = vbNo Then ?[ly`>KpJ  
   '  Exit Do CZ 2`H[8  
   'End If Y**|N8e  
   'cFrame = cFrame + 1 RVtQ20e";r  
   n?#!VN3  
  End If -7WW[ w  
  DoEvents j$fAq\B  
  cFrame = cFrame + 1 C7T(+Wd!,  
Loop 2^~<("+w  
End Sub `T/~.`R  
I3u{zHVwI  
HDM<w+ZxX  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean SEQ%'E5-'  
8$xPex~2  
'如标志区模式反差存在则为TRUE,否则返回FALSE LiDvaF:@L!  
vv6$>SU  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long ]!1OH |Ad  
CheckMark = True 0uVv<Q~  
   y<W8Q<9  
'复制标志区 O9v_y+M +M  
For i = 1 To mkH nGZX7Fx5  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW LCXO>MXN  
Next i < V\Y@Ei+  
Jsg I'  
For j = 1 To PilarW * PilarH / 2 @#+jMV$g  
   mTop = mTop + MKpilar(j) OwzJO  
Next j 9L%I<5i  
JnD {J`:  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH Hx^!:kxk  
   mBot = mBot + MKpilar(j) |6biq8|$3V  
Next j Y izE5[*  
N)R[6u}  
mTop = mTop / PilarW / PilarH * 2 c- $Gpa}M  
mBot = mBot / PilarW / PilarH * 2 #)+- lP e  
XXmE+aI  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 M"=n>;*X  
s*M @%_A?  
'平均值极值化 "re-@Baw  
  For j = 1 To PilarH * PilarW ;y?);!g  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) PDx)S7+w[  
  Next j BUUf;Vv  
   dYFzye  
mTop = 0: mBot = 0 VeiElU3  
For j = 1 To PilarH * PilarW / 2 \a "Ct'  
  mTop = mTop + MKpilar(j) mOll5O7VW  
Next j Zr$d20M2A;  
O(2cWQ  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW 1 Wg-x0R  
  mBot = mBot + MKpilar(j) W:&R~R  
Next j i< (s}wg  
wbbqt0un  
J.*XXM- V  
  mTop = mTop / PilarH / PilarW * 3 t$& Qv)  
  mBot = mBot / PilarH / PilarW * 3 l2v_?j-)x  
   Gtv,Izt  
Q+|{Bs)6i1  
If mBot > iWhite And mTop < iBlk Then Tm+;0  
  CheckMark = True J}spiVM  
Else {!ZyCi19  
  CheckMark = False NQTnhiM7$  
End If @54*.q$  
End Function |wxGpBau  
*E>.)B i  
Sub Capture1Frame() tury<*  
   okCaptureTo hBoard, BUFFER, 0, 1 'single ;:&?=d  
   okGetCaptureStatus hBoard, True !}TMiCK  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize ;'T{li2  
End Sub HCA{pR`  
g]mtFrP  
h SqY$P  
Sub CopyMark(iBlk As Integer, iWhite As Integer) B,$l4m4  
'复制标志区并返回标志区暗区与亮区的亮度平均值 CF y}r(q  
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 x!S;SU  
   fT:}Lj\L1  
'复制标志区 <x%M3BTx  
For i = 1 To mkH O/AE}]  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW ]*"s\ix  
Next i O[~x_xeW  
1N`vCt]w  
For j = 1 To mkW * mkH / 2 Ar9nBJ`  
   mTotal = mTotal + MKpilar(j) 4Tzd; P6_  
Next j *a}(6Cx  
*xRc * :0  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 !&kL9A).  
~yJ4qp-  
mTotal = 0 R5Yl1   
For j = mkW * mkH / 2 + 1 To mkW * mkH UyYfpL"$A"  
   mTotal = mTotal + MKpilar(j) AH7L.L+$M  
Next j 7D"%%|: h  
9~AWng  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 S^RUw  
=?}twC$  
'背景亮度 W-2i+g)  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW )9"oL!2h  
  For i = 1 To 4 * FrameW Zp`T  
    bsTotal = bsTotal + BsLine(i) 8``;0}'PC  
  Next i :bM+&EP  
  bsAV = bsTotal / FrameW / 4 S[M4ukYK  
U0B2 WmT~Q  
End Sub 8"'x)y  
eOO+>%Z  
UgHf*m  
Sub AdjIMGbright(Optional bInit As Boolean = True) H! r &aP  
$FM' 3%B[  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) O0l^*nZ46t  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 /4S;QEv  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 7 l8[xV  
     ^z1IN-Tm/  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer E,G<_40  
   l?N`{ ,1^  
  '按标准亮度与对比度采集一帧,确定背景亮度 l4'~}nn(Y  
  currentContr = 128   '初始对比度 ucYkxi`x  
  currentBr = 128   '初始亮度 _v5t<_^N  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 %(m ])  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 Aw ^yH+ae  
  DoEvents JXQPT  
  Capture1Frame (ClhbfzD  
  '获得图像上缘4行象素 +}7f g82)  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW GrEs1M1]*  
  CopyMark iBlack, iBright   '图像标志区亮度 5vp|?-\h>  
  For i = 1 To 4 * FrameW To"dG& h  
    bsTotal = bsTotal + BsLine(i) Ayx^Wp*s  
  Next i g9tu %cIkR  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 oT+(W,G  
   =fLL|  
  Select Case bsAV >mu)/kl  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 =6%|?5G  
       currentBr = 150 kN9yO5 h7  
       currentContr = 60 HB& &  
     Case 61 To 80   '有可见背景 1IH[g*f  
       currentBr = 140 ND]S(C"?  
       currentContr = 70 :{g7lTM  
     Case 81 To 100  '有清晰背景 O;XG^s@5  
       currentBr = 128 C? m,ta3  
       currentContr = 80 '8`T|2   
     Case 100 To 150  '有明亮背景 Evu=M-?  
       currentBr = 140                '5:30-6:00钟实测数据 Z_z#QX>=D  
       currentContr = 50 MOz}Q1`a  
     Case 151 To 180 0A$SYF$O+[  
       currentBr = 130 c,5n, i  
       currentContr = 60 ^tAO_~4  
     Case 181 To 220  '背景全为白色 i S p  
       currentBr = 110 "X1vZwK8N  
       currentContr = 130 \^532FIw6  
     Case 221 To 255  '背景全为白色 8:;#,Urr  
       currentBr = 100 y>o> WN<q  
       currentContr = 100 ))#'4  
  End Select eMMx8E)B  
   E{^^^"z P  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 W^g'}}]T  
        Case 100 To 150 9/TY\?U  
          currentBr = currentBr - 10 *_hLD5K!  
        Case 151 To 255 Eek9|i"p  
          currentBr = currentBr - 20 9w^zY ;Y  
  End Select GG-[`!>.pw  
   ;_JH:}j  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 3P=w =~e  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 =V$j6  
End Sub ?T*";_o,B  
iLq#\8t^  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) 6v z1*\:H~  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long /0==pLa4  
     I@Z)<5Zf  
    For i = 1 To 8 I lG:X)V%  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& /)#8)"`nT  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& +cg {[f,J;  
    Next i :X>DkRP  
     b](o]O{v  
    For j = 1 To 1024 BA+_ C]%ZJ  
      L1 = L1 + LeftBK(j, 0) q^Tis>*u6  
      L2 = L2 + LeftBK(j, 1) # mT]j""  
      R1 = R1 + RightBK(j, 0) r2eQ{u{nX  
      R2 = R2 + RightBK(j, 1) 1M5 -pZ[D  
    Next j aiftlY  
    diffL = Abs(L1 - L2) / 1024 Ek .3  
    diffR = Abs(R1 - R2) / 1024 r'aY2n^O  
End Sub ,+L KJl  
Vu]h4S:  
Function CheckSlice() As Boolean h8}8Lp(/'  
  CopySlice avSL, avSLR, avSLL }C6@c1myq-  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then (O5)wej   
    CheckSlice = True *Z kss   
  Else c?6d2jH.  
    CheckSlice = False 2_pz3<,\  
  End If vZjZb(jlN  
End Function (aKZ5>>cN  
A3UQJ   
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) ZlR!s!vv  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long oh\ ,OW  
  For i = 1 To FrameH S ~|.&0"\  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize 1kFjas `g  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize !oMt_k X  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize ,seFkG@1  
  Next i X , ZeD  
  For i = 1 To FrameH jMU9{Si  
    For j = 1 To sSize vjK, I9  
       total = total + Slice(j, i) xb^ Mo.\[  
       totalL = totalL + SliceL(j, i) it}-^3A M  
       totalR = totalR + SliceR(j, i) s44iEh=V(I  
    Next j `BT*,6a  
  Next i 9N Le&o  
  avSL = total / FrameH / sSize aWvd`q A9r  
  avSLR = totalR / FrameH / sSize TbNGgjT  
  avSLL = totalL / FrameH / sSize Eb@MfL  
End Sub kL7^$  
(([ I]q  
Sub DrawSlice() !wh=dQgMe  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B 1r4,XSk  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B %g^" ]  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B 9YC&&0 C@  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) +WF.wP?y  
End Sub MW@DXbKVl  
Sub DrawMark(pic As Control) km>o7V&4G  
   Dim i As Long, j As Long Y6eEGo"K.+  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B $L{7%]7QC  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B LM1b I4  
   For i = 1 To PilarH z+"0>ZN&  
     For j = 1 To PilarW j[DIz@^  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) %W;u}`  
     Next j M\UWWb&%\  
   Next i rx:lKoOnB  
End Sub a!t V6H  
'Z7P  
Function avIMG() As Integer &5q{viI  
  Dim i As Long, j As Long, totalIMG As Long 5u,sx664  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize 1%eLs=u?  
  For i = 1 To pFrameSize rSyaZ6#  
    totalIMG = totalIMG + pBuffer(i) JSjYC0e  
  Next i :kp0EiJ  
  avIMG = totalIMG / pFrameSize 9~Xg#{  
End Function 5-' vB  
?)cJZ>$!w  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer |~NeB"l{  
  Dim i As Long, j As Long, totalIMG As Long #v8Cy|I  
  For i = 1 To FrameH yX9B97XyC  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth 878tI3-  
  Next i &%e"9v2`  
  For i = 1 To FrameH * barWidth % 0v*n8  
    totalIMG = totalIMG + pBuffer(i) [X|OrRA  
  Next i "6V_/u5M;=  
  avRegion = totalIMG / pFrameSize iQqbzOY  
End Function wo(j}O-  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 )5, v!X)  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 fC`&g~yK'  
X'srL j.  
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 :Ye !w$r  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long M%HU4pTW#o  
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long '//declare has changed `?]k{ l1R  
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 la!~\wpa  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long **%37  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 G{}VPcrbC  
T)/eeZ$  
RZLq]8pM  
Private Const GENERIC_READ = &H80000000 C+$#y2"z#n  
Private Const GENERIC_WRITE = &H40000000 lA]8&+,ZM  
Ui~>SN>s  
Private Const FILE_SHARE_READ = &H1 ^q5#ihM  
Private Const FILE_SHARE_WRITE = &H2 79gT+~z   
Private Const OPEN_EXISTING = 3 K?;DMUSY\  
[,Gg^*umS  
Private Const INVALID_HANDLE_VALUE = -1 `yyG/ l  
u 9e@a9c  
'//file seek Y2AJ+ |  
Private Const FILE_BEGIN = 0 pBHRa?Y5  
Private Const FILE_CURRENT = 1 L!92P{K  
Private Const FILE_END = 2 y(#e}z:  
K- v#.e4  
Private Const ERROR_SUCCESS = 0& >:- $+I  
B\~ }3!j  
'//device io control pi(m7Ci"  
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 -@'FW*b  
q9"96({\@  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 K;?+8(H  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 ah"o~Cbj  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 XFl 6M~ c  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 1EK *g;H  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C E GU2fA7x  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 ="+#W6bZT  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F <'u'#E@"sl  
?uu*L6  
'//type d]9z@Pd   
Private Type LARGE_INTEGER j2k"cmsKh  
    lowpart As Long BPrt'Nc  
    highpart As Long |yCMt:Hk  
End Type Q &8 -\  
M`_0C38  
Private Enum MEDIA_TYPE w )f#V s  
    Unknown 7CysfBF0g  
    F5_1Pt2_512 BmT!aue  
    F3_1Pt44_512 $'vU2L  
    F3_2Pt88_512 ES[G  
    F3_20Pt8_512 G|Ti4_w  
    F3_720_512 {}9a6.V;}  
    F5_360_512 itz,m r P  
    F5_320_512 `5*}p#G  
    F5_320_1024 )~>YH*g  
    F5_180_512 dysS9a,  
    F5_160_512 rq{$,/6.  
    RemovableMedia x}4q {P5$  
    FixedMedia 5P2K5,o|n~  
End Enum Wtnfa{gP%  
=X}J6|>X  
Private Type DISK_GEOMETRY cAw/I@jG  
    Cylinders           As LARGE_INTEGER \fOEqe*5SM  
    MediaType           As MEDIA_TYPE e\rp)[>'  
    TracksPerCylinder   As Long Z,gk|M3.  
    SectorsPerTrack     As Long \z$= K  
    BytesPerSector      As Long M\j.8jG  
End Type ]Wup/o  
/vt3>d%B;  
'//private vars }f ?y* H  
Private hDisk           As Long             'disk handle 43c E`9~  
Private lpGeometry      As DISK_GEOMETRY    'disk info U{mYTN*:j$  
Private lBufferSize     As Long             'the buffer size of read/write W9&=xs6  
}MySaL>  
Public Function OpenDisk(ByVal FileName As String) As Boolean 0GLM(JmK  
'// 打开磁盘 W?& %x(6M  
    hDisk = CreateFile(FileName, _ +{]j]OP  
                        GENERIC_READ Or GENERIC_WRITE, _ P \I|,  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ @7 }W=HB  
                        ByVal 0&, _ =pNY eR_[  
                        OPEN_EXISTING, _ %d @z39-;  
                        0, _ HS$r8`S?)  
                        0) ?,/ }`3Vw  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) y_)FA"IkE  
End Function '/p4O2b,  
&{:-]g\  
Public Function CloseDisk() As Boolean Wwo0%<2y  
'//关闭磁盘 gGYKEq{j(  
    CloseDisk = CloseHandle(hDisk) u8^lB7!e/  
End Function JF]JOI6.e  
T{ "(\X$  
Public Function GetDiskGeometry() As Boolean (Ldi|jL  
'//获取磁盘参数 +@UV?"d  
    Dim dwOutBytes      As Long ;uW FHc5@B  
    Dim bResult         As Boolean @Qe0! (_=  
     TeQV?ZQ#}  
    bResult = DeviceIoControl(hDisk, _ (7Qo  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ /r 5eWR1G  
                                ByVal 0&, 0, _ 637: oT_`O  
                                lpGeometry, Len(lpGeometry), _ P?<y%c<  
                                dwOutBytes, _ GgU/ !@  
                                ByVal 0&) 6)J#OKZ  
     U$g?!Yl0  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack y_,bu^+*  
    GetDiskGeometry = bResult \V:^h [ad  
End Function vO=fP_  
H,J8M {  
Public Sub GetDiskInfo(MediaType As Long, _ >_} I.\ X  
                        Cylinders As Long, _ @EAbF>>  
                        TracksPerCylinder As Long, _ UiWg<_<t  
                        SectorsPerTrack As Long, _ lZ0 =;I  
                        BytesPerSector As Long) 2wn2.\v M  
'//返回磁盘的参数 { w_e9Wbi  
    MediaType = lpGeometry.MediaType 6!o1XQr=Z  
    Cylinders = lpGeometry.Cylinders.lowpart |Tw~@kT@  
    TracksPerCylinder = lpGeometry.TracksPerCylinder buC{ r,  
    SectorsPerTrack = lpGeometry.SectorsPerTrack 'w/hw'F6  
    BytesPerSector = lpGeometry.BytesPerSector kAx4fE[c  
y`Fw-!'o  
End Sub 2oW"'43 X  
WIOV2+  
Public Property Get BufferSize() As Long Bvj0^fSm  
'//返回每次读/写的缓冲大小 ~&O%N  
    BufferSize = lBufferSize zs;JJk^  
End Property rqq1TRg  
PF2nLb2-  
(H]AR8%W  
Public Function LockVolume() As Boolean Dq xs+  
'// 将卷锁定 k)u[0}   
    Dim dwOutBytes  As Long iso4]>LF  
    Dim bResult     As Boolean Gb yJ:  
     Xj*Wu_  
    bResult = DeviceIoControl(hDisk, _ Efe 7gE'  
                                FSCTL_LOCK_VOLUME, _ %y@AA>x!  
                                ByVal 0&, 0, _ E`q_bn  
                                ByVal 0&, 0, _ :&Nbw  
                                dwOutBytes, _ 9mgIUjz  
                                ByVal 0&) Rcv9mj]l  
    LockVolume = bResult G3]4A&h9v~  
End Function $>gFf}#C  
0(I j%Wi,  
zDp2g)  
Public Function UnlockVolume() As Boolean i4Jc.8^9$  
'// 将卷解锁 J,G lIv.A  
    Dim dwOutBytes As Long ^.tg7%dJ  
    Dim bResult As Boolean |qLh5Ty  
     \v{=gK   
    bResult = DeviceIoControl(hDisk, _ qR.Q,(b|  
                                FSCTL_UNLOCK_VOLUME, _ dx]>(e@(t{  
                                ByVal 0&, 0, _ kza5ab  
                                ByVal 0&, 0, _ TC. ,V_  
                                dwOutBytes, _ |{;G2G1[  
                                ByVal 0&) <{pz<io)  
    UnlockVolume = bResult d-m7 }2c  
End Function m|# y >4  
K,]=6 Rj  
PH"%kCI:  
Public Function DismountVolume() As Boolean fM }#ON>Z  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 zi:BF60]=  
    Dim dwOutBytes As Long ?"FbsMk.d  
    Dim bResult As Boolean v=k$A  
     ]Dzlp7Y}  
    bResult = DeviceIoControl(hDisk, _ ;4a{$Lw~^9  
                                FSCTL_DISMOUNT_VOLUME, _ b -y  
                                ByVal 0&, 0, _ IID5c" oR  
                                ByVal 0&, 0, _ o  K@"f9  
                                dwOutBytes, _ <VcQ{ F  
                                ByVal 0&)  -M2yw  
    DismountVolume = bResult fVwU e _Y  
End Function BV m0{*-[|  
iE{&*.q_}>  
'yth'[  
Public Function ReadDisk(ByVal Cylinders As Long, _ Mtv?:q  
                    ByVal Tracks As Long, _ Q?T]MUY(L  
                    db() As Byte) As Boolean H]!"Zq k  
'//按柱面和磁道来读取磁盘数据 E4!Fupkpf  
    Dim iPos    As Long h![#;>(  
    Dim lRead   As Long Al'3?  
     .543N<w  
    iPos = Cylinders * Tracks * lBufferSize P2!C|SLK  
     uEY t E7  
    If SeekAbsolute(0, iPos) Then /(T?j!nPE  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) *=n:-  
    End If u>$t'  
End Function Qd6FH2Pl  
JRFtsio*  
Public Function WriteDisk(ByVal Cylinders As Long, _ %SI'BJ  
                     ByVal Tracks As Long, _ 5;S.H#YOpO  
                     db() As Byte) As Boolean /=h` L ,  
'//按柱面和磁道来写磁盘数据 f)!Z~t &  
    Dim iPos    As Long ^.G$Q#y,  
    Dim lRead   As Long {$r[5%L\H  
     zzz3Bq~  
    iPos = Cylinders * Tracks * lBufferSize tDo"K3   
     F?cK- .  
    If SeekAbsolute(0, iPos) Then mq[ug>  
        WriteDisk = WriteBytes(lBufferSize, db()) + #By*;BJ  
    End If 2tLJU  Z1  
End Function *H122njH+T  
y]im Z4{/  
hcc/=_hA  
'///////////////////////////////////////////////////////////////////////////////////// OZT.=^:A  
'//file system Wm|lSisY  
{!`4iiF  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean VX/#1StC  
'//seek file "j-CZ\]U|  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte 7.T?#;'3  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) q;U,s)Uz^  
    If LowPos = -1 Then HThcn1u~^b  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) :LTN!jj  
    Else 7KPwQ?SjT  
        SeekAbsolute = True KG@8RtHsQ  
    End If -hV*EPQ/  
     V1?]|HTQcT  
End Function .B yuN  
<Qq*p  
ca}2TT&t  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean {[(h[MW#  
'//read data to array />Nt[o[r  
    Dim RetVal    As Long Tr|JYLwF   
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) fV:83|eQ  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF P$sxr  
    ReadBytes = Not (RetVal = 0) b\ PgVBf9  
     @6d[=!9  
End Function )i<j XZ:O  
[V!tVDs&'o  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean m4& /s  
'//write data from array Ug` djIL  
    Dim RetVal As Long 2Hdu:"j  
    Dim BytesToWrite As Long RyNs6  
    Dim BytesWritten As Long b2]Kx&!  
     fatf*}eln  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) f-d1KNY  
     `kr?j:g  
    WriteBytes = Not (RetVal = 0) {U1m.30n  
End Function uocGbi:V';  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 d\Zng!Z'  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ &0f,~ /%Z  
DWORD dwCB; f-2c0Bi  
LARGE_INTEGER  offset; }-fl$j?9E  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); 5PW^j\G-f  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); };g"GNy  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ 8V(pugJ  
DWORD error = GetLastError(); s <Fl p  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); MW{8VH6+  
return FALSE; Vg23!E  
} Sc   
return TRUE; XUw/2"D'?  
} Tf)*4O4@'  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : s0_nLbWwO  
U?=Dg1  
介个真的看不懂。 9S-9.mvop  
你说你老啦,喜欢怀旧了,才想起来填坑。 _~ &iq1  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 B]$GSEB  
((I%'   
\15nS B  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 :  {>%&(  
佩服,玩也玩得这么专业! ~WN:DXn  
6i*sm.SDw  
6u}</>}  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : F.v{-8G V  
伍SIR,再次抱拳佩服 1&o|TT/  
Q?/o%`N  
6B ?twh)  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : `%Al>u5  
引用第19楼伍胥之于06-14-2010 12:33发表的  : Q'mM3pq4r  
@[i4^  
!o[7wKrXb  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 ,T8~L#M~  
Oh\<VvZuN  
我连一级也没有考过。 ;?g6QIN9  
.
=k:,qft2  
+V^;.P</  
引用
*~j@*{u  
矬子里拔将军... \A6B,|@  
你们那里的俗语是吧? S +^E.  
bB;5s`-  
我们这里说"矮子里拔长脚"..应该是同一个意思... _aMPa+D=P  
HuKc9U'7A  
有趣....各地有表达意思一样却方式不同的俗语.... B i<Q=x'Z;  
f &wb  
Bv%GJ*>>  
你的文章写的有脸皮,没屁眼的, Y,e B|  
让看客大为不满... v+=BCyT  
u sL* x9i  
你等着,,估计你以后接到的午夜凶铃就多了... ?r+-  
Y0K[Sm>  
nSAdCJ;4  
我到现在也没有接到你的午夜凶铃呢! 2oRg 2R}  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : TNh1hhJ$b  
每个人的故事对其他人都是故事, P{+T< bk|  
自己的故事也是其中之一. zXxT%ZcCj  
跳出来看, 9dUravC7  
不过是众人中的一个人的故事. .oUTqki  
_ T):G6C8  
所以,接着听故事. |:<f-j7t~  
qF-@V25P  
女人们有兴趣的就等老伍开个新帖或者跟贴, !|S43i&p  
听他痛说恋爱革命历史.... /& +tf*  
o/ Q;f@  
杂家接着听他自学程序员历史, {_Rr 6  
高级程序员考了吗? Ab"@714@  
Rn I&8  
p\ZNy\N^  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! [ )dXIIM  
hL;(C) (  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 )i^<r;_z  
,.1Psz^U  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 A_5P/ARmI  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : o .G!7  
哦, 打倒忽悠大家的家伙.      _:C9{aEZb  
6%Pdy$ P  
4V COKx  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : 5v}8org  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 Boz@bl mCB  
mvZw  
O J zs Q  
其实标题没有什么,卡总既然改了就不必再改回了。 b7tOo7aH)  
V8-oYwOR  
主要是当初写的时候真是顶着锅盖写的。 :Q_<Z@2Y{  
D'A/wG  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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