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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 &hJQHlyJM0  
CQs,G8 \/  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : "%w E>E  
yeLd, M/I  
老五,I 服了U。 y?UB?2 VN  
w&*oWI$i  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 Bo; { QoB  
^@)*voP#G  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean ;pqS|ayl  
h*?]A  
Dim regEX As New RegExp sY* qf=  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 |=[. _VH1  
w& )ApfL  
Dim LastTitle0String As String, LastTitle0No As Long S& F;~  
Dim LastTitle1String As String, LastTitle1No As Long jP.dQj^j&  
Dim LastTitle2String As String, LastTitle2No As Long L0 *f( H  
Dim LastTitle3String As String, LastTitle3No As Long ywj'O e41  
Dim LastTitle4String As String, LastTitle4No As Long v)~!HCG  
Dim LastTitle5String As String, LastTitle5No As Long 2p~G][  
Dim LastTabelString As String, LastTableNo As Long !?z"d  
Dim LastFigureString As String, LastFigureNo As Long 0GQKM~|H  
XdE|7=+s  
Dim strSeperator As String _ Gkb[H&RZ  
or(P?Ro  
Sub ConvertWidth(fTEXT As String, rText As String) s14 ot80)  
        Selection.Find.ClearFormatting %>1C ($^  
        Selection.Find.Replacement.ClearFormatting VDlP,Mm*  
        Selection.Find.Wrap = wdFindContinue YoSBS   
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText *t`=1Ioj  
        DoEvents QwLS L<.  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True <m*j1|^{t  
End Sub rxOv Y F  
9O\yIL  
Sub ClearDomain() 'OU`$K7n  
        With Selection.Find |<#yXSi  
            .ClearFormatting j2oU 1' b  
            .Replacement.ClearFormatting +A1xqOB  
            .Wrap = wdFindContinue (Ft#6oK"  
            Me.txtStatus.Text = "清除所有域代码" PJAM_K;  
            DoEvents +*G<xW :M  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False m,Mg  
        End With TV K*l*  
End Sub j07b!j:"\}  
-kb;h F}.  
Private Sub cmdCheck_Click() ]Aj5 K  
    bContinue = True cHJ4[x=  
    Dim NoSeries1(1 To 16) As String C|RC9b  
    Dim NoSeries2(1 To 16) As String {5 (M   
    Dim NoSeries5(1 To 16) As String |Ew&.fgz  
    Dim NoSeriesRM(1 To 16) As String mcWN.  
    Dim paraTotal As Long, ParaText As String :H/Rhx=  
    Dim ttString As String, ttNo As String !T.yv5ge'  
     |AS9^w  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long OpmPw4?}  
s qO$ka{  
    Me.txtStatus.Visible = True e!w#{</8Q  
    Me.lbParaType.Visible = True ZeH=]G4Zv7  
    Me.cmdCheck.Enabled = False :M.]-+(  
     >fp_$bjd  
     %-an\.a.  
     w} U'>fj  
     JykNEMB#  
    Dim ParaType As String, rText As String }x:}9iphF  
     HBZtg  
    Selection.WholeStory b<BkI""b  
    Selection.NoProofing = True _xM3c&VeG  
     ",]A.,  
    tm1 = Now LAuaowE\v  
     P Q" v  
        ActiveWindow.View.Type = wdNormalView !Hj 7|5  
     (R!`Z%  
    NoSeries1(1) = "一" TlC? ?#  
    NoSeries1(2) = "二" {*X|)nr  
    NoSeries1(3) = "三" )!5"\eys  
    NoSeries1(4) = "四" GK{~n  
    NoSeries1(5) = "五" fz rH}^  
    NoSeries1(6) = "六" #66u<FaG  
    NoSeries1(7) = "七" <-HWs@8#  
    NoSeries1(8) = "八" =/ 19 -Y:  
    NoSeries1(9) = "九" !3\( d{  
    NoSeries1(10) = "十" e0 9QaY  
    NoSeries1(11) = "十一" [jTZxH<  
    NoSeries1(12) = "十二" ~I@ % ysR  
    NoSeries1(13) = "十三" ooj^Z%9P  
    NoSeries1(14) = "十四" {"_V,HmEF+  
    NoSeries1(15) = "十五" oot kf=  
    NoSeries1(16) = "十六" G;]zX<2^3  
     1n#{c5T  
    NoSeries2(1) = "㈠" -Zqw[2Q4  
    NoSeries2(2) = "㈡" mzcxq:uZ5  
    NoSeries2(3) = "㈢" ;pG5zRe  
    NoSeries2(4) = "㈣" L"}2Y3  
    NoSeries2(5) = "㈤" \cQ+9e)  
    NoSeries2(6) = "㈥" ew,g'$drD  
    NoSeries2(7) = "㈦" `m\ ?gsw7  
    NoSeries2(8) = "㈧" 3A3WD+[L  
    NoSeries2(9) = "㈨" P%ZU+ET  
    NoSeries2(10) = "㈩"  @4>?Y=#  
     =91f26c!~  
    NoSeries5(1) = "①" `&J=3x  
    NoSeries5(1) = "②" .8XkB<[wb  
    NoSeries5(3) = "③" `eKFs0M.  
    NoSeries5(4) = "④" @1V?94T1  
    NoSeries5(5) = "⑤" ;W3c|5CE  
    NoSeries5(6) = "⑥" n M `pnR_  
    NoSeries5(7) = "⑦" d6A+pa'2  
    NoSeries5(8) = "⑧" oP:/%  
    NoSeries5(9) = "⑨" |%j7Es  
    NoSeries5(10) = "⑩" *enT2Q  
     &&Otj-n5  
     ht*;, [ea  
    NoSeriesRM(1) = "I" 5oR)  
    NoSeriesRM(2) = "II" /p) y!5e  
    NoSeriesRM(3) = "III" ZBjb f_M:  
    NoSeriesRM(4) = "IV" :!fU+2$`^(  
    NoSeriesRM(5) = "V" B] PG  
    NoSeriesRM(6) = "VI" IW=%2n(<1  
    NoSeriesRM(7) = "VII" aL/7xa  
    NoSeriesRM(8) = "VIII" 21hTun"W  
    NoSeriesRM(9) = "IX" ~uuM0POo  
    NoSeriesRM(10) = "X" ;JX2ebx  
    NoSeriesRM(11) = "XI" j^ttTq|l  
    NoSeriesRM(12) = "XII" A6#v6iT  
    NoSeriesRM(13) = "XIII" hYVy65Ea  
    NoSeriesRM(14) = "XIV" JR|P]}  
    NoSeriesRM(15) = "XV" zI_pP?4;.q  
    NoSeriesRM(16) = "XVI" 6\m'MV`R!  
     T/q*k)IoR  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) [k=LX+w@  
     Kk>va->R  
    If i = vbNo Then c  
        Exit Sub Q.SqOHeJ  
    End If =!=DISPo  
     *-@@t+3  
    If Me.chkSuper.Value Then *s!T$oc  
        Me.txtStatus.Text = "检查修改所有的上标格式" sbV_h;<  
     9)'wgI#  
        CheckSuperScript BUXlHh%<R  
         B Wzo|isv  
    End If +[#^c3x2  
     2`V(w[zTr  
    If Me.chkStyle.Value Then $~r=I[5' (  
        Me.txtStatus.Text = "设置样式,请稍候...." B";Dj~y  
        DoEvents 6t4{aa!L|9  
        CeateOrModifyStyle 1(/rg  
    End If jNAboSf2Y  
     `LJ.NY pP  
     ki]i[cdk  
     FwDEYG  
    ClearDomain _ Uv3g lK  
         #3YYE5cB  
     KXcE@q9  
     p9eTrFDy?  
    If Me.chkLIST.Value Then Zc=#Y  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" Wbi12{C  
     [-1Yyy1}  
        ConvertListToOrdinary XpdjWLO]C<  
    End If <#lNi.?.  
     Y~U WUF%aK  
     2l+t-  
    Dim pType As String, trimpTEXT As String dbfI!4  
    If Me.chkNum.Value = True Then ?d)FYB  
        Me.txtStatus.Text = "转换全角数字形式为半角" #ihHAiy3  
        ConvertWidth "1", "1" qO>A 6  
        DoEvents ^Fwdi#g  
        ConvertWidth "2", "2" -\g@s@5  
        DoEvents xgWVxX^)  
        ConvertWidth "3", "3" NZuylQ )0  
        DoEvents LP} j0)n  
        ConvertWidth "4", "4" #wF6WxiG  
        DoEvents Ar`U / %Cu  
        ConvertWidth "5", "5" )>!y7/3  
        DoEvents _p%@x:\  
        ConvertWidth "6", "6" s+a#x(7{  
        DoEvents ;z9U_  
        ConvertWidth "7", "7" ~ \ Udl  
        DoEvents 1pTQMf a  
        ConvertWidth "8", "8" f1I/aRV:+  
        DoEvents =Ct$!uun  
        ConvertWidth "9", "9"  bRx}ih  
        DoEvents u7 {R; QKw  
        ConvertWidth "0", "0" $lF\FC  
        DoEvents CMYk xU  
        ConvertWidth "a", "a" !8o;~PPVl  
        DoEvents .;3 7 e  
        ConvertWidth "b", "b" B{NGrC`5)  
        DoEvents +P=I4-?eX  
        ConvertWidth "c", "c" La si)e=$<  
        DoEvents }nWW`:t kx  
        ConvertWidth "d", "d" )"s(;kU!  
        DoEvents {Yv5Z.L&(  
        ConvertWidth "e", "e" #a!qJeWm0  
        DoEvents O_Z   
        ConvertWidth "f", "f" BSg 3  
        DoEvents Sp@{5  
        ConvertWidth "g", "g" IR"=8w#MP  
        DoEvents ExSy/^4f  
        ConvertWidth "h", "h" nb(Od,L  
        DoEvents sB<y(}u  
        ConvertWidth "i", "i" yj mNeZ  
        DoEvents %kiPE<<x  
        ConvertWidth "j", "j" 3NrWt2?  
        DoEvents y{QF#&lW  
        ConvertWidth "k", "k" \C`2z]V%  
        DoEvents ( Uk\O`)m  
        ConvertWidth "l", "l" A )xfO-  
        DoEvents 4M>EQF&  
        ConvertWidth "m", "m" cnM`ywKW  
        DoEvents 0lpUn74F  
        ConvertWidth "n", "n" XI5q>cd\Sz  
        ConvertWidth "o", "o" :Q>{Y  
        ConvertWidth "p", "p" yu=(m~KX   
        ConvertWidth "q", "q" (&qjY I  
        ConvertWidth "r", "r" Xl /2-'4  
        ConvertWidth "s", "s" )IGx3+I ,  
        ConvertWidth "t", "t" 9S{0vc/2@  
        ConvertWidth "u", "u" \`YV)"y" ~  
        ConvertWidth "v", "v" b+THn'2  
        ConvertWidth "w", "w" Bmi9U   
        ConvertWidth "x", "x" `^ uX`M/  
        ConvertWidth "y", "y" k; vhQ=  
        ConvertWidth "z", "z" 2%@<A  
        ConvertWidth "A", "A" qa5 T(:8  
        ConvertWidth "B", "B" nPjN\Es6  
        ConvertWidth "C", "C" Ryi% }!  
        ConvertWidth "D", "D" #mc6;TRZO  
        ConvertWidth "E", "E" 4z,n:>oH  
        ConvertWidth "F", "F" 9TV1[+JWe  
        ConvertWidth "G", "G" v;IuB  
        ConvertWidth "H", "H" j.UO>1{7  
        ConvertWidth "I", "I" '];=1loD  
        ConvertWidth "J", "J" s@|TQ9e |j  
        ConvertWidth "K", "K" _Zbgmasb  
        ConvertWidth "L", "L" 0[fqF^HEN  
        ConvertWidth "M", "M" 'dcO-A:>  
        ConvertWidth "N", "N" TuzH'F  
        ConvertWidth "O", "O" $e,'<Jl  
        ConvertWidth "P", "P" VRz9;=m  
        ConvertWidth "Q", "Q" s6_[H  
        ConvertWidth "R", "R" DZV U!J  
        ConvertWidth "S", "S" >('Z9<|r :  
        ConvertWidth "T", "T" ~ tqDh(  
        ConvertWidth "U", "U" Q5tx\GE  
        ConvertWidth "V", "V" $~:|Vj5iZ\  
        ConvertWidth "W", "W" ]PZ\N~T  
        ConvertWidth "X", "X" O+o_{t\R  
        ConvertWidth "Y", "Y" \Gy+y`   
        ConvertWidth "Z", "Z" F vHd `  
        ConvertWidth "^l", "^p" 8[H)t Kf8  
        ConvertWidth "(", "(" _E xd:  
        ConvertWidth ")", ")" PY W>  
     ]D|Hq4ug  
    End If ?., 2EC=+  
$(;0;!t.  
    With ActiveDocument x: 2 o$+v3  
        Dim tbl As Table `6y\.6j  
        For Each tbl In .Tables 7)y +QU]  
            tbl.Rows.Alignment = wdAlignRowCenter Xldz& &@  
            tbl.Range.Font.NameFarEast = "楷体" G!w?\-  
            tbl.Range.Font.NameAscii = "Times New Roman" ?4lDoP{  
            tbl.Range.Font.Size = 10.5 Eo_; N c  
        Next PA>su)N$  
        Set tbl = Nothing d ]Mjr2h  
    End With /7Ft1f  
     ~9dAoILrl  
     &(rR)cG  
    With ActiveDocument G1/  
         sQ%gf  
        For i = 1 To .TablesOfContents.Count TXK82qTdf  
            .TablesOfContents(i).Delete 1#^r5E4  
        Next M}`G}*  
         {&.?u1C.\  
         _u8d`7$*%  
         (c9!:  
        paraTotal = .Paragraphs.Count ]nQ(|$rW  
        paraCounter = 1 Z+C&?K  
         <k-hRs2d  
        LastTitle0No = 0 aKC3v R0  
        LastTitle1No = 0 ri1:q.:I]  
        LastTitle2No = 0 }B2qtb3  
        LastTitle3No = 0  ~b LhI  
        LastTitle4No = 0 [^A>hs*  
        LastTableNo = 0 gR8vF  
        LastFigureNo = 0 Mt+gg F.  
         *\F,?yU  
        Dim Sec As Long  Wf kP  
         ;.b^A  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) *]* D^'  
        If Sec = 0 Then +AL (K:  
            Exit Sub =idZvD  
        End If y`-5/4  
         2f.4P]s`T  
        k = 0 C/A~r  
        Do While (paraCounter < paraTotal) And bContinue I07_o"3>qr  
            k = k + 1 JbEQ35r  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then y7Y g$)sL  
                Exit Do qn~:B7f  
            End If '@eH)wh@m)  
            paraCounter = paraCounter + 1 ^ot9Q  
            If k Mod 20 = 0 Then w1 tg7^(@  
                Me.lbCounter.Caption = paraCounter k^r-~q+NV#  
                DoEvents pn4~?Aua0/  
            End If 5tl uS  
        Loop $nW^Gqwj]1  
         Fx'E"d  
         D^\2a;[AxA  
        Do While (paraCounter < paraTotal) And bContinue 1U~yu&  
             'Mm=<Bh  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) doV+u(J~  
            ShapeHeight = 0 :*s+X$x,<  
            ShapeWidth = 0 #"aL M6Cfs  
           $#d.@JWi  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth y,=TB#  
             hS +R /7  
            Select Case ParaType t+Hx&_pMj  
                Case "【】表格内容" uM('R;<^  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" ajALca4  
                Case "章" ,5thD  
                    LastTitle0No = LastTitle0No + 1 ^ l9NF  
                    '新一章开始,复位其下属标题编号 HU+zzTgI  
                    LastTitle1No = 0 RaLc}F)9   
                    LastTitle2No = 0 A0 1 D-)  
                    LastTitle3No = 0 y`.m'n7>P  
                    LastTitle4No = 0 z+%7 4O"c  
                     n ^_B0Rkv  
                    k = Val(ttNo) U Zc%XZ`"V  
                    If k = 0 Then '非数字编号章节 ?u_O(eg  
                        If ttNo <> NoSeries1(LastTitle0No) Then nV&v@g4Tt  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString 9>HCt*|_8  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText z+6%Ya&ls  
                        End If TeWpdUCO  
                    Else -[.A6W  
                        If Val(ttNo) <> LastTitle0No Then P0XVR_TJf  
                            rText = "第" & LastTitle0No & ttString #gY|T|  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText 4+15`  
                        End If  L\("  
                         HVK./y qy  
                    End If ;B@-RfP  
                     f/RDo4  
                    '章段落设置 :pPn)j$  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 d3K-|  
                    .Paragraphs(paraCounter).Style = "QLNU章节" 9!|+GIjn  
                    .Paragraphs(paraCounter).Range.Select X3, +aL`  
                    Selection.EndKey unit:=wdLine ?tFsSU  
                    tc = Replace(rText, vbCr, "") lT~A~O  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False lM-*{<B  
                Case "一级标题" HrS  
                    LastTitle1No = LastTitle1No + 1 mL[Y{t#N  
                    '新一级标题开始,复位其下属标题编号 D'3. T{*rH  
                    LastTitle2No = 0 (w{C*iB  
                    LastTitle3No = 0 9V( esveq  
                    LastTitle4No = 0 F otHITw[  
                     1rQKHC:|  
                    If ttNo <> NoSeries1(LastTitle1No) Then Ba /^CS  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString &%`Y>\@f  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText ; gNoiAxW  
                    End If *q |3QHZ  
                   It3.  
                     ZMI vzQYI  
                    '一级标题段落设置  格式:一、标题内容 &u7oa  
                    .Paragraphs(paraCounter).Range.Text = rText DX%D8atrr  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" 5 ]v]^Y'?  
                    .Paragraphs(paraCounter).Range.Select *;y n_zg  
                    Selection.EndKey unit:=wdLine <P4*7:jX  
                    tc = Replace(rText, vbCr, "") Y+'522er  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False {kp^@  
                Case "二级标题" Tx\g5rk  
                    LastTitle2No = LastTitle2No + 1 KHJk}]K  
                    '新二级标题开始,复位其下属标题编号 , 1` -u$  
                    LastTitle3No = 0 #Do#e {=+  
                    LastTitle4No = 0 I`8 jJpG A  
                     Ig M_l=  
                    If ttNo <> NoSeries1(LastTitle2No) Then Y]>Qu f.!  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString cJ!C=J  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText UAq%Y8KA  
                    End If qmM%MPv  
                     N"q C-h  
                    '二级标题段落设置 格式:(一)、标题内容 S2*ER  
                    .Paragraphs(paraCounter).Range.Text = rText -C<Ni  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" KK4"H]!.  
                     +F3`?6UXz  
                    .Paragraphs(paraCounter).Range.Select "[BDa}Il  
                    Selection.EndKey unit:=wdLine nH % 1lD?:  
                    tc = Replace(rText, vbCr, "") FkJX)  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False t?:Q  
                 &i %1\ o  
                Case "三级标题" Jh)K0>R  
                    LastTitle3No = LastTitle3No + 1 #8[iqvE  
                    '新三级标题开始,复位其下属标题编号 -!b@\=  
                    LastTitle4No = 0 Z-B b,8  
                     K{x FhdW  
                    If Val(ttNo) <> LastTitle3No Then OlF5~VAbfb  
                            rText = LastTitle3No & ". " & ttString 8Q Nd t  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText EU"J'?  
                         JDy;Jb  
                    End If O F CA~sR  
                    '三级标题段落设置 格式:1. 标题内容 37QXML  
                    .Paragraphs(paraCounter).Range.Text = rText jJDY l([  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" nfbq J  
                    .Paragraphs(paraCounter).Range.Select lTn~VsoRZ  
                    Selection.EndKey unit:=wdLine wz(D }N5  
                    tc = Replace(rText, vbCr, "") du k:: |{F  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False DTR/.Nr'K  
                Case "四级标题" Om= *b#k  
                    LastTitle4No = LastTitle4No + 1 l`A4)8Y@  
                     `[zd  
                    If Val(ttNo) <> LastTitle4No Then dn)pVti_  
                            rText = "(" & LastTitle4No & "). " & ttString ie%_-  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText lSk<euCYs  
                     X0"f>.Lg  
                    End If 1_z6O!rx  
                    '四级标题段落设置 格式:(1). 标题内容 3 JR1If  
                    .Paragraphs(paraCounter).Range.Text = rText XTOZ]H*^  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" wu2C!gyBo  
                    .Paragraphs(paraCounter).Range.Select 9x40  
                    Selection.EndKey unit:=wdLine r9d dVD  
                    tc = Replace(rText, vbCr, "") Vdz(\-}ao  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False 3@7<e~f  
                 mv+K!T6  
                Case "表格标题" Cq-#| +zr  
                    LastTableNo = LastTableNo + 1 r06M.r   
                     @lnM%  
                    If ttNo <> CStr(LastTableNo) Then xFY< ns  
                            rText = "表" & LastTableNo & ". " & ttString (&a<6k  
                            ErrMsg.AddItem "表格编号错误:" & ParaText Y!tjaL 9D  
                   OnKPD=<  
                    End If bn$}U.m$-  
                     $=-Q]ld&]  
                    '表格名称段落设置 格式:表1. 表格名称 bb^$]lT'  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" "Nn+Zw43  
                    xe = Replace(rText, vbCr, "") =!cI@TI  
                    .Paragraphs(paraCounter).Range.Select _noQk3N  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 G]- wN7G  
                    Selection.Range.Text = xe j$8i!C  
                    Selection.EndKey f!"Y"g:@E  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ;y{VdT  
                 ^sjL@.'m$N  
                Case "表格首行" }_{QsPx9  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" 6b8@6;&LI  
                Case "图片标题" pt!Q%rXm  
                    LastFigureNo = LastFigureNo + 1 XN=Cq*3}  
                     X) TUKt  
                    If ttNo <> CStr(LastFigureNo) Then }lzQMT  
                            rText = "图" & LastFigureNo & ". " & ttString X;?Z_3I:5  
                            ErrMsg.AddItem "表格编号错误:" & ParaText hIr $^%  
                   mzX <!  
                    End If k v}<u  
                    '图片名称段落设置 格式:图1. 图名称 b88Zk*  
                    .Paragraphs(paraCounter).Range.Text = rText n_Ka+Y<  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" 9IRvbE~2  
                    .Paragraphs(paraCounter).Range.Select ]$vJK  
                    Selection.EndKey unit:=wdLine khW9n*  
                    xe = Replace(rText, vbCr, "") qJ|n73yn  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ,t]qe  
                Case "正文" n*oa J<o%  
                     '正文名称段落设置 pM i w9}  
                    .Paragraphs(paraCounter).Style = "QLNU正文" *!gj$GK@%  
               Case "文献条目" <XHS@|  
                    With .Paragraphs(paraCounter) Twj?SV  
                        '.Range.Select #Rkldv'  
                        'Selection.ClearFormatting l^IPN 'O@  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” k<M~co;L  
                        .Style = "QLNU参考文献" (BA2   
                    End With P;dp>jL  
               Case "图表注解" 7Z;w<b~  
                    With .Paragraphs(paraCounter) T"GuE[?a  
                        .Range.Font.NameFarEast = "楷体" ;Q]j"1c  
                        .Range.Font.NameAscii = "Times New Roman" zTa>MzH1-;  
                        .Range.Font.Size = 9 '小5号字 B !(t<W8cu  
                         L#`9# Q  
                        .Alignment = wdAlignParagraphCenter R "&(Ae?LR  
                        .LeftIndent = 0 s\`Vr;R:|  
                        .RightIndent = 0 Pj!{j)-tS  
                        .FirstLineIndent = 0 2z\4?HJy  
                        .LineSpacing = 12 0KF)+`CC>  
                        .LineSpacingRule = wdLineSpaceExactly GD$jP?  
                        .LineUnitAfter = 0 P~+?:buqc  
                        .LineUnitBefore = 0 <}E^r_NvD  
                        .OutlineLevel = wdOutlineLevelBodyText g1uqsqYt  
                        .PageBreakBefore = False p ]zYj >e  
                        .RightIndent = 0 WR *|kh  
                        .WordWrap = True Hh bf9)  
                        .LineUnitAfter = 0.5 a#0G mK  
                         / h6(!-"  
                    End With W].P(A>m  
                Case Else LxGE<xj|V%  
                    '不作处理 QS~;C&1Hl  
            End Select E00zf3Jgv'  
             l}DCK  
            '含有inlineshape的段落处理 y%H;o?<WX  
            If ShapeHeight > 30 Then G=8w9-Ww  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 @J~y_J{  
            End If a9E!2o +,  
             J9LS6~ 7  
            If (ShapeWidth + ShapeHeight) > 150 Then ZHs hg`I`  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" LaE;{jY  
            End If 8d w]i1t<  
             axY-Vj  
            '段落计数器递 I~R<}volu  
            paraCounter = paraCounter + 1 {tE/Jv $  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter RTSR-<{z  
            Me.txtStatus.Text = ParaText p 0.?R  
            DoEvents %;0w2W  
        Loop ~EU[?  
    End With tH:K6^oR  
     OU(z};Is6Z  
    msg = "" 8j,_  
     X*~NE\  
    For i = 0 To Me.ErrMsg.ListCount - 1 kC R)k=*  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) -?b@6U  
    Next +fhyw{  
     JXlFo3<  
     1q!JpC^  
     dv0TJ 0%  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg 1>*]jj}  
    Me.cmdCheck.Enabled = True oPNYCE  
    Me.txtStatus.Visible = True {zGIQG9  
    Me.lbParaType.Visible = False ^gFjm~2I  
     UZdE ^Q[  
    bContinue = False V=|^r?  
End Sub xLZQ\2q  
2`* %NJ  
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) xQ7n$.?y@  
    Dim pTEXT As String yvxC/Jo 4  
     r2T?LO0N{  
    pTEXT = ChKRange.Text tji,by#E/%  
     T ^a {#B  
    ParaType = "其它" @"s\eL,r  
    TitleString = pTEXT mm=Y(G[_%y  
    TitleNo = "N/A" ;f-|rC_"  
     'KGY;8<x]  
    shpCounter = ChKRange.InlineShapes.Count Q:~w;I  
    If shpCounter <> 0 Then O#7ldF(  
        MaxShpHeight = 0: TotalShpWidth = 0 -aNTFt~|[  
        For i = 1 To shpCounter ]tZ5XS  
            k = ChKRange.InlineShapes(i).Height {K'SOh H4?  
            l = ChKRange.InlineShapes(i).Width A*pihBo7  
            If k > MaxShpHeight Then bIm$7a`T  
                MaxShpHeight = k *eXO?6f%s^  
            End If bE>3D#V<  
            TotalShpWidth = TotalShpWidth + l JMOP/]%D  
        Next |?Q(4(D`*  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then F!>K8q  
            Exit Sub .Qh8I+Q%  
        End If q rbF@{  
    End If YeJ95\jf  
     G 7)D+],{Y  
    '空行 +&\TdvNI4  
    If Len(pTEXT) <= 2 Then 6\,^MI  
        Exit Sub Za!c=(5  
    End If Jb-wvNJu  
     =D xJt7J1  
         BH0rT})  
    '是否为表格中的文字 ke>\.|HT}  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then ~~1~_0?e  
        ParaType = "表格内容" ~+>M,LfK  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) ~rCnST  
        If k = 1 Then 8{+~3@T  
            ParaType = "表格首行" @sKAsn  
        End If )C2d)(baEJ  
        Exit Sub vP}K(' (  
    End If _3p:q.  
      ioi  
    '例外情况:脚注 /^[)JbgB  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then @\l> <R9V  
        ParaType = "脚注" p 2~Q  
        Exit Sub %Z{ J=  
    End If QBsDO].J<  
     CHpDzG>]4  
    '例外情况:尾注 [/uKo13  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then ,.FTw,<  
        ParaType = "尾注" l3MbCBX2  
        Exit Sub lO $M6l  
    End If 24N,Bo 3  
     Dlj=$25  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then a`pY&xq::  
        ParaType = "页眉页脚" 5,AQ~_,'\  
        Exit Sub HHnabSn}{q  
    End If <Awx:lw.  
     Ql*/{#$  
     xYu~}kMu  
    With regEX $fKwJFr  
        .Global = True *vAOUqX`x  
         C6"!'6 W  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" 3/rvSR!  
        If regEX.Test(pTEXT) Then 8)POEY4  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") J|FyY)_  
            TitleString = regEX.Replace(pTEXT, "$3") jPU# {Wo#  
            TitleNo = regEX.Replace(pTEXT, "$1") Aq'%a)Y2  
            ParaType = "章" Rg[e~##  
            Exit Sub /#G"'U/  
        End If ^}1RDdQ"U  
         eBAB7r/7  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" u F*cS&'Z  
        If regEX.Test(pTEXT) Then S ,(@Q~  
            ParaType = "一级标题" ^YIOS]d>8#  
            regEX.Execute (pTEXT) 4}LF>_+=  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") Y(SI`Xo[  
            TitleString = regEX.Replace(pTEXT, "$3") wCt+{Y3T  
            TitleNo = regEX.Replace(pTEXT, "$1") x>8f#B\Mr  
            Exit Sub <uTsX v  
        End If Ok`U*j  
         peqFa._W  
        '全角或半角括号中的数字 F[=m|MZb  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" pO+1?c43  
        If regEX.Test(pTEXT) Then H+5]3>O-$  
            ParaType = "二级标题" Xi{(1o4%  
            regEX.Execute (pTEXT) UiZ61lw  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") f,L  
            TitleString = regEX.Replace(pTEXT, "$5") _&%!4n#>  
            TitleNo = regEX.Replace(pTEXT, "$2") UdI>x 4bI  
            Exit Sub J#x91Jh  
        End If sId5pY!  
         o mjLQp[%  
        '阿拉伯数字  1. 2. @J<B^_+Se  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" E7eVg* Cvi  
        If regEX.Test(pTEXT) Then *Ra")(RnDK  
            ParaType = "三级标题" d}o1 j  
            regEX.Execute (pTEXT) iz^wBQ  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 zRJ y3/>  
            TitleString = regEX.Replace(pTEXT, "$3") >A,WXzAK}S  
            TitleNo = regEX.Replace(pTEXT, "$1") *>'R R<  
            Exit Sub E+1j3Q;  
        End If G>RYQ{O  
         CLkVe  
        '全角或半角括号中的阿拉伯数字 x b0+4w|  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" }\0"gM  
        If regEX.Test(pTEXT) Then ; %Da {  
            ParaType = "四级标题" xY'g7<})$  
            regEX.Execute (pTEXT) %xZ.+Ff%  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") _@OYC<  
            TitleString = regEX.Replace(pTEXT, "$5") /3TorB~Y  
            TitleNo = regEX.Replace(pTEXT, "$2") kN$70N7I;  
            Exit Sub nIi_4=Z  
        End If xRY5[=97  
         Fp]8f&l8  
        '表格名称 kx=AX*I  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" 4a @iR2e  
        If regEX.Test(pTEXT) Then 654%X(:q  
            ParaType = "表格标题" P~qVr#eU  
            regEX.Execute (pTEXT) Gj ^bz'2  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) kTk?[BK  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) bp$jD   
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) | fI%L9  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 V[xy9L[#  
            Exit Sub :> q?s  
        End If )[K3p{4  
         G2^DukK.  
        '图片名称 j d8 1E  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" =5|5j!i=q  
        If regEX.Test(pTEXT) Then ~Op1NE  
            ParaType = "图片标题" rOD KM-7+  
            regEX.Execute (pTEXT) @iP6 N  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") PjP%,-@1  
            TitleString = regEX.Replace(pTEXT, "$3") >Qx#2x+  
            TitleNo = regEX.Replace(pTEXT, "$1") ; p_X7N  
            Exit Sub u=l(W(9=  
        End If m5p~>]}fYF  
         y^A $bTQq  
        '参考文献 {;}8Z$  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 L,D>E  
        If regEX.Test(pTEXT) Then f!J^vDl  
            ParaType = "文献条目" 8 KkpXaz  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") ". 0W8=  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") `/AzX *`  
            Exit Sub ,pASjFWi  
        End If +i>q;=~  
         YiCDV(prT  
        prfx = Left(pTEXT, 2) h[8y$.YsC  
        If prfx = "注:" Or prfx = "注:" Then \fz j fZ1n  
            ParaType = "图表注解" =@w:   
            Exit Sub @iRVY|t/  
        End If []]3"n  
         |d3agfS[n  
         z )pV $  
        ParaType = "正文" `@e H4}L*  
         "XY?v8*c  
    End With l =yHx\  
End Sub fA8+SaXW%  
w?tKL0c  
Sub ConvertListToOrdinary() /)I9+s#q9o  
    Dim st As Paragraph 3-R3Qlr  
    With ActiveDocument X2uX+}h*tA  
        For i = .Paragraphs.Count To 1 Step -1 hjG1fgEj  
            Set st = .Paragraphs(i) 3PA'Uk"5Z  
            lst = st.Range.ListFormat.ListString >" .qFn g  
            If lst <> "" Then u7=[~l&L  
                st.Range.ListFormat.RemoveNumbers R,\ r{@yrz  
                st.Range.InsertBefore lst & " " LNZ#%R~r  
            End If O$H150,Q  
        Next ~tLR  
    End With 1;P\mff3Y  
    Set st = Nothing _5T7A><q<  
End Sub *02( J  
HIq1/)  
Private Sub UserForm_Activate() V"p<A  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" <C$<(Dw5  
    Me.lbTotal.Font.Bold = True ??m7xH5u1  
    Me.txtStatus.Visible = False 4PWr;&  
    Me.cmdCheck.Enabled = True t4IJ%#22  
]p!J]YV ]0  
End Sub 8[C6LG  
! -c*lb  
MP,*W}@  
Sub CheckSuperScript() Y2X1!Em>B  
    Selection.Find.ClearFormatting jVINc=o  
    Selection.Find.Replacement.ClearFormatting {Pb^Lf >  
    With Selection.Find &FrB6 y  
        .Text = "[【\[[〖](*)[】\]〗]]" I5L7BTe  
        .Replacement.Text = "[\1]" `0^i #  
        .Replacement.Font.Superscript = True C' ._}\nX  
        '.Replacement.Font.Color = wdColorBlue n{t',r50  
        .Forward = True vs. uq  
        .Wrap = wdFindContinue 1,j9(m2  
        .FORMAT = True _o.Z`]  
        .MatchCase = False +I<Sq_-  
        .MatchWholeWord = False ^PQV3\N  
        .MatchByte = False ]K7  64}  
        .MatchAllWordForms = False %jxuH+L   
        .MatchSoundsLike = False [!&k?.*;<  
        .MatchWildcards = True OD]J@m  
    End With dNQ Sbp  
    Selection.Find.Execute Replace:=wdReplaceAll JC"K{ V{  
End Sub M: "ci;*$  
X6.O ;  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) %d0S-.  
    bContinue = False 17cW8\  
    Set regEX = Nothing ^eW.hNg  
End Sub uB1!*S1f  
sPg6eAd~?  
Sub CeateOrModifyStyle() ?i~/gjp  
' C.E> )  
' Y/0O9}hf  
Dim stl As Style hzLGmWN2j8  
     Fw9``{4w  
    Options.Pagination = False $Jm2,Yv  
     &%X Jf~IQ  
    On Error Resume Next :*@|"4  
    For Each stl In ActiveDocument.Styles gJ.6m&+  
        stl.Delete ge?-^s4M  
    Next kkBU<L2  
    On Error GoTo 0 ? sW`**j  
     n6 G&^Oj  
    Set stl = Nothing V@:=}*E  
     > bF!Y]H  
    DoEvents XQOprIJ U  
    On Error Resume Next ?Q)Z..7  
     i8Y gG0[)  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph udGGDH  
     C/waH[Yzan  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph k_n{Mss'9  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph Z5Ihc%J^  
     l _ O~v?  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph LtztjAm.  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph rhTk}2@h  
     ~Ls I<z  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph LH#LBjOZk  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph {,FeNf46  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph " B {0-H+  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph :WIf$P?X  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph 5"am> $rh  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph f*vk1dS:*3  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph AtlR!I EUb  
     X-$t d~r  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph p qN[G=0  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph %GbPrlu  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph 9'q/&uH  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph K=x1m M+RK  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph .p9h$z^  
     hZWK5KwT  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph F[=lA"F^  
    On Error GoTo 0 rp#*uV9;  
    DoEvents )95yV;n   
     }AW)R&m  
    'BaseStyle a{HgIQg_>R  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False :5M}Iz7  
    With ActiveDocument.Styles("BaseStyle").Font xqWrW)  
        .NameFarEast = "宋体" R6Mxdm2P}  
        .NameAscii = "Times New Roman" ^3|$wB=  
        .NameOther = "宋体" m]d6@"Z.  
        .Size = 10.5 4sBoD=e  
        .Bold = wdUndefined aRKRy  
        .Italic = wdUndefined ff1B)e  
        .Subscript = wdUndefined j!MA]0lTM  
        .Subscript = wdUndefined }8M`2HMFR  
         R9/xC7l@  
        .Underline = wdUnderlineNone %]0U60  
        .UnderlineColor = wdColorAutomatic S1juAV=  
        .StrikeThrough = False k^5R f  
        .DoubleStrikeThrough = False eBTedSM?t  
         ~|{)h^]@  
        .Outline = False +N$7=oGC  
        .Emboss = False = )l:^+q  
        .Shadow = False L*01l"5  
        .Hidden = False G=!bM(]R~  
        .SmallCaps = False e'Us(]ZO  
        .AllCaps = False $a*Q).^  
        .Color = wdColorAutomatic o>;0NF| }  
        .Engrave = False 0nz@O^*g(  
        .Scaling = 100 D 2:a  
        .Kerning = 1 ,XG|oo -  
        .Animation = wdAnimationNone pt%~,M _  
        .DisableCharacterSpaceGrid = False G\N"rG=  
        .EmphasisMark = wdEmphasisMarkNone (vsk^3R[6  
    End With R}X_2""  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat kqigFcz!Y  
        .LeftIndent = 0 C.)&FW2F_  
        .RightIndent = 0 3ZL7N$N}7  
        .SpaceBefore = 0 >?W;>EUH  
        .SpaceBeforeAuto = False Z*(! `,.bB  
        .SpaceAfter = 0 liw 9:@+V  
        .SpaceAfterAuto = False 0 ,Qj:  
         gQd=0"MV  
        .LineSpacingRule = wdLineSpaceSingle ^xw [d}0 S  
        .Alignment = wdAlignParagraphJustify /Np"J  
         p5;,/ |Ft  
        .WidowControl = False N"1x]1'   
        .KeepWithNext = False <Mn7`i  
        .KeepTogether = False ENXW#{N.v  
        .PageBreakBefore = False sx< + *Trl  
        .NoLineNumber = False uM)9b*Vbo  
         K: o|kd  
        .FirstLineIndent = CentimetersToPoints(0) *!]Epb  
        .OutlineLevel = wdOutlineLevelBodyText #X@<U <R  
        .CharacterUnitLeftIndent = 0 \v3> Eo[  
        .CharacterUnitRightIndent = 0 a^\- }4yR  
        .CharacterUnitFirstLineIndent = 0 vYR=TN=Z4  
        .LineUnitBefore = 0 % r   
        .LineUnitAfter = 0 H"GE\  
        .AutoAdjustRightIndent = True 4a.e ,gitf  
        .DisableLineHeightGrid = True Ed&,[rC  
         ]7S7CVDk4  
        .FarEastLineBreakControl = True XBWSO@M'  
        .WordWrap = True >)J47j7{c  
        .Hyphenation = False '"]>`=R  
         [^d6cMEOlc  
        .HangingPunctuation = True Pv %vx U  
        .HalfWidthPunctuationOnTopOfLine = True hW !@$Ph  
        .AddSpaceBetweenFarEastAndAlpha = True ooU Sb  
        .AddSpaceBetweenFarEastAndDigit = True EM 54  
        .BaseLineAlignment = wdBaselineAlignBaseline $F@L$& ~  
    End With *o e0=  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False 9g&)6,<  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll zNr_ W[  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese },EUcVXk  
    ActiveDocument.Styles("BaseStyle").NoProofing = False ?Y6la.b c{  
     :KV,:13`D  
    '一级标题题样式 />^`*e_  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") S5E,f?l  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" zGL<m0C  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False S,Wl)\  
    With ActiveDocument.Styles("QLNU一级标题").Font oF b mz*  
        .NameFarEast = "黑体" C+(Gg^ w  
        .NameAscii = "Arial Black" ?^48Zq6wM  
        .NameOther = "黑体" OwiWnS<  
        .Name = "黑体" 9Ajgfy>  
        .Size = 16              '三号 `k{ff  
        .Bold = True f-v ND'@  
        .Italic = wdUndefined gc2|V6(  
        .Subscript = wdUndefined a[P>SqT4`  
        .Superscript = wdUndefined 3w^J"O/T  
    End With ]i,Mq  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat %<J(lC9,C  
         me[J\MJ;w^  
        .LeftIndent = CentimetersToPoints(0) j&[3Be'pQ  
        .RightIndent = CentimetersToPoints(0) \B>[j e-d  
        .FirstLineIndent = CentimetersToPoints(0) ksOANLRN  
         !/Bw,y ri<  
        .LineSpacingRule = wdLineSpaceSingle H&yFSz}6a  
        .Alignment = wdAlignParagraphCenter (m3I#L  
         %YvSHh;c  
        .WidowControl = True xL39>PB  
        .KeepWithNext = True 7Ysy\gZ&wp  
        .KeepTogether = True \p@nH%@v  
        .OutlineLevel = wdOutlineLevelBodyText !w#ru?L{  
         AYPf)K;%  
        .LineUnitBefore = 0.5 g?A5'o&Yu  
        .LineUnitAfter = 0.5 !: EW21m  
    End With uU[[[ LQq  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False iZ.&q 6  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll Ca5Sc, no  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese }OP%p/eY  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True 34m']n  
    DoEvents 1YIux,2\  
     7\0|`{|R@  
    '二级 m['v3m:  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Y6f+__O  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" dW{o+9nw  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False s9_`Wrg?  
    With ActiveDocument.Styles("QLNU二级标题").Font U8WHE=Kk\h  
        .NameFarEast = "黑体" {b-0 _  
        .NameAscii = "Arial Narrow" = JbdsYI(  
        .NameOther = "黑体" M89-*1  
        .Name = "黑体" <^*+8{*  
        .Size = 15        '小三号 )kL` &+#>  
        .Bold = False C;)Xwm>e  
        .Outline = False Mdltzy=)L  
        .Italic = wdUndefined 9-a2L JI  
        .Subscript = wdUndefined =Y]'5cn{  
        .Superscript = wdUndefined ^aD/ .  
    End With .sJys SA\  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat k;K> ,$ F  
        .LeftIndent = CentimetersToPoints(0) =hugnX<9  
        .RightIndent = CentimetersToPoints(0) [!:-m6 1  
        .FirstLineIndent = CentimetersToPoints(0) B'KXQa-$O  
         C6D=>%uY  
        .LineSpacingRule = wdLineSpaceSingle fUp|3bBE  
        .Alignment = wdAlignParagraphLeft 36^C0uNdX  
         D,GPn%Wqi  
        .WidowControl = True CFkW@\]  
        .KeepWithNext = True anz9lG G#  
        .KeepTogether = True e"o6C\c  
        .PageBreakBefore = False L.T gJv43  
        .OutlineLevel = wdOutlineLevelBodyText "S B%02  
         1%/ NL?8#  
        .LineUnitBefore = 0.5 s;-78ejj7  
        .LineUnitAfter = 0.5 @;m@Luk  
         vh. Wm?qQ  
    End With FU]8.)`G  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False +9 16ZPk  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll `b^ #quz  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese y?Hj %,  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True s.p1L  
    DoEvents \~z?PA.$  
     5Aa31"43n  
    '三级标题样式 wv7p,9Z[  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") x  tYV"  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" *@ <8&M9x  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False 'XP>} m  
    With ActiveDocument.Styles("QLNU三级标题").Font V`R)#G>IH%  
        .NameFarEast = "宋体" Jv 6nlK`  
        .NameAscii = "Times New Roman" A"\P&kqMV  
        .NameOther = "黑体" i3M?D}(Bs  
        .Name = "黑体" j1;_w  
        .Size = 14               '四号 ')P2O\YS  
        .Bold = False {m_A1D/_  
        .Outline = False 9*-pden l  
        .Italic = wdUndefined \'s$ZN$k  
        .Subscript = wdUndefined !!-}ttFA  
        .Superscript = wdUndefined "UhK]i*@l  
    End With _gPVmGG  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat nCffBc  
        .LeftIndent = CentimetersToPoints(0)  e8XM=$@  
        .RightIndent = CentimetersToPoints(0) @pqY9_:P1  
        .FirstLineIndent = CentimetersToPoints(0) ^(dGO)/  
         Xc8= 2n  
        .LineSpacingRule = wdLineSpaceSingle vB{; N  
        .Alignment = wdAlignParagraphLeft &A Qg'|  
         Nh1e1m?  
        .WidowControl = True k7yv>iN  
        .KeepWithNext = True WIEx ' {  
        .KeepTogether = True ;B|^2i1Wi  
        .PageBreakBefore = False t`<}UWAH+  
        .OutlineLevel = wdOutlineLevelBodyText @O}IrC!bf  
         Gs_*/E7,  
        .CharacterUnitLeftIndent = 0 G!!-+n<  
        .CharacterUnitRightIndent = 0 gJFR1  
        .CharacterUnitFirstLineIndent = 2 P<cMP)+K  
         XI@6a9Uk  
        .LineUnitBefore = 0.5 ]= ?X*,'  
        .LineUnitAfter = 0 w&wA >q>&  
    End With ueWR/  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False gtaV6sD  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll `uIx/.L  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese bxd3  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True zqHpT^B?  
    DoEvents (aDb^(]>  
     2A*X Hvwb  
    '四级标题样式 Wz6]*P`qv  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 1 AV1d%F  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" B^8 ZoF  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False ||{T5E-.F  
    With ActiveDocument.Styles("QLNU四级标题").Font 3:]{(@J  
        .NameFarEast = "宋体"  PZ   
        .NameAscii = "Times New Roman" A6?qIy  
        .NameOther = "宋体" c W81  
        .Name = "宋体" cS"f  
        .Size = 12               '小四号 J^+_8  
        .Bold = True };|!Lhl+  
        .Outline = False nV!2Dfd  
        .Italic = wdUndefined MO));M)  
        .Subscript = wdUndefined TRs[~K)n  
        .Superscript = wdUndefined  D rF  
    End With 'L>&ZgLy  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat O3^98n2  
         86;+r'3p.  
        .LeftIndent = CentimetersToPoints(0) L\/u}]dPQ  
        .RightIndent = CentimetersToPoints(0) m%e^&N#%6r  
        .FirstLineIndent = CentimetersToPoints(0) {\vI9cni|"  
         A0cM(w{7_  
        .LineSpacingRule = wdLineSpaceSingle jgo e^f  
        .Alignment = wdAlignParagraphLeft kP!%|&w;  
         4c5^7";P  
        .WidowControl = True + >T7Q`64  
        .KeepWithNext = True fs2m N1  
        .KeepTogether = True V]l&{hl,  
        .PageBreakBefore = False b{~fVil$y  
        .OutlineLevel = wdOutlineLevelBodyText Ph(]?MG\_  
         @!z$Sp=  
        .CharacterUnitLeftIndent = 0 7>nhIp))  
        .CharacterUnitRightIndent = 0 bDciZ7[b  
        .CharacterUnitFirstLineIndent = 2 763E 6,7  
         e={k.y }x}  
        .LineUnitBefore = 0 8Zcol$XS'  
        .LineUnitAfter = 0 n~1tm  
         pchQ#GU  
    End With MuDFdbtR  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False 2x7(}+eD  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll }Kv h`@CiJ  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese & cM u/}  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True +G*"jI8W  
    DoEvents XAjd %Xv<  
     `FZ(#GDF  
    '正文校式 y;,=a jrF  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") i&A{L}eCr:  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" b\SXZN)Be  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False ]4Nvh\/P9  
    With ActiveDocument.Styles("QLNU正文").Font 8fJR{jD(s  
         kJ%{ [1fr  
        .NameFarEast = "宋体" ]%gp?9wy  
        .NameAscii = "Times New Roman" mV6#!_"  
        .NameOther = "宋体" NEq t).   
        .Name = "宋体" @Ufa -h5"(  
         eP V-yy  
        .Size = 12               '小四号 4mEzcwo'  
         !7A"vTs  
        .Bold = wdUndefined jo 7Hyw!g  
        .Italic = wdUndefined =]=B}L `  
        .Subscript = wdUndefined /HB+ami,  
        .Superscript = wdUndefined lTa1pp Zw  
         o\_ Td  
        .Outline = False C/mg46 v2W  
        .Emboss = False 7!O^;]+,  
        .Shadow = False gbYLA a  
        .Hidden = False I#i?**  
         ry$tK "v/  
        .DisableCharacterSpaceGrid = True GwgFi@itN  
    End With 4^ c!_K&&  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat Jz~+J*r;]A  
         2-B6IPeI  
        .LeftIndent = CentimetersToPoints(0) sx-EA&5-9k  
        .RightIndent = CentimetersToPoints(0) 3x04JE3!  
        .FirstLineIndent = CentimetersToPoints(0)  l\K%  
         DY)D(f/&3  
        .LineSpacingRule = wdLineSpaceExactly 6?53q e  
        .LineSpacing = 20 kR<xtHW  
        .Alignment = wdAlignParagraphLeft 9T8|y]0F  
         0L!er%GM  
        .WidowControl = False j`>?"1e@x  
        .KeepWithNext = False 8B}'\e4i  
        .KeepTogether = False Wr]O  
        .PageBreakBefore = False fm3(70F\  
        .Hyphenation = False l_^T&xq8  
         mZ`1JO9  
        .OutlineLevel = wdOutlineLevelBodyText ]XmQ]Yit  
         ^dFh g_GhF  
       zt7_r`#z  
        .CharacterUnitLeftIndent = 0 Q{H17]W  
        .CharacterUnitRightIndent = 0 Z 6 tE{/  
        .CharacterUnitFirstLineIndent = 2 }*?yHJ3  
         J9g|#1G  
        .LineUnitBefore = 0 hmc\|IF`  
        .LineUnitAfter = 0 @)9REA(U  
        .SpaceBefore = 0 3CA|5A.Pa  
        .SpaceAfter = 0 i?ZA x4D  
         77+ | #< J  
        .DisableLineHeightGrid = True x^z dTMNhw  
    End With Z1VC5* K  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False IM@"AD52a  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll t[%x}0FP-F  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese gsnP!2cR  
    ActiveDocument.Styles("QLNU正文").NoProofing = True uK$=3[;U/!  
    DoEvents [<_"`$sm=  
     `-~`<#E[  
    '图片段落样式 6kP7   
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") y:qx5Mi  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" 5iP8D<;o5  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False A ?#]s  
    With ActiveDocument.Styles("QLNU图片段落").Font WLE%d]'%M  
        .Size = 12               '小四号 V]r hr  
        .Italic = wdUndefined (F/HU"C  
        .Subscript = wdUndefined +c-6#7hh  
        .Superscript = wdUndefined ?lF mXZy`  
    End With ^Y$QR]  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat H":/Ckok  
         N2ni3M5v  
        .LeftIndent = CentimetersToPoints(0) \s,Iz[0Vfz  
        .RightIndent = CentimetersToPoints(0) EY So=  
        .FirstLineIndent = CentimetersToPoints(0) LEWa6'0rq  
         YKc>6)j  
        .LineSpacingRule = wdLineSpaceSingle F;pTXt}?5  
        .Alignment = wdAlignParagraphCenter uK"^*NEC';  
        .KeepWithNext = True qpoquWZ  
        .OutlineLevel = wdOutlineLevelBodyText ^gd<lo g  
         g+e:@@ug  
        .CharacterUnitLeftIndent = 0 xcHen/4X  
        .CharacterUnitRightIndent = 0 7 n\mj\  
        .CharacterUnitFirstLineIndent = 0 tJff+n>  
         XFtO mY  
        .LineUnitBefore = 0 : aHcPc:  
        .LineUnitAfter = 0 #]@9qPyn  
    End With `+oV/:Q3  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False `GP Q((la  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll P=c?QYF  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese k69kv9v@J  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True ])eOa%  
    DoEvents $+7ci~gs  
     F|,6N/;!W  
     pfR"s:#  
    '第X章 ^)|&|  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") T0;u+$  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" }6<)yW}U  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False * nLIXnm  
    With ActiveDocument.Styles("QLNU章节标题").Font kmIoJH5  
        .NameFarEast = "黑体" =D{B}=D\IM  
        .NameAscii = "Arial Black" y7>iz6N  
        .NameOther = "Arial Black" l(gJLjTH%  
        .Name = "黑体" :=y0'f V(@  
        .Size = 16 -<xyC8 $^$  
        .Bold = True -RGPt D@  
        .UnderlineColor = wdColorAutomatic w %;hl#s  
        .Outline = False j+ $ M?Z^  
        .Italic = wdUndefined 7LG+$LEz  
        .Subscript = wdUndefined dl:-k  r8  
        .Superscript = wdUndefined hXNH"0VCV  
        .Scaling = 100 Jms=YLIAA  
        .DisableCharacterSpaceGrid = True 5bXHz5i  
    End With ; {Xy`{Cg!  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat q1STRYb   
        .LineSpacingRule = wdLineSpaceSingle = PV/`I_h  
        .Alignment = wdAlignParagraphCenter Bw6L;Vu  
        .WidowControl = True )Ea8{m!   
        .KeepWithNext = True {wcO[bN  
        .KeepTogether = True y">fN0{<  
        .PageBreakBefore = True ]\7lbLv  
        .OutlineLevel = wdOutlineLevelBodyText 4b]_ #7Qm  
         'm[6v}  
        .LeftIndent = CentimetersToPoints(0) }X.>4\B5  
        .RightIndent = CentimetersToPoints(0) "2%>M  
        .FirstLineIndent = CentimetersToPoints(0) D@#0dDT  
         +yCTH  
        .CharacterUnitLeftIndent = 0 6nc0=~='$  
        .CharacterUnitRightIndent = 0 uWh|C9Y!A  
        .CharacterUnitFirstLineIndent = 0 `-o5&> 'nf  
         Vz'HM$  
        .LineUnitBefore = 1  O)OUy  
        .LineUnitAfter = 0.5 Mxo6fn6-46  
         R'L?Xn}3  
        .AutoAdjustRightIndent = False 7 %3<~'v[  
        .DisableLineHeightGrid = True o_sQQF  
        .FarEastLineBreakControl = True #Gd7M3  
        .WordWrap = True 3&$Nd  
    End With m*`cuSU|o  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False l nfm0  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll p'gb)nI  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese {$0&R$v3  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True WK*S4c  
    DoEvents -]/7hN*v  
     ]Dh1~k.Kp  
    '表格标题 _AprkI_  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") kymn)Ea  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" Cw%BZ  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False \2j|=S6  
    With ActiveDocument.Styles("QLNU表格标题").Font 2yvVeo&3  
        .NameFarEast = "楷体" MA$Xv`6I\  
        .NameAscii = "Arial" t=Jm|wJnUA  
        .Name = "楷体" Nl { 7  
        .Size = 10.5 (|dPeix|  
        .Bold = True ,7<DGI_y  
        .Underline = wdUnderlineNone <FQFv IKg  
        .Italic = wdUndefined Vg{Zv4+t  
        .Subscript = wdUndefined +ZclGchw  
        .Superscript = wdUndefined 2)=la%Nx  
        .Color = wdColorAutomatic 2iM]t&^<+  
    End With ]bxBo  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat vT@*o=I  
         cD.afy  
        .LineSpacingRule = wdLineSpaceSingle q8A;%.ZLG  
        .Alignment = wdAlignParagraphCenter E$SYXe[,  
        .KeepWithNext = True J([Y4Em5  
        .KeepTogether = True rebnV&-  
        .OutlineLevel = wdOutlineLevelBodyText |BGB60}]f  
         t 2x2_;a  
        .LeftIndent = CentimetersToPoints(0) )R6h 1  
        .RightIndent = CentimetersToPoints(0) +@], JlYf  
        .FirstLineIndent = CentimetersToPoints(0) HQ /D)D  
         X* 4C?v  
        .CharacterUnitLeftIndent = 0 )qSjI_qt5  
        .CharacterUnitRightIndent = 0 W4Z8U0co  
        .CharacterUnitFirstLineIndent = 0 '3<T~t  
         TrCut 2  
        .LineUnitBefore = 1 T*o!#E.  
        .LineUnitAfter = 0 !0-KB#  
         u00w'=pe)  
    End With 5PY4PT=G  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False `PY=B$?{4  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll C)UL{n  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese D/[;Y<X#V  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True VAW:h5j2@  
    DoEvents Me 5Xd|  
|7%has3"  
    '表格首行 tTEw"DL_-  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") nA*U drcn  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False .*}!XKp0j  
    With ActiveDocument.Styles("QLNU表格首行").Font Cv[_ N%3[  
        .NameFarEast = "楷体" F $/7X~*  
        .NameAscii = "Times New Roman" *^y,Gg/  
        .Name = "楷体" M$u.lI  
        .Size = 9 +Vv+<M  
        .Bold = True [~NJf3c "  
        .Underline = wdUnderlineNone H!'Ek[s+  
        .Italic = wdUndefined "m#17J_  
        .Subscript = wdUndefined hGU  m7  
        .Superscript = wdUndefined uB=DC'lkg  
    End With ,J6t 1V  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat 0oK_uY 4g  
        .LineSpacingRule = wdLineSpaceSingle ,V^2 Oa  
        .Alignment = wdAlignParagraphCenter 35Ro8 5j  
         A_e&#O  
        .LeftIndent = CentimetersToPoints(0) 8:t!m>(*  
        .RightIndent = CentimetersToPoints(0) QmgO00{  
        .FirstLineIndent = CentimetersToPoints(0) |N5r_V  
         ~ =GwNo_  
         QM('bbN  
        .CharacterUnitLeftIndent = -0.5 &?[g8A  
        .CharacterUnitRightIndent = -0.5 []lMv ZW  
        .CharacterUnitFirstLineIndent = -0.5 `T\_Wje(  
         h* 72 f/#  
        .LineUnitBefore = 0 3</W}]$)p  
        .LineUnitAfter = 0 =jEVHIYt  
        .SpaceBefore = 0 A"tE~m;"7  
        .SpaceAfter = 0 p40;@gUug  
         nsL"'iQ  
    End With m!5MGq~  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False C5Vlqc;  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll zMke}2  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese !78P+i  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True %1mIngW=g  
    DoEvents vh"wXu  
[][ze2+b  
    '表格内容 ayYl3  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") ?K\r-J!Y  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False ?B+]Ex(\B,  
    With ActiveDocument.Styles("QLNU表格内容").Font ; ,Nvg6c  
        .NameFarEast = "楷体" < ]"Uy p  
        .NameAscii = "Times New Roman" d\ I6Wn  
        .Name = "楷体" j> 8S,b=%  
        .Size = 9 3AcS$.G  
        .Bold = False .oS[ DTn5S  
        .Underline = wdUnderlineNone "D,}|  
        .Italic = wdUndefined F/SYmNp  
        .Subscript = wdUndefined 8]K+,0m6  
        .Superscript = wdUndefined 63E)RR_Lh  
    End With VUon>XQ G  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat VTUSM{TC  
        .LineSpacingRule = wdLineSpaceSingle s"UUo|hM  
        .Alignment = wdAlignParagraphCenter 23d*;ri5  
         l{I.l  
        .LeftIndent = CentimetersToPoints(0) $^e(?P q  
        .RightIndent = CentimetersToPoints(0) Sx:JuK@  
        .FirstLineIndent = CentimetersToPoints(0) R]&lVXyH  
         lY&Sx{-  
        .CharacterUnitLeftIndent = -0.5 \G0YLV~>P  
        .CharacterUnitRightIndent = -0.5 tWyl&,3?1  
        .CharacterUnitFirstLineIndent = -0.5 =;"eZ  
        .LineUnitBefore = 0 CJjT-(a  
        .LineUnitAfter = 0 !J&UO/q.  
        .SpaceBefore = 0 ~9y/MR  
        .SpaceAfter = 0 `]`S"W7&  
    End With kyi"U A82  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False CKnPMvmz  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll -zg 6^f_pW  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese 4|&_i)S-Y  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True +H:}1sT;n  
    DoEvents gy1R.SN  
XuoyB{U  
    '图片标题 ^ Paf-/  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") L\hid /NL  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" 00B,1Q HP  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False o2D;EUsNX  
    With ActiveDocument.Styles("QLNU图片标题").Font wP7 E8'  
        .NameFarEast = "楷体" uZM%F)  
        .NameAscii = "Times New Roman" aX,6y1  
        .Name = "楷体" X2|&\G9c  
        .Size = 10.5 %Rt 5$+dNT  
        .Bold = True {[4.<|26  
        .Underline = wdUnderlineNone C{:U<q  
        .Italic = wdUndefined wRdN(`;v  
        .Subscript = wdUndefined 5dX /<  
        .Superscript = wdUndefined `>4"i+NFF8  
        .Outline = False EfB.K}b^  
        .Shadow = False 99\lZ{f(  
        .Color = wdColorAutomatic -FF#+Z$  
    End With e45)t}'  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat : HM~!7e  
        .LineSpacingRule = wdLineSpaceSingle m*wDJEKo  
        .Alignment = wdAlignParagraphCenter 6u'E}hAx|  
         \sAkKPI  
        .KeepWithNext = wdUndefined H|S hi/  
        .KeepTogether = True ]eUD3WUe>q  
        .OutlineLevel = wdOutlineLevelBodyText "S+AkLe(  
         ]z!Df\I  
        .LeftIndent = CentimetersToPoints(0) 0GW69 z  
        .RightIndent = CentimetersToPoints(0) Mp QsM-iW  
        .FirstLineIndent = CentimetersToPoints(0) X?YT>+g;  
         EQe$~}[  
        .CharacterUnitLeftIndent = 0 jR9;<qT/  
        .CharacterUnitRightIndent = 0 'l<Oj&E  
        .CharacterUnitFirstLineIndent = 0 7g5Pc_  
         )<%CI#s#  
        .LineUnitBefore = 0 #qu;{I#W3  
        .LineUnitAfter = 0 QFK'r\3 pU  
    End With b")O#v.  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False $O&N  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll _?]W%R|  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese Q\W)}  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True foUBMl  
    DoEvents T/0cPn0>  
 1p K(tm  
    '目录项 riF-9 %i  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") $ y(Qdb  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" v .ow`MO=;  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False e(?1`1  
    With ActiveDocument.Styles("QLNU目录项").Font t33\f<e  
        .NameFarEast = "黑体" 194n   
        .NameAscii = "Times New Roman" G6}!PEwM  
        .NameOther = "Times New Roman" Py?e+[cN  
        .Name = "黑体" bXvriQ.UH  
        .Size = 10.5 iGSF5S  
        .Bold = False %ikPz~(  
        .Italic = wdUndefined 'C=(?H)M  
        .Underline = wdUnderlineNone 1+"d-`'Z2O  
        .Color = wdColorAutomatic Scug wSB  
        .Superscript = wdUndefined n<P&|RTZ  
        .Subscript = wdUndefined 9K;g\? 3  
    End With Q;ZV`D/FA  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat 8`s*+.LI!  
         GTi=VSGqF  
        .LineSpacingRule = wdLineSpaceSingle IB$i ^  
        .Alignment = wdAlignParagraphLeft XqU0AbQ  
         g[' 7$  
        .WidowControl = False DR @yd ,  
        .KeepWithNext = False Aj]/A  
        .KeepTogether = False HWIn.i j  
        .PageBreakBefore = False 1g,Ofr  
        .NoLineNumber = False guVuO  
        .OutlineLevel = wdOutlineLevelBodyText 6B]i}nFH{+  
          f,kV  
        .LeftIndent = CentimetersToPoints(0) Wv%F^(R7  
        .RightIndent = CentimetersToPoints(0)  Ci 'V  
        .FirstLineIndent = CentimetersToPoints(0) <00nu'Ex1v  
         $VjMd f  
        .CharacterUnitLeftIndent = 0 :]4s ;q:m  
        .CharacterUnitRightIndent = 0 }~Do0XUH  
        .CharacterUnitFirstLineIndent = 0 /oZvm   
         uGn BlR$}  
        .LineUnitBefore = 0 1h|qxYO  
        .LineUnitAfter = 0 XTA:Y7"O  
    End With <I*N=;7  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False @HTs.4  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll DxD\o+:r  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot }+}Cl T  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese L{ GlDoFk  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True /l$fQ:l  
    DoEvents vT MCZ+^g  
     7yJE+o'  
    '参考文献 i1X!G|Awfv  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") 3kh!dL3D  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" RD0*]4>]  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False D-D8La?0p  
    With ActiveDocument.Styles("QLNU参考文献").Font mN l[D  
        .NameFarEast = "宋体" U# I PYyV  
        .NameAscii = "Times New Roman" jd2 p~W  
        .NameOther = "Times New Roman" y<* \D_J  
        .Name = "Times New Roman" ([|^3tM  
        .Size = 12 mq}U Uk@  
        .Bold = False L8 Q/!+K  
        .Italic = wdUndefined MskO Pg  
        .Subscript = wdUndefined Rqbz3h~  
        .Superscript = wdUndefined Lr20xm  
        .Underline = wdUnderlineNone G0kF[8Am  
        .UnderlineColor = wdColorAutomatic TD-B\ @_  
        .Color = wdColorAutomatic Q,:h`%V  
        .Engrave = False _>)@6srC  
    End With wz@[rMf  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat R%~~'/2V  
         oB@)!'  
        .LineSpacingRule = wdLineSpaceExactly @=} NMoNH  
        .LineSpacing = 16 MR: H3  
        .Alignment = wdAlignParagraphLeft 9ei<ou_s  
        .WidowControl = False qY!LzKM0  
        .KeepWithNext = False 'SXLnoeTa  
        .KeepTogether = False Zx`/88!x[  
        .PageBreakBefore = False oGyoU#z#  
        .OutlineLevel = wdOutlineLevelBodyText I FvigDj?  
         c}!`tBTm  
        .LeftIndent = CentimetersToPoints(0) 9=FH2|Z  
        .RightIndent = CentimetersToPoints(0)  .76Z  
        .FirstLineIndent = CentimetersToPoints(0) -7XaS&.4  
         iaQfxQP1w%  
        .CharacterUnitLeftIndent = 0 eoFG$X/PO  
        .CharacterUnitRightIndent = 0 _dECAk &b  
        .CharacterUnitFirstLineIndent = -2 WZjR^ 6  
         ' s5H_ah  
        .LineUnitBefore = 0 {MN6JGb|'  
        .LineUnitAfter = 0 Pqj\vdzx  
        .SpaceBefore = 0 V)4?y9xZv  
        .SpaceAfter = 0 tk)}4b^\%j  
         V3T.EW  
    End With S|;}]6p  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False SmRFxqtN  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll C?MKb D=K  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS oiM['iDK  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True N"0>)tG  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese ' R2*3<  
    DoEvents F&#I[]#   
*y(UI/c  
    ' {u0sbb(  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") IF@vl  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" APJFy@l}  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False \rT>&o .i  
    With ActiveDocument.Styles("QLNU论文题目").Font cmYzS6f,7  
        .NameFarEast = "黑体" VZe'6?#  
        .NameAscii = "Arial Black" m&#D~  
        .NameOther = "Arial Black" >p#_ L^oZ%  
        .Name = "Arial Black" >s!k"s,  
        .Size = 16 ONZ(0H{ 1$  
        .Bold = False U6o]7j&6  
        .Italic = wdUndefined [S-#}C?~  
        .Superscript = wdUndefined e|>@ >F]K  
        .Subscript = wdUndefined Z2-tDp(I  
        .Underline = wdUnderlineNone \ [M4[Qlq  
        .UnderlineColor = wdColorAutomatic 4#t=%}  
        .Color = wdColorAutomatic KZ1m 2R}'  
,&s"f4Mft  
    End With !b+!] 2~g}  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat 6ZwQ/~7H  
        .LineSpacingRule = wdLineSpaceSingle IGo5b-ds  
        .Alignment = wdAlignParagraphCenter T!pA$eE  
        .WidowControl = True KNN$+[_;H4  
        .KeepWithNext = True ug'^$geM  
        .KeepTogether = True ILiOEwHS7F  
        .PageBreakBefore = True !HtW~8|:  
        .NoLineNumber = False 4/_! F'j  
        .OutlineLevel = wdOutlineLevelBodyText |Bv,*7i&  
         [g}0.J`_  
        .LeftIndent = CentimetersToPoints(0)  ;5  
        .RightIndent = CentimetersToPoints(0) In;P33'p  
        .FirstLineIndent = CentimetersToPoints(0) 5Vdy:l  
         Bk@EQdn  
        .CharacterUnitLeftIndent = 0 #s#BYbF  
        .CharacterUnitRightIndent = 0 Jh36NE8r  
        .CharacterUnitFirstLineIndent = 0 sk_xQo#Y 3  
         hQz1zG`z7  
        .LineUnitBefore = 1 ,1.Td=lY$  
        .LineUnitAfter = 1 h`eHoKJ#w  
         Q \S Sv;3_  
        .BaseLineAlignment = wdBaselineAlignAuto UZ6y3%G3^  
    End With '*Tt$0#o  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False * bhb=~  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll c>T)Rc  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS (dy:d^  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True Eg2SC?5  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese 0bD\`Jiv,  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True eht>4)  
    DoEvents 5/T#>l<  
     rmFcSolt,f  
    '中文摘要 uJ fXe  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") 7AqbfLO  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" iSfRo 31  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False C1qlB8(Wh>  
    With ActiveDocument.Styles("QLNU中文摘要").Font X eslOsHh  
        .NameFarEast = "宋体"  @k#xr  
        .NameAscii = "Times New Roman" bA'N2~.,  
        .NameOther = "Times New Roman" l>hvWK[ ?I  
        .Name = "Times New Roman" yigq#h^  
        .Size = 12 ><. *5q  
        .Bold = wdUndefined P)hGe3  
        .Superscript = wdUndefined Okd.  ~  
        .Subscript = wdUndefined ~]9EhC'l  
        .Italic = wdUndefined yn20*ix{  
        .Underline = wdUnderlineNone t! u>l  
        .UnderlineColor = wdColorAutomatic 3qDbfO[  
        .Color = wdColorAutomatic kw7E<a F!  
    End With f )V6VNW.3  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat &m]jYvRc  
        .LineSpacingRule = wdLineSpaceExactly }AiF 7N0  
        .LineSpacing = 20 2z A xGX  
        .Alignment = wdAlignParagraphLeft +D[C.is>]}  
         >z% WW&Z'  
        .WidowControl = False b2j ~"9  
        .KeepWithNext = False YY$Z-u(  
        .KeepTogether = True :~ &#9  
        .PageBreakBefore = False 5^CWF|  
        .NoLineNumber = False ??LE0i  
        .OutlineLevel = wdOutlineLevelBodyText S)'&+HamI  
         RSw; b.t7  
        .LeftIndent = CentimetersToPoints(0) L)S V?FBx  
        .RightIndent = CentimetersToPoints(0) AM#s2.@  
        .FirstLineIndent = CentimetersToPoints(0) K(?p]wh  
         l<(jm{q?u  
        .CharacterUnitLeftIndent = 0 T-x9IoE  
        .CharacterUnitRightIndent = 0 1=z\,~ b  
        .CharacterUnitFirstLineIndent = 2 aZ|S$-}  
        .LineUnitBefore = 0 ux 17q>G  
        .LineUnitAfter = 0 L$"pk{'  
         bweAmSs  
    End With 3Tc90p l*t  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False ytV[x  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll 83aWMmA(1  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS ! t{  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True 7 9k+R9m  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese !9.\A:G  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True <^W5UU#Pg  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete {Q`Q2'@  
    DoEvents A 6E~GJa  
     [By|3 bI  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") H|MAbx 7  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" G,1g~h%I$  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False _Kh8 <$h  
    With ActiveDocument.Styles("QLNU英文标题").Font A!uiM*"W  
        .NameFarEast = "黑体" v-"nyy-&Z  
        .NameAscii = "Arial Narrow" Df]*S  
        .Name = "Arial Narrow" r Cz,XYV  
        .Size = 16 cFq2 6( e  
        .Bold = True 7 <K=G2_:  
        .Bold = wdUndefined 2E!Q5 l!j  
        .Superscript = wdUndefined {d)L0KXK  
        .Subscript = wdUndefined \J;]g\ &I"  
        .Italic = wdUndefined hM=X# ;  
         m%.[|sZ3EM  
        .Underline = wdUnderlineNone gO@LJ  
        .UnderlineColor = wdColorAutomatic rZ.z!10  
        .StrikeThrough = False Id>I.e4  
        .DoubleStrikeThrough = False Zw<<p|{)<  
    End With xK 5~9StP  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat SP>&+5AydX  
        .LineSpacingRule = wdLineSpaceSingle 9T1 - {s R  
        .Alignment = wdAlignParagraphCenter  9/I xh?  
        .WidowControl = True K!2%8Ej,J  
        .KeepWithNext = False 2r]o>X  
        .KeepTogether = False [L ' >  
        .PageBreakBefore = False ta'wX   
        .NoLineNumber = False s"2+H}u   
        .FirstLineIndent = CentimetersToPoints(0) 6?JvvS5  
        .OutlineLevel = wdOutlineLevelBodyText rd=+[:7L  
         S0LaQ<9.  
        .LeftIndent = CentimetersToPoints(0) t\v~ A0  
        .RightIndent = CentimetersToPoints(0) m& D#5C  
        .FirstLineIndent = CentimetersToPoints(0) uU-1;m#N?  
         sWKdqs  
        .CharacterUnitLeftIndent = 0 8.7lc2aX  
        .CharacterUnitRightIndent = 0 I SdB5Va  
        .CharacterUnitFirstLineIndent = 0 M=4b  
         'e$8 IZm  
        .LineUnitBefore = 1 @~&^1%37)  
        .LineUnitAfter = 1 : &~LPmJ  
         o!c~"  
    End With MlW*Tugg  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False Pmd5P:n*,  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll i.KRw6  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS 8_O?#JYi  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True )M"xCO3a  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese KYl!Iw67d  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True ZG~d<kM&8s  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete YTr+"\CkA  
    DoEvents w02C1oGfx  
.&8a ;Q?c  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") ''q#zEf6  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" nV8iYBBym  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False OsRizcgdA  
    With ActiveDocument.Styles("QLNU英文摘要").Font kP^=  
        .NameFarEast = "宋体" _NpxV'E  
        .NameAscii = "Arial" &^Gp  
        .NameOther = "Arial" 2 i NZz  
        .Name = "Arial" dOKe}?}==  
        .Size = 12 SDk^fTV8x  
        .Bold = wdUndefined X/m ~^  
        .Italic = wdUndefined "{2niBx  
        .Superscript = wdUndefined ;0uiO.  
        .Subscript = wdUndefined Blj<|\ igc  
    End With 9g.5:  
     l?Ibq}[~  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat `lt[Q>Z  
         wLvM<p7OX  
        .LineSpacingRule = wdLineSpaceExactly [| N73m,&  
        .LineSpacing = 20 T#[#w*w/  
         {.e^1qE  
        .Alignment = wdAlignParagraphJustify :YLurng/]  
          NfmHa  
        .WidowControl = False 0JqvV  
        .KeepWithNext = False ~]'yUd1gSZ  
        .KeepTogether = False mrr -jo  
        .PageBreakBefore = False n?9FJOqi  
        .NoLineNumber = False "g!ek3w(  
         :-(qqC:  
        .OutlineLevel = wdOutlineLevelBodyText $e{}SQ;fW  
         2R;#XmKS  
        .LeftIndent = CentimetersToPoints(0) +% K~HYN  
        .RightIndent = CentimetersToPoints(0) jx ?"`;a  
        .FirstLineIndent = CentimetersToPoints(0)  }_7   
         .kgt? r  
        .CharacterUnitLeftIndent = 0 .Sv/0&O  
        .CharacterUnitRightIndent = 0 QiJ  
        .CharacterUnitFirstLineIndent = 2 k-)Ls~#+  
         l 3 jlKB  
        .LineUnitBefore = 0 10bv%ZX7  
        .LineUnitAfter = 1 }KEr@h,N  
         'q@vTM'-  
    End With E@AV?@<sc  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False ToD_9i }6  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll |.- Muv  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS %'S[f  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False _N0N #L4M  
    DoEvents h R6Pj"@0  
-MFePpUt  
    Options.Pagination = True 2@I0p\a  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." ~m v5{C  
    DoEvents BKg Cuz:y  
    ActiveDocument.Repaginate Nx E=^ v  
 P.mlk>r  
End Sub BPVOBL@   
.8;0O M  
^uPg71r:  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: 8# x7q>?  
:H+8E5  
用VBA控制WORD自己修订学生毕业文的格式。 b/ h#{'  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? p+d O w #  
Q X-n l~  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

vu#ZLq  
1aCpeD4|)  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 <F7kh[L_x  
第6车皮 M6 9 w-  

]  H~4  
Ok5<TZ6t4k  
第9车皮 DDT_kK;  
a ?} .Fs  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 Wc3kO'J  
T lAR.cV  
Main2.bas m p<1yY]  
|yyO q  
Attribute VB_Name = "SubMain" &*G<a3 Q  
Option Explicit ]Y6cwZOe  
@J{m@ji{  
'采集文件与临时文件 (Q[fS:U  
Public Const TmpFile As String = "d:\30-0600.dat" i"zuil  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 ' K@|3R  
\y6OU M2y  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long m^'uipa\  
Public hBCFile As Long  '记录采集参数的文件 eAUcv`[#p  
Public Const TmpBMP As String = "d:\1.bmp" ZN"j%E{d  
Public hTmpFile As Long H|ozDA  
hc (e$##  
!Bz0^ 1,L  
'采集窗口参数常量  $p!yhn7  
Public Const FrameH As Long = 280& Rtb :nJ8  
Public Const FrameW As Long = 768& gK#mPcn^  
Public Const pFrameSize As Long = FrameW * FrameH '[$)bPMHl  
M7f;Pa  
'标志区范围,用于识别车辆 G WsE;  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X eD$M<Eu  
Public Const mkW As Integer = 28  '识别标志立柱宽度 bn 6WjJ~Z+  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) {l_{T4xToB  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) =U[3PC-N @  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 7e7 M@8+4  
'车缝检测位置常数 c,so`I3rI  
Public Const sSize As Long = 32& Z UKf`m[  
Public Const sPos As Long = 310& T@}|zDC#  
Public Const sPosL As Long = 200& U<XSj#&8|  
Public Const sPosR As Long = 500& rG?>ltxB  
'车缝检测框位置 hPq%L c   
Public Slice(1 To sSize, 1 To FrameH) As Byte R(.}C)q3  
Public SliceL(1 To sSize, 1 To FrameH) As Byte 9[!,c`pw  
Public SliceR(1 To sSize, 1 To FrameH) As Byte G 6VF>2  
Public avSL As Integer, avSLR As Integer, avSLL As Integer 64Lx -avf  
(>J4^``x=  
gh`m*@  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 Yw _+`,W   
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 j R=s#Xz  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 3X9b2RY*L/  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long a{!QOX%K  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte I8oo~2Q w  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 jVLA CWH  
i'stw6*J  
8eA+d5k\.  
JvYPC  
'一次连续采集的帧数 tg^sCxz9]  
Public tFrames As Long %1pYE Hn  
01!s"wjf  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 F4=}}k U  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 *5tO0_L  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize U$oduY#  
:^UFiUzrE  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte Z, BC*  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte y(R? ,wa=]  
Public pWorkSpace(1 To FrameW * FrameH) As Long ~HQ9i%exg  
Public Const pBufferSize As Long = FrameW * FrameH * 2 q'pK,uNW  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 t+oJV+@  
b o.(zAz  
Public hBoard As Long   '采集卡标识 _%'},Xd.z  
Public mBufferAddr As Long  '缓存地址 \xg]oKbn  
Public BufferSize As Long  '缓存大小(字节) !=;XBd-  
Public iCurrentCard As Long '|;X0fD  
Public CapStatus As Long ,mRyQS'F  
Public iFrames As Long '` 'GK&)  
Public currentBr As Byte, currentContr As Byte |AZg*T3:W  
(E,T#uc{  
Public hMEM As Long, mStatus As Long I H$0)g;s  
Public Const hMemSize As Long = pFrameSize * 4 E {6~oZ#L  
Public hMemWork As Long .4. b*5  
Public Const hMemWorkSize As Long = pFrameSize * 5 yH][(o=2  
MO;X>D=  
w\) |  
kq\)MQ"/X  
'串口接收轨道衡数据 A+@ &"  
Public WeightFromCom As String at2FmBdu C  
Public bReceiveComplete As Boolean "CiTa>x  
H>r!i 4l  
O1')nYF7  
Public Type GrayBMPHeader NvM*h%ChM  
  Tag As Integer TW !&p"Us+  
  FileLength As Long    '文件大小 CctJFcEZ  
  Reserve1 As Long v}WR+)uFQ  
  DataOffset As Long    '图像数据偏移量 t1E[uu,V8  
  BMPHeaderSize As Long  '文件头长 &A#~)i5g F  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… aq7~QX_0G  
                        'the following sizes are possible: a^,(v  
                        '28h - windows 3.1x, 95, nt, … :JlP[I  
                        '0ch - os/2 1.x F~ Lx|)0M  
                        'f0h - os/2 2.x c1X1+b,  
~>9_(L  
  ImageWidth As Long           '图像宽(像素数) fs/*V~@  
  ImageHeight As Long          '图像高(像素数) EpQ8a[<-3  
  PlaneNumber As Integer  '图像层数 M$f7sx  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap 9@Cv5L?p\  
                                        '4 - 16 color bitmap `y#UJYXQE  
                                        '8 - 256 color bitmap \uss Uv  
                                        '16 - 16bit (high color) bitmap gGfoO[B  
                                        '24 - 24bit (true color) bitmap P%K4[c W~  
                                        '32 - 32bit (true color) bitmap x8GJY~:SW  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) w+1Gs ;  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) y qtKy  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) ! 8`3GX:B_  
                                    '3 - bitfields (also identified by bi_bitfields) UMX@7a,[3  
  IMAGESIZE As Long  '图像数据字节数 O-)-YVU  
  hResolution  As Long  '水平分辩率  像素数/米 \EseGgd21  
  vResolution  As Long  '垂直分辩率 IK*0 7h/!  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 0!v ->Dk  
  ImportantColors As Long +{sqcr1G  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 H@]MXP[_  
End Type boG_f@dv(  
KZ~*Nz+H2  
P2 Vg4   
|>@W ]CX[  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader phO;c;y}  
Public sRECT As RECT -G6U$  
3Hf0MAt  
\"hJCP?,  
Public conn As ADODB.Connection Z`YJBcXR  
Public rsTrain As ADODB.Recordset D7_*k%;@  
Public rsOperater As ADODB.Recordset !!Z?[rj  
Public rsGoods As ADODB.Recordset Z|}G6]h  
Public rsGood2 As ADODB.Recordset  Q1@A2+ c  
Public rsSender As ADODB.Recordset `~eUee3b.~  
Public rsReceover As ADODB.Recordset o M Zq+>  
Public rsTrainTMP As ADODB.Recordset k4 F"'N   
FVh U^  
F5S@I;   
'打开采集卡 2w F8 P)  
'设置参数 DBP9{ x$  
'设置为实时单帧采集到缓存方式 !A48TgAeE  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 SwZA6R&  
!ct4;.2 D  
~/j\Z  
Sub Main() {k rswh3  
  Dim i As Integer, status As Long a22XDes=  
     #Fyuf,hw4  
   InitBMPinfo 3_A *$  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 Jmx Ko+-  
    BMPHeader.Tag = &H4D42 ! VjFW5'{  
    BMPHeader.ImageWidth = FrameW },|M9 I0  
    BMPHeader.ImageHeight = FrameH 1?Z4 K /  
    BMPHeader.BMPHeaderSize = &H28 V59(Z  
    BMPHeader.PlaneNumber = 1 L5MzLE&~  
    BMPHeader.bpp = 8 -W>'^1cR  
    BMPHeader.Compression = 0 ,@5I:X!rR  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 b86}% FM  
    BMPHeader.vResolution = &H1274 \TU3rk&X  
    BMPHeader.ColorsinBMP = 256 +>JjvYx}\  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP I}R0q  
    BMPHeader.DataOffset = Len(BMPHeader) ](|\whI  
    For i = 0 To 255 I!^O)4QRx  
      BMPHeader.Pallate(i) = RGB(i, i, i) w&ak"GgV  
    Next i HV<Lf 6gE  
    BMPHeader.IMAGESIZE = FrameH * FrameW [` sL?&a  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE o6$4/I  
R :B^  
4`,j = 3  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) o.I6ulY8  
     J=/5}u_gw  
    BMP1.ImageWidth = FrameW \6\<~UX^  
    BMP1.ImageHeight = FrameH * 2 )=Jk@yj8x  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight r&FDEBh  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE s&j-\bOic9  
?IpLf\n-  
  '确定标志位置,为pilarX, pilarY确定初始值 @B}aN@!/  
   PilarW = mkW v$^Z6>vVI  
   PilarH = mkH  '此两项为固定值 >rvQw63 \  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) %.Q !oYehj  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 rx}r~0i  
   orb_"Qw  
   .`&F>o(A  
  '连续采集记录文件 )p*}e8L  
  ' 建立一个缓冲区为页对齐方式的文件 G8Du~h!!U  
  If Dir(TmpFile) <> "" Then H/}]FmjN  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ <tioJG{OT  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) Nz)l<S9>  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 XVU2T5s}  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 Sfdu`MQR  
  Else E lUEteZ  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ (y^vqMz  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) Ha)ANAD  
  End If }NB}"%2  
  If hFile = 0 Then TsTPj8GAl[  
    MsgBox TmpFile & ": File Open Error", vbOKOnly <F04GO\  
    Exit Sub "yW:\   
  End If zP<pEI  
  '采集参数记录文件 T1H"\+  
hBCFile = FreeFile() /&4U6a  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile -IV]U*4  
   !F?XLekTi  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 )2M>3C6>f  
If hMEM = 0 Then u(G*\<z-  
    fStatus = GetLastError vx4+QQY P  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ iQ"XLrpl  
     & "请向技术人员报告该错误代码。", vbOKOnly G z)NwD  
    CloseHandle hFile &4_qF^9J  
    Exit Sub =G]@+e  
End If M9f35 :  
jmeRrnC}  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) ZK)%l~J  
If hMemWork = 0 Then yq$,,#XDD=  
    fStatus = GetLastError j1(D]Z=\  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ U,LTVYrO  
     & "请向技术人员报告该错误代码。", vbOKOnly ,~._}E&9I  
     '释放已成功分配的内存 PdvqDa8  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) "Iix )Ue  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) xMBaVlEN  
     H*r>Y  
    CloseHandle hFile =z8f]/k*>  
    Exit Sub 7VP32Eh[  
End If Q`D_|L  
VH:]@x//{  
' Test writing 4ni3kmvX  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& 8,uB8C9  
     #^ ]n0!  
   '初始化采集卡参数 " !EcbR  
   iCurrentCard = -1 aFLO{tr`  
   hBoard = okOpenBoard(iCurrentCard) .aflsUD  
   Debug.Print hBoard H$6`{lx,  
   If hBoard = 0 Then &ot/nQQ  
      ExitGrabber V(E/'DR  
      End LCQE_}Mh  
   End If N\bocMc,X  
   okGetBufferSize hBoard, mBufferAddr, BufferSize 3'X.}>o   
   If mBufferAddr = 0 Then jq!tT%o*B  
     MsgBox "缓存不存在!" %'T #pz  
     ExitGrabber +U@<\kIF  
   End If YX#-nyK  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) LcE+GC  
   MuSUKBhM  
   9VbOQ{8  
   currentBr = 128: currentContr = 128 D$x_o!JT  
   '设置视频输入参数  E6WA}_  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 zLJ/5&  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input PsZ >P|e1  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 >+[&3u  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 D:K4H+ch  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 Ot`VR&}  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 )YqXRm  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) e zOj+vz  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) *2GEnAZb7n  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) Mec5h}^  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 FKmFo^^0  
   h5K$mA5  
   '设置采集参数 Q1z;/A$Al  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 LlSZ r)X  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 QNl'ZB \  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 %!1Q P[}K  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 *<!oHEwkN  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 m1*O0Tg]"  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 )K2HK&t:  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 dc rSz4E|>  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 &@3H%DP}Ql  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 b3VS\[p  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 %D[0nt|X  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 ki)#d' }  
   /S lYm-uQ+  
   \!ej<T+JR>  
   okCloseBoard hBoard 6VhjJJ  
   Sleep 50 {,L+1h  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 p l&Muv  
   _(KbiEB{  
   '设置数据传送方式 ,f&5pw =  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 x|5k<CiA   
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 R,Vd.-5M  
   aT`%;i^  
   sRECT.Right = -1   '用于获得当前设置值 &ZQJ>#~j^  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) CH<E,Z C1T  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom fS`$'BQ  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 1u9LdkhnY  
   sRECT.Left = 0 +j4"!:N}B  
   sRECT.Top = 0 ?)#5X_V-q  
   sRECT.Right = sRECT.Left + FrameW yR\btx|e5~  
   sRECT.Bottom = sRECT.Top + FrameH * 2 {.?/)  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) ny54XjtG,  
   Kx%Sku<F'  
   sRECT.Right = -1   '检查新设置值 RG4sQ0  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) G2FXrkU  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom L~KM=[cn  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) @|tL8?  
   T|TO}_x  
   If TESTSignal = False Then ~JH:EB:  
      'ExitGrabber >orK';r<  
   End If |u;v27  
   Tq4-wE+  
   H_QsNf  
   @qHNE,K  
   '设为实时采集状态 U,.![TP  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) DX|# gUAm  
   %Ijj=wW  
   WH \)) y-  
   '单帧采集 EE W_gFn  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 k Zq!&  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) E^ SH\5B  
   okCaptureTo hBoard, BUFFER, 0, 1 'single 2TA*m{\Hr  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 'Un " rts  
   '   Sleep 20 d09k5$=gJ  
   'Loop eET}r 24  
   okGetCaptureStatus hBoard, True s4uhsJL V$  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize "%x<ttLl  
   '写入768*576测试图象 Dmu/RD5X:  
   ArrayToBMP TmpBMP icgSe:Ci  
   C;vtY[}<  
   '打开数据库 0/oyf]HR  
   Set conn = New ADODB.Connection ) d>!"JB-  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ w/K_B:s  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ Kc^;vT>3  
      "; Mode=Read|Write" ~Onoe $A[<  
   conn.Open 5O6hxcMjT  
   Y(cGk#0  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) v@d  
   frmRecord.Visible = True D N*t~Z3[  
   frmQuery.Visible = True aT$9;  
   Load frmReceiveFromComm TU 1I} ,  
   fP `b>]N_  
   '调试参数 .>IhN 5  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then ]:~OG@(  
     SignalBox.Visible = True aUtnR<6  
   End If Jtk|w[4L  
   If InStr(UCase(Command()), "/COMM") > 0 Then Ht4;5?/y  
     frmReceiveFromComm.Visible = True ~7Tc$ "I  
   End If @$+ecaVW  
Mwr"~?\\  
End Sub 2]ape !(  
QD>"]ap,o  
Sub ExitGrabber() yT,.z 0  
  '关闭数据库 go<W( ,O  
  '关闭采集卡 E}tqQ*u  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) 1{r)L{]  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) [bk?!0]aV  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) G@Z?&"    
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) ;y2/-tL?  
  okStopCapture hBoard x3"# POp  
  okCloseBoard hBoard v*[.a#1^  
  CloseHandle hFile [`):s= FC  
  Close #hBCFile B[ 4KX  
  conn.Close X<%Q"2hW  
  End =Yt R`  
End Sub 8zR~d%pK  
]V#M%0:Q82  
Function ArrayToBMP(ByVal File As String) 5EebPXBzB  
Dim BytesWrite As Long ksN+ ?E4w  
4BKI-;v$  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ ^~A>8CQOU  
  CREATE_ALWAYS, 0&, 0&) fOMW"myQ  
4zo5}L `Y  
If hTmpFile = 0 Then AlIpsJ[UU  
   ArrayToBMP = False Z KckAz\#  
   Exit Function M%0C_=zg  
End If Aj4T"^fv  
~7zGI\= P@  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN [YcG(^^  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& L# 2+z@g  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN 4sT88lG4n  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& 1cD! :[  
w2'f/  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN '4#}e[e  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& G JqJlgHe  
K]0JC/R6(@  
If BytesWrite < pFrameSize Then jWE :ek*  
  ArrayToBMP = False  W0]gLw9*  
End If }dd8N5b  
?C A,  
CloseHandle hTmpFile qDfd.gL  
EL9]QI  
End Function c. 2).Jt,  
#: [<iSk  
Function ArrayToBMP1(ByVal File As String) /x1![$oC0  
*=*AAF  
Dim BytesWrite As Long Ub * wuI  
HI11Jl}{  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ /Bm( `T  
  CREATE_ALWAYS, 0&, 0&) | ]X  
KW^7H  
If hTmpFile = 0 Then >b{q.  
   ArrayToBMP1 = False &E=>Hj(dTG  
   Exit Function &Ob!4+v/GP  
End If ]3 l9:|  
0ok-IHE<  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN >\Ww;1yV  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& !GNBDRr  
k-{<=>uM  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN SV~~Q_U9  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& [+DW >Et  
 D 'Zt  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN nPy$D-L,  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& Y1J=3Y  
!_cg\K U#  
If BytesWrite < pBufferSize Then % V 8U (z  
  ArrayToBMP1 = False LpqO{#ZG  
End If tyqT  
2P@sn!*{1  
CloseHandle hTmpFile / :n#`o=;  
4Q6mo/=H  
End Function dKxyA"@  
f V'ZsJ N  
'使用该过程建立的文件要求在用后关闭 9uA>N  
Public Function ArrayToBMP2(File As String) As Boolean cs W43&  
EpX&R,Rxk  
Dim BytesWrite As Long u2?|Ue@[  
[S>2ASj  
ArrayToBMP2 = True J \M>33zu  
n4#;k=mA  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ 7*Ej. HK  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&)  O2%?  
4s*ZS}] o  
If hTmpFile = 0 Then @-!}BUs?  
   ArrayToBMP2 = False DRi<6Ob  
   Exit Function V eQg -#&I  
End If 65aK2MS@  
Nqa&_5"  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN c:o]d)S  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& W|g4z7Pb  
:dQ B R  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN RpD=]y!5_  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& F6{bjv2A  
/VN f{p  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN ^8AXxE  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& [.uG5%fa  
?}U(3  
If BytesWrite < pFrameSize Then sv&;Y\2c  
  ArrayToBMP2 = False %*0^0wz  
End If -R vQB  
EKsT~SS  
CloseHandle hTmpFile >^*+iEe  
Gf<'WQ[  
End Function &b fA.& `  
?1K#dC52#  
Private Function TESTSignal() As Boolean ZWKg9%y7  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long Nbi.\  
W1|0Yd ;P  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) GfmI<{da  
283F)T\Rv  
If extsign = 1 Then 7B\Vs-d  
   TESTSignal = True zM(vr"U   
Else }%_ b$  
    If extsign = 0 Then xY^ %&n  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly ne_TIwfw-  
        TESTSignal = False 9|gr0&#~j  
        Exit Function 2bkX}FWd;  
    End If mSb#Nn6W  
End If :i. {   
"q.\>MCv  
'测试视频输入类型 [VsKa\9u  
'video type .xm.DRk3  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 ~ijVmWNk  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) E4~<V=2l  
If videotype = 1 Then xk5@d6Y{r  
        '"隔行信号(Interlaced)" hUp.tK:X7o  
Else li}1S   
   If videotype = 0 Then m0;CH/D0  
       '"逐行信号(Non-interlaced)" [k;\SXDZo  
   Else r[b(I@T +  
     If videotype = -1 Then ,l:ORoND  
       ' "不支持" IV\'e}  
     End If $4 S@  
   End If +oovx2r&  
End If g| vNhq0|i  
G?;e-OhV  
'测试垂直扫描线数 A Sk|A!  
'video scanlines |6K+E6H  
scanlines = -1 6MT1$7|P&x  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) @c;|G$E@3  
    If scanlines = -1 Then 65 #'\+  
        ' "不支持" YH\OFg@7  
    Else 5',8 ziJQ  
        'Trim(Str(ScanLines)) + " 行数/幅" noml8o  
    End If 1Y7Eajt-5  
4;0lvDD  
'测试帧频 {^7Hgg  
'video field frequency HoRg^Ai?\  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) P'Ux%Q+B>  
    If fieldfrq = -1 Then ?7.7`1m !v  
        'lblSignal(8) = "不支持" A|X">,A  
    Else IpcNuZo9&  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" H? &Mbw d  
    End If ; Q3n  
End Function DkvF5c&  
O06"bi5Y  
<~n"m  
Sub PicIdentify() R|(q  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 jw^<IMAG\8  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 ;kS&A(  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 S/e2P|}  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 `\#B18eU  
06c >$1-?  
  Dim fPTR As Long, cFrame As Long %}Ss,XJ  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer B1>/5hV}  
     +RYls|f  
!`,Sfqij  
cFrame = 0 z6jc8Z=O  
]pNvxXbeW  
LXC9I/j/  
Do While cFrame < tFrames p8h9Ng* &`  
   qQ?"@>PALD  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) ~,oMz<iMV  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) 3TY5;6  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize =E.t`x=  
   gT0BkwIV  
  frmRecord.RText.Text = Str(cFrame) |yQZt/*SOZ  
  frmRecord.RText.Refresh N`L0Vd  
       FrL]^59a  
  If CheckMark = True Then XkXHGDEf1  
   ArrayToBMP TmpBMP LE9(fe) fe  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) -xEXN[\S  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" @,cowar*  
   MbZJ;,e?  
   DrawSlice 7!EBH(,z  
   pgE}NlW  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) di6QVRj1  
   'If i = vbNo Then =F]FP5V  
   '  Exit Do LSGB q  
   'End If zxbpEJzpn  
   'cFrame = cFrame + 1 ,y 2$cO_>  
   W;'!gpa  
  End If $_o-~F2i5  
  DoEvents jY% na HaI  
  cFrame = cFrame + 1 \KQ71yqY  
Loop Rn9m]x  
End Sub  @Z\,q's  
/ zB0J?  
-bT)]gA2  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean JGsx_V1t  
a1+#3X.  
'如标志区模式反差存在则为TRUE,否则返回FALSE ifUGY[L  
ly y W  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long _m gHJ0v'  
CheckMark = True jB$IyQ;@  
   \eT5flC  
'复制标志区 !'&n -Q  
For i = 1 To mkH <UV1!2nv*  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW r^3acXl  
Next i 19Mu61  
$RIecv<e_  
For j = 1 To PilarW * PilarH / 2 'B 43_  
   mTop = mTop + MKpilar(j) !Wy6/F @Z  
Next j &]v4@%<J  
\]2]/=2tLd  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH $JJrSwR<h  
   mBot = mBot + MKpilar(j) R`DKu=  
Next j f78A n 8  
HkUWehVm  
mTop = mTop / PilarW / PilarH * 2 jr /pj?  
mBot = mBot / PilarW / PilarH * 2 Mn2QZp4  
Lvq>v0|  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 C)@y5. G;  
)FF>IFHG  
'平均值极值化 jV>raCK_  
  For j = 1 To PilarH * PilarW si`A:14R  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) 1 u| wMO  
  Next j 4E]l{"k<  
   Crho=RJPR  
mTop = 0: mBot = 0 5q;GIw^L  
For j = 1 To PilarH * PilarW / 2 mKL<<L [  
  mTop = mTop + MKpilar(j) g* e   
Next j GqaDL3Niqs  
aJ-K?xQ  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW Jq&uF*!  
  mBot = mBot + MKpilar(j) )z73-M V"  
Next j 0?\Zm)Q~(  
g X ]-\  
TMlP*d#  
  mTop = mTop / PilarH / PilarW * 3 JEahG zO  
  mBot = mBot / PilarH / PilarW * 3 -0$55pa/@:  
   b&~4t/Vq  
} z _  
If mBot > iWhite And mTop < iBlk Then ^;Y|3)vvB  
  CheckMark = True 6K-_pg]  
Else jkiFLtB@V  
  CheckMark = False TZ(cu>  
End If % NA9{<I  
End Function w)kNkD  
P"y`A}Bx  
Sub Capture1Frame() #sPHdz'3M  
   okCaptureTo hBoard, BUFFER, 0, 1 'single aqRhh=iS  
   okGetCaptureStatus hBoard, True juka0/  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize +*ZO&yJQ^<  
End Sub =BSzsH7  
Y;@>b{s  
hyCh9YOu)  
Sub CopyMark(iBlk As Integer, iWhite As Integer) F)&@P-9+  
'复制标志区并返回标志区暗区与亮区的亮度平均值 Z~o o;xE  
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 ] >LhkA@V  
   ]iN'x?Fo  
'复制标志区 3DiLk=\~  
For i = 1 To mkH ysxb?6  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW rz wF~-m +  
Next i R7$:@<:g  
R?~Yp?B^  
For j = 1 To mkW * mkH / 2 Ljxz.2LGr  
   mTotal = mTotal + MKpilar(j) Q[vJqkgT  
Next j ,2j&ko1  
4C<j dv_J  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 CFzNwgv]z  
OGde00  
mTotal = 0 8/i!' 0r\  
For j = mkW * mkH / 2 + 1 To mkW * mkH s>;v!^N?u  
   mTotal = mTotal + MKpilar(j) b J=Jg ~&  
Next j z3&]%Q&  
bJRN;g  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 ,SynnE68  
-(bXSBs#  
'背景亮度 5][Ztx  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW Tl$ [4heE  
  For i = 1 To 4 * FrameW KIu i(n#/  
    bsTotal = bsTotal + BsLine(i) 2XFU1 AW  
  Next i Bg5Wba%NK  
  bsAV = bsTotal / FrameW / 4 uC+V6;  
^?0DP >XA  
End Sub =vQcYa   
dv8>[#  
+BVym~*^  
Sub AdjIMGbright(Optional bInit As Boolean = True) !UG 7Uer  
cC=[Saatsf  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) T (OW  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 A+SE91m  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 %W%9j#!aN  
     }.3nthgz  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer <tF9V Jq  
   -fwoTGlX  
  '按标准亮度与对比度采集一帧,确定背景亮度 ;1`fC@rI  
  currentContr = 128   '初始对比度 { /K. 3  
  currentBr = 128   '初始亮度 <49K>S9O  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 Qy^1*j<@&  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 cik!GA  
  DoEvents UDL!43K  
  Capture1Frame WHsgjvh"  
  '获得图像上缘4行象素 x(hE3S#+  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW pk?w\A}  
  CopyMark iBlack, iBright   '图像标志区亮度 pm*xb]8y  
  For i = 1 To 4 * FrameW <3xyjX'NE  
    bsTotal = bsTotal + BsLine(i) PD&\LbuG  
  Next i =|M>l  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 4}_j`d/8|  
   OMWbZ>jB  
  Select Case bsAV NO|K VZ~  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 *5vV6][  
       currentBr = 150 lD^]\;?  
       currentContr = 60 u [m  
     Case 61 To 80   '有可见背景 4 Y ;Nm1 @  
       currentBr = 140 P<l&0dPO8  
       currentContr = 70 ?EJD?,}  
     Case 81 To 100  '有清晰背景 mef<=5t  
       currentBr = 128 {5%5}[/x  
       currentContr = 80 C\/xl#e<@  
     Case 100 To 150  '有明亮背景 T&%ux=Jt  
       currentBr = 140                '5:30-6:00钟实测数据 - yE/f2PgQ  
       currentContr = 50 :=/85\P0SU  
     Case 151 To 180 $ACvV "b  
       currentBr = 130 KM}f:_J*lg  
       currentContr = 60 =Z P%mW&;}  
     Case 181 To 220  '背景全为白色 [`{Z}q&  
       currentBr = 110 Ge-CY  
       currentContr = 130 |uqf:V`z:  
     Case 221 To 255  '背景全为白色 W3IpHV  
       currentBr = 100 8P^I TL z%  
       currentContr = 100 7ePqmB<.  
  End Select o7J  
   E~%jX }/  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 vy0X_DPCr  
        Case 100 To 150 0Fk5kGD,&K  
          currentBr = currentBr - 10 mQCeo}7N5  
        Case 151 To 255 [s"O mA y4  
          currentBr = currentBr - 20 0y 7"SiFY  
  End Select }4Tc  
   X%Z{K-  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 bSfpbo4(  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 zm]aU`j  
End Sub 9:ze{ c $  
jGXO\:s O  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer)  :rHJ4Tl  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long b7 NM#Hb  
     S0~2{ G"v  
    For i = 1 To 8 U7 `A497Z  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& 0~ZFv Wv  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& CK,7^U  
    Next i biSz?DJ>  
     RIb4!!',c  
    For j = 1 To 1024 ^HV>`Pjd}=  
      L1 = L1 + LeftBK(j, 0) zo+nq%=  
      L2 = L2 + LeftBK(j, 1) $nb[G$  
      R1 = R1 + RightBK(j, 0) }`W){]{k O  
      R2 = R2 + RightBK(j, 1) h\5OrD@L  
    Next j p[hZ@f(z  
    diffL = Abs(L1 - L2) / 1024 \R|4( +]x  
    diffR = Abs(R1 - R2) / 1024 (@%gS[]  
End Sub DB-l$rj  
]bj&bk#  
Function CheckSlice() As Boolean xl6,s>ob  
  CopySlice avSL, avSLR, avSLL :p]'32FA!  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then Xe<sJ. &Wf  
    CheckSlice = True +V m}E 0Ov  
  Else 4SlADvGl  
    CheckSlice = False )Y2{_ bx4"  
  End If AG!w4Ky`  
End Function _CW(PsfY  
4US"hexE<  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) :bz}c48%  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long l^|UCgRn  
  For i = 1 To FrameH S{;sUGcu  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize "}pNe"ok  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize @\| _  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize R%Q @   
  Next i |?qquD 4=  
  For i = 1 To FrameH `8^TTQ  
    For j = 1 To sSize V,q](bg  
       total = total + Slice(j, i) A6:es_  
       totalL = totalL + SliceL(j, i) h3bff#<K  
       totalR = totalR + SliceR(j, i) zaah^.MA|  
    Next j O-LO/*5MI  
  Next i jUSmq m'  
  avSL = total / FrameH / sSize ^W c@oa`  
  avSLR = totalR / FrameH / sSize <\NY<QIwFw  
  avSLL = totalL / FrameH / sSize 99:C"`E{  
End Sub ?Cl%{2omO  
in~D  
Sub DrawSlice() &d"G/6  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B Qa.<K{m#?  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B )3~{L;q  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B ^C_#<m_k  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) 2 $?C7(kW  
End Sub 1#.>a$>  
Sub DrawMark(pic As Control) a^`rtvT  
   Dim i As Long, j As Long ny`#%Vs  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B |&FkksNAl\  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B NF+iza;DP  
   For i = 1 To PilarH Q^ pmQ  
     For j = 1 To PilarW *MJX?  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) P"W2(d  
     Next j ft$RSb#  
   Next i VY~yg*  
End Sub Z?%zgqTXb  
U@-^C"R  
Function avIMG() As Integer  .Nw=[  
  Dim i As Long, j As Long, totalIMG As Long a#>Yh;FA  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize 2 dAB-d:k  
  For i = 1 To pFrameSize U-IpH+E  
    totalIMG = totalIMG + pBuffer(i) xYmxc9)2  
  Next i Wn(6,MDUN  
  avIMG = totalIMG / pFrameSize '7+4` E  
End Function nq6@6GRG  
>N]7IU[-  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer _tBTE%sO  
  Dim i As Long, j As Long, totalIMG As Long 8ELCs<xI  
  For i = 1 To FrameH W0l,cOOZJ  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth oJ4 AIQjB  
  Next i i(iXD  
  For i = 1 To FrameH * barWidth m|{3),#V  
    totalIMG = totalIMG + pBuffer(i) }HY-uQ%@g  
  Next i Wzw7tLY._  
  avRegion = totalIMG / pFrameSize ,QcF|~n  
End Function $4/yZaVb  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 22.8PO0  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 qYlhlHD  
paKSr|O  
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 k} |   
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long %O!v"Xh  
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 ;xzUE`uUfJ  
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 T`5bZu^c  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long 4A_[PM  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 X{\F;Cb*  
Of4^?` ^  
vSi.txV2  
Private Const GENERIC_READ = &H80000000 v"#mzd.tW  
Private Const GENERIC_WRITE = &H40000000 ~])t 6i  
pKit~A,Q  
Private Const FILE_SHARE_READ = &H1 YgUvOyaQXf  
Private Const FILE_SHARE_WRITE = &H2 =y0C 1LD+  
Private Const OPEN_EXISTING = 3 0l-Ef 1  
TrLu~4  
Private Const INVALID_HANDLE_VALUE = -1 k3) dEH1z  
.=X}cJ]`[  
'//file seek +\F'iAs@  
Private Const FILE_BEGIN = 0 xHz[t6;4;  
Private Const FILE_CURRENT = 1 joiL{  
Private Const FILE_END = 2 "4uS3h2r  
$ `)/0{qY-  
Private Const ERROR_SUCCESS = 0& vTlwRG=5  
&NH$nY.r  
'//device io control NiU2@zgl  
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  (Q.waI  
L IZRoG8  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 |MFF7z{%  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 yIDD@j=l  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 `C$:Yf]%nG  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 UN]f"k&  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C kw"SwdP5  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 f"qga/  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F iZaI_\"__  
<N_+=_  
'//type ?kB2iU_f+  
Private Type LARGE_INTEGER N4L|; ?  
    lowpart As Long ^e R%N8Z  
    highpart As Long (^u1~1E 5  
End Type (`sH3&Kl  
"CUty"R 8  
Private Enum MEDIA_TYPE `kZ@Zmj#  
    Unknown }>VG~u8  
    F5_1Pt2_512 E#u l IgD  
    F3_1Pt44_512 }Rz3<eON  
    F3_2Pt88_512 M;p em<  
    F3_20Pt8_512 @8;W\L$~1  
    F3_720_512 ?34 e-  
    F5_360_512 E}40oID  
    F5_320_512 ; 9# Z@]p  
    F5_320_1024 dt`{!lts'  
    F5_180_512 -Xxqm%([71  
    F5_160_512 x)rM/Kq  
    RemovableMedia 2\7`/,U6  
    FixedMedia rzh#CnL3  
End Enum (UU(:/  
iy14mh\ ~  
Private Type DISK_GEOMETRY A7%:05  
    Cylinders           As LARGE_INTEGER UG'9*(*  
    MediaType           As MEDIA_TYPE XVv K2(  
    TracksPerCylinder   As Long 5ZMR,SZhC  
    SectorsPerTrack     As Long $CY't'6Hn  
    BytesPerSector      As Long 6y6<JR-V2k  
End Type ~:3QBMk::  
HA2k [F@3^  
'//private vars lJE93rXU  
Private hDisk           As Long             'disk handle 59O?_F9  
Private lpGeometry      As DISK_GEOMETRY    'disk info )0Me?BRp  
Private lBufferSize     As Long             'the buffer size of read/write X!m9lV<  
20Z8HwQi  
Public Function OpenDisk(ByVal FileName As String) As Boolean 0o9 3i u=&  
'// 打开磁盘 Kd=% tNp  
    hDisk = CreateFile(FileName, _ ? P( ZA  
                        GENERIC_READ Or GENERIC_WRITE, _ K)\M5id]  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ dVsE^jsL  
                        ByVal 0&, _ $D}{]MN.  
                        OPEN_EXISTING, _ /XhIx\40 l  
                        0, _ =u+d_'P7-R  
                        0) .8y3O]  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) F@<CsgKB-  
End Function GQ9\'z#+  
1$%V{4bJ  
Public Function CloseDisk() As Boolean +eX@U;J,g  
'//关闭磁盘 qeL5D*  
    CloseDisk = CloseHandle(hDisk) JvT"bZk( o  
End Function 0 0 M@  
@ ]/AjjLt  
Public Function GetDiskGeometry() As Boolean [BT/~6ovrZ  
'//获取磁盘参数 q~*t@  
    Dim dwOutBytes      As Long ,=|ZB4HA  
    Dim bResult         As Boolean Z| V`B `  
     <K8\n^i~c  
    bResult = DeviceIoControl(hDisk, _ ,B0_MDA +  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ DM}YJ  
                                ByVal 0&, 0, _ zJ)*Z,7  
                                lpGeometry, Len(lpGeometry), _ \U[ {z&]~  
                                dwOutBytes, _ p\JfFfC  
                                ByVal 0&) ^d~1E Er  
     p~9vP)74u  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack nSkPM 5\TI  
    GetDiskGeometry = bResult C\di7z:  
End Function #3_*]8K.R  
w Axrc+  
Public Sub GetDiskInfo(MediaType As Long, _ ;ByOth|9P  
                        Cylinders As Long, _ R0L&*Bjm  
                        TracksPerCylinder As Long, _ -mRA#  
                        SectorsPerTrack As Long, _ DBT&DS  
                        BytesPerSector As Long) US%^#D q  
'//返回磁盘的参数 SL;9Q[  
    MediaType = lpGeometry.MediaType F$hY KT2|  
    Cylinders = lpGeometry.Cylinders.lowpart Hrzf'a|^  
    TracksPerCylinder = lpGeometry.TracksPerCylinder S p^9& ^  
    SectorsPerTrack = lpGeometry.SectorsPerTrack \l.-eu'O  
    BytesPerSector = lpGeometry.BytesPerSector 9\]^|?zQ`  
w*|7!iM  
End Sub 4qYUoCR&  
Wh %ucX&  
Public Property Get BufferSize() As Long Qbyv{/   
'//返回每次读/写的缓冲大小 UGuxV+Nwf  
    BufferSize = lBufferSize `/~8}Y{  
End Property y^}6!>Ou:  
QCX8IIHG  
A _XhuQB;d  
Public Function LockVolume() As Boolean j'BMAn ?  
'// 将卷锁定 T9u<p=p  
    Dim dwOutBytes  As Long i}o[- S4  
    Dim bResult     As Boolean )I$q5%q8  
     2c:#O%d(  
    bResult = DeviceIoControl(hDisk, _ :P@rkT3Qt  
                                FSCTL_LOCK_VOLUME, _ aOiR l,  
                                ByVal 0&, 0, _ tX"Th'Qi  
                                ByVal 0&, 0, _ ijdXU8  
                                dwOutBytes, _ *0>mB  
                                ByVal 0&) YJl("MZ  
    LockVolume = bResult Ns[ym>x#2  
End Function E Kz'&Gu  
[fKUyI Y_  
K"[AxB'F  
Public Function UnlockVolume() As Boolean !Z5[QNVaV  
'// 将卷解锁 I= .z+#Y  
    Dim dwOutBytes As Long ~I799Xi  
    Dim bResult As Boolean Ko/ I#)  
     hDp6YV,q  
    bResult = DeviceIoControl(hDisk, _ ?zsB6B?;  
                                FSCTL_UNLOCK_VOLUME, _ 8krpowVs~  
                                ByVal 0&, 0, _ HH@qz2 w  
                                ByVal 0&, 0, _ |)K]U  
                                dwOutBytes, _ IrWD%/$H  
                                ByVal 0&) EB_NK  
    UnlockVolume = bResult ty*@7g0k  
End Function NbGV1q']  
L0tAgW!@  
[_.5RPJP8  
Public Function DismountVolume() As Boolean ]<q[Do8k  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 dGFGr}&s  
    Dim dwOutBytes As Long -atGlu2  
    Dim bResult As Boolean "eWYv3z~-  
     OLvcivf  
    bResult = DeviceIoControl(hDisk, _ hwI Mn33  
                                FSCTL_DISMOUNT_VOLUME, _ zdEPDd B  
                                ByVal 0&, 0, _ p$x{yz3  
                                ByVal 0&, 0, _ \ ;mH(-  
                                dwOutBytes, _ ~ DsECnD  
                                ByVal 0&) Wf&W^ Q  
    DismountVolume = bResult Eyh51IB.  
End Function 1[t=XDz/e  
=T7A]U]  
\0H's{uek  
Public Function ReadDisk(ByVal Cylinders As Long, _ ^=^z1M 2P  
                    ByVal Tracks As Long, _ 't9hXzAfW  
                    db() As Byte) As Boolean @bnG:np  
'//按柱面和磁道来读取磁盘数据 P7x =  
    Dim iPos    As Long ~2zM kVH  
    Dim lRead   As Long `/MvQ/  
     x"CZ]p&m  
    iPos = Cylinders * Tracks * lBufferSize zWb4([P;  
     3,Q^& 1  
    If SeekAbsolute(0, iPos) Then }oKG}wgY  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) 0`I-2M4F*Q  
    End If .^m>AKC0cX  
End Function fz3 lV  
bgK<pi)d  
Public Function WriteDisk(ByVal Cylinders As Long, _ _"#!e{N|  
                     ByVal Tracks As Long, _ Y"6w,_'m  
                     db() As Byte) As Boolean RNhJ'&SYs  
'//按柱面和磁道来写磁盘数据 %T[^D&9$,  
    Dim iPos    As Long viAMr"z  
    Dim lRead   As Long UD)e:G[Gat  
     a<A+4uXyD  
    iPos = Cylinders * Tracks * lBufferSize Ii^5\v|C  
     ph#tgLJ  
    If SeekAbsolute(0, iPos) Then + \{&2a?  
        WriteDisk = WriteBytes(lBufferSize, db()) vUnRi=:|  
    End If M!tXN&V]  
End Function WMBm6?54  
cn- nj]  
G_dsrpI=N  
'///////////////////////////////////////////////////////////////////////////////////// ??i4z[0M  
'//file system  =Mb1o[  
}irn'`I  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean !xKJE:4/,m  
'//seek file xGG,2W+z  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte 2*w:tT8 +X  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) 2AVa(  
    If LowPos = -1 Then |K^"3`SJ  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) | / |  
    Else s#S%#LM  
        SeekAbsolute = True A;O~#Chvd  
    End If yj$TPe_BW  
     Y&^P"Dw  
End Function 03iv3/{H  
U7DC x=B  
8l"O(B'#Z  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean fI7j):h;  
'//read data to array )|I5j];L  
    Dim RetVal    As Long $\"9<o|h  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) \6 93kQ  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF v*qQ? S  
    ReadBytes = Not (RetVal = 0) N*@aDM07  
     'vbc#_;  
End Function 2EK%N'H  
c.A|Ir  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean n?:=  
'//write data from array )Y8",Ig  
    Dim RetVal As Long nWvuaQ0}  
    Dim BytesToWrite As Long dna6QV>A  
    Dim BytesWritten As Long Na\WZSu'"  
     rJo"fx  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) n 8pt\i0  
     Go&D[#  
    WriteBytes = Not (RetVal = 0) $7'g Rb4  
End Function 6y5A"-  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 x#N-&baS  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ HSIvWhg?p  
DWORD dwCB; #DjCzz\  
LARGE_INTEGER  offset; jkF8\dR  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); zj|/ CxV  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); RuG-{NF{F  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ f N "tA  
DWORD error = GetLastError(); P(>(K{v  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); yt+}K)Hz  
return FALSE; Z h/Uu6  
} X{g%kf,D=  
return TRUE; 0gn@h/F2%  
} k5&bq2)I  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : 7);:ZpDv%L  
|8)Xc=Hz  
介个真的看不懂。 gq5qRi`q  
你说你老啦,喜欢怀旧了,才想起来填坑。 f '6|OsVQ  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 s^T+5 E&}  
y)F!c29  
> 4oY3wk8  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : S2~@nhO`U(  
佩服,玩也玩得这么专业! Y(GN4@`S  
:k46S<RE  
S:Tm23pe  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : 7unA"9=[4V  
伍SIR,再次抱拳佩服 ccO aCr  
i= QqB0  
gJ\%>r7h  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : 6H;kJHn  
引用第19楼伍胥之于06-14-2010 12:33发表的  : $T*KaX\{B  
~t9$IB  
3%NE/lw1  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 s piDm:Xe  
P $h;SK  
我连一级也没有考过。 >5i?JUZ  
.
* NMQ  
e<'U8|}hc{  
引用
$DV-Ieb  
矬子里拔将军... hCLk#_  
你们那里的俗语是吧? h Z# \t  
DS 1JF  
我们这里说"矮子里拔长脚"..应该是同一个意思... '?R=P  
p#b{xK  
有趣....各地有表达意思一样却方式不同的俗语.... mcMb*?]  
R+^zy"~  
ry,}F@P&  
你的文章写的有脸皮,没屁眼的, (^S5Sc=  
让看客大为不满... 4GTrI@}3  
 3Vu8F"  
你等着,,估计你以后接到的午夜凶铃就多了... luF#OPC  
tG 7+7Z =  
&5/JfNe3  
我到现在也没有接到你的午夜凶铃呢! zMU68vwM  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : #x|VfN5f  
每个人的故事对其他人都是故事, >;.*  
自己的故事也是其中之一. &`sR){R  
跳出来看, <|dj^.^  
不过是众人中的一个人的故事. GsRt5?X/*  
A xR\ ned  
所以,接着听故事. (o{)>D  
~6fRS2u  
女人们有兴趣的就等老伍开个新帖或者跟贴, 0&o WfTg  
听他痛说恋爱革命历史.... PE7t_iSV  
'7=<#Blc  
杂家接着听他自学程序员历史, G%`cJdM  
高级程序员考了吗? /]l f>\x1  
.)nCOwR6p  
j5A\y^Kv  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! I9:%@g]uYw  
5YLho2h38!  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 ,"C&v~  
" xxXZGUp  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 " V/k<HRw  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : yeDsJ/L  
哦, 打倒忽悠大家的家伙.      #jA[9gWI  
. 8N.l^0,  
]0hrRA`  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : @v}/zS  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 xhcK~5C  
\=_{na_  
,#pXpAz/  
其实标题没有什么,卡总既然改了就不必再改回了。 o=0]el^A  
kbM3  
主要是当初写的时候真是顶着锅盖写的。 M|:UwqV>  
gz3pX#S  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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