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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 43=-pyp  
?]D+H%3[$i  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : [; ?{BB  
jA4v?(AO}#  
老五,I 服了U。 YwWTv  
b^DV9mO4J  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 ,7jiHF  
h<ctW>6v  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean bA^: p3  
t>GLZzO  
Dim regEX As New RegExp TgE.=` "7  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 QqK{~I|l  
YZ:'8<  
Dim LastTitle0String As String, LastTitle0No As Long :G=1$gb  
Dim LastTitle1String As String, LastTitle1No As Long RyQ\5^z  
Dim LastTitle2String As String, LastTitle2No As Long _& Uo|T  
Dim LastTitle3String As String, LastTitle3No As Long 4i\aW:_'i  
Dim LastTitle4String As String, LastTitle4No As Long Y1_6\zpA  
Dim LastTitle5String As String, LastTitle5No As Long `(Q_ 65y  
Dim LastTabelString As String, LastTableNo As Long h8= MVh(I  
Dim LastFigureString As String, LastFigureNo As Long VfC[U)w*vm  
nB Iv{  
Dim strSeperator As String &Yks,2:P  
x*"pDI0k)  
Sub ConvertWidth(fTEXT As String, rText As String) `{Di*  
        Selection.Find.ClearFormatting \v P2B  
        Selection.Find.Replacement.ClearFormatting :mV7)oWH  
        Selection.Find.Wrap = wdFindContinue |XA aKZA  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText *o\Y~U-so  
        DoEvents X1V}%@3:  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True 2X;0z$  
End Sub zV(tvt  
]#-/i2-K  
Sub ClearDomain() &T/q0bwd  
        With Selection.Find 2N8sq(LK{  
            .ClearFormatting 5A]LNA4i  
            .Replacement.ClearFormatting ;7^j-6  
            .Wrap = wdFindContinue UNcJ=   
            Me.txtStatus.Text = "清除所有域代码" ~v(M6dz~vk  
            DoEvents u3i| }`  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False Ysc|kxLb  
        End With 2\CkX  
End Sub ]G o~]7(5|  
? ]:EmP  
Private Sub cmdCheck_Click() p9 ,\{Is  
    bContinue = True 2:HP5   
    Dim NoSeries1(1 To 16) As String sEJ;t0.LX  
    Dim NoSeries2(1 To 16) As String $s(4?^GP  
    Dim NoSeries5(1 To 16) As String 3G/ mB  
    Dim NoSeriesRM(1 To 16) As String dYew 7  
    Dim paraTotal As Long, ParaText As String lp0T\ %  
    Dim ttString As String, ttNo As String iMeRQYW  
     ?r'TH/>  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long nK%/tdq  
-f;j1bQ  
    Me.txtStatus.Visible = True IJBJebqL  
    Me.lbParaType.Visible = True vb.Y8[  
    Me.cmdCheck.Enabled = False sa gBmA~  
     L!b0y7yR  
     i_'R"ob{S  
     {{[jC"4AY  
     L1!hF3G  
    Dim ParaType As String, rText As String p5# P r  
     &0 )xvZ  
    Selection.WholeStory ~iR!3+yg4  
    Selection.NoProofing = True #b"5L2D`y'  
     )av'u.]%c  
    tm1 = Now >7(~'#x8A"  
     NZ+?Ydr8k  
        ActiveWindow.View.Type = wdNormalView W/ZahPPq  
     73s3-DS,  
    NoSeries1(1) = "一" voej ~z+  
    NoSeries1(2) = "二" Wh'_ slDH+  
    NoSeries1(3) = "三" CMxjX  
    NoSeries1(4) = "四" ) 3`  
    NoSeries1(5) = "五" X6N]gD  
    NoSeries1(6) = "六" seqF84 Xd<  
    NoSeries1(7) = "七" $L&9x3+?Kg  
    NoSeries1(8) = "八" L3=YlX`UL  
    NoSeries1(9) = "九" Dss/>! mN  
    NoSeries1(10) = "十" LY88;*:S  
    NoSeries1(11) = "十一" ^I0GZG  
    NoSeries1(12) = "十二" bHQK RV  
    NoSeries1(13) = "十三" oB{}-[G  
    NoSeries1(14) = "十四" >upXt?  
    NoSeries1(15) = "十五" X?v ^>mA  
    NoSeries1(16) = "十六" 77&^$JpM  
     ~ut& U  
    NoSeries2(1) = "㈠" qnk,E-  
    NoSeries2(2) = "㈡" eYD9#y  
    NoSeries2(3) = "㈢" z Jo#3  
    NoSeries2(4) = "㈣" G_,t\  
    NoSeries2(5) = "㈤" @F(3*5c_Y  
    NoSeries2(6) = "㈥" j zmSFKg*  
    NoSeries2(7) = "㈦" %L\{kUam  
    NoSeries2(8) = "㈧" ?Str*XA;  
    NoSeries2(9) = "㈨" B:A1W{l  
    NoSeries2(10) = "㈩" o S:vTr+$  
     ?4,*RCaI  
    NoSeries5(1) = "①" (|a$N.e&K  
    NoSeries5(1) = "②" 6|9g4@Hy  
    NoSeries5(3) = "③" :a f; yu  
    NoSeries5(4) = "④" X v7U<q  
    NoSeries5(5) = "⑤" peTO-x^a-  
    NoSeries5(6) = "⑥" hNq8 uyKx  
    NoSeries5(7) = "⑦" gcW{]0%L^  
    NoSeries5(8) = "⑧" $kD`$L@U  
    NoSeries5(9) = "⑨" [,o5QH\Etq  
    NoSeries5(10) = "⑩" c]aK N  
     leb^,1/D6  
     z^a!C#IX  
    NoSeriesRM(1) = "I" d0}% %T  
    NoSeriesRM(2) = "II" \BbOljM=  
    NoSeriesRM(3) = "III" rm)SfT<  
    NoSeriesRM(4) = "IV" RqN_vk\  
    NoSeriesRM(5) = "V" K7[AiU_I  
    NoSeriesRM(6) = "VI" JX\T {\m#  
    NoSeriesRM(7) = "VII" DtJTnvG~B  
    NoSeriesRM(8) = "VIII" =6Kv`   
    NoSeriesRM(9) = "IX" &t*8oNwSs  
    NoSeriesRM(10) = "X" kO,VayjT  
    NoSeriesRM(11) = "XI" 6Er0 o{iI  
    NoSeriesRM(12) = "XII" Z*vpQBbu  
    NoSeriesRM(13) = "XIII" ghJ,s|lH  
    NoSeriesRM(14) = "XIV" +Sdx8 Z5  
    NoSeriesRM(15) = "XV" /,uSCITD  
    NoSeriesRM(16) = "XVI" (4{ C7  
     #EQx  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) 2NA rE@  
     ll<9f)  
    If i = vbNo Then VNxpOoV=S  
        Exit Sub `3sy>GU?  
    End If Lr24bv\  
     B=Zukg1G  
    If Me.chkSuper.Value Then \Sq"3_m4T  
        Me.txtStatus.Text = "检查修改所有的上标格式" JJ N(M*;  
     74}eF)(me  
        CheckSuperScript EYJi6#  
         we H@S  
    End If I"F .%re  
     94'k 7_q  
    If Me.chkStyle.Value Then |?fW!y  
        Me.txtStatus.Text = "设置样式,请稍候...." mS)|6=Y  
        DoEvents ~*PK080N}  
        CeateOrModifyStyle HV$9b~(  
    End If '!yS72{$2  
     .cH{WZ  
     Ah"'hFY  
     q(jkit~`A  
    ClearDomain GEe 0@q#YA  
         9#EHXgz  
     [N+ m5{tT  
     ?LV-W  
    If Me.chkLIST.Value Then m>abK@5na  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" }4\!7]FVYX  
     0x>/6 <<  
        ConvertListToOrdinary &Xn8o e  
    End If aX[1H6&=7  
     1|l)gfcP  
     }W__ffH   
    Dim pType As String, trimpTEXT As String $xUzFLh=`  
    If Me.chkNum.Value = True Then ,>QMyI hv  
        Me.txtStatus.Text = "转换全角数字形式为半角" 8=n9 hLhqo  
        ConvertWidth "1", "1" L)R[)$2(g  
        DoEvents d Ik8TJ  
        ConvertWidth "2", "2" +C'TW^  
        DoEvents dxkRk#mf:  
        ConvertWidth "3", "3" 9Ew:.&d  
        DoEvents 6m-:F.k1(  
        ConvertWidth "4", "4" %eutfM-?6  
        DoEvents  zU4V^N'  
        ConvertWidth "5", "5" f- k|w%R@  
        DoEvents ax72ehL}  
        ConvertWidth "6", "6" c+Q.?vJ  
        DoEvents 0U~;%N+lv  
        ConvertWidth "7", "7" i!1ho T$  
        DoEvents u6iU[5  
        ConvertWidth "8", "8" } :RT,<  
        DoEvents >2|[EZ  
        ConvertWidth "9", "9" nI`f_sp  
        DoEvents ]8xc?*i8  
        ConvertWidth "0", "0" !e:iB7<  
        DoEvents ~<2 IIR$H  
        ConvertWidth "a", "a" T<TcV9vM  
        DoEvents k"q!|+&Fs  
        ConvertWidth "b", "b" OD?y  
        DoEvents /slm ]'  
        ConvertWidth "c", "c" .0Iun+nUD  
        DoEvents O:5Rp_?^  
        ConvertWidth "d", "d" EI=Naq  
        DoEvents *%OYAsc  
        ConvertWidth "e", "e" I9[1U   
        DoEvents "W &:j:o  
        ConvertWidth "f", "f" J8u{K.( *7  
        DoEvents z_:eM7]jv  
        ConvertWidth "g", "g" tp 6csS,  
        DoEvents o [bE  
        ConvertWidth "h", "h" Z{,GZT  
        DoEvents q 3AJwELXw  
        ConvertWidth "i", "i" 4GU/V\e|  
        DoEvents 2qs>Bshf  
        ConvertWidth "j", "j" @pF fpHq?>  
        DoEvents 5|<yfk8*J  
        ConvertWidth "k", "k" z.2r@Psk  
        DoEvents u0bfX,e2U  
        ConvertWidth "l", "l" &dhcKO<4  
        DoEvents [K c ki+  
        ConvertWidth "m", "m" V>b2b5QAH,  
        DoEvents P+)qE6\  
        ConvertWidth "n", "n" 74@lo-/LY  
        ConvertWidth "o", "o" zb>f;[  
        ConvertWidth "p", "p" :]CzN^k(1c  
        ConvertWidth "q", "q" g.B%#bfg  
        ConvertWidth "r", "r" ,:#,}w_HyO  
        ConvertWidth "s", "s" !US8aT  
        ConvertWidth "t", "t" <*s"e)XeqF  
        ConvertWidth "u", "u" +Dx1/I  
        ConvertWidth "v", "v" Vs#"SpH{'  
        ConvertWidth "w", "w" C5O5S:|'  
        ConvertWidth "x", "x" ?muDTD%c  
        ConvertWidth "y", "y" [[R7~.;  
        ConvertWidth "z", "z" S  ~@r  
        ConvertWidth "A", "A" ;y>S7n>n:  
        ConvertWidth "B", "B" v! 7s M  
        ConvertWidth "C", "C" % v;e  
        ConvertWidth "D", "D" r\$6'+Si  
        ConvertWidth "E", "E" w)+wj[6 E  
        ConvertWidth "F", "F" NFk}3w:  
        ConvertWidth "G", "G" yfmp$GO:  
        ConvertWidth "H", "H" ?PBa'g  
        ConvertWidth "I", "I" 403[oOj  
        ConvertWidth "J", "J" >5) <Uv$  
        ConvertWidth "K", "K" T>}0) s  
        ConvertWidth "L", "L" #O2wyG)oU  
        ConvertWidth "M", "M"  f~w>v  
        ConvertWidth "N", "N" +hE',i.  
        ConvertWidth "O", "O" BdN8 ^W  
        ConvertWidth "P", "P" NH7`5mF$  
        ConvertWidth "Q", "Q" {Ge+O<mD  
        ConvertWidth "R", "R" FJP< bREQ  
        ConvertWidth "S", "S" yJ!OsD  
        ConvertWidth "T", "T" @ Ii-NmOr  
        ConvertWidth "U", "U" 0U$:>bQ  
        ConvertWidth "V", "V" KcC! N{  
        ConvertWidth "W", "W" `I5O4|K)  
        ConvertWidth "X", "X" +c^_^Z$_4o  
        ConvertWidth "Y", "Y" r55qmPhg  
        ConvertWidth "Z", "Z" &4,WG  
        ConvertWidth "^l", "^p" ' |&> /dyq  
        ConvertWidth "(", "(" &&[zT/]P  
        ConvertWidth ")", ")" :.*HQt9N  
     #SKfE  
    End If `NBbTQtgO  
!Y ( apVQ  
    With ActiveDocument K&=D-50%  
        Dim tbl As Table O0^?f/&k  
        For Each tbl In .Tables !Eq#[Gs  
            tbl.Rows.Alignment = wdAlignRowCenter ^_v[QV  
            tbl.Range.Font.NameFarEast = "楷体" WfTD7?\dw  
            tbl.Range.Font.NameAscii = "Times New Roman" o^3FL||P#r  
            tbl.Range.Font.Size = 10.5 t)YUPDQ@J  
        Next \)ip>{WG  
        Set tbl = Nothing H2_/, n  
    End With ev9; Ld  
     Zp?4uQ)[W  
     JnfqXbE  
    With ActiveDocument $}t=RW  
         ,4[dLWU  
        For i = 1 To .TablesOfContents.Count 3Jk[/ .h  
            .TablesOfContents(i).Delete 3sH\1)Zz  
        Next k`Nyi )AGe  
         |xn#\epy@  
         tAF]2VV(e  
         'It?wB W  
        paraTotal = .Paragraphs.Count m#tpbFAsc  
        paraCounter = 1 et=7}K]l  
         A (Bk@;  
        LastTitle0No = 0 ]eE 1n2  
        LastTitle1No = 0 $@_{p*q  
        LastTitle2No = 0 ^YGTh0$W  
        LastTitle3No = 0 P0^c?s"I  
        LastTitle4No = 0 M\Se_  
        LastTableNo = 0 ?hnx/z+uT  
        LastFigureNo = 0 ;HDZ+B  
         eP"`,<  
        Dim Sec As Long ebqg"tPN{  
         3y99O $EAc  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) MDJc[am  
        If Sec = 0 Then \[yr=X  
            Exit Sub &VDl/qnaL  
        End If |^R*4;Phe  
         )zU:  
        k = 0 Fh K&@@_  
        Do While (paraCounter < paraTotal) And bContinue m`z7fi7u  
            k = k + 1 axmsrj W#  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then -"=)z / S  
                Exit Do e@E17l-  
            End If  EIr@g  
            paraCounter = paraCounter + 1 +b^]Pz5  
            If k Mod 20 = 0 Then 2 nv[1@M  
                Me.lbCounter.Caption = paraCounter !xu9+{-  
                DoEvents 1BJ<m5/1%  
            End If U&X2c R &a  
        Loop av-#)E  
         Gav"C{G  
         SxJ$b  
        Do While (paraCounter < paraTotal) And bContinue [)^mBVht  
             nZfs=@w:y  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) ]4`t\YaT  
            ShapeHeight = 0 (89Ji'dc  
            ShapeWidth = 0 hq=,Z1J  
           (&jW}1D  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth +Mk#9 r  
              OF[?Z  
            Select Case ParaType #)o7"PW:  
                Case "【】表格内容" B{C_hy-fw  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" XVt/qb%)r  
                Case "章" `H>b5  
                    LastTitle0No = LastTitle0No + 1 ?]c+j1 i  
                    '新一章开始,复位其下属标题编号 `\bT'~P  
                    LastTitle1No = 0  FZ F @  
                    LastTitle2No = 0 [$pmPr2  
                    LastTitle3No = 0 (9 sIA*,}  
                    LastTitle4No = 0 ciudRK63M  
                     ^"9* 'vTtc  
                    k = Val(ttNo) >{C\H.N  
                    If k = 0 Then '非数字编号章节 {^#2=`:)O  
                        If ttNo <> NoSeries1(LastTitle0No) Then ?7 \\e;j}  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString B:< ]Hl$  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText )tS-.PrA-  
                        End If {CtR+4KD  
                    Else ]dSK wxk  
                        If Val(ttNo) <> LastTitle0No Then t V03+&jF  
                            rText = "第" & LastTitle0No & ttString "xe=N  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText /.Fj.6U5  
                        End If 4U=75!>  
                         v!9i"@<!  
                    End If 54{q.I@n  
                     F30 ]  
                    '章段落设置 MuwQZ]u  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 3uV4/% U  
                    .Paragraphs(paraCounter).Style = "QLNU章节" mk!Dozb/  
                    .Paragraphs(paraCounter).Range.Select !4WEk  
                    Selection.EndKey unit:=wdLine .Pe9_ZH$W  
                    tc = Replace(rText, vbCr, "") ^rL_C}YBj-  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False sYqgXE.  
                Case "一级标题" Gh}yb-$N`&  
                    LastTitle1No = LastTitle1No + 1 ]N^*tO  
                    '新一级标题开始,复位其下属标题编号 [ %}u=}@  
                    LastTitle2No = 0 j(eFoZz,  
                    LastTitle3No = 0 Pao%pA.<  
                    LastTitle4No = 0 D'b#,a;V  
                     +f>cxA  
                    If ttNo <> NoSeries1(LastTitle1No) Then $d/&k`  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString ?P/AC$:|I  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText */z??fI27  
                    End If .m;G$X|3U  
                   tu0aD%C  
                     TW7:q83{l  
                    '一级标题段落设置  格式:一、标题内容 2# vv$YD  
                    .Paragraphs(paraCounter).Range.Text = rText d,0 }VaY=D  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" +pf5\#l?  
                    .Paragraphs(paraCounter).Range.Select <P_ea/5:|  
                    Selection.EndKey unit:=wdLine {^}0 G^  
                    tc = Replace(rText, vbCr, "") #DFV=:|~  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False c0_E_~  
                Case "二级标题" ('C7=u&F  
                    LastTitle2No = LastTitle2No + 1 O/Rhf[7v*  
                    '新二级标题开始,复位其下属标题编号 oFDz;6  
                    LastTitle3No = 0 ujr(K=E  
                    LastTitle4No = 0 5|I55CTx  
                     hIY Te  
                    If ttNo <> NoSeries1(LastTitle2No) Then t{d SX?<nt  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString J BC$Ku  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText c)}2K0  
                    End If 4nqoZk^R  
                     u,1}h L  
                    '二级标题段落设置 格式:(一)、标题内容 AVl~{k|  
                    .Paragraphs(paraCounter).Range.Text = rText bc I']WgB-  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" ,qQG;w,m  
                     x[Im%k  
                    .Paragraphs(paraCounter).Range.Select =8Ehrlq  
                    Selection.EndKey unit:=wdLine Pm+tQ  
                    tc = Replace(rText, vbCr, "") rY0u|8.5Q  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False \( )# e  
                 kL>d"w  
                Case "三级标题" 4-R^/A0  
                    LastTitle3No = LastTitle3No + 1 2-'Opu  
                    '新三级标题开始,复位其下属标题编号 OtTBErQNF  
                    LastTitle4No = 0 -.IEgggf  
                     2;$ k(x]  
                    If Val(ttNo) <> LastTitle3No Then 9zBMlc$X  
                            rText = LastTitle3No & ". " & ttString R"AUSO|{  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText n6MM5h/#r  
                         :7g=b%;  
                    End If C [uOReo  
                    '三级标题段落设置 格式:1. 标题内容 x%N\5 V1  
                    .Paragraphs(paraCounter).Range.Text = rText WC,+Cn e  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" w%y\dIeI'  
                    .Paragraphs(paraCounter).Range.Select 2HD]?:Fk7  
                    Selection.EndKey unit:=wdLine f )Z%pgB  
                    tc = Replace(rText, vbCr, "") eq[Et +  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False nV*y`.+  
                Case "四级标题" MFt*&%,JX  
                    LastTitle4No = LastTitle4No + 1 Sv'y e  
                     71fk.16  
                    If Val(ttNo) <> LastTitle4No Then I.'b'-^  
                            rText = "(" & LastTitle4No & "). " & ttString e`K)_>^n#  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText G8Z4J7^  
                     {Qv>q$Q  
                    End If ]m4OIst  
                    '四级标题段落设置 格式:(1). 标题内容 S'LZk9E  
                    .Paragraphs(paraCounter).Range.Text = rText "*z_O  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" yX!HZu;j  
                    .Paragraphs(paraCounter).Range.Select 0d^Z uTN  
                    Selection.EndKey unit:=wdLine ,=QM#l]  
                    tc = Replace(rText, vbCr, "") jS.g]k  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False p\p\q(S">  
                 A"v{~  
                Case "表格标题" F {+`uG  
                    LastTableNo = LastTableNo + 1 5J2=`=FK  
                     lrWQOYf2  
                    If ttNo <> CStr(LastTableNo) Then /) 4GSC}Gg  
                            rText = "表" & LastTableNo & ". " & ttString "LhvzM-<8  
                            ErrMsg.AddItem "表格编号错误:" & ParaText ~utJB 'gr  
                   crcA\lJf  
                    End If tK(g-u0N`(  
                     L';MP^  
                    '表格名称段落设置 格式:表1. 表格名称 "2?l{4T\  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" D${={x  
                    xe = Replace(rText, vbCr, "") &HW1mNF9  
                    .Paragraphs(paraCounter).Range.Select d[ D&J  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 I 1Sa^7  
                    Selection.Range.Text = xe N8r*dadDd  
                    Selection.EndKey 7nU6k%_%  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False @}-r&/#  
                 SqA J-_~  
                Case "表格首行" n5-)/R[z  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" N|g;W  
                Case "图片标题" +rXF{@ l  
                    LastFigureNo = LastFigureNo + 1 Pmg)v!"  
                     DZS]AC*  
                    If ttNo <> CStr(LastFigureNo) Then a:TvWzX,  
                            rText = "图" & LastFigureNo & ". " & ttString fvq,,@23  
                            ErrMsg.AddItem "表格编号错误:" & ParaText 8eBOr9l+j  
                   8~lIe:F-  
                    End If !4"^`ors$  
                    '图片名称段落设置 格式:图1. 图名称 >Esz iRm  
                    .Paragraphs(paraCounter).Range.Text = rText ^Xb7[ +I6  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" i_R e*  
                    .Paragraphs(paraCounter).Range.Select Yc r3HLJy  
                    Selection.EndKey unit:=wdLine Z?P~z07  
                    xe = Replace(rText, vbCr, "") epHJ@W@#  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False g*UMG>  
                Case "正文" y&m0Lz53Z  
                     '正文名称段落设置 wXMDh$  
                    .Paragraphs(paraCounter).Style = "QLNU正文" Yap?^&GV  
               Case "文献条目" I04jjr:<  
                    With .Paragraphs(paraCounter) 4+$b~ u  
                        '.Range.Select B/JO~;{  
                        'Selection.ClearFormatting A - YBQPE  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” F>je4S;  
                        .Style = "QLNU参考文献" "9EE1];NT  
                    End With X~=xXN.  
               Case "图表注解" j%u-dr  
                    With .Paragraphs(paraCounter) iD38\XNMV  
                        .Range.Font.NameFarEast = "楷体" uMb> xxf  
                        .Range.Font.NameAscii = "Times New Roman" M 3 '$[  
                        .Range.Font.Size = 9 '小5号字 qBV x 6MI  
                         l%ay I  
                        .Alignment = wdAlignParagraphCenter _@mRb^  
                        .LeftIndent = 0 OLGBt  
                        .RightIndent = 0 eN? Y7  
                        .FirstLineIndent = 0 6lwta`2  
                        .LineSpacing = 12 K,'*Dz  
                        .LineSpacingRule = wdLineSpaceExactly 'ly?P8h  
                        .LineUnitAfter = 0 ._w8J"E5  
                        .LineUnitBefore = 0 im7nJQ^H$q  
                        .OutlineLevel = wdOutlineLevelBodyText u]-_<YZ'B  
                        .PageBreakBefore = False [D-Q'"'A  
                        .RightIndent = 0 7 ;@ST`cC  
                        .WordWrap = True @`opDu!  
                        .LineUnitAfter = 0.5 g"s$}5{8:  
                         E/&Rb*3  
                    End With 0Sq][W=  
                Case Else =<r8fXWZ  
                    '不作处理 o%{'U G  
            End Select ~\)qi=  
             |Xi%   
            '含有inlineshape的段落处理 :A %^^F%  
            If ShapeHeight > 30 Then FWue;pw3  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 RO;Bl:x4  
            End If %J:SO_6  
             D\w h;r  
            If (ShapeWidth + ShapeHeight) > 150 Then do*}syQ`O  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" 8P7"&VYc8  
            End If `@d<n  
             *L6PLe  
            '段落计数器递 v K7\JZ>  
            paraCounter = paraCounter + 1 uwf 5!Z:>  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter GZS1zTwBL  
            Me.txtStatus.Text = ParaText n+@F`]K e  
            DoEvents h& .wo !  
        Loop H1GRMDNXOA  
    End With @E( 7V(m/  
     Pg9hW  
    msg = ""  T9)nQ[  
     d)cOhZy  
    For i = 0 To Me.ErrMsg.ListCount - 1 fkSO( C)  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) Z=B_Ty  
    Next XC 7?VE  
     E:zF/$tG  
     b`yZ|j'ikd  
     %*aJLn+]_R  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg ]5~s "fnG  
    Me.cmdCheck.Enabled = True DFhXx6]  
    Me.txtStatus.Visible = True ?Xdak|?i  
    Me.lbParaType.Visible = False _lzyMEdr  
     BqDKT  
    bContinue = False !Fo*e  
End Sub 9a\nszwa  
YprH wL  
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) <IW#M E  
    Dim pTEXT As String |(m oWY=  
      MV_Srz  
    pTEXT = ChKRange.Text WW+l'6.  
     D|Iur W1f  
    ParaType = "其它" }bN%u3mHws  
    TitleString = pTEXT {oc igR 0  
    TitleNo = "N/A" 6S6f\gAM  
     73{'k K  
    shpCounter = ChKRange.InlineShapes.Count HEL!GC>#  
    If shpCounter <> 0 Then [b{CkX06  
        MaxShpHeight = 0: TotalShpWidth = 0 `Y-|H;z  
        For i = 1 To shpCounter QB.J,o*XD4  
            k = ChKRange.InlineShapes(i).Height )"f N!9,F  
            l = ChKRange.InlineShapes(i).Width I;5R2" 3  
            If k > MaxShpHeight Then du$|lxC  
                MaxShpHeight = k g (VNy@  
            End If Mb3}7@/[  
            TotalShpWidth = TotalShpWidth + l [7(-T?_  
        Next J q{ 7R  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then 1Je9,dd6  
            Exit Sub 1im^17 X  
        End If Wg{k$T_>  
    End If o"wXIHUmV  
     l4n)#?Q?  
    '空行 WN(ymcdYB  
    If Len(pTEXT) <= 2 Then qq)0yyL r  
        Exit Sub y;mj^/SxK  
    End If m)V/L]4  
     DeR='7n  
         AL$&|=C-$  
    '是否为表格中的文字 }:0uo5 B7  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then !D!~ ^\  
        ParaType = "表格内容" [E#UGJ@  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) '$4O!YI9@  
        If k = 1 Then [."[pY  
            ParaType = "表格首行" G}5#l  
        End If 8WE{5#oi  
        Exit Sub pa}*E  
    End If zR!o{8  
     ?? TMSH  
    '例外情况:脚注 +&zYZA8v  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then KH\b_>wU2  
        ParaType = "脚注" Kp+CH7I*  
        Exit Sub $^u} a   
    End If DAo~8H  
     ,q(&)L$S  
    '例外情况:尾注 b:qY gg  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then ycFio ,  
        ParaType = "尾注" #r PP*  
        Exit Sub pg]BsJN  
    End If Dnc(l(  
     ]9}HEu;1M  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then 3@5=+z~CW  
        ParaType = "页眉页脚" gP+fN$5'd  
        Exit Sub dU\%Cq-G)  
    End If aP'"G^F   
     I^o!n5VM  
     r=yK,d/1  
    With regEX ikE<=:pe  
        .Global = True n wI!O  
         Fnk_\d6Ma  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" yj4+5`|f  
        If regEX.Test(pTEXT) Then *'Z B*>  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") `eu9dLz H  
            TitleString = regEX.Replace(pTEXT, "$3") hO hS)  
            TitleNo = regEX.Replace(pTEXT, "$1") s@MYc@k  
            ParaType = "章" ,=?{("+  
            Exit Sub VqL.iZ-  
        End If _gKe%J&  
         ngj, x7t  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" 2pdvWWh3l  
        If regEX.Test(pTEXT) Then @EE."T9  
            ParaType = "一级标题" u?s VcD[  
            regEX.Execute (pTEXT) cyxuK*x<  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") cRX~z  
            TitleString = regEX.Replace(pTEXT, "$3") Ra*e5  
            TitleNo = regEX.Replace(pTEXT, "$1") 5[j`6l  
            Exit Sub 4&/j|9=X  
        End If NrP0Ep%V  
         "c}@V*cO<d  
        '全角或半角括号中的数字 d #jK=:eK  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" '`1CBU$  
        If regEX.Test(pTEXT) Then 7ugZE93!  
            ParaType = "二级标题" Xf)|P u  
            regEX.Execute (pTEXT) 42>Ge>#F  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") f|u#2!7  
            TitleString = regEX.Replace(pTEXT, "$5") ~=R SKyzt  
            TitleNo = regEX.Replace(pTEXT, "$2") e #/E~r&  
            Exit Sub eNiaM6(J  
        End If }I`a`0/  
         1-.~7yC  
        '阿拉伯数字  1. 2. [r/k% <  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" <b/~.$a'  
        If regEX.Test(pTEXT) Then 5N J4  
            ParaType = "三级标题" PRNoqi3sY  
            regEX.Execute (pTEXT) oD}uOC}FS{  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 nQ|r"|g  
            TitleString = regEX.Replace(pTEXT, "$3") v]B L[/4  
            TitleNo = regEX.Replace(pTEXT, "$1") wP,JjPUt  
            Exit Sub "UwH\T4I  
        End If <F11m(  
         Mi~(aah   
        '全角或半角括号中的阿拉伯数字 1s1=rZ!  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" /b|0PMX  
        If regEX.Test(pTEXT) Then t>8XTqqi  
            ParaType = "四级标题" <0S=,!  
            regEX.Execute (pTEXT) fO#vF.k%  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") iAa;6mH  
            TitleString = regEX.Replace(pTEXT, "$5") Lg"C]  
            TitleNo = regEX.Replace(pTEXT, "$2") e8'wG{3A  
            Exit Sub (H+'X}1  
        End If j5@:a  
         ,vW:}&U  
        '表格名称 A.UUW  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$"  +H$!a  
        If regEX.Test(pTEXT) Then ;-UmY}MU  
            ParaType = "表格标题" :$MG*/Q  
            regEX.Execute (pTEXT) 0ZQ'_g|%  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) 5q "ON)x  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) *%KKNT'*  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) 1:Si,d,wh  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 +l=r#JF  
            Exit Sub > x IJE2  
        End If Z $J#|  
         nC{%quwh{  
        '图片名称 1~ $);US  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" 0a"igq9t  
        If regEX.Test(pTEXT) Then ^&g=u5 d0  
            ParaType = "图片标题" ')GSAY7  
            regEX.Execute (pTEXT) ?W  E  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") Vb BPB5 $q  
            TitleString = regEX.Replace(pTEXT, "$3") |p$spQ  
            TitleNo = regEX.Replace(pTEXT, "$1") =)|-?\[w  
            Exit Sub 43V}# DA@  
        End If 1>L(ul(qGF  
         mDZ*E!B  
        '参考文献 q\\gpCgp  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 \@&_>us  
        If regEX.Test(pTEXT) Then d\ |!Hg,  
            ParaType = "文献条目" /  g 2b  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") TIvRhbu  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") {}:ToIp  
            Exit Sub %v2R.?F8  
        End If If%/3UJ@  
          <T[E=#  
        prfx = Left(pTEXT, 2) I@\OaUGr+  
        If prfx = "注:" Or prfx = "注:" Then '=P7""mN5  
            ParaType = "图表注解" %/updw#{B  
            Exit Sub 9)VF 1LD  
        End If JmEj{K<3I  
         Y2'cs~~$Ce  
         pKi&[  
        ParaType = "正文" }B~If}7  
         (rg;IXAq%  
    End With {\[5}nV  
End Sub b%cF  
;2Q~0a|  
Sub ConvertListToOrdinary() ^] kF{ o?  
    Dim st As Paragraph +VQ\mA59  
    With ActiveDocument ytNO*XoR  
        For i = .Paragraphs.Count To 1 Step -1 i*CZV|t US  
            Set st = .Paragraphs(i) =_0UD{"_0  
            lst = st.Range.ListFormat.ListString ! Ra*)b "  
            If lst <> "" Then ~)(\6^&=|  
                st.Range.ListFormat.RemoveNumbers S;]*)i,v  
                st.Range.InsertBefore lst & " " ]vuwkn+)  
            End If ,]T2$?|  
        Next GKcv<G208  
    End With XV^1tX>f{  
    Set st = Nothing h,"4SSL  
End Sub qY[xpm  
" LJq%E  
Private Sub UserForm_Activate() } (!EuLL  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" ? R>h `  
    Me.lbTotal.Font.Bold = True n@G[  
    Me.txtStatus.Visible = False &IlU|4`R%  
    Me.cmdCheck.Enabled = True <oz!H[!  
qTQBt}  
End Sub =N 5z@;!  
*{+G=d  
yv) ux:P&+  
Sub CheckSuperScript() 2h%z ("3/  
    Selection.Find.ClearFormatting Ao/ jt<  
    Selection.Find.Replacement.ClearFormatting CW<N: F.9  
    With Selection.Find N]RZbzK_5G  
        .Text = "[【\[[〖](*)[】\]〗]]" Li Kxq=K  
        .Replacement.Text = "[\1]" 8mQmi`  
        .Replacement.Font.Superscript = True "+unS)M;Y  
        '.Replacement.Font.Color = wdColorBlue N<DGw?Rl  
        .Forward = True n[(Qr9  
        .Wrap = wdFindContinue &5: tn=E  
        .FORMAT = True E\C9|1)  
        .MatchCase = False 2<}NB?f`N  
        .MatchWholeWord = False t'ZWc\  
        .MatchByte = False 0>zbCubPH  
        .MatchAllWordForms = False rSrIEP,c'  
        .MatchSoundsLike = False S6[v;{xJ  
        .MatchWildcards = True WVLHfkN  
    End With Uo2GK3nT  
    Selection.Find.Execute Replace:=wdReplaceAll EAeqLtFqs  
End Sub ^i:B+ rl  
|2KAo! PI  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) t:fFU1x  
    bContinue = False <jed!x  
    Set regEX = Nothing ~RWktv  
End Sub + T8B:  
'MY/*k7:  
Sub CeateOrModifyStyle() NssELMtF!g  
' xp Og8u5  
' f47M#UC  
Dim stl As Style i E CrI3s  
     +E1h#cc)  
    Options.Pagination = False R"K#7{p9  
     `UBYp p  
    On Error Resume Next +o9":dl  
    For Each stl In ActiveDocument.Styles c*@G _rb  
        stl.Delete &d|r~NhP  
    Next GH[wv<  
    On Error GoTo 0 <^$<#K d  
     !fj(tPq  
    Set stl = Nothing hqRw^2F  
     yBI'djL~>  
    DoEvents "U7qo}`I  
    On Error Resume Next }3?n~s\)6f  
     Z> r^SWL  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph }*L(;r)q  
     "Y\_ TtY  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph %AQIGBcgL  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph y{N-+10z  
     cH>%r^G\  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph k?'B*L_Mzv  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph 6&/T@LQYrh  
     ."FuwKSJCo  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph u7=U^}#  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph G\(|N9^:  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph &iV,W4  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph $LU"?aAW  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph ){UcS/GI=  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph []D@Q+1  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph RSo& (Uv  
     ttu&@ =  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph p/h Rk<K6  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph ^_m9KA  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph Q1+dCCY#F  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph tToTx f~  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph 71\xCSI1w&  
     @9"J|}  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph `]W| 8M  
    On Error GoTo 0 ~ yX2\i"  
    DoEvents f!JS= N?3  
     8]LD]h)B"  
    'BaseStyle +>PX&F  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False  =kuMWaD  
    With ActiveDocument.Styles("BaseStyle").Font w4gg@aO  
        .NameFarEast = "宋体" )P+7PhE{J  
        .NameAscii = "Times New Roman" !/wtYI-`  
        .NameOther = "宋体" C 9t4#"  
        .Size = 10.5 =AuR:Tx  
        .Bold = wdUndefined 4]E3c AJ  
        .Italic = wdUndefined SCz318n  
        .Subscript = wdUndefined cb}[S:&|  
        .Subscript = wdUndefined Ng_!zrx04  
          s~Te  
        .Underline = wdUnderlineNone ye MB0Z*r  
        .UnderlineColor = wdColorAutomatic rvw)-=qR[  
        .StrikeThrough = False 6H7],aMg$A  
        .DoubleStrikeThrough = False s)pbS}L  
         :ijAqfX  
        .Outline = False 9 yfJVg  
        .Emboss = False ' MxrQ;|S  
        .Shadow = False ~sXcnxLz  
        .Hidden = False Q@HopiC  
        .SmallCaps = False }+sT4'Ah>  
        .AllCaps = False /Sh#_\x  
        .Color = wdColorAutomatic )vSRHE  
        .Engrave = False yNTK .  
        .Scaling = 100  E@b(1@  
        .Kerning = 1 [W7CXZDd  
        .Animation = wdAnimationNone 0vw4?>Jf@  
        .DisableCharacterSpaceGrid = False rh^mJU h  
        .EmphasisMark = wdEmphasisMarkNone :eCU/BC4  
    End With >qF CB\(  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat cMOyo<F#^=  
        .LeftIndent = 0 Nal9M[]c  
        .RightIndent = 0 -(=eM3o-9m  
        .SpaceBefore = 0 &Udb9  
        .SpaceBeforeAuto = False 4H/fP]u  
        .SpaceAfter = 0 yYfs y?3  
        .SpaceAfterAuto = False (I./ Uu%  
         Ct>GYk$  
        .LineSpacingRule = wdLineSpaceSingle 5@BBo eG  
        .Alignment = wdAlignParagraphJustify 1Yn +<I  
         ( U xW;  
        .WidowControl = False hzvd t  
        .KeepWithNext = False 2=^m9%   
        .KeepTogether = False U-3i  
        .PageBreakBefore = False ^cuc.g)c$?  
        .NoLineNumber = False X)% A6M  
         =z /dcC$r  
        .FirstLineIndent = CentimetersToPoints(0) ZEx}$<)_  
        .OutlineLevel = wdOutlineLevelBodyText >j QWn@  
        .CharacterUnitLeftIndent = 0 hr)B[<9  
        .CharacterUnitRightIndent = 0 5bg s*.s  
        .CharacterUnitFirstLineIndent = 0 1|jt"Hz  
        .LineUnitBefore = 0 t )}scf&^x  
        .LineUnitAfter = 0 |/)${*a4n  
        .AutoAdjustRightIndent = True :\o {_  
        .DisableLineHeightGrid = True @qYp>|AF  
         s ']Bx=  
        .FarEastLineBreakControl = True H7DJ~z~J  
        .WordWrap = True @ rc{SB  
        .Hyphenation = False B]l)++~  
         PGoh1Uu  
        .HangingPunctuation = True %xyou:~0zs  
        .HalfWidthPunctuationOnTopOfLine = True sc,vj'r  
        .AddSpaceBetweenFarEastAndAlpha = True ?)ONf#4Y  
        .AddSpaceBetweenFarEastAndDigit = True &*aIEa^  
        .BaseLineAlignment = wdBaselineAlignBaseline w}YlVete  
    End With ;67x0)kn  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False =aTv! 8</  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll ]'=)2 .}  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese VB*oGG  
    ActiveDocument.Styles("BaseStyle").NoProofing = False |mw.qI|  
     W@I|Q -  
    '一级标题题样式 6l:qD`_  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") k5kxQhPf  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" z.;ez}6%V  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False BNs@n"k  
    With ActiveDocument.Styles("QLNU一级标题").Font r<d_[?1N  
        .NameFarEast = "黑体" #iHs* /85  
        .NameAscii = "Arial Black" fd.^h*'mU  
        .NameOther = "黑体" ~S,,w1`  
        .Name = "黑体" Fkd+pS\9g~  
        .Size = 16              '三号 K42K!8$  
        .Bold = True <d$x.in  
        .Italic = wdUndefined WL"^>[Vq  
        .Subscript = wdUndefined XMu9Uk{|  
        .Superscript = wdUndefined VG ;kPzze  
    End With j=r P:#  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat  UWo]s.  
         /x p|  
        .LeftIndent = CentimetersToPoints(0) 2|*JSU.I  
        .RightIndent = CentimetersToPoints(0) JAem0 jPC8  
        .FirstLineIndent = CentimetersToPoints(0) @y\X R  
         1 P!Yxeh  
        .LineSpacingRule = wdLineSpaceSingle G\+L~t  
        .Alignment = wdAlignParagraphCenter 5l UF7:A>#  
         M]2]\km  
        .WidowControl = True 2HsLc*9{4  
        .KeepWithNext = True 2$ze= /l  
        .KeepTogether = True CmoE _8U>  
        .OutlineLevel = wdOutlineLevelBodyText b?lD(fa&  
         `M^= D&Bf  
        .LineUnitBefore = 0.5 / ^#;d UB  
        .LineUnitAfter = 0.5 ]z/8KL  
    End With Su/6Q$0 t  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False 4?q <e*W  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll \6Zr  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese  KJaXg;,H  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True 2OVRf0.R~  
    DoEvents _v> }_S  
     7E79-r&n  
    '二级 E vg_q>  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") A"dR{8&0  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" Zm_UR*"  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False oUQ,61H  
    With ActiveDocument.Styles("QLNU二级标题").Font +Z  !)^j  
        .NameFarEast = "黑体" "4{LN}`  
        .NameAscii = "Arial Narrow" %UERc{~o*,  
        .NameOther = "黑体" 2Tp1n8FV  
        .Name = "黑体"  :7]Sa`  
        .Size = 15        '小三号 HOJs[mqB%  
        .Bold = False 0?:} P  
        .Outline = False .7avpOfz  
        .Italic = wdUndefined WGZ9B^A  
        .Subscript = wdUndefined 9 %I?).5  
        .Superscript = wdUndefined IS&ZqE(`e  
    End With n|RJ;d30Q  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat FWG6uKv  
        .LeftIndent = CentimetersToPoints(0) U`NjPZe5^  
        .RightIndent = CentimetersToPoints(0) mQ|v26R  
        .FirstLineIndent = CentimetersToPoints(0) os:A]  
         .ufTQ?Fe  
        .LineSpacingRule = wdLineSpaceSingle )9 "_J9G  
        .Alignment = wdAlignParagraphLeft Vg>dI&O  
         ?En O"T.  
        .WidowControl = True b((M)Gz  
        .KeepWithNext = True VKG&Y_7N  
        .KeepTogether = True QLiu2U o  
        .PageBreakBefore = False @v)p<r^M">  
        .OutlineLevel = wdOutlineLevelBodyText < (fRn`)PT  
         !C3MFm{B  
        .LineUnitBefore = 0.5 8"8t-E#?  
        .LineUnitAfter = 0.5 SVh 7zh  
         PuA9X[=  
    End With Ki$MpA3j   
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False FE (ev 9@  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll TE7nJ gm  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese R5 - @  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True VyXhl;  
    DoEvents _ 4U5  
     %u5L!W&  
    '三级标题样式 & ;[Io  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Z8@J`0x  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" RbP6 F*f  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False 3yU.& k  
    With ActiveDocument.Styles("QLNU三级标题").Font ogHCt{'  
        .NameFarEast = "宋体" 1Vrh4g.l  
        .NameAscii = "Times New Roman" ~O oidKT  
        .NameOther = "黑体" `tA" }1;ka  
        .Name = "黑体" g+Sbl  
        .Size = 14               '四号 1VG4S){}\9  
        .Bold = False W_\5nF  
        .Outline = False 1AM!8VR2  
        .Italic = wdUndefined aJbO((%$|u  
        .Subscript = wdUndefined !h23cj+V  
        .Superscript = wdUndefined R6kD=JY/!  
    End With 0uOkMuy<  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat EIf5(/jo  
        .LeftIndent = CentimetersToPoints(0) "!ug_'VW  
        .RightIndent = CentimetersToPoints(0) xSsa(b  
        .FirstLineIndent = CentimetersToPoints(0) KyYMfC  
         ^cP!\E-^  
        .LineSpacingRule = wdLineSpaceSingle O7-mT8o  
        .Alignment = wdAlignParagraphLeft t!W(_8j  
         9.gXzP H  
        .WidowControl = True F@'Jbd`   
        .KeepWithNext = True :OhHb #D  
        .KeepTogether = True T?tgd J  
        .PageBreakBefore = False qG?Qc (  
        .OutlineLevel = wdOutlineLevelBodyText p'*>vk  
         7byK{{/z  
        .CharacterUnitLeftIndent = 0 C'.L20qW  
        .CharacterUnitRightIndent = 0 lhAX;s&9  
        .CharacterUnitFirstLineIndent = 2 _/-jX  
         j7$e28|_n  
        .LineUnitBefore = 0.5 |y!=J$ $_H  
        .LineUnitAfter = 0 7vrl'^1  
    End With ZojI R\F^  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False CY s,`  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll [B#R94  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese "/3'XOK|  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True wsZF;8ut  
    DoEvents [65 `$x-  
     bYpnt V  
    '四级标题样式 0ghGBuv1s  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") )NXmn95  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" tl,.fjZn  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False pN:Kdi  
    With ActiveDocument.Styles("QLNU四级标题").Font ;=eDO(Ij  
        .NameFarEast = "宋体" Sq/ qu-%X  
        .NameAscii = "Times New Roman" ;g5m0l5  
        .NameOther = "宋体" VM GS[qrG  
        .Name = "宋体" c[wla<dO*  
        .Size = 12               '小四号 4:$4u@   
        .Bold = True !;Yg/'vD-  
        .Outline = False .w=/+TA  
        .Italic = wdUndefined N kb|Fd/s  
        .Subscript = wdUndefined [!HEQ8 2g  
        .Superscript = wdUndefined \E72L5nJW  
    End With fTS5 yb%  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat P;=n9hgHI  
         4sF"6+%5d  
        .LeftIndent = CentimetersToPoints(0) ;c-(ObSm  
        .RightIndent = CentimetersToPoints(0) SPX$ U5&  
        .FirstLineIndent = CentimetersToPoints(0) 1 d}Z(My  
         &C, 'x4c"  
        .LineSpacingRule = wdLineSpaceSingle =9O^p@Q#W  
        .Alignment = wdAlignParagraphLeft ]@j*/IP  
         oTU!R ,  
        .WidowControl = True 4B =7:r  
        .KeepWithNext = True )t0$qd ]  
        .KeepTogether = True ^84G%)`&  
        .PageBreakBefore = False S;3R S;  
        .OutlineLevel = wdOutlineLevelBodyText o{* e'4  
         \o}xF@sM5  
        .CharacterUnitLeftIndent = 0 sJ;g$TB  
        .CharacterUnitRightIndent = 0 p{amC ;cI$  
        .CharacterUnitFirstLineIndent = 2 TN!j13,  
         : UGZ+  
        .LineUnitBefore = 0 9YIM'q>`v  
        .LineUnitAfter = 0 `#F{Waww'  
         ;4R$g5-4X  
    End With +Mo9kC  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False vM*-D{  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll Y!~49<;  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese TJ_$vI  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True Z0x ar]4V  
    DoEvents Pk{_(ybaY  
     ,<n}W+3  
    '正文校式 a oD`=I*<  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") ?26I,:;  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" /32Fy`KV  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False ieDk;  
    With ActiveDocument.Styles("QLNU正文").Font ]qethaNy  
         n7B7m,@1  
        .NameFarEast = "宋体" V wg|K|  
        .NameAscii = "Times New Roman" gPNZF\ r  
        .NameOther = "宋体" "bFTk/  
        .Name = "宋体" D.B.7-_8  
         q>_/u"  
        .Size = 12               '小四号 cs,N <|  
         rdl;M>0@  
        .Bold = wdUndefined gf#{k2r  
        .Italic = wdUndefined BZ94NOOdw  
        .Subscript = wdUndefined ~ -4{B  
        .Superscript = wdUndefined _E&A{HkJ  
         4ni<E*  
        .Outline = False Y;dz,}re  
        .Emboss = False PWaw]*dFmy  
        .Shadow = False @Lpq~ 1eZB  
        .Hidden = False [YRz*5   
         FcR=v0),  
        .DisableCharacterSpaceGrid = True $UMFNjL  
    End With ][gq#Vx@  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat |%F=po>w  
         eJF5n#  
        .LeftIndent = CentimetersToPoints(0) 5,3'=mA6  
        .RightIndent = CentimetersToPoints(0) <r .)hT"0  
        .FirstLineIndent = CentimetersToPoints(0) cv-PRH#  
         \rx3aJ l  
        .LineSpacingRule = wdLineSpaceExactly KyVQh8  
        .LineSpacing = 20 / ;$#d}R  
        .Alignment = wdAlignParagraphLeft X[*<NN  
         g`{;(/M+  
        .WidowControl = False QwNly4  
        .KeepWithNext = False a]JYDq`,3  
        .KeepTogether = False 9oRy)_5Z(=  
        .PageBreakBefore = False "cE7 5  
        .Hyphenation = False [pC$+NX  
         q.KG^=10  
        .OutlineLevel = wdOutlineLevelBodyText ^=BTz9QM  
         %+ @O#P  
       A> vBQN  
        .CharacterUnitLeftIndent = 0 ]e"=$2d$  
        .CharacterUnitRightIndent = 0 m!|kW{B#A  
        .CharacterUnitFirstLineIndent = 2 D"Bl:W'?j  
         O,+1<.;+  
        .LineUnitBefore = 0 (Mo*^pVr  
        .LineUnitAfter = 0 j~2 {lCT  
        .SpaceBefore = 0 rXmn7;B}g  
        .SpaceAfter = 0 y6ECdVF  
         v~f HYa>  
        .DisableLineHeightGrid = True )IP,;<  
    End With prC;L*~8  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False 7]U "Z*  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll ]{)a,c NG  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese Ed0QQyC@9  
    ActiveDocument.Styles("QLNU正文").NoProofing = True L"E7#}  
    DoEvents 9=vMgW  
     Sz%t JD..  
    '图片段落样式 0IwA#[m1`  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") bZnuNYty75  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" 6LOnU~l,  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False T%.8 '9  
    With ActiveDocument.Styles("QLNU图片段落").Font )JDs\fUE  
        .Size = 12               '小四号 9v;Vv0k_  
        .Italic = wdUndefined *?5*m+  
        .Subscript = wdUndefined Hbj,[$Jb  
        .Superscript = wdUndefined :8L8q<U  
    End With EY^1Y3D w0  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat chcbd y>C  
         :By?O"LQ  
        .LeftIndent = CentimetersToPoints(0) s [M?as  
        .RightIndent = CentimetersToPoints(0) dT`D:)*:  
        .FirstLineIndent = CentimetersToPoints(0) Vi>,kF.f V  
         y~B h  
        .LineSpacingRule = wdLineSpaceSingle AYt%`Y.!  
        .Alignment = wdAlignParagraphCenter @)UZ@ ~R  
        .KeepWithNext = True {'XggI%  
        .OutlineLevel = wdOutlineLevelBodyText X\]L=>]C  
         5m*iE*+  
        .CharacterUnitLeftIndent = 0 .GsV>H  
        .CharacterUnitRightIndent = 0 Nh8Q b/::  
        .CharacterUnitFirstLineIndent = 0 sd,J 3  
         c& r70L,  
        .LineUnitBefore = 0 fL_4uC i\  
        .LineUnitAfter = 0 g-Mj.owu=  
    End With w,.+IV$Kk  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False ^`*9QjY  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll V@B__`y7  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese Sc>,lIM  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True j|4<i9^}  
    DoEvents W^0w  
     "9m2/D`=  
     R}G4rO-J  
    '第X章 G<At_YS  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 3*]eigi)  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" T_i:}ul  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False T_s _p  
    With ActiveDocument.Styles("QLNU章节标题").Font =[H;orMr  
        .NameFarEast = "黑体" AJf4_+H e  
        .NameAscii = "Arial Black"  4E; VM{  
        .NameOther = "Arial Black" UR%/MV  
        .Name = "黑体" D N'3QQn  
        .Size = 16 !9u|fnC9  
        .Bold = True txJr;  
        .UnderlineColor = wdColorAutomatic dU6ou'p f  
        .Outline = False gD,1 06%  
        .Italic = wdUndefined %=n!Em(  
        .Subscript = wdUndefined 2"0es40;0  
        .Superscript = wdUndefined vL|SY_:4  
        .Scaling = 100 N^#ZJoR  
        .DisableCharacterSpaceGrid = True %j:]^vqFA  
    End With )T/0S$@  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat 9 8j>1 "8  
        .LineSpacingRule = wdLineSpaceSingle Z8# (kmBdB  
        .Alignment = wdAlignParagraphCenter f1`gdQ)H  
        .WidowControl = True &Lt}=3G  
        .KeepWithNext = True P?8GV%0$  
        .KeepTogether = True aUzBV\Yd}  
        .PageBreakBefore = True E.r>7`E  
        .OutlineLevel = wdOutlineLevelBodyText '{a/2 l  
         c2h{6;bfY  
        .LeftIndent = CentimetersToPoints(0) 1%EBd%`#  
        .RightIndent = CentimetersToPoints(0) _a5d?Q9Z  
        .FirstLineIndent = CentimetersToPoints(0) M2HomO/X)  
         yyoqX"v[  
        .CharacterUnitLeftIndent = 0 k&&2Tq  
        .CharacterUnitRightIndent = 0 $h5xH9x ;  
        .CharacterUnitFirstLineIndent = 0 s:OFVlC%\  
         (*Z)(O*z  
        .LineUnitBefore = 1 t0/p]=+.p/  
        .LineUnitAfter = 0.5 5A%w 8Qv  
         W}--p fG  
        .AutoAdjustRightIndent = False >7wOoK|1'  
        .DisableLineHeightGrid = True Ozw;(fDaU  
        .FarEastLineBreakControl = True !2 LCLN\  
        .WordWrap = True QP@%(]fG  
    End With EqyeJq .  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False G,$PV e*  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll ;Yx)tWQI  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese sc|_Q/`\.  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True lphFhxJA{  
    DoEvents ?{\nf7Y  
     3[\iQ*d }B  
    '表格标题 4 zASMu  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") M9Cv wMi  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" Wl;.%.]>  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False L; T8?+x  
    With ActiveDocument.Styles("QLNU表格标题").Font ks3`3q 7  
        .NameFarEast = "楷体" b o0^3]Z  
        .NameAscii = "Arial" )'Oh `$M  
        .Name = "楷体" " W!M[qBW  
        .Size = 10.5 Gn\_+Pj$  
        .Bold = True B268e  
        .Underline = wdUnderlineNone k'gh  
        .Italic = wdUndefined Ager$uC  
        .Subscript = wdUndefined bBu,#Mc  
        .Superscript = wdUndefined U1@IX4^2`  
        .Color = wdColorAutomatic *-+&[P]m  
    End With -u&6X,Oq\u  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat IC#>X5  
         n1qQ+(xC  
        .LineSpacingRule = wdLineSpaceSingle B.wYHNNV  
        .Alignment = wdAlignParagraphCenter |M>eEE*F<  
        .KeepWithNext = True 0Oi,#]F  
        .KeepTogether = True c ;%_EN%  
        .OutlineLevel = wdOutlineLevelBodyText \,7f6:  
         $"`- ^  
        .LeftIndent = CentimetersToPoints(0) N8!cO[3Oh  
        .RightIndent = CentimetersToPoints(0) 3Vsc 9B"w  
        .FirstLineIndent = CentimetersToPoints(0) __`*dL>*  
         q`|LRz&al  
        .CharacterUnitLeftIndent = 0 sSOOXdnGG  
        .CharacterUnitRightIndent = 0 uXI_M )  
        .CharacterUnitFirstLineIndent = 0 _.>QEh5"5  
         l/BLUl~z  
        .LineUnitBefore = 1 |>27'#JC  
        .LineUnitAfter = 0 aiQ>xen5C5  
         b^ L \>3  
    End With ji1viv  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False !zux z  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll $ .C=H[QC  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese sC27FVwo  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True aHs^tPg  
    DoEvents {_b%/eR1  
XOxr?NPQ^  
    '表格首行 ;6gDV`Twy  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") il}%7b-  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False oE<`VY|  
    With ActiveDocument.Styles("QLNU表格首行").Font -#0qV:D  
        .NameFarEast = "楷体" guX 9}  
        .NameAscii = "Times New Roman" *7*lE"$p  
        .Name = "楷体" 7q?9Tj3  
        .Size = 9 9!f/aI  
        .Bold = True nnCG g+l  
        .Underline = wdUnderlineNone ICuF %  
        .Italic = wdUndefined kv8Fko  
        .Subscript = wdUndefined #%`|~%`{:  
        .Superscript = wdUndefined rW0kA1=E  
    End With ZZWD8 AX  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat x N=i]~  
        .LineSpacingRule = wdLineSpaceSingle 0T@Zb={  
        .Alignment = wdAlignParagraphCenter sqla}~CiX  
         Yb:\a/ y  
        .LeftIndent = CentimetersToPoints(0) +)kb(  
        .RightIndent = CentimetersToPoints(0) P.6nA^hXB  
        .FirstLineIndent = CentimetersToPoints(0) E>&n.%  
          u*e.yN  
         E_Im^a  
        .CharacterUnitLeftIndent = -0.5 7x#Ckep:I  
        .CharacterUnitRightIndent = -0.5 WF2}-NU"  
        .CharacterUnitFirstLineIndent = -0.5 @*}D$}aR'V  
         <!L>Exh&r  
        .LineUnitBefore = 0 A&s:\3*Kh  
        .LineUnitAfter = 0 0FGe=$vD  
        .SpaceBefore = 0 q:l>O5  
        .SpaceAfter = 0 t/ +=|*  
         Ol1e/Wv  
    End With HKF H/eV  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False \x)n>{3C  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll =3|O %\  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese "nZ*{uv  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True MA;1 ;uI,  
    DoEvents H:!7:  
) u3 Zm  
    '表格内容 h lkn%  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") g1XZ5P} f  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False aJYgzr,  
    With ActiveDocument.Styles("QLNU表格内容").Font q/4YS0CqE  
        .NameFarEast = "楷体" 3l)hyVf&  
        .NameAscii = "Times New Roman" ipQLK{]t  
        .Name = "楷体" Tg!i%v(-t  
        .Size = 9 dArDP[w  
        .Bold = False KQacoUHrK?  
        .Underline = wdUnderlineNone A{UULVp  
        .Italic = wdUndefined km)zMoE{c{  
        .Subscript = wdUndefined &L#UGp $,  
        .Superscript = wdUndefined T^:UBjK6t{  
    End With N U|d  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat /[O(ea$U  
        .LineSpacingRule = wdLineSpaceSingle D-8O+.@  
        .Alignment = wdAlignParagraphCenter fYp'&Btb]x  
         ="x\`+U  
        .LeftIndent = CentimetersToPoints(0) g$HwxA9Gp/  
        .RightIndent = CentimetersToPoints(0) JmPHAUd  
        .FirstLineIndent = CentimetersToPoints(0) P9=?zh 6G.  
         &F\?  
        .CharacterUnitLeftIndent = -0.5 HkQ*y$$  
        .CharacterUnitRightIndent = -0.5 d_4T}% q  
        .CharacterUnitFirstLineIndent = -0.5 UQ'\7OS  
        .LineUnitBefore = 0 ;epV<{e$q4  
        .LineUnitAfter = 0 $P>`m$(8  
        .SpaceBefore = 0 1=#q5dZ]  
        .SpaceAfter = 0 dA@'b5N{"  
    End With cU0s p   
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False 7.C;NT  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll Is]aj-#r  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese )A!>=2M `  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True !xP8# |1  
    DoEvents QF{4/y^j{  
OC1I&",Ai|  
    '图片标题 iOwx0GD.n  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") *&?c(JU;<  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" [E+$?a=  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False Ae69>bkE0  
    With ActiveDocument.Styles("QLNU图片标题").Font K/A*<<r ~  
        .NameFarEast = "楷体" WtViW=j'  
        .NameAscii = "Times New Roman" ul u9'ch  
        .Name = "楷体" j*F`"df  
        .Size = 10.5 ?dD&p8{  
        .Bold = True 7w 37S  
        .Underline = wdUnderlineNone <.pU ,T/  
        .Italic = wdUndefined n9@ of  
        .Subscript = wdUndefined Wm_4avXtO  
        .Superscript = wdUndefined [P Q?#:r  
        .Outline = False x\F,SEj  
        .Shadow = False i7ISX>%  
        .Color = wdColorAutomatic 9UKp?SIF  
    End With K#*reJ}K  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat '6Ay&A3N]  
        .LineSpacingRule = wdLineSpaceSingle .gG1kWA-  
        .Alignment = wdAlignParagraphCenter A'G66ei  
         uvtF_P/  
        .KeepWithNext = wdUndefined 7nHF@Y|*"  
        .KeepTogether = True Y3r%B9~  
        .OutlineLevel = wdOutlineLevelBodyText *F ? 8c  
         ,stN  
        .LeftIndent = CentimetersToPoints(0) 1c<=A!"{  
        .RightIndent = CentimetersToPoints(0) )E6;-rD0^+  
        .FirstLineIndent = CentimetersToPoints(0) + `  s@  
         cs T2B[f9D  
        .CharacterUnitLeftIndent = 0 m_=$0m J$  
        .CharacterUnitRightIndent = 0 j;s"q]"x]  
        .CharacterUnitFirstLineIndent = 0 $Z|ffc1  
         @7n/Q(  
        .LineUnitBefore = 0 1&^MfP}  
        .LineUnitAfter = 0 f` :i.Sr  
    End With ojQI7 Uhw  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False ]04 e1F1J  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll _7IKzUn9g[  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese H2Z1TIh  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True P8^hBv*  
    DoEvents D<8 HZ%o  
9;Itqe{8w  
    '目录项 &C_' p{G  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") ,Vh.T&X5  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" A]YV s  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False t'BLVCu  
    With ActiveDocument.Styles("QLNU目录项").Font p[<Dk$7K  
        .NameFarEast = "黑体" _Dym{!t  
        .NameAscii = "Times New Roman" t<~$  
        .NameOther = "Times New Roman" 0GB:GBhZ  
        .Name = "黑体" 6fd+Q  /  
        .Size = 10.5 dY@WI[yog  
        .Bold = False v3}L`dyh3  
        .Italic = wdUndefined @?=|Y  
        .Underline = wdUnderlineNone &krwf ]|  
        .Color = wdColorAutomatic ]4h92\\965  
        .Superscript = wdUndefined YhOlxON  
        .Subscript = wdUndefined b7!Qn}  
    End With HHq_ P/'  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat ]Tkc-ez  
         "`M?R;DH  
        .LineSpacingRule = wdLineSpaceSingle (4'$y`Z  
        .Alignment = wdAlignParagraphLeft 'rMN=1:iu"  
         5m?8yT}  
        .WidowControl = False L,mQ   
        .KeepWithNext = False <@}I0  
        .KeepTogether = False *.\  
        .PageBreakBefore = False Sp7ld7c  
        .NoLineNumber = False p!sWYui  
        .OutlineLevel = wdOutlineLevelBodyText Y^ kXSU  
         }Z{=|rVE  
        .LeftIndent = CentimetersToPoints(0) CamE'  
        .RightIndent = CentimetersToPoints(0) ta`N8vnf  
        .FirstLineIndent = CentimetersToPoints(0) ,Y|^^?'j Q  
         j7sKsbb  
        .CharacterUnitLeftIndent = 0 58%#DX34M  
        .CharacterUnitRightIndent = 0 IX*idcxR  
        .CharacterUnitFirstLineIndent = 0 _^el \  
         A,\6nO67  
        .LineUnitBefore = 0 2 >86oP&  
        .LineUnitAfter = 0 dDm):Z*`b  
    End With H|R  T?Q  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False 2 Yp7  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll Cl ^\OZN\=  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot KN7^:cC  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese G 16!eDMt  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True #ggf' QIHp  
    DoEvents qw@puw@D  
     /%0<p,T  
    '参考文献 #<e\QE'!  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") 3 dht!7/  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" 6)vSG7Ise  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False R  zf  
    With ActiveDocument.Styles("QLNU参考文献").Font jV? }9L^;  
        .NameFarEast = "宋体" BT)X8>ct  
        .NameAscii = "Times New Roman" Kv.>Vf.T}_  
        .NameOther = "Times New Roman" U f|> (C  
        .Name = "Times New Roman" -8r  
        .Size = 12 jy giG&H  
        .Bold = False kGd<5vCs  
        .Italic = wdUndefined T:/,2.l  
        .Subscript = wdUndefined z"+Mrew  
        .Superscript = wdUndefined OfctoPP _0  
        .Underline = wdUnderlineNone L]d-hs  
        .UnderlineColor = wdColorAutomatic GP&vLt51  
        .Color = wdColorAutomatic ~_Lr=CD;4  
        .Engrave = False UlAzJO6"  
    End With /e]'u&a  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat Ix(?fO#uNF  
         deM7fN4lTi  
        .LineSpacingRule = wdLineSpaceExactly .k 3 '  
        .LineSpacing = 16 ?[)}l9  
        .Alignment = wdAlignParagraphLeft %z#f.Ql  
        .WidowControl = False C8 vOE`U,J  
        .KeepWithNext = False <$F\Nk|x  
        .KeepTogether = False UB 6mqjPK  
        .PageBreakBefore = False OE4+GI.r-  
        .OutlineLevel = wdOutlineLevelBodyText JJ{9U(`_y6  
         A5i:x$ww  
        .LeftIndent = CentimetersToPoints(0) 3}@_hS"^8  
        .RightIndent = CentimetersToPoints(0) L=q+|j1>  
        .FirstLineIndent = CentimetersToPoints(0) @+9< O0  
         d?:=PH  
        .CharacterUnitLeftIndent = 0 F)+{AQL  
        .CharacterUnitRightIndent = 0 D\[h:8k  
        .CharacterUnitFirstLineIndent = -2 %F:)5gT?  
         wk6NG/<  
        .LineUnitBefore = 0 :>TEDy~O%  
        .LineUnitAfter = 0 yaG= j  
        .SpaceBefore = 0 yU8{i&w4  
        .SpaceAfter = 0 YO}1( m  
         ]8T |f  
    End With hGbj0   
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False _)]+hUw Y  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll 'ih hoW8  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS q EP 4  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True tID%}Zv  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese 1Wm)rXW[x  
    DoEvents =JKv:</.G  
;5tazBy&:C  
    ' 3&6#F"7  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") /9zE^YcT  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" ^| /](  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False ]d a^xWK  
    With ActiveDocument.Styles("QLNU论文题目").Font Ma8_:7`>O  
        .NameFarEast = "黑体" }~"hC3w  
        .NameAscii = "Arial Black" ?Y:8eD"*  
        .NameOther = "Arial Black"  ?p(/_@  
        .Name = "Arial Black" J|X 6j&-  
        .Size = 16 \0mb 3Q'  
        .Bold = False ynw5-aS3  
        .Italic = wdUndefined %H]lGN)  
        .Superscript = wdUndefined VxY+h`4#  
        .Subscript = wdUndefined UTf9S>HS  
        .Underline = wdUnderlineNone TQ{Han!  
        .UnderlineColor = wdColorAutomatic HcedE3Rg  
        .Color = wdColorAutomatic jCrpL~tWT  
-T&.kYqnb$  
    End With wKi^C 8Z2  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat srYJp^sC  
        .LineSpacingRule = wdLineSpaceSingle `.T}=j |  
        .Alignment = wdAlignParagraphCenter mwY IJy[  
        .WidowControl = True c%[#~;E  
        .KeepWithNext = True }';D]c  
        .KeepTogether = True # eCjn  
        .PageBreakBefore = True  ;zYqsS  
        .NoLineNumber = False e|&6$A>4]  
        .OutlineLevel = wdOutlineLevelBodyText ` ORECg)  
         ]~6_WE8L  
        .LeftIndent = CentimetersToPoints(0) $2M#qkik-  
        .RightIndent = CentimetersToPoints(0) zGc: @z  
        .FirstLineIndent = CentimetersToPoints(0) ^2$ lJ  
         H(Q.a=&4!p  
        .CharacterUnitLeftIndent = 0 3/b;7\M  
        .CharacterUnitRightIndent = 0 *;m5'}jsy  
        .CharacterUnitFirstLineIndent = 0 Pfm_@'8  
         WdZ:K,  
        .LineUnitBefore = 1 om |"S  
        .LineUnitAfter = 1 esHQoIhd  
         >~`r:0',  
        .BaseLineAlignment = wdBaselineAlignAuto \mw(cM#:  
    End With b8%C *r7  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False ,_X /Gb6)  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll rp6q?3=g  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS >0dv+8M n  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True sf]s",t~J  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese j:,NE(DF  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True 6gT5O]]#o  
    DoEvents CBDG./  
     <JV"@H=  
    '中文摘要 u{FDdR9<  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") Xe#K{gA  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" +<}0|Xl&  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False _>=L>*  
    With ActiveDocument.Styles("QLNU中文摘要").Font vTaJqEE  
        .NameFarEast = "宋体" fm(e3]  
        .NameAscii = "Times New Roman" 7C$ 5  
        .NameOther = "Times New Roman" =xsTDjH>  
        .Name = "Times New Roman" ovwQ2TuK  
        .Size = 12 {@<J_ A  
        .Bold = wdUndefined "H&"(=  
        .Superscript = wdUndefined uA$<\fnz  
        .Subscript = wdUndefined 2MATpV#BT  
        .Italic = wdUndefined H-3Eo#b#  
        .Underline = wdUnderlineNone iSFuT7; %  
        .UnderlineColor = wdColorAutomatic LY[~Os W  
        .Color = wdColorAutomatic w|CZ7|6  
    End With v3GwD0 0  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat quvanx V-L  
        .LineSpacingRule = wdLineSpaceExactly Qb! PRCHQ  
        .LineSpacing = 20 @ JvPx0  
        .Alignment = wdAlignParagraphLeft Gcb|W &  
         DhX#E&  
        .WidowControl = False eL4NB$Fb  
        .KeepWithNext = False ALEnI@0  
        .KeepTogether = True q~@]W=  
        .PageBreakBefore = False eeHP&1= 7  
        .NoLineNumber = False r}0\}~'?c  
        .OutlineLevel = wdOutlineLevelBodyText }?&k a$rI  
         "Tm[t?FMbe  
        .LeftIndent = CentimetersToPoints(0) P i Fm|  
        .RightIndent = CentimetersToPoints(0) ,R$u?c0>'&  
        .FirstLineIndent = CentimetersToPoints(0) R|f~>JUF  
         RN)dS>$  
        .CharacterUnitLeftIndent = 0 `'\t$nU  
        .CharacterUnitRightIndent = 0 7T"XPV|W6  
        .CharacterUnitFirstLineIndent = 2 <\0vR20/  
        .LineUnitBefore = 0 / }Rz=&  
        .LineUnitAfter = 0 R(-<BtM!-  
         >7roe []-|  
    End With gJ;_$`  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False $2<d<Um~z  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll K9vIm4::d$  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS BW"&6t#kA  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True #/NS&_Ge0s  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese FSRm|  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True 8/t$d#xHI  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete McoK@q ;  
    DoEvents A].>.AI  
     0W3 i()  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ifo7%XPcg  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" uZZU{U9h  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False gtYAHi  
    With ActiveDocument.Styles("QLNU英文标题").Font 9}c8Xt^&  
        .NameFarEast = "黑体" \`ZW* EtPI  
        .NameAscii = "Arial Narrow" +4\U)Z/\  
        .Name = "Arial Narrow" %lX%8Z$v  
        .Size = 16 RZe'Kw -  
        .Bold = True `+t.!tv!  
        .Bold = wdUndefined G[8in   
        .Superscript = wdUndefined Yk42(!  
        .Subscript = wdUndefined >6oOZbUY0  
        .Italic = wdUndefined S,U Pl}KF  
         ~V/?H!r'{}  
        .Underline = wdUnderlineNone :QWq"cBem  
        .UnderlineColor = wdColorAutomatic GZ{]0$9I'  
        .StrikeThrough = False `)qVF,Z}  
        .DoubleStrikeThrough = False H33i*][H  
    End With f5 0L,4,  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat L{E^?iX  
        .LineSpacingRule = wdLineSpaceSingle ?=VOD#)  
        .Alignment = wdAlignParagraphCenter bW ZbG{Y.  
        .WidowControl = True Ew S!]h?  
        .KeepWithNext = False hoT/KWD,  
        .KeepTogether = False i5 >+}$1  
        .PageBreakBefore = False f30Pi1/h=c  
        .NoLineNumber = False +525 {Tj  
        .FirstLineIndent = CentimetersToPoints(0) O$kq`'9  
        .OutlineLevel = wdOutlineLevelBodyText l<Q>N|1#k%  
         AW#<i_Ybf  
        .LeftIndent = CentimetersToPoints(0) '+ xu#R  
        .RightIndent = CentimetersToPoints(0) %+ FG,d  
        .FirstLineIndent = CentimetersToPoints(0) t8+_/BXv  
         8vuCc=  
        .CharacterUnitLeftIndent = 0 Q#(GI2F2#  
        .CharacterUnitRightIndent = 0 H'MJ{r0,  
        .CharacterUnitFirstLineIndent = 0 RNPbH.  
         }|B=h  
        .LineUnitBefore = 1 Sa"9^_.2#  
        .LineUnitAfter = 1 Cda!Mk:  
         ^'p |!`:  
    End With En&5)c+js4  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False ( Y+N@d  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll Fkf97O i  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS |v[Rp =?]  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True m~lpyAw  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese : L_BG)dM  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True @$"L:1_  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete 3+J0!FVla  
    DoEvents ;Nr]X  
M7>(hVEAW'  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") ;f,c't@w  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" 3x~{QG5Gn  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False =<@\,xN>C  
    With ActiveDocument.Styles("QLNU英文摘要").Font n6(i`{i  
        .NameFarEast = "宋体" 'xv8Gwf"  
        .NameAscii = "Arial" x f4{r+  
        .NameOther = "Arial" bS >0DU   
        .Name = "Arial" tA$)cg+.  
        .Size = 12 ^E6d`2w-  
        .Bold = wdUndefined /%4_-Cpm  
        .Italic = wdUndefined hUz[uyt  
        .Superscript = wdUndefined pG^}Xf2a  
        .Subscript = wdUndefined W23]Bx  
    End With cECi')  
     =`Y.=RL+'n  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat u*7Z~R  
         q> s-Y|  
        .LineSpacingRule = wdLineSpaceExactly h;V,n  
        .LineSpacing = 20 OG3/-K8R  
         r-kMLw/)  
        .Alignment = wdAlignParagraphJustify =SD\Q!fA  
         E42eOGp9i  
        .WidowControl = False o$C| J]%  
        .KeepWithNext = False fbFX4?-  
        .KeepTogether = False B/Gd(S`@q  
        .PageBreakBefore = False qzFQEepso  
        .NoLineNumber = False 9_fePS|Z4  
         .Hc(y7HV  
        .OutlineLevel = wdOutlineLevelBodyText T@%m7|P  
         VR!-%H\AW  
        .LeftIndent = CentimetersToPoints(0) \V2,pi8'v  
        .RightIndent = CentimetersToPoints(0) O+=vEp(  
        .FirstLineIndent = CentimetersToPoints(0) &x-TW,#Ks  
         H0a /(4/xg  
        .CharacterUnitLeftIndent = 0 +>7$4`Nb2  
        .CharacterUnitRightIndent = 0 ;NV'W]  
        .CharacterUnitFirstLineIndent = 2 {F N;'Uc  
         O[9-:,B{w  
        .LineUnitBefore = 0  q{die[J  
        .LineUnitAfter = 1 G5D2oQa=8  
         l7JY]?p  
    End With .$", *d  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False y[O-pD`  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll xt4)Ya  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS l{ex?  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False \Hqc 9&0  
    DoEvents 7n)&FX K`  
3`HnLD/  
    Options.Pagination = True  0Q593F  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." DWt*jX*  
    DoEvents gPzL*6OS A  
    ActiveDocument.Repaginate ED$DSz)x  
qQxz(}REu9  
End Sub j<pw\k{i  
?zq+jLyo  
.[DthE F  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: -~)OF  
oUx[+Gnv  
用VBA控制WORD自己修订学生毕业文的格式。 (1pEEq84  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

^nDal':*  
OOy}]uYF`  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 @phN|;?  
第6车皮 pieT'mA  

!$kR ;Q"/  
Cd~LsdKE5  
第9车皮 R^{xwI  
B?(4f2yE  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 1_3?R }$Wl  
$%He$t  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 hWxT!  
JD&U}dJ  
Main2.bas #: hVF/  
jsWX 6(=  
Attribute VB_Name = "SubMain" U"x~Jb3]O  
Option Explicit pTET%)3  
on5 0+)uN  
'采集文件与临时文件 ) >$^ wT  
Public Const TmpFile As String = "d:\30-0600.dat" Q7k.+2  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 zPBfiK_hV  
b;{h?xc6  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long #JS `e_3Rr  
Public hBCFile As Long  '记录采集参数的文件 gb_X?j%p7  
Public Const TmpBMP As String = "d:\1.bmp" @XBH.A^7r  
Public hTmpFile As Long JN^bo(kb  
 coAW9=o}  
E\! n49  
'采集窗口参数常量 _80ns&q  
Public Const FrameH As Long = 280& kH2oK :lN  
Public Const FrameW As Long = 768& +S0u=u65  
Public Const pFrameSize As Long = FrameW * FrameH t?.\|2  
[d:@1yc  
'标志区范围,用于识别车辆 pzSqbgfrQ  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X b7v dk  
Public Const mkW As Integer = 28  '识别标志立柱宽度 nP u`;no  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) 1*c>I@I;  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) 0BXs&i-TP5  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 H5p5S\g-)  
'车缝检测位置常数 A\g%  
Public Const sSize As Long = 32& Oxj(g;}  
Public Const sPos As Long = 310& vz y!3Hiw  
Public Const sPosL As Long = 200& wT% "5:  
Public Const sPosR As Long = 500& Y-~;E3(  
'车缝检测框位置 'a_s%{BJXg  
Public Slice(1 To sSize, 1 To FrameH) As Byte }} #be  
Public SliceL(1 To sSize, 1 To FrameH) As Byte g< )72-h  
Public SliceR(1 To sSize, 1 To FrameH) As Byte ^H'kHl'F  
Public avSL As Integer, avSLR As Integer, avSLL As Integer %yhI;M^  
f !!P  
u\w2S4c  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 |D(&w+(  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 Lupy:4AD  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 "OJr*B  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long ^Y<M~K972  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte AA.Ys89V  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 Mk "vv k  
L5C2ng>  
w`-$-4i  
MLeX;He  
'一次连续采集的帧数 }{=8&gA0  
Public tFrames As Long TU-c9"7M~  
{g@A>  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 %O_t`wz  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 %^U"Spv;  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize vnVZJ}]w\  
_/ Tlqzp  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte oVEAlBm^v  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte \bRy(Z)  
Public pWorkSpace(1 To FrameW * FrameH) As Long -$m@*L  
Public Const pBufferSize As Long = FrameW * FrameH * 2 tx)OJY  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 #'iPDRYy  
H9:%6sds  
Public hBoard As Long   '采集卡标识 khS/'b  
Public mBufferAddr As Long  '缓存地址 DUo0w f#D^  
Public BufferSize As Long  '缓存大小(字节) qxSs ~Qc  
Public iCurrentCard As Long Vku#;:yUb^  
Public CapStatus As Long j88=f#<  
Public iFrames As Long <vLdBfw&N  
Public currentBr As Byte, currentContr As Byte \gP. \  
xfes_v""  
Public hMEM As Long, mStatus As Long c _p[yS  
Public Const hMemSize As Long = pFrameSize * 4 i\vpGlx  
Public hMemWork As Long F7V6-V{_  
Public Const hMemWorkSize As Long = pFrameSize * 5 A`Q >h{  
w Oj88J)  
nHVPMi>  
;YM]K R;  
'串口接收轨道衡数据 NkoofhZ  
Public WeightFromCom As String OsB?1;:  
Public bReceiveComplete As Boolean QA!#s\  
F`3^wHw^  
6~3jn+K$1  
Public Type GrayBMPHeader c-`37. J  
  Tag As Integer $>(9~Yh0  
  FileLength As Long    '文件大小 }M?|,N6  
  Reserve1 As Long h-,?a_  
  DataOffset As Long    '图像数据偏移量 Md?a cWE*L  
  BMPHeaderSize As Long  '文件头长 _y"a2M  
                        'length of the bitmap info header used to describe the bitmap colors, compression,…  0QM aM  
                        'the following sizes are possible: Ri[S<GOMii  
                        '28h - windows 3.1x, 95, nt, … ?4MSgu  
                        '0ch - os/2 1.x |yU3Kt  
                        'f0h - os/2 2.x R @OSqEnr  
ysl8LK   
  ImageWidth As Long           '图像宽(像素数) A{M+vsL  
  ImageHeight As Long          '图像高(像素数) 6."PS4}:  
  PlaneNumber As Integer  '图像层数 ]qMH=>pOsj  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap &p )@8HY  
                                        '4 - 16 color bitmap g@}6N.]#  
                                        '8 - 256 color bitmap i#tbdx#  
                                        '16 - 16bit (high color) bitmap !^]q0x  
                                        '24 - 24bit (true color) bitmap +`9yZOaC#  
                                        '32 - 32bit (true color) bitmap C|9[Al  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) |[DV\23{G  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) l_ZO^E~D_  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) L1rA T  
                                    '3 - bitfields (also identified by bi_bitfields) 5U3qr*/;m  
  IMAGESIZE As Long  '图像数据字节数 InP[yFV-z  
  hResolution  As Long  '水平分辩率  像素数/米 MN\i-vAL8  
  vResolution  As Long  '垂直分辩率 )FV6,  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 ,,Jjr[A_j  
  ImportantColors As Long B3eNFS  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 s9G)Bd 8  
End Type +R9%~Z.=  
X;(oz]tr$  
&b!vWX1N  
Fdr*xHx$P  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader U-1VnX9m  
Public sRECT As RECT Mc!2mE%47m  
f@h2;An$w  
nZ541o@t9  
Public conn As ADODB.Connection QYH."7X >  
Public rsTrain As ADODB.Recordset 48:liR  
Public rsOperater As ADODB.Recordset $\0TD7p  
Public rsGoods As ADODB.Recordset (;C$gnr.C  
Public rsGood2 As ADODB.Recordset 7 T mK  
Public rsSender As ADODB.Recordset qT"drgpi3  
Public rsReceover As ADODB.Recordset A0UV+ -PP  
Public rsTrainTMP As ADODB.Recordset p8$\uo9YQ  
cB_pyX9Z  
8B_0!U& ]  
'打开采集卡 ~K_]N/ >  
'设置参数 x<Iy<v7-  
'设置为实时单帧采集到缓存方式 XRtyC4f  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 CH55K[{<  
gj[z ka0_  
wG;}TxrLS  
Sub Main() k"5` :qL  
  Dim i As Integer, status As Long WI0QLR'  
     g(KK9Unu  
   InitBMPinfo I7A7X*  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 h)7v1,;w'  
    BMPHeader.Tag = &H4D42 %-\FVKX  
    BMPHeader.ImageWidth = FrameW sC!1B6:  
    BMPHeader.ImageHeight = FrameH 7KeXWW/d  
    BMPHeader.BMPHeaderSize = &H28 F9F" F  
    BMPHeader.PlaneNumber = 1 4v0dd p  
    BMPHeader.bpp = 8 SQKi2\8w  
    BMPHeader.Compression = 0 Tw}@ +-  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 Ko4)0&  
    BMPHeader.vResolution = &H1274 Tm%WWbc  
    BMPHeader.ColorsinBMP = 256 vNPfUEnA  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP ?<Z)*CF)  
    BMPHeader.DataOffset = Len(BMPHeader) ;,mBT[_ZO  
    For i = 0 To 255 v*smI7aH  
      BMPHeader.Pallate(i) = RGB(i, i, i) H]VsOr  
    Next i K?$ 9N}+  
    BMPHeader.IMAGESIZE = FrameH * FrameW )nJzSN=>$  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE -e &$,R>;  
^dheJ]n=k  
U.Pa7tn  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) sE^ns\&QP=  
     r^fxyN2V  
    BMP1.ImageWidth = FrameW -|6V}wHg~  
    BMP1.ImageHeight = FrameH * 2 E1^aAlVSD  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight /L)?> tg  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE 0&.LBv8  
B,r5kQI4  
  '确定标志位置,为pilarX, pilarY确定初始值 Nz3zsP$  
   PilarW = mkW $xLEA\s  
   PilarH = mkH  '此两项为固定值 KSF5)CZ5  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) M\9at\$  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 F19;RaP+  
   H]Y#pL u|  
   "L ^TT2  
  '连续采集记录文件 9qnuR'BDu  
  ' 建立一个缓冲区为页对齐方式的文件 ~K4k'   
  If Dir(TmpFile) <> "" Then *iPs4Es-  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ TlM'g6SQS  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) mgk64}K[n  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 gkSGRshf  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 L-`(!j  
  Else jG =(w4+  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ Z`^ K%P=  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 7ytm .lU  
  End If X77A; US  
  If hFile = 0 Then Xs{/}wc.q;  
    MsgBox TmpFile & ": File Open Error", vbOKOnly aIQrb  
    Exit Sub 37J\i ]  
  End If <m~T>Ql1  
  '采集参数记录文件 k,a,h^{}j  
hBCFile = FreeFile() u4go*#  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile "ugX /r$_  
   BT&rp%NO6l  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 }P05eI  
If hMEM = 0 Then >|v=Ba6R0  
    fStatus = GetLastError <+ -V5O^  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ 3s3 a>  
     & "请向技术人员报告该错误代码。", vbOKOnly t^`<*H  
    CloseHandle hFile ~l;yr @  
    Exit Sub I[tAT[ <  
End If We[<BJ o4  
s4!|v`+$M  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) 0Ei\VVK>  
If hMemWork = 0 Then *K]>}  
    fStatus = GetLastError #&;m< %  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ z~GVvgd  
     & "请向技术人员报告该错误代码。", vbOKOnly C }x4#bNK  
     '释放已成功分配的内存 rdORNlK&  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) ]R97n|s_  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) 2q2p=H>&  
     'hxs((['\  
    CloseHandle hFile %{N>c:2I$  
    Exit Sub & gY;`*<  
End If '=KuJ0`nE9  
L+v8E/W  
' Test writing (k7;  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& HR/k{"8W4Q  
     $ iX^p4v  
   '初始化采集卡参数 9m<wcZ  
   iCurrentCard = -1 , LCH2r  
   hBoard = okOpenBoard(iCurrentCard) #N<s^KYG-  
   Debug.Print hBoard R1]v}f_I"  
   If hBoard = 0 Then nL 1IS  
      ExitGrabber >:3xi{  
      End 0SAG6k~x  
   End If p=:7 atE  
   okGetBufferSize hBoard, mBufferAddr, BufferSize ##SLwrg  
   If mBufferAddr = 0 Then oA(. vr  
     MsgBox "缓存不存在!" 43UJ#r F  
     ExitGrabber i n[n A a  
   End If :7HVBH  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) NTXws 4'D  
   n,C D4Nv  
   '?&B5C  
   currentBr = 128: currentContr = 128 wJ;9),fL  
   '设置视频输入参数 -0=}|$H.  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 {LR#(q$1  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input =g{_^^n  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 wxdh?sQ  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 >qSO,$  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 :6\-9m8JM  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 tXssejiE%  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) ^4n2 -DvG  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) &. |;yt%v  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) dbf^A1HI  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 j<. <S {  
   + TPbIRA  
   '设置采集参数 sg'Y 4  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 6Y0/i,d*  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 m]+X }|  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 @\x,;!N@  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 {jj]K.&  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 ^N*pIVLC  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 \#h})`  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 J>,'P^  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 8cYuzt]..  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 34&u]4=L)  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 gJWlWVeq$  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 $bF`PGR_  
   mafAC73  
   (H|%?F;{l  
   okCloseBoard hBoard BDv|~NHs  
   Sleep 50 fS;m+D!j@  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 8eg2o$k_,#  
   &4ug3  
   '设置数据传送方式 n?TO!5RZK  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 17MN8SfQ  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 $i1>?pb3  
   f~n' Ki+'  
   sRECT.Right = -1   '用于获得当前设置值 ,*9#c*'S  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) &F@tmM~  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom <8F->k1"3  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 ; /6:lL  
   sRECT.Left = 0 _*OaiEL+:  
   sRECT.Top = 0 20SF<V  
   sRECT.Right = sRECT.Left + FrameW |THkS@Br  
   sRECT.Bottom = sRECT.Top + FrameH * 2 "6|'& 6&  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) E 6>1Fm8%V  
   /NPl2\o.  
   sRECT.Right = -1   '检查新设置值 Jgi{7J  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) oT9XJwqnv  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom E-*>f"<h  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) ^*$WZMMJ1  
   UgOGBj,&5W  
   If TESTSignal = False Then 1Ud t9$~T  
      'ExitGrabber $G^H7|PzdC  
   End If HQ-N!pf9  
   f_z2#,g  
   yKX:Z4I/  
   ]ly)z[is"]  
   '设为实时采集状态 zWKrt.Dg  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) s5_1}KKCs  
   bi4^ zaCEE  
   K284R=j -&  
   '单帧采集 J8`1V `$  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 ss |6_H =  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) m\[email protected]  
   okCaptureTo hBoard, BUFFER, 0, 1 'single bKZAJLnd  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 ;&7qw69k  
   '   Sleep 20 K4K3< Pg  
   'Loop 3RTB~K8:{  
   okGetCaptureStatus hBoard, True +#i,87  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize (AyRs7Dkn  
   '写入768*576测试图象 P~b%;*m}8  
   ArrayToBMP TmpBMP +E""8kW- Z  
   #U6/@l)  
   '打开数据库 9fr&Yb=_o@  
   Set conn = New ADODB.Connection r`mzsO-'  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ DI2S %N l  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ o$qFa9|Ec?  
      "; Mode=Read|Write" b_)QBE9  
   conn.Open .q'FSEkMJ  
   qqO10~Xc  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) &L[8Mju6  
   frmRecord.Visible = True 6 ^6uK  
   frmQuery.Visible = True v]d?6g  
   Load frmReceiveFromComm y7}~T!UyfF  
   B<|q{D$N/  
   '调试参数 7@e[:>e  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then f6/\JVi)-  
     SignalBox.Visible = True JY;#]'T\;  
   End If N?`GZ+5  
   If InStr(UCase(Command()), "/COMM") > 0 Then Ed ?Yk* 4  
     frmReceiveFromComm.Visible = True 6w .iEb  
   End If `"bRjC"f]  
[8o m9 Z3  
End Sub R,(+NT$  
/M{)k_V  
Sub ExitGrabber() :">~(Rd ZH  
  '关闭数据库 CM@"lV_  
  '关闭采集卡 &`\kb2uep  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) s>"WQ|;6  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) k^vmRe<lk  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) $D2Ain1  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) 4^jZv$l5  
  okStopCapture hBoard ,rvZW}=  
  okCloseBoard hBoard c+\Gd}IJq  
  CloseHandle hFile U`vt/#j 1  
  Close #hBCFile Z)Xq!]~/g  
  conn.Close ~k:>Xo[|O  
  End 9R t(G_'  
End Sub Di5Op(S((  
y+~Aw"J}  
Function ArrayToBMP(ByVal File As String) H~1? MAX  
Dim BytesWrite As Long /fcwz5~  
l*V72!Mv  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ sB*h`vs0T  
  CREATE_ALWAYS, 0&, 0&) s3f GX|;  
PHB\)/  
If hTmpFile = 0 Then 'KW+Rr~tZn  
   ArrayToBMP = False @)M.u3{\  
   Exit Function N]<~NG:6b  
End If ;*85'WcS  
X~/ 9Vd g  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN Ov{B-zCA  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& .jG.90  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN sjVl/t`l  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& f|HgLFx  
ES:p^/=*  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN =,} !Ns{k  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0&  :L+zUlsf  
36D,el In  
If BytesWrite < pFrameSize Then hF{mm(qyv  
  ArrayToBMP = False "} azC|:5  
End If 5D q{"@E  
EzY scX.[  
CloseHandle hTmpFile m<VL19o>R  
>=RHE@  
End Function s*A|9u f5  
Lh5+fk~i~8  
Function ArrayToBMP1(ByVal File As String) *TMM:w|1  
h^3Vd K,  
Dim BytesWrite As Long <P Z\qE*+y  
X#\P.$  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ | Y,X=Ed  
  CREATE_ALWAYS, 0&, 0&) EWvid4QEi  
I?xhak1)lu  
If hTmpFile = 0 Then W1M/Z[h6)5  
   ArrayToBMP1 = False 7C 6BZ$(  
   Exit Function BRQ5  
End If 4 9+}OIX  
9"l%tq_  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN uma9yIk  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& s t3]Yy  
Zq6ebj  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN C8%nBa /  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& :d/:Ga5v!  
4h2bk\z-  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN ^c:eXoU  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& #IciNCIrG  
Q0oDl8~  
If BytesWrite < pBufferSize Then ,19"[:WN  
  ArrayToBMP1 = False hc~#l#  
End If DW;.R< 8  
q?b)zeJ  
CloseHandle hTmpFile )7BNzj"~  
PeR<FSF ,i  
End Function ;kcFQed\w  
]`+"o[  
'使用该过程建立的文件要求在用后关闭 r|sy_Sk/{  
Public Function ArrayToBMP2(File As String) As Boolean i OA3x 8J  
U S~JLJI  
Dim BytesWrite As Long c9TkIe  
A_dYN?^?|  
ArrayToBMP2 = True 9cHNwgD>v  
s!zr>N"  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ z8MpE  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) s?gXp{O?X  
_KlPbyLU  
If hTmpFile = 0 Then <H(AS'  
   ArrayToBMP2 = False aG&kl O>m  
   Exit Function ieK'<%dxF  
End If P24    
@eD2<e  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN pz z`4VS:  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& l'X?S(fiV  
EC&1 9  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN sRI=TE]s  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& '"NdT7*+  
'J<zVD}0  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN \}_7^)S;  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& ,@j& q  
Ffqn|} gb  
If BytesWrite < pFrameSize Then m+JG e5fR<  
  ArrayToBMP2 = False =I*ZOE3n  
End If 'Y/V9;`)s  
tLGwF3e$A  
CloseHandle hTmpFile P<w>1 =  
n$VPh/  
End Function .M#>@~XR  
mm~o%1|WR  
Private Function TESTSignal() As Boolean Vf* B1Zb  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long E!]rh,mYK  
pLFL6\{g  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) )fcpE,g'  
wz2)seZY  
If extsign = 1 Then b+fy&rk@-  
   TESTSignal = True r4qV}-E  
Else S o0,)  
    If extsign = 0 Then r_2VExk  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly B=qRZA!DQ?  
        TESTSignal = False kO O~%|1CP  
        Exit Function 7.=s1~p  
    End If w+ )GM  
End If 0DjBqh$  
P) 0=@{(  
'测试视频输入类型 {`SGB;ho  
'video type ; {#M  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 jYssz4)tp  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) ?>Ci `XlLr  
If videotype = 1 Then 4rCqN.J  
        '"隔行信号(Interlaced)" U8@*I>vA  
Else X\:(8C;+  
   If videotype = 0 Then XT;IEZQZ  
       '"逐行信号(Non-interlaced)" A-NC,3  
   Else dXSb%ho  
     If videotype = -1 Then Kh_>Vm/  
       ' "不支持" BB}iBf I'  
     End If Vam8NnZ|r  
   End If :=fHPT  
End If yvnrZ&x :  
>WG91b<Xq  
'测试垂直扫描线数 A&|(%  
'video scanlines VHkrPJ[  
scanlines = -1 GAe_Z( T  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) i_9 /!D  
    If scanlines = -1 Then rAi!'vIE  
        ' "不支持" F;l<>|vG  
    Else [75e\=wK  
        'Trim(Str(ScanLines)) + " 行数/幅" :1Yd;%>92  
    End If %.  }  
8Y kH  
'测试帧频 p~ VW3u]  
'video field frequency q+=@kXs>+  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) i}12mjF  
    If fieldfrq = -1 Then |r!Qhb.!  
        'lblSignal(8) = "不支持" 5s2}nIe  
    Else xH .q  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" .ceU @^  
    End If <. ]&FPJ  
End Function {.[,ee-)9  
jT_Tx\k  
]$%4;o4O  
Sub PicIdentify() "h|0]y^2  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 n!,TBCNX  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 FKTP0e7=9  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 GeR -k9  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 [UrS%]OSR  
2G*#Czr"  
  Dim fPTR As Long, cFrame As Long 3). c [F^l  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer oEf^o*5(  
     UmMYe4LQR  
m,"tdVo.  
cFrame = 0 )Syf5I  
"pJ EzC  
Wam?(!{mOf  
Do While cFrame < tFrames [1X5r<(W5  
   iV$75Atk  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) c35vjYQx0  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) Ho*RLVI0U  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize Yl3PZ*#@ Q  
   >Qu^{o   
  frmRecord.RText.Text = Str(cFrame) !c' ;L'  
  frmRecord.RText.Refresh >LZ)<-Mk  
       J;9QDrl`  
  If CheckMark = True Then `RLrT3 4  
   ArrayToBMP TmpBMP {}2p1-(  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) I ywx1ac  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" Al;oI3  
   S ~`AnX3!  
   DrawSlice ]t0S_ UH$  
   "!eT  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) {dH<Un(4Z  
   'If i = vbNo Then JqIv&W  
   '  Exit Do ]qT r4`.  
   'End If <J uJ`t  
   'cFrame = cFrame + 1 L{ ^@O0S  
   !q1^X% a  
  End If xVo)!83+Q  
  DoEvents x@l~*6!K  
  cFrame = cFrame + 1 QE6-(/  
Loop ^qy-el  
End Sub +m},c-,=$w  
?a_q!,8:  
E^ti !4{<  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 0p2O8>w^%  
!!pi\J?sk  
'如标志区模式反差存在则为TRUE,否则返回FALSE \X p"I5  
/ =<u l-K  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long > %*X2'^  
CheckMark = True +=xRr?F  
   y.NArN|%  
'复制标志区 DccsVR`7  
For i = 1 To mkH [wxI X  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW Q(Y,p`>  
Next i 9`VF [* 9  
z-E4-\a  
For j = 1 To PilarW * PilarH / 2 pIjVJ9+j  
   mTop = mTop + MKpilar(j) u$^` hzfI  
Next j Z-V%lRQ=b  
h2*&>Mc  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH a#j^gu$m  
   mBot = mBot + MKpilar(j) u 9Tl Xn  
Next j =)>q.R9  
`)P_X4e]`  
mTop = mTop / PilarW / PilarH * 2 ~#Mx&mZ  
mBot = mBot / PilarW / PilarH * 2 ml/O  
S :|*wB  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 xL"o)]a=  
DN_C7\CoA  
'平均值极值化 *XR~fs?/*W  
  For j = 1 To PilarH * PilarW S}I=i>QB  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) RlL,eU$CS  
  Next j I=-;*3g6  
   !~kzxY  
mTop = 0: mBot = 0 ^aMdbB  
For j = 1 To PilarH * PilarW / 2 a-hGpYJJG  
  mTop = mTop + MKpilar(j) =f|a?j,f~  
Next j -L3RzX  
Um|Tf]q  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW CplRnKra  
  mBot = mBot + MKpilar(j) XOFaS '.  
Next j WHT%m|yn  
%P6!vx:&^b  
2$UR " P  
  mTop = mTop / PilarH / PilarW * 3 tS@/Bq('B  
  mBot = mBot / PilarH / PilarW * 3 _ h-X-s Y  
   &1Iy9&y  
>C66X?0cd  
If mBot > iWhite And mTop < iBlk Then H!=BjU1Pmg  
  CheckMark = True (ytkq(  
Else h0pr"]sO;$  
  CheckMark = False .k(_ j.v  
End If e4LNnJU\|  
End Function Ku'U^=bVm:  
`v er "s;  
Sub Capture1Frame() 2geC3v% 0o  
   okCaptureTo hBoard, BUFFER, 0, 1 'single X"GQ^]$O  
   okGetCaptureStatus hBoard, True EF~PM  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize vGDo?X~#o  
End Sub QyQ8M1m  
' qVa/GJ  
oa7Hx<Y  
Sub CopyMark(iBlk As Integer, iWhite As Integer) !X_~|5.  
'复制标志区并返回标志区暗区与亮区的亮度平均值 Mb!^_cS(  
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 uwzT? C A6  
   %j; cXN  
'复制标志区 I-hhHm<@  
For i = 1 To mkH znRhQ+8;!  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW aC` c^'5  
Next i 5Yr$dNe  
M*uG`Eo&  
For j = 1 To mkW * mkH / 2 PTqS L]  
   mTotal = mTotal + MKpilar(j) ?^Ux+mVE  
Next j 1i2w<VG1  
<ZdNPcT<s  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 &9{BuBO[  
oPBjsQ  
mTotal = 0 0&~u0B{  
For j = mkW * mkH / 2 + 1 To mkW * mkH *RM'0[1F4  
   mTotal = mTotal + MKpilar(j)  (La  
Next j 3!W&J  
Z;s-t\C  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 u&bU !ZI  
b>WT-.b0  
'背景亮度 +.cv,1Vx  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW 55\mQ|.Jn  
  For i = 1 To 4 * FrameW {D#`+uw  
    bsTotal = bsTotal + BsLine(i) mAa]E t.  
  Next i B:.rp.1   
  bsAV = bsTotal / FrameW / 4 V|`|CVFo]  
q"oNB-bz  
End Sub  p-kqX  
VV0$L=mo  
W@=ilW3RD  
Sub AdjIMGbright(Optional bInit As Boolean = True) :Yqa[._AF  
[l:.Q?? )|  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) U @|_5[nl  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 r1] e:  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 h='=uj8o5  
     G.T1rUh=  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer 3\7$)p+c  
   4r&~=up]  
  '按标准亮度与对比度采集一帧,确定背景亮度 xcA:Q`c.{  
  currentContr = 128   '初始对比度 2B;QS\e"  
  currentBr = 128   '初始亮度 a/fYD2uNo  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 89bKnsV  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 1 doqznO  
  DoEvents 8E{>czF"  
  Capture1Frame VCO/s9AL  
  '获得图像上缘4行象素 QeoDq  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW !C?z$5g  
  CopyMark iBlack, iBright   '图像标志区亮度 <i-RF-*S  
  For i = 1 To 4 * FrameW N 5DS-gv  
    bsTotal = bsTotal + BsLine(i) lla96\R  
  Next i NBX/V^  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 {'(8<n57  
   <ZEA&:p  
  Select Case bsAV R#M).2::  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 TH &B9  
       currentBr = 150 {VG6m Hw  
       currentContr = 60 F^-4Pyq@  
     Case 61 To 80   '有可见背景 tHeLq*) )  
       currentBr = 140 a6_`V;  
       currentContr = 70 <5%We(3  
     Case 81 To 100  '有清晰背景 5JXLfYTUI  
       currentBr = 128 uip]K{/A!e  
       currentContr = 80 J;dFmZOk  
     Case 100 To 150  '有明亮背景 aT#|mk=\  
       currentBr = 140                '5:30-6:00钟实测数据 #4>F%_  
       currentContr = 50 iqeGy&F-  
     Case 151 To 180 ><~hOK?v  
       currentBr = 130 W!*vO>^1W  
       currentContr = 60 5"U7I{\  
     Case 181 To 220  '背景全为白色 w0iE x1i  
       currentBr = 110 +fN0> @s  
       currentContr = 130 K#@FKv|("  
     Case 221 To 255  '背景全为白色 u.6%n. g  
       currentBr = 100 rf@81Ds  
       currentContr = 100 DP_\%(A  
  End Select T* m_rDDt  
   WW=7QC i  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 vCM'n kXY  
        Case 100 To 150 U^D7T|P$V  
          currentBr = currentBr - 10 h>?OWI  
        Case 151 To 255 3$54*J  
          currentBr = currentBr - 20 6s;x@g]  
  End Select zAewE@N#_  
   q-#fuD^  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 <*P1Sd.  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 V5+a[`]  
End Sub ;f Gi5=-  
"/5b3^a  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) VbjW$?  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long Hw? J1#1IE  
     FceT'  
    For i = 1 To 8 .anL}OA_q  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& &0ra a  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& Y|F);XXIl  
    Next i q`hg@uwA{`  
     H'2 =yhtVh  
    For j = 1 To 1024 ]Ea-?IhD  
      L1 = L1 + LeftBK(j, 0) #A!0KN;GC2  
      L2 = L2 + LeftBK(j, 1) $ }53f'QjW  
      R1 = R1 + RightBK(j, 0) G)Y!aX  
      R2 = R2 + RightBK(j, 1) yyc&'J  
    Next j c@`P{ 6  
    diffL = Abs(L1 - L2) / 1024 :nI.Qa'"H  
    diffR = Abs(R1 - R2) / 1024 iKwVYL  
End Sub 2ip~qZNw><  
S5JnJkNn  
Function CheckSlice() As Boolean *6L^A`_1]  
  CopySlice avSL, avSLR, avSLL zPe .  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then @Klj!2cv$  
    CheckSlice = True x/~M=][tN  
  Else 0dW1I|jR  
    CheckSlice = False 5|Qr"c$p  
  End If ~gN'";1i  
End Function J']W7!p  
`F#KXk  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) e]QkZg2?Yn  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long E2MpMR  
  For i = 1 To FrameH U!4 ^;  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize `m5iZxhw  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize Dp8(L ]6  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize 0U'r ia:$  
  Next i ZfU_4Pl->  
  For i = 1 To FrameH F+GQl  
    For j = 1 To sSize R[QE:#hT  
       total = total + Slice(j, i) !k:j+h/  
       totalL = totalL + SliceL(j, i) b~}}{fm&f  
       totalR = totalR + SliceR(j, i) 0W)_5f&  
    Next j JLhp25{x  
  Next i Ts\7)6|F  
  avSL = total / FrameH / sSize N@}U;x}  
  avSLR = totalR / FrameH / sSize 4/b#$o<I?  
  avSLL = totalL / FrameH / sSize >qCT#TY  
End Sub H\T h4teE  
SDkN  
Sub DrawSlice() TR|; /yJ  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B @OpcS>:R  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B e(Ve rd:c  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B -nW-I\d%  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) Hi Yx(hY  
End Sub l< Y x  
Sub DrawMark(pic As Control) :.<&Y=^  
   Dim i As Long, j As Long 4J  s>yP  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B &N EzKf  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B ag6S"IXh  
   For i = 1 To PilarH kcle|B  
     For j = 1 To PilarW 3; A1[E6K  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) vd~O:=)4  
     Next j kQ +   
   Next i X^ovP'c2  
End Sub =GF+ hM/~  
g!$ "CX%8  
Function avIMG() As Integer 0pQ>V)  
  Dim i As Long, j As Long, totalIMG As Long L>B0%TP^  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize ^P[*yf  
  For i = 1 To pFrameSize IH5thL@D  
    totalIMG = totalIMG + pBuffer(i) N`M5`=.  
  Next i 7 ?Fl [FW$  
  avIMG = totalIMG / pFrameSize `fs[C  
End Function wgrYZ^]  
 [7bY(  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer MmX42;Pw  
  Dim i As Long, j As Long, totalIMG As Long Hl#o& *Ui"  
  For i = 1 To FrameH jV(IS D  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth MIgIt"M jz  
  Next i #xmUND`@  
  For i = 1 To FrameH * barWidth ^JTfRZ :a  
    totalIMG = totalIMG + pBuffer(i)  m ]\L1&  
  Next i IAfYlS#<yD  
  avRegion = totalIMG / pFrameSize #\}hN ~@F  
End Function fqcyCu7Ep  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 F?UL0Q|uv  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 Ct B> s7  
/F\7_  
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 txi m|)  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long IflpM]  
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 :7R\"@V4  
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 ( nBsf1l  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long ?}W:DGudZ  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 b`^$2RM&  
.8"o&%$`V  
w:qwU\U>x  
Private Const GENERIC_READ = &H80000000 )T>a|.  
Private Const GENERIC_WRITE = &H40000000 2uB.0  
|Oo WGVc  
Private Const FILE_SHARE_READ = &H1 <Sz9: hg-  
Private Const FILE_SHARE_WRITE = &H2 4o%hH  
Private Const OPEN_EXISTING = 3 TqWvHZX  
A3Su&0uaB  
Private Const INVALID_HANDLE_VALUE = -1 pRC#DHcHh  
B$\5=[U  
'//file seek &?~> I[^~  
Private Const FILE_BEGIN = 0 U<*dDE~z  
Private Const FILE_CURRENT = 1 U*-%V$3+w5  
Private Const FILE_END = 2 iB\d `NUf  
9qw~]W~Nm  
Private Const ERROR_SUCCESS = 0& V@$B>HeK  
zR e0z2  
'//device io control a(m#G ES  
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 }%VHBkuc  
&P\T{d2"  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 |_O1 V{Q=  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 "MyYu}AD  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 S`NH6?/uH  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 C ZJW`c/  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C *6uiOtH  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 zNB G;\ W  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F I!bG7;=_  
qWWy}5SOm  
'//type &=f%(,+  
Private Type LARGE_INTEGER o}[wu:>yk  
    lowpart As Long *bR _ C"-  
    highpart As Long ~WVrtYJu  
End Type a1?Y7(alPU  
v'|Dj^3[  
Private Enum MEDIA_TYPE ;$W|FpR2  
    Unknown *QrTZ$\C  
    F5_1Pt2_512 sUg 7  
    F3_1Pt44_512 (j2]:B Vu  
    F3_2Pt88_512 Cu0/TeEM  
    F3_20Pt8_512 @.%ll n  
    F3_720_512 n.XT-X^  
    F5_360_512 A>X#[qx  
    F5_320_512 +jHL==W&  
    F5_320_1024 towQoqv  
    F5_180_512 u!t'J +:  
    F5_160_512 >:Rc%ILym  
    RemovableMedia #*~#t4S-  
    FixedMedia `/0FXb 8h  
End Enum 5Eq_L  
akaQ6DIdG  
Private Type DISK_GEOMETRY C3 D1rS/I  
    Cylinders           As LARGE_INTEGER  HSTtDTo  
    MediaType           As MEDIA_TYPE J&lQ,T!?B  
    TracksPerCylinder   As Long &ed.%:  
    SectorsPerTrack     As Long S:Hg =|R  
    BytesPerSector      As Long {~Phc 2z  
End Type }APf^Ry  
J H6\; G6  
'//private vars u\6:Txqq  
Private hDisk           As Long             'disk handle A6-JV8^  
Private lpGeometry      As DISK_GEOMETRY    'disk info k+_pj k  
Private lBufferSize     As Long             'the buffer size of read/write &Uzg&eB  
CA{c-kG  
Public Function OpenDisk(ByVal FileName As String) As Boolean !W8$-iq  
'// 打开磁盘 uYV# '%  
    hDisk = CreateFile(FileName, _ (;!&RZ  
                        GENERIC_READ Or GENERIC_WRITE, _ S]k<Ixvf  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ vRm;H|[% S  
                        ByVal 0&, _  M7hff4c  
                        OPEN_EXISTING, _ J.~$^-&!  
                        0, _ qF>}"m  
                        0) [^aow-4z  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) :c c#e&BO  
End Function v\Q${6kEtx  
b8>r UGA{  
Public Function CloseDisk() As Boolean {"O'kx  
'//关闭磁盘 s$m cIMqs  
    CloseDisk = CloseHandle(hDisk) Dk/;`sXV  
End Function N{f RZN  
e;,D!  
Public Function GetDiskGeometry() As Boolean SeKU ?\  
'//获取磁盘参数 ?FD^S~bz-  
    Dim dwOutBytes      As Long {G_ZEo#x8,  
    Dim bResult         As Boolean O "^KX5  
     -$t#AYKz  
    bResult = DeviceIoControl(hDisk, _ \  VJ3  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ _8kZ>w(L  
                                ByVal 0&, 0, _ ij/ |~-!  
                                lpGeometry, Len(lpGeometry), _ &d=j_9   
                                dwOutBytes, _ l,L#y 4#  
                                ByVal 0&) mL ]zkD_  
     5v8_ji#l[  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack TN(1oJ:  
    GetDiskGeometry = bResult h%pgdix  
End Function MH1??vW  
wQDKv'zU1  
Public Sub GetDiskInfo(MediaType As Long, _ k/cQJz  
                        Cylinders As Long, _ OSxr@  
                        TracksPerCylinder As Long, _ {i3]3V"Xp  
                        SectorsPerTrack As Long, _ CsXIq. 9  
                        BytesPerSector As Long) nT9B?P>  
'//返回磁盘的参数 W$  M4#  
    MediaType = lpGeometry.MediaType ShFSBD\M#  
    Cylinders = lpGeometry.Cylinders.lowpart h8Kri}z;M  
    TracksPerCylinder = lpGeometry.TracksPerCylinder 2B5Z0<  
    SectorsPerTrack = lpGeometry.SectorsPerTrack $GEY*uIOa  
    BytesPerSector = lpGeometry.BytesPerSector e5C560  
,{7Z OzA  
End Sub NEJxd%-  
v-EcJj%  
Public Property Get BufferSize() As Long 7@5}WNr  
'//返回每次读/写的缓冲大小 B xq(+^T  
    BufferSize = lBufferSize d XrLeoK  
End Property  GVe[)R  
Wfz&:J#  
*RivZ c9;P  
Public Function LockVolume() As Boolean j$siCsF  
'// 将卷锁定 Q % )fuI  
    Dim dwOutBytes  As Long BA53   
    Dim bResult     As Boolean Y0 Ta&TYZ0  
     RoT}L#!!  
    bResult = DeviceIoControl(hDisk, _ WM~@/J  
                                FSCTL_LOCK_VOLUME, _ ^ola5wD  
                                ByVal 0&, 0, _ Fep#Pw1  
                                ByVal 0&, 0, _ =rGjOb3+  
                                dwOutBytes, _ o{lR_  
                                ByVal 0&) *ax$R6a#X  
    LockVolume = bResult g&) XaF[!  
End Function hr(E, TAe  
c&J,O1){\  
UOi8>;k`  
Public Function UnlockVolume() As Boolean N vQN  
'// 将卷解锁 {IJ,y27  
    Dim dwOutBytes As Long +.:- :  
    Dim bResult As Boolean K#kU6/  
     8 Ys DE_  
    bResult = DeviceIoControl(hDisk, _ gYw4YP0Gz  
                                FSCTL_UNLOCK_VOLUME, _ ;i@,TU  
                                ByVal 0&, 0, _ ^,qi` Tk  
                                ByVal 0&, 0, _ ]:8:|*w  
                                dwOutBytes, _ :[?hU}9  
                                ByVal 0&) w/#k.YE  
    UnlockVolume = bResult :iP2e+j  
End Function d@JjqE[  
f9?\Q'v8  
Q!iM7C!8  
Public Function DismountVolume() As Boolean a^>0XXr}Y  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 }$?x wcPU  
    Dim dwOutBytes As Long O'*KNJX  
    Dim bResult As Boolean S2'./!3yv  
     = a$7OV.  
    bResult = DeviceIoControl(hDisk, _ V*"-@  
                                FSCTL_DISMOUNT_VOLUME, _ [}}?a   
                                ByVal 0&, 0, _ 7X*$Fu<  
                                ByVal 0&, 0, _ mbK$_HvU  
                                dwOutBytes, _ ' 1_CMr  
                                ByVal 0&) ' cR||VX  
    DismountVolume = bResult ~*@ UQ9*p#  
End Function tI~.3+F  
^ 9UKsy/q  
!8(: G6Ne  
Public Function ReadDisk(ByVal Cylinders As Long, _ sEm-Td+A5  
                    ByVal Tracks As Long, _ DKp+ nq$  
                    db() As Byte) As Boolean vlY83mU.  
'//按柱面和磁道来读取磁盘数据 pqmtN*zV  
    Dim iPos    As Long S=@. <gS  
    Dim lRead   As Long &Rdg07e;>  
     xy5&}_Y  
    iPos = Cylinders * Tracks * lBufferSize 9(V12gn+lk  
     <k+dJ=f  
    If SeekAbsolute(0, iPos) Then 9@/ X;zO  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) a6cq0g[#z  
    End If ^"STM'Zh  
End Function >|'u:`A  
uS`XWn<CSD  
Public Function WriteDisk(ByVal Cylinders As Long, _ w9Bbvr6  
                     ByVal Tracks As Long, _ w3WBgH  
                     db() As Byte) As Boolean YzNSZJPD  
'//按柱面和磁道来写磁盘数据 >08'+\~:b  
    Dim iPos    As Long ,4M7:=gf  
    Dim lRead   As Long JvX]^t/}  
     %F_)!M;x  
    iPos = Cylinders * Tracks * lBufferSize ^}fc]ovV  
     9 `4M o+  
    If SeekAbsolute(0, iPos) Then -|YG**i/  
        WriteDisk = WriteBytes(lBufferSize, db()) \R\?`8O rz  
    End If i=jwk_y  
End Function pyJY]"UHVE  
>Z r f}H  
 Wa7-N4  
'///////////////////////////////////////////////////////////////////////////////////// 7u73v+9qn:  
'//file system QH7"' u6  
xkV (E!O  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean gqJSz}'  
'//seek file x]{ }y_  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte ^YiGvZJ  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) I7,5ID4pn  
    If LowPos = -1 Then K[r<-6TS  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) !tJQ75Hwv  
    Else ova4  
        SeekAbsolute = True lLhvpvT  
    End If yq]=+X>(  
     c&me=WD  
End Function dxfF.\BFDn  
Is57)(^.-  
*oZ]k`-!8  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean 8T-/G9u  
'//read data to array ]wb^5H  
    Dim RetVal    As Long +? y ', Ir  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0)  rO4R6A  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF "sh*,K5x|  
    ReadBytes = Not (RetVal = 0) RC?gozBFJ  
     `Y]t*` e|  
End Function Z Ea31[@B[  
AQ+MjS,  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean .Nt;J,U  
'//write data from array p?rh+0wgX  
    Dim RetVal As Long Vi1l^ Za  
    Dim BytesToWrite As Long D y+)s-8  
    Dim BytesWritten As Long Z$jqB~=^e  
     F#NuZ'U  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) d^h`gu~3  
     o?5m^S14[1  
    WriteBytes = Not (RetVal = 0) NhJ]X cfP8  
End Function f3PDLQA  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 gOb"-;Zw  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ .Nk'yow  
DWORD dwCB; `st3iTLZY  
LARGE_INTEGER  offset; 9B3+$uP  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); jEhPx  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); k0r93 xa  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ k4T`{s}e  
DWORD error = GetLastError(); b:B+x6M  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); f[1 s4Dp3-  
return FALSE; oD<aWZ"Z  
} ^Mvgm3hg  
return TRUE; *{y({J  
} {0L.,T~g+[  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : 3s\}|LqX#  
;SgPF:T>Q  
介个真的看不懂。 Y~TD)c=  
你说你老啦,喜欢怀旧了,才想起来填坑。 - #Bk  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 ;{lb_du2:  
3-/F]}0y6  
@ / .w%  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : ~2;\)/E\  
佩服,玩也玩得这么专业! ^ItL_ 4  
=odKi"-6  
6$)FQ U  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : Dz&,g+>$J  
伍SIR,再次抱拳佩服 "TI>_~  
fg7  
99tUw'w  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : FJ{/EloF  
引用第19楼伍胥之于06-14-2010 12:33发表的  : &2Ef:RZF  
+eO>> ~Z  
 =W&m{F96  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 @?jtB  
S['cX ~  
我连一级也没有考过。 CpB,L  
.
*+XiBho  
xYZ,.  
引用
hQ}_(F_H  
矬子里拔将军... {V pk o  
你们那里的俗语是吧? dBwoAq`'  
k }{o: N  
我们这里说"矮子里拔长脚"..应该是同一个意思... B<ncOe  
qyAnq%B}  
有趣....各地有表达意思一样却方式不同的俗语.... ]9PG"<^k  
5$$# d_Gj  
4JyA+OD4{  
你的文章写的有脸皮,没屁眼的, Dlpmm2  
让看客大为不满... !"o\H(siT  
F9Af{*Jw?x  
你等着,,估计你以后接到的午夜凶铃就多了... 9)8Cf% <(  
^?wR{q"8  
Sl-9im1  
我到现在也没有接到你的午夜凶铃呢! x]@z.Yj  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : &2U%/JqY  
每个人的故事对其他人都是故事, `GkCOx,  
自己的故事也是其中之一. fL# r@TB-s  
跳出来看, *u:,@io7'G  
不过是众人中的一个人的故事. 4U_+NC>b  
q 7 <d|s  
所以,接着听故事. `N&*+!O%  
"GR*d{  
女人们有兴趣的就等老伍开个新帖或者跟贴, )iM( \=1ff  
听他痛说恋爱革命历史.... =3 6fS/Gb  
}*U|^$FEU  
杂家接着听他自学程序员历史, V0rQtxE{F  
高级程序员考了吗? ]jY^*o[  
Z#B}#*<C  
i]N<xcF9N*  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! `U b*rOMu  
U[|5:qWs  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 i39ZBs@  
?wv^X`Q*~  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 QeC\(4?  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : ]o]`X$n  
哦, 打倒忽悠大家的家伙.       mjP  
iB(?}SaAZ  
p?>J 86%[  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : D$)F X(  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 c^1JSGv  
m`fdf>gWp  
y'8T=PqY[t  
其实标题没有什么,卡总既然改了就不必再改回了。  EH2):  
0 fT*O  
主要是当初写的时候真是顶着锅盖写的。 <:/aiX8  
faLfdUimJ  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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