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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean 'm O2t~n  
c3k|G<C2  
Dim regEX As New RegExp HarFE4V  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 mP-2s;q  
T~s}Nx#  
Dim LastTitle0String As String, LastTitle0No As Long  U:|H9+5  
Dim LastTitle1String As String, LastTitle1No As Long <xn;bp[  
Dim LastTitle2String As String, LastTitle2No As Long FT/amCRyT  
Dim LastTitle3String As String, LastTitle3No As Long BXhWTGiG  
Dim LastTitle4String As String, LastTitle4No As Long |(ocD md  
Dim LastTitle5String As String, LastTitle5No As Long U8O(;+  
Dim LastTabelString As String, LastTableNo As Long n+oD C65[  
Dim LastFigureString As String, LastFigureNo As Long A}G|Yfn  
1S%}xs R0  
Dim strSeperator As String ( v@jc8 y  
Q)^g3J  
Sub ConvertWidth(fTEXT As String, rText As String) GDPo`# ~  
        Selection.Find.ClearFormatting n )K6i7]xk  
        Selection.Find.Replacement.ClearFormatting x~/+RF XF  
        Selection.Find.Wrap = wdFindContinue SLoo:)  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText B*@6xS[IL  
        DoEvents f0oek{   
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True |Td5l?  
End Sub V8"Wpl9Cz  
inF6M8 A1  
Sub ClearDomain() g-@h>$< 1  
        With Selection.Find O3%[dR  
            .ClearFormatting J_ J+cRwq  
            .Replacement.ClearFormatting daX*}Ix  
            .Wrap = wdFindContinue k/lFRi-i  
            Me.txtStatus.Text = "清除所有域代码" - DL"-%X.  
            DoEvents cwynd=^nC  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False np6HUH  
        End With  Q2\  
End Sub k^%_V|&W/(  
sR*Nq5F#9  
Private Sub cmdCheck_Click() G;]:$J  
    bContinue = True l4ouZR  
    Dim NoSeries1(1 To 16) As String Y\?j0X;  
    Dim NoSeries2(1 To 16) As String )|]Z>>%t  
    Dim NoSeries5(1 To 16) As String ax@H"d&  
    Dim NoSeriesRM(1 To 16) As String  @E_zR  
    Dim paraTotal As Long, ParaText As String (ZPXdr  
    Dim ttString As String, ttNo As String nb+m.X  
     mU G %LM  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long Z$;"8XUM  
~7SH4Cr  
    Me.txtStatus.Visible = True 7GZq|M_:y  
    Me.lbParaType.Visible = True ^?"^Pmw  
    Me.cmdCheck.Enabled = False _!AJiP3!)4  
     z{?4*Bq  
     r4;Bu<PQN1  
     W9R`A  
     T:!MBWYe|  
    Dim ParaType As String, rText As String 0"4@;e_)>  
     Sz0+ <F#5  
    Selection.WholeStory QnKC#   
    Selection.NoProofing = True ;NsO  
     EOVZGZF  
    tm1 = Now BUC,M:J+H  
     cZQu*K^j  
        ActiveWindow.View.Type = wdNormalView @]'S eiNp  
     C6@t  
    NoSeries1(1) = "一" m0( E kK  
    NoSeries1(2) = "二" +?d}7zh  
    NoSeries1(3) = "三" LSkk;)'2K  
    NoSeries1(4) = "四" 6/2v  
    NoSeries1(5) = "五" o&-L0]i|  
    NoSeries1(6) = "六" km\%BD~  
    NoSeries1(7) = "七" dZ2`{@AYY  
    NoSeries1(8) = "八" 77Q}=80GU;  
    NoSeries1(9) = "九" G6O/(8  
    NoSeries1(10) = "十" Oif,|:  
    NoSeries1(11) = "十一" \G;CQV#{9  
    NoSeries1(12) = "十二" MF.[8Zb  
    NoSeries1(13) = "十三" fLB1)kTS  
    NoSeries1(14) = "十四" AcC8)xRpk4  
    NoSeries1(15) = "十五" _CdROo6I  
    NoSeries1(16) = "十六" d6.}.*7Whc  
     #`/QOTnm2c  
    NoSeries2(1) = "㈠" a8s4T$  
    NoSeries2(2) = "㈡" 9 5 H?{  
    NoSeries2(3) = "㈢" 3jPB#%F  
    NoSeries2(4) = "㈣" mG(N:n%*K  
    NoSeries2(5) = "㈤"  Q_4Zb  
    NoSeries2(6) = "㈥" |}S1o0v{(a  
    NoSeries2(7) = "㈦" +d39f-[  
    NoSeries2(8) = "㈧" 8wIK:   
    NoSeries2(9) = "㈨" ^ KH>1!  
    NoSeries2(10) = "㈩" 0Nr\2|  
     agsISu(  
    NoSeries5(1) = "①" CLK^gZ  
    NoSeries5(1) = "②"  5$Kf] ZP  
    NoSeries5(3) = "③" _t-7$d"  
    NoSeries5(4) = "④" e4.&aIC[  
    NoSeries5(5) = "⑤" _#'9kx|)  
    NoSeries5(6) = "⑥" ;$!I&<)  
    NoSeries5(7) = "⑦" Do;#NLrWb  
    NoSeries5(8) = "⑧" JTUNb'#RZ  
    NoSeries5(9) = "⑨" a %K}j\M  
    NoSeries5(10) = "⑩" y1,5$0@G  
     xm^95}80yh  
     QIAR  
    NoSeriesRM(1) = "I" r!K|E95oj9  
    NoSeriesRM(2) = "II" C\Ayv)S #2  
    NoSeriesRM(3) = "III" ULl_\5s2  
    NoSeriesRM(4) = "IV" Hj~O49%j&  
    NoSeriesRM(5) = "V" @"8R3BN  
    NoSeriesRM(6) = "VI" lbkL yp2  
    NoSeriesRM(7) = "VII" jXR16|  
    NoSeriesRM(8) = "VIII" y/R+$h(%  
    NoSeriesRM(9) = "IX" gdi`x|0  
    NoSeriesRM(10) = "X" /V^sJ($V$~  
    NoSeriesRM(11) = "XI" - L ~ Uu^o  
    NoSeriesRM(12) = "XII" e@jfIF0=}  
    NoSeriesRM(13) = "XIII" }kPVtSQ  
    NoSeriesRM(14) = "XIV" ;~/4d-  
    NoSeriesRM(15) = "XV" 'ZnIRE,N  
    NoSeriesRM(16) = "XVI" }lfn0 %(@  
     uva\0q  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) -JTG?JOd]  
     )H+kB<n  
    If i = vbNo Then dlD}Ub  
        Exit Sub xzikD,FV  
    End If -g~~]K%  
     {;k_!v{  
    If Me.chkSuper.Value Then \4s;! R!  
        Me.txtStatus.Text = "检查修改所有的上标格式" IZ~.{UQ  
     ]Oso#GYD  
        CheckSuperScript mk=#\>  
         T[2}p=<%  
    End If (@Zcx9  
     4/MNqit+  
    If Me.chkStyle.Value Then 4e9E' "8%  
        Me.txtStatus.Text = "设置样式,请稍候...." #s+Q{2s  
        DoEvents YIO R$  
        CeateOrModifyStyle tWk{1IL  
    End If 6tdI6  
     ! F7:i  
     .#! mDlY;  
     `K?1L{p'4  
    ClearDomain =kFuJ x)f  
         9X]f [^  
     _!:@ w9  
     V/bH^@,sA  
    If Me.chkLIST.Value Then D'L{wm  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" LK+felL  
     )w"0w(   
        ConvertListToOrdinary -P#nT 2  
    End If )iSy@*nY  
     (=JueF@J  
     Kbas-</Si  
    Dim pType As String, trimpTEXT As String &jm[4'$ *z  
    If Me.chkNum.Value = True Then kaFnw(xa  
        Me.txtStatus.Text = "转换全角数字形式为半角" =Ahw%`/&}]  
        ConvertWidth "1", "1" ;|30QUYh  
        DoEvents IVteF*8hU  
        ConvertWidth "2", "2" Z[} $n-V  
        DoEvents iz`jDa Q|1  
        ConvertWidth "3", "3" 295w.X(J  
        DoEvents p>p'.#M  
        ConvertWidth "4", "4" 'h}7YP, w  
        DoEvents -,GEv%6c  
        ConvertWidth "5", "5" OCW+?B;  
        DoEvents E5{n?e  
        ConvertWidth "6", "6" B||c(ue  
        DoEvents SDc" 4g`  
        ConvertWidth "7", "7" x!?Z *v@I  
        DoEvents 3*WS"bt  
        ConvertWidth "8", "8" t!jwY/T  
        DoEvents  :]c=pH  
        ConvertWidth "9", "9" O5;-Om  
        DoEvents x/I;nM Y  
        ConvertWidth "0", "0" ]kS7n @8  
        DoEvents Yu3_=: <C  
        ConvertWidth "a", "a" pULsGb  
        DoEvents `d *b]2  
        ConvertWidth "b", "b" <SQ(~xYi  
        DoEvents YMu)  
        ConvertWidth "c", "c" 6V;:+"BkJ  
        DoEvents btQet.  
        ConvertWidth "d", "d" },PBqWe  
        DoEvents j9xXKa5  
        ConvertWidth "e", "e" PU+1=%'V  
        DoEvents QymD-A"P  
        ConvertWidth "f", "f" AZ wa4n}"  
        DoEvents :[?!\m%0  
        ConvertWidth "g", "g" s.y}U5Ty?P  
        DoEvents E@pFTvo  
        ConvertWidth "h", "h" Dl\d_:+  
        DoEvents FpzP #;  
        ConvertWidth "i", "i" sqG`"O4W  
        DoEvents 3!Bj{;A  
        ConvertWidth "j", "j" EcW1;wH  
        DoEvents DHzkRCM  
        ConvertWidth "k", "k" &@; RI~  
        DoEvents Wk[)+\WQ?  
        ConvertWidth "l", "l" p&5S|![\  
        DoEvents _,Q[2gQ5N  
        ConvertWidth "m", "m" B01^oYM}  
        DoEvents bp%S62Dj  
        ConvertWidth "n", "n" 8c).8RLf  
        ConvertWidth "o", "o" t w!.%_1^  
        ConvertWidth "p", "p" |<Bpv{]P  
        ConvertWidth "q", "q" C*G/_`?9  
        ConvertWidth "r", "r" U;gp)=JNT  
        ConvertWidth "s", "s" :bv|Ah  
        ConvertWidth "t", "t" qGa<@ b  
        ConvertWidth "u", "u" Nza; O[  
        ConvertWidth "v", "v" Qa?aL  
        ConvertWidth "w", "w" FpdHnu i1  
        ConvertWidth "x", "x" JS7dsO0;  
        ConvertWidth "y", "y" };p~A-E=  
        ConvertWidth "z", "z" &<h?''nCy  
        ConvertWidth "A", "A" *?N<S$m  
        ConvertWidth "B", "B" ,n5a])Dg  
        ConvertWidth "C", "C" ;+%Z@b%  
        ConvertWidth "D", "D" + *a7GttU  
        ConvertWidth "E", "E" ^zeL+(@r/  
        ConvertWidth "F", "F" {!t=n   
        ConvertWidth "G", "G" ~:Ixmqi}R  
        ConvertWidth "H", "H" stXda@y<p  
        ConvertWidth "I", "I" DMMLzS0A  
        ConvertWidth "J", "J" #=x+ [d+  
        ConvertWidth "K", "K" !4B_$6US  
        ConvertWidth "L", "L" xt))]aH  
        ConvertWidth "M", "M"  UTX](:TC  
        ConvertWidth "N", "N" xBWx+ My  
        ConvertWidth "O", "O" q{@P+2<wF  
        ConvertWidth "P", "P" s3< F  
        ConvertWidth "Q", "Q" [q$e6JwAt  
        ConvertWidth "R", "R" 8.2`~'V  
        ConvertWidth "S", "S" <[9?Rj@  
        ConvertWidth "T", "T" g)cY\`&W8  
        ConvertWidth "U", "U" 1;`Fe":;vC  
        ConvertWidth "V", "V" Omb.53+  
        ConvertWidth "W", "W" x@Vt[}e  
        ConvertWidth "X", "X" %uuH^A  
        ConvertWidth "Y", "Y" ;]@exp 5  
        ConvertWidth "Z", "Z" ^0Q'./A{&  
        ConvertWidth "^l", "^p" 4\1;A`2%0  
        ConvertWidth "(", "(" ,'_( DJX  
        ConvertWidth ")", ")" [B,p,Q"  
     K;C_Z/<%  
    End If b,Lw7MY}[  
G>0)I  
    With ActiveDocument (H-cDsh;c  
        Dim tbl As Table A'~#9@l<  
        For Each tbl In .Tables ue9h   
            tbl.Rows.Alignment = wdAlignRowCenter *(nJX.7  
            tbl.Range.Font.NameFarEast = "楷体" C8MWIX}  
            tbl.Range.Font.NameAscii = "Times New Roman" ^j iE9k)  
            tbl.Range.Font.Size = 10.5 i[_| %'p  
        Next [R\=M'  
        Set tbl = Nothing !x_t`78T  
    End With pK"&QPv  
     h0XH`v  
     8KKz5\kn7  
    With ActiveDocument "Q?_ EEn  
         f9F2U )  
        For i = 1 To .TablesOfContents.Count xgs@gw7!n0  
            .TablesOfContents(i).Delete X <FOn7qf  
        Next GLcd9|H  
         DZP*x  
         h--45`cE  
         * gHCy4u{  
        paraTotal = .Paragraphs.Count Y?t2,cm   
        paraCounter = 1 l/F!Bq[*g  
         [` 9^QEj  
        LastTitle0No = 0 QQ~23TlA  
        LastTitle1No = 0 dyl 0]Z  
        LastTitle2No = 0 ;NG1{]|Z  
        LastTitle3No = 0 qmID-t"  
        LastTitle4No = 0 OQc{ V  
        LastTableNo = 0 mt^`1ekoY  
        LastFigureNo = 0 J {!'f| J  
         N(BiOLZL6  
        Dim Sec As Long cD8Ea(  
         9m~t j_  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) 6Pijvx^0  
        If Sec = 0 Then P57GqT  
            Exit Sub #%WCL'6B  
        End If u GIr&`S  
         g? I!OG  
        k = 0 mR,O0O}&  
        Do While (paraCounter < paraTotal) And bContinue +,wWhhvlzv  
            k = k + 1 sW'6} ^Q  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then U/5$%0)  
                Exit Do <S{7Ro  
            End If f?5A"-NS  
            paraCounter = paraCounter + 1 QQq/5r4O`q  
            If k Mod 20 = 0 Then e&ts\0  
                Me.lbCounter.Caption = paraCounter GoL|iNW`  
                DoEvents 7vq DZg  
            End If @E(P9zQ/zy  
        Loop (GNEYf|  
         yDuq6 `R*  
         _<2 RYXBC  
        Do While (paraCounter < paraTotal) And bContinue 7@@<5&mN  
             "5(W[$f*]v  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) Z+,CL/  
            ShapeHeight = 0 p2^)2v  
            ShapeWidth = 0 wo]ks}9  
           g@(4ujOT  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth $^IjFdD  
             `fMpV8vv  
            Select Case ParaType Qpw@MF2P  
                Case "【】表格内容" 94YA2_f;  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容"  `~h0?g  
                Case "章" & L'6KEahR  
                    LastTitle0No = LastTitle0No + 1 FH[#yq.Pr  
                    '新一章开始,复位其下属标题编号 !"%S#nrL$  
                    LastTitle1No = 0 _[%n ~6  
                    LastTitle2No = 0 )r pD2H  
                    LastTitle3No = 0 `Jqf**t  
                    LastTitle4No = 0 ?cJA^W  
                     I3An57YV].  
                    k = Val(ttNo) kw#X]`c3  
                    If k = 0 Then '非数字编号章节 l{QC}{Ejc2  
                        If ttNo <> NoSeries1(LastTitle0No) Then [x|)}P7%s  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString :fW.-^"VP  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText ,@479ZvvR3  
                        End If *F..ZS'$[  
                    Else u ]SZ{[ e  
                        If Val(ttNo) <> LastTitle0No Then vgN@~Xa  
                            rText = "第" & LastTitle0No & ttString n5\}KZh  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText V:8@)Hc=  
                        End If W W35&mI)k  
                         J7Sx!PQ  
                    End If kAt RY4p  
                     }Q ;BQ2[  
                    '章段落设置 J eL~]F  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 Q2FQhc@L(:  
                    .Paragraphs(paraCounter).Style = "QLNU章节" =t HD 4I  
                    .Paragraphs(paraCounter).Range.Select -`g J  
                    Selection.EndKey unit:=wdLine | F8]Xnds  
                    tc = Replace(rText, vbCr, "")  }EP|Mb  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 1Df, a#,y"  
                Case "一级标题" )tCx5 9  
                    LastTitle1No = LastTitle1No + 1 IE}Sdeqi)  
                    '新一级标题开始,复位其下属标题编号 X]MTaD.t  
                    LastTitle2No = 0 @x*.5:[  
                    LastTitle3No = 0 Y=|CPE%V  
                    LastTitle4No = 0 p$XnOh  
                     b( 1 :w"wD  
                    If ttNo <> NoSeries1(LastTitle1No) Then DEcGFRgN~  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString lm!F M`m  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText S,VyUe4P4  
                    End If p_;r%o=  
                   <irpmRQr  
                     Zg2]GJP  
                    '一级标题段落设置  格式:一、标题内容 '?b\F~$8   
                    .Paragraphs(paraCounter).Range.Text = rText "H@Fe  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" K,]woNxaw  
                    .Paragraphs(paraCounter).Range.Select Gj*SPU  
                    Selection.EndKey unit:=wdLine 5DUi4 Cbgy  
                    tc = Replace(rText, vbCr, "") \D ^7Z97  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False IBDVFA  
                Case "二级标题" 8,H~4Ce3  
                    LastTitle2No = LastTitle2No + 1 ) u-ns5  
                    '新二级标题开始,复位其下属标题编号 zNwc((  
                    LastTitle3No = 0 # 'wL\3  
                    LastTitle4No = 0 "5 y<G:$+~  
                     t)KPp|&  
                    If ttNo <> NoSeries1(LastTitle2No) Then m $)YYpX  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString C&e8a9*,(a  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText 1S&0  
                    End If 8ZFH}v@V1'  
                     >gF-6nPQ  
                    '二级标题段落设置 格式:(一)、标题内容 X4Lsvvz%@  
                    .Paragraphs(paraCounter).Range.Text = rText PH[4y:^DN  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" *s~i 2}  
                     z41D^}b  
                    .Paragraphs(paraCounter).Range.Select IE|, ~M2  
                    Selection.EndKey unit:=wdLine 4':MI|/my_  
                    tc = Replace(rText, vbCr, "") {x|MA(NO  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False 9V.+U7\w  
                 k}#@8n|b  
                Case "三级标题" qA04Vc[2  
                    LastTitle3No = LastTitle3No + 1 ^SgN(-QH  
                    '新三级标题开始,复位其下属标题编号 >6w@{p2B  
                    LastTitle4No = 0 d0Tg qO{  
                     K(' 9l& A  
                    If Val(ttNo) <> LastTitle3No Then i"vDRrDe  
                            rText = LastTitle3No & ". " & ttString X&/(x  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText y]w )`}Ax  
                         2G H)iUmc  
                    End If #U:0/4 P(  
                    '三级标题段落设置 格式:1. 标题内容 o;E (Kj  
                    .Paragraphs(paraCounter).Range.Text = rText |K6nOX!i  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" YN$`y1V  
                    .Paragraphs(paraCounter).Range.Select 8pd&3G+  
                    Selection.EndKey unit:=wdLine o16d`}/<  
                    tc = Replace(rText, vbCr, "") X:DMT>5k  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False *XHj) DC;  
                Case "四级标题" KoFv0~8Q  
                    LastTitle4No = LastTitle4No + 1 $@68=  
                     M*v^N]>"G  
                    If Val(ttNo) <> LastTitle4No Then RZ<.\N (M  
                            rText = "(" & LastTitle4No & "). " & ttString }=TqJy1  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText BL7>dZOa  
                     =?^-P{:\?  
                    End If mqubXS;J|P  
                    '四级标题段落设置 格式:(1). 标题内容 xS-w\vbLV  
                    .Paragraphs(paraCounter).Range.Text = rText NWeV>;lh9  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题"  ]LMiMj  
                    .Paragraphs(paraCounter).Range.Select @PKAz&0  
                    Selection.EndKey unit:=wdLine t&3 8@p  
                    tc = Replace(rText, vbCr, "") Zi ma^IL  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False 1T:)Zv'  
                 80dSQ"y  
                Case "表格标题" ]bf'  
                    LastTableNo = LastTableNo + 1 { qjUI  
                     $f9 ,##/  
                    If ttNo <> CStr(LastTableNo) Then xiEcEz'lk  
                            rText = "表" & LastTableNo & ". " & ttString U n]DFu  
                            ErrMsg.AddItem "表格编号错误:" & ParaText nM=2"`@$  
                   &&ja|o-  
                    End If V, E9Uds  
                     *u58l(&`8  
                    '表格名称段落设置 格式:表1. 表格名称 haN"/C^  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" Sio1Q0  
                    xe = Replace(rText, vbCr, "") xNn>+J  
                    .Paragraphs(paraCounter).Range.Select y)0gJP L^  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。  z I(xSX@  
                    Selection.Range.Text = xe .x]'eq}  
                    Selection.EndKey \ =S3 L<  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ixg\[5.Q+  
                 AwtIWH*e  
                Case "表格首行" F|9a}(-7  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" *13g <#$  
                Case "图片标题" C-_(13S  
                    LastFigureNo = LastFigureNo + 1 x-tm[x@;o  
                     .[#xQ=9`  
                    If ttNo <> CStr(LastFigureNo) Then ShsJ_/C2  
                            rText = "图" & LastFigureNo & ". " & ttString { 576+:*  
                            ErrMsg.AddItem "表格编号错误:" & ParaText YcPKM@xo  
                   ,nI_8r"M>  
                    End If 9+W!k^VWq  
                    '图片名称段落设置 格式:图1. 图名称 Tq.MubaO  
                    .Paragraphs(paraCounter).Range.Text = rText $3lt{ %  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" X #&(~1O  
                    .Paragraphs(paraCounter).Range.Select )gL&   
                    Selection.EndKey unit:=wdLine ' l|41wxk  
                    xe = Replace(rText, vbCr, "") m9 ^m  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False xP XoJN  
                Case "正文" j )<;g(  
                     '正文名称段落设置 CZF^Wxk  
                    .Paragraphs(paraCounter).Style = "QLNU正文" ',:3>{9  
               Case "文献条目" }#1U D  
                    With .Paragraphs(paraCounter) ^tQPJ  
                        '.Range.Select 3/SfUfWo  
                        'Selection.ClearFormatting K3j_C` Se  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” '9f6ZAnYpQ  
                        .Style = "QLNU参考文献" NJ.rv  
                    End With X >3iYDe  
               Case "图表注解" o7m99(  
                    With .Paragraphs(paraCounter) N`J:^,H  
                        .Range.Font.NameFarEast = "楷体" tX+0 GLz  
                        .Range.Font.NameAscii = "Times New Roman" v`@5enr  
                        .Range.Font.Size = 9 '小5号字 2*N&q|ED  
                         ;O Q#@|D  
                        .Alignment = wdAlignParagraphCenter /j`i/Ha1  
                        .LeftIndent = 0  <WO&$&  
                        .RightIndent = 0 )r-T=  
                        .FirstLineIndent = 0 f34_?F<h  
                        .LineSpacing = 12 zw}@nqp   
                        .LineSpacingRule = wdLineSpaceExactly CX1L(Y[  
                        .LineUnitAfter = 0 ~W2:NQ>i  
                        .LineUnitBefore = 0 F">Nrj-bs  
                        .OutlineLevel = wdOutlineLevelBodyText -$'~;O3s  
                        .PageBreakBefore = False tq2-.]Y@U  
                        .RightIndent = 0 oXnC "y}0P  
                        .WordWrap = True B?$S~5  }  
                        .LineUnitAfter = 0.5 t `N ">c"  
                         &19l k   
                    End With b5lk0jA  
                Case Else ?ykVfO'  
                    '不作处理 xhw8#  
            End Select )e @01l  
             @$2`DI{_^  
            '含有inlineshape的段落处理 PWADbu{+  
            If ShapeHeight > 30 Then +8MW$ m$  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 Tnzco  
            End If #9URVq,  
             =1%zI%  
            If (ShapeWidth + ShapeHeight) > 150 Then AN|jFSQ'  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" Y:DNu9  
            End If R>Z ,TQU  
             7qCJ]% )b6  
            '段落计数器递 #|)JD@;Q  
            paraCounter = paraCounter + 1 6 ,7/8  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter LsuAOB 8  
            Me.txtStatus.Text = ParaText 3?a0 +]  
            DoEvents %i;r]z-  
        Loop  Oz"@yL}  
    End With 0sq=5 BnO  
     9O(i+fM  
    msg = "" `V?x xq\  
     rD:gN%B=  
    For i = 0 To Me.ErrMsg.ListCount - 1 jydp4ek_n  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) x. jYip  
    Next Km| 9Too  
     ls8olLM>  
     9^6|ta0;0  
     _ C7abw-  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg ;u4@iN}p  
    Me.cmdCheck.Enabled = True $)kk8Q4+K  
    Me.txtStatus.Visible = True (O M?aW  
    Me.lbParaType.Visible = False IKNFYe[9e  
     Q `J,dzY  
    bContinue = False }CB=c]p  
End Sub @2x0V]AI  
<~IH`  
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) T%M1[<"Q  
    Dim pTEXT As String fvAh?<Ul  
     T4%i`<i  
    pTEXT = ChKRange.Text G%V=idU*"  
      }qgqb  
    ParaType = "其它" r[C3u[  
    TitleString = pTEXT z&>9 s)^-  
    TitleNo = "N/A" WLg6-@kxXs  
     GC5#1+fQ  
    shpCounter = ChKRange.InlineShapes.Count q/W{PBb-2k  
    If shpCounter <> 0 Then ~9`^72  
        MaxShpHeight = 0: TotalShpWidth = 0 L%c ]%3A  
        For i = 1 To shpCounter |G`4"``]k  
            k = ChKRange.InlineShapes(i).Height ):|G k Sm  
            l = ChKRange.InlineShapes(i).Width YyQf  
            If k > MaxShpHeight Then [TiT ff&LV  
                MaxShpHeight = k 7 I2a*4}  
            End If pgLzFY['  
            TotalShpWidth = TotalShpWidth + l MEdIw#P.}{  
        Next T! &[  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then M"$jpBN*  
            Exit Sub |r)>bY7  
        End If 7Va#{Y;Zy  
    End If 3{N p 9y.  
     N"q+UCRC  
    '空行 6xDl=*&%  
    If Len(pTEXT) <= 2 Then J4Q)`Y\~  
        Exit Sub sRo<4U0M;l  
    End If ~:P8g<w  
     rw}5nv  
         2n-Tpay0  
    '是否为表格中的文字 orcZ yYU  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then :IP;Frc MP  
        ParaType = "表格内容" *:fw6mnJ#  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) !`O_VV`/@  
        If k = 1 Then g:~?U*f-  
            ParaType = "表格首行" Nqo#sBS  
        End If ?3B t ;<^  
        Exit Sub *@$($<pY&  
    End If H{ Y5YTg]  
     Lz#$_Am'H  
    '例外情况:脚注 qd#(`%_/  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then {2'74  
        ParaType = "脚注" YoSo0fQA  
        Exit Sub s +y'<88  
    End If +O.&64(  
     X:xC>4]gG'  
    '例外情况:尾注 ne !j%9Ar  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then 9TbS>o  
        ParaType = "尾注" Knw'h;,[  
        Exit Sub q/d5P  
    End If dw{#||  
     Q G=-LXv:@  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then 3isXgp8  
        ParaType = "页眉页脚" e4>L@7  
        Exit Sub VO owA^  
    End If Pq[0vZ_}dN  
     XNkQk0i;g&  
     Se;?j-  
    With regEX = C$ @DNEc  
        .Global = True WwCK  K  
          Rsa\V6N>  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" 110>p  
        If regEX.Test(pTEXT) Then -Y 6.?z  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") ul z\x2[Pf  
            TitleString = regEX.Replace(pTEXT, "$3") 82Z[eo  
            TitleNo = regEX.Replace(pTEXT, "$1") s)o ,Fi  
            ParaType = "章" Y*5@|Q  
            Exit Sub V1CSXY\2  
        End If ZF/J/;uI  
         _Vk,&'  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" A .jp<>  
        If regEX.Test(pTEXT) Then fY,@2VxyfA  
            ParaType = "一级标题" WacU@L $A  
            regEX.Execute (pTEXT) Hb@G*L$  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") IgHs&=  
            TitleString = regEX.Replace(pTEXT, "$3") eaYkYuS/  
            TitleNo = regEX.Replace(pTEXT, "$1") e GqvnNv  
            Exit Sub &4[#_(pk  
        End If #(26t _a  
         }LHT#{+ x  
        '全角或半角括号中的数字 )\I? EU8  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" C>k;MvqO  
        If regEX.Test(pTEXT) Then @gu77^='  
            ParaType = "二级标题" <x>k3bD  
            regEX.Execute (pTEXT) :#Ex3H7  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") xsY>{/C  
            TitleString = regEX.Replace(pTEXT, "$5") dc\u$'F@S  
            TitleNo = regEX.Replace(pTEXT, "$2") Z CQt1;  
            Exit Sub =Nv= Q mO  
        End If 0T{c:m~QXe  
         >H=Q$gI  
        '阿拉伯数字  1. 2. 98b9%Z'2f  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" "t%1@b*u  
        If regEX.Test(pTEXT) Then 5 vu_D^Q  
            ParaType = "三级标题" ZB_16&2Ow  
            regEX.Execute (pTEXT) \KnD"0KW   
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 d <|lLNS  
            TitleString = regEX.Replace(pTEXT, "$3") WO+?gu  
            TitleNo = regEX.Replace(pTEXT, "$1") I 1VEm?CQ  
            Exit Sub H>X\C;X[  
        End If <De3mZb  
         {g:/ BFLr#  
        '全角或半角括号中的阿拉伯数字 w ;s ]n  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" 0c\|S>g [  
        If regEX.Test(pTEXT) Then l6}b{e  
            ParaType = "四级标题" #0YzPMV  
            regEX.Execute (pTEXT) YjIED,eRv  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") e8P!/x-y  
            TitleString = regEX.Replace(pTEXT, "$5") &)"7am(S`  
            TitleNo = regEX.Replace(pTEXT, "$2") `1[Sv"  
            Exit Sub _]?Dt%MkD  
        End If Hq"<vp  
         p.TiTFu/  
        '表格名称 q_T?G e  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$"  u_[4n  
        If regEX.Test(pTEXT) Then :}3 qZX  
            ParaType = "表格标题" &\6`[# bT  
            regEX.Execute (pTEXT) !rsqr32]  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) wE8a4.  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) oZ*=7u  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) dPyBY ]`  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 #by9D&QP]  
            Exit Sub 4MF}FS2)  
        End If v{rK_jq  
         oX:1 qJrC  
        '图片名称 n[MIa]dK  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$"  Z,8+@  
        If regEX.Test(pTEXT) Then u=v%7c2Mx}  
            ParaType = "图片标题" VATXsD  
            regEX.Execute (pTEXT) [ilv/V<  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") H>X>5_{}  
            TitleString = regEX.Replace(pTEXT, "$3") abJ@>7V  
            TitleNo = regEX.Replace(pTEXT, "$1") 4-}A'fTU8  
            Exit Sub {KpH|i  
        End If jFPE>F7-M  
         -Y jv&5  
        '参考文献 J:mu%N`  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 h2/1S{/n]  
        If regEX.Test(pTEXT) Then 8)q]^  
            ParaType = "文献条目" 1VyO?KX '  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") L9unhx  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") +N(YR3  
            Exit Sub `S/1U87  
        End If K^cWj_a"  
         1A/c/iC  
        prfx = Left(pTEXT, 2) OL ]T+6X  
        If prfx = "注:" Or prfx = "注:" Then hO<w]jV,  
            ParaType = "图表注解" I$6 f.W  
            Exit Sub XB!`*vZ/<  
        End If |>/&EElD  
         = "hY{RUa  
         8a$jO+UvN  
        ParaType = "正文" s ?Qb{  
         O.up%' %,  
    End With x}8T[  
End Sub -RqAT1  
,0<F3h  
Sub ConvertListToOrdinary() zQ6 -2 A  
    Dim st As Paragraph O3w_vm'  
    With ActiveDocument oN6*WN tJ  
        For i = .Paragraphs.Count To 1 Step -1 7p>-oR"  
            Set st = .Paragraphs(i) }Cq9{0by?a  
            lst = st.Range.ListFormat.ListString B,m$ur#$  
            If lst <> "" Then ,C@hTOT  
                st.Range.ListFormat.RemoveNumbers @<w9fzi  
                st.Range.InsertBefore lst & " " d;jJe0pH  
            End If EBL,E:_)  
        Next XpAq=p0;  
    End With <{z3p:\  
    Set st = Nothing s=%+o& B  
End Sub \,cKt_{ u  
CXP $bt}  
Private Sub UserForm_Activate() C+#;L+$Gi  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" 4pTu P /  
    Me.lbTotal.Font.Bold = True IIt^e#s&  
    Me.txtStatus.Visible = False 1~xn[acy  
    Me.cmdCheck.Enabled = True 8yo6v3JqC  
m|cWX"#g  
End Sub f{ 4G  
.jGsO0  
PHiX:0zT  
Sub CheckSuperScript() hZ\W ?r  
    Selection.Find.ClearFormatting 3NxaOO`  
    Selection.Find.Replacement.ClearFormatting L};;o+5uJD  
    With Selection.Find E[Ws} n.  
        .Text = "[【\[[〖](*)[】\]〗]]" U37?P7i's  
        .Replacement.Text = "[\1]" MCrO]N($b  
        .Replacement.Font.Superscript = True M?4r5R  
        '.Replacement.Font.Color = wdColorBlue }$k`[ivBx(  
        .Forward = True ao" ;5 m  
        .Wrap = wdFindContinue b mq XP  
        .FORMAT = True fe9& V2Uu  
        .MatchCase = False ";Ig%]  
        .MatchWholeWord = False v`ZusHJ1d  
        .MatchByte = False Qpv}N*v^  
        .MatchAllWordForms = False |`t!aG8  
        .MatchSoundsLike = False s3E~X  
        .MatchWildcards = True W!4V: (T  
    End With ^B6i6]Pd=9  
    Selection.Find.Execute Replace:=wdReplaceAll /&!d  
End Sub 2p;}wYt  
+_XbHjhN/  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) +@7x45;D  
    bContinue = False I#hg(7|",  
    Set regEX = Nothing u+tb83 ~[=  
End Sub (h>X:!  
:_YG/0%I  
Sub CeateOrModifyStyle() @Jn:!8U0  
' gc8PA_bFz  
' !9<RWNKV)Y  
Dim stl As Style y[5P<:&s  
     DEwtP   
    Options.Pagination = False g /@yK  
     F+y`4>x  
    On Error Resume Next _d=&9d#=\  
    For Each stl In ActiveDocument.Styles 5@Lxbe( q  
        stl.Delete }v$=mLy  
    Next \A\yuJ=  
    On Error GoTo 0 n\ ',F  
     UE#Ni 5  
    Set stl = Nothing 'hi\98y  
     GqD!W8+  
    DoEvents F?,&y )ri  
    On Error Resume Next r5qx! >  
     ZYD88kQ  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph rs<&x(=Hv  
     7D~O/#dcc  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph W0T i ^@  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph ONe!'a0  
     _Il9s#NA%  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph ,vdP #:  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph d |?(c~  
     3w:Z4]J  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph wrb& ta  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph tDLk ZCP  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph |e[0Qo@  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph @G$<6CG\  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph 3(GrDO9^  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph llG#nDe  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph .s*EV!SE  
     "%f5ltut3  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph >=W#z  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph K,,@',  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph a&c#* 9t{  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph s riq(A  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph  T[[   
     1 l*(8!_  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph .rB;zA;4S)  
    On Error GoTo 0 tfKeo|DM"  
    DoEvents P$qkb|D,  
     &MQt2aL  
    'BaseStyle kRX g."b(  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False bq&S?! =s  
    With ActiveDocument.Styles("BaseStyle").Font '>mb@m  
        .NameFarEast = "宋体" 0V,MDX}#_  
        .NameAscii = "Times New Roman" ?*mbce[  
        .NameOther = "宋体" }nY^T&?`  
        .Size = 10.5 ~S_IU">E  
        .Bold = wdUndefined |{LaZXU&  
        .Italic = wdUndefined `rdfROKv  
        .Subscript = wdUndefined &?Z)V-1H  
        .Subscript = wdUndefined 898wZ{9  
         ?G>TaTiK#  
        .Underline = wdUnderlineNone =ObtD"  
        .UnderlineColor = wdColorAutomatic E!~2\qKT  
        .StrikeThrough = False w~KBk)!*  
        .DoubleStrikeThrough = False <W%Z_d&Xv  
         42LXL*-4  
        .Outline = False CU`Oc>;*T  
        .Emboss = False 95 .'t}  
        .Shadow = False GGL4<P7  
        .Hidden = False pfQZ|*>lkb  
        .SmallCaps = False t7+Ic  
        .AllCaps = False ?uX6X'-  
        .Color = wdColorAutomatic tc2GI6]e'  
        .Engrave = False 5 /jY=/0.a  
        .Scaling = 100 =bg&CZV T  
        .Kerning = 1 1Da [!^u,D  
        .Animation = wdAnimationNone ?_j6})2zY  
        .DisableCharacterSpaceGrid = False 3a)Q:#okD  
        .EmphasisMark = wdEmphasisMarkNone -+_aL 4.  
    End With sCCr%r]zL  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat Tocdh.H|  
        .LeftIndent = 0 Z#:@M[HH{  
        .RightIndent = 0 nK'8Mo  
        .SpaceBefore = 0 %s :  
        .SpaceBeforeAuto = False 2CgIY89O  
        .SpaceAfter = 0 vG_v89t!ex  
        .SpaceAfterAuto = False NEou2y+}  
         jMWwu+w  
        .LineSpacingRule = wdLineSpaceSingle  2:/MN2  
        .Alignment = wdAlignParagraphJustify 4NR5?s  
         bnY8.Lpf|  
        .WidowControl = False yxUVM`.~  
        .KeepWithNext = False 8lGgp&ey  
        .KeepTogether = False @#Uiy5N  
        .PageBreakBefore = False &trh\\I"  
        .NoLineNumber = False S!!\!w>N  
         WCl;#=  
        .FirstLineIndent = CentimetersToPoints(0) _ N f[HP  
        .OutlineLevel = wdOutlineLevelBodyText ts\>_/  
        .CharacterUnitLeftIndent = 0 aq\TO?  
        .CharacterUnitRightIndent = 0 L?C~ qS2g  
        .CharacterUnitFirstLineIndent = 0 `&[:!U2]F  
        .LineUnitBefore = 0 AG\ 852`1m  
        .LineUnitAfter = 0 Z*aU2Kr`;  
        .AutoAdjustRightIndent = True *]{I\rX  
        .DisableLineHeightGrid = True C^=gZ 6m  
         St&HE:  
        .FarEastLineBreakControl = True skx=w<YO6]  
        .WordWrap = True 0@x$Cp  
        .Hyphenation = False -XIvj'u  
         p}|wO&4h  
        .HangingPunctuation = True 2|>wY%  
        .HalfWidthPunctuationOnTopOfLine = True dB/I2uGl>  
        .AddSpaceBetweenFarEastAndAlpha = True G /3lX^Z>  
        .AddSpaceBetweenFarEastAndDigit = True UkbQ'P+oS  
        .BaseLineAlignment = wdBaselineAlignBaseline L\b_,'I  
    End With H1qw1[%0y  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False Jd2Y)  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll C{,] 1X6g  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese &`Z)5Ww  
    ActiveDocument.Styles("BaseStyle").NoProofing = False JU \J  
     )0d".Q|v4  
    '一级标题题样式 UuC"-$:  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") m:O2_%\l  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" (ai-n,y  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False zp-~'kIJ  
    With ActiveDocument.Styles("QLNU一级标题").Font ]sP9!hup  
        .NameFarEast = "黑体" |Pl{Oo+  
        .NameAscii = "Arial Black" '"\Mjz)/  
        .NameOther = "黑体" F8;4Oj  
        .Name = "黑体" Ul0<Zxv  
        .Size = 16              '三号 s l @6  
        .Bold = True XTaWd0Y  
        .Italic = wdUndefined \bA'Furp  
        .Subscript = wdUndefined Yn2^n T=8  
        .Superscript = wdUndefined \0T*msYQ  
    End With j?hyN@ns  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat 'p+QFT>Ca  
         iSLf:  
        .LeftIndent = CentimetersToPoints(0) tUF]f6  
        .RightIndent = CentimetersToPoints(0) :BxYaAVt^  
        .FirstLineIndent = CentimetersToPoints(0) 6U9Fa=%>}  
         bK%tQeT  
        .LineSpacingRule = wdLineSpaceSingle Ns8NaD  
        .Alignment = wdAlignParagraphCenter -vfu0XI~  
          /r@  
        .WidowControl = True VD`2lGdF  
        .KeepWithNext = True 5nqdY*  
        .KeepTogether = True c O>:n  
        .OutlineLevel = wdOutlineLevelBodyText l"y9XO|  
         Sz@?%PnU|  
        .LineUnitBefore = 0.5 pYUkd!K"  
        .LineUnitAfter = 0.5 ` 3P62M<  
    End With 3 Il/3\  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False S,v>*AF  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll \1'R}B@;  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese n(O p<  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True _H<OfAO  
    DoEvents 7:E#c"S q  
     {&qsh9ob  
    '二级 }eFUw  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") >,vW  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" Ki;5 =)  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False @@mW+16  
    With ActiveDocument.Styles("QLNU二级标题").Font GJfNO-  
        .NameFarEast = "黑体" rB|:r\Z(jG  
        .NameAscii = "Arial Narrow" yzb&   
        .NameOther = "黑体" ~cj:AIF  
        .Name = "黑体" ,5uDEXpt{  
        .Size = 15        '小三号 MJpTr5Vs  
        .Bold = False @_ ZW P  
        .Outline = False |RXC;zt9s  
        .Italic = wdUndefined c;}n=7,>:L  
        .Subscript = wdUndefined ]!o,S{a&  
        .Superscript = wdUndefined >Mw =}g@P  
    End With @7 HBXP  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat b=\3N3OX  
        .LeftIndent = CentimetersToPoints(0) 8&hn$~ate  
        .RightIndent = CentimetersToPoints(0) zn$ Ld,  
        .FirstLineIndent = CentimetersToPoints(0) NfN6KDd]2L  
         W%Q>< 'c  
        .LineSpacingRule = wdLineSpaceSingle * <QL[qyV  
        .Alignment = wdAlignParagraphLeft z( [$,e\  
         >M85xjXP  
        .WidowControl = True &n kGdHX/a  
        .KeepWithNext = True ,8 ?*U]}  
        .KeepTogether = True IVODR  
        .PageBreakBefore = False P,=J"%a-  
        .OutlineLevel = wdOutlineLevelBodyText 1+c(G?Ava  
         =C1Qo#QQ%  
        .LineUnitBefore = 0.5 F4(U~n<  
        .LineUnitAfter = 0.5 }mZ*f y0t  
         ]=<@G.[=  
    End With jt?%03iuk  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False 1RHH<c%2n  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll _!1c.[ \T  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese "fd=(& M*l  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True 8Kkr1}!wd  
    DoEvents #N}}8RL  
     @5GP;3T  
    '三级标题样式 &scD)  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") pvxqeC9`  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" 4tNgK[6M  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False {j*+:Gj0V  
    With ActiveDocument.Styles("QLNU三级标题").Font ?+o7Y1 k,  
        .NameFarEast = "宋体" *.Hnt\4|  
        .NameAscii = "Times New Roman" IFoN<<7/2$  
        .NameOther = "黑体" 58U[r)/  
        .Name = "黑体" c2:kZxT  
        .Size = 14               '四号 Ps4A B#3  
        .Bold = False ^q r[?ky]&  
        .Outline = False qqre d>K  
        .Italic = wdUndefined d}J#wT  
        .Subscript = wdUndefined "z4E|s  
        .Superscript = wdUndefined d0E5;3tQ  
    End With Q[tz)99~  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat UpBYL?+L  
        .LeftIndent = CentimetersToPoints(0) Nx z ,/d  
        .RightIndent = CentimetersToPoints(0) uW_ /7ex  
        .FirstLineIndent = CentimetersToPoints(0) >&Lu0oHH  
         S^=/}PT'  
        .LineSpacingRule = wdLineSpaceSingle IQY#EyTb  
        .Alignment = wdAlignParagraphLeft gipRVd*TA  
         n:kxG  
        .WidowControl = True a :AcCd)  
        .KeepWithNext = True k-0e#"B  
        .KeepTogether = True <QLj6#d7Y  
        .PageBreakBefore = False Ggjb86v\  
        .OutlineLevel = wdOutlineLevelBodyText  PMZzzZ  
         *9^k^h(r&4  
        .CharacterUnitLeftIndent = 0 o7B+f  
        .CharacterUnitRightIndent = 0 <)rH8]V  
        .CharacterUnitFirstLineIndent = 2 c{ (%+  
         k5CIU}H"  
        .LineUnitBefore = 0.5 3_-m>J**  
        .LineUnitAfter = 0 IWnW(>V  
    End With WT N!2b  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False %'5wwl  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll MRu+:Y=K  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese WLFzLW=PD  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True D)6||z}  
    DoEvents YP97D n  
     >pHvBFa3G  
    '四级标题样式 oC>~r 1.j  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") P ^+>QJ1  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" )+R3C%  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False ;%9ZL[-  
    With ActiveDocument.Styles("QLNU四级标题").Font ( h,F{7  
        .NameFarEast = "宋体" _fw'c*j  
        .NameAscii = "Times New Roman" wj~8KHan  
        .NameOther = "宋体" L6qA=b~iz  
        .Name = "宋体" 6 VDF@V$E  
        .Size = 12               '小四号 jZ yh   
        .Bold = True WG4|Jf Y  
        .Outline = False Y :BrAa[  
        .Italic = wdUndefined  /t P  
        .Subscript = wdUndefined 40/[ uW"  
        .Superscript = wdUndefined {a%cU[q  
    End With Yb/^Qk59  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat Ut@)<N  
         ^S$w,  
        .LeftIndent = CentimetersToPoints(0) ^T>.04";x  
        .RightIndent = CentimetersToPoints(0) v9kzMxs,  
        .FirstLineIndent = CentimetersToPoints(0) ?q`mr_x%?  
         ]TN}` ]  
        .LineSpacingRule = wdLineSpaceSingle M!@[lJ  
        .Alignment = wdAlignParagraphLeft ^r$5];n  
         uS.a9 Q(  
        .WidowControl = True 3E:<  
        .KeepWithNext = True ga%77t|jm3  
        .KeepTogether = True JD lIf  
        .PageBreakBefore = False l).Ijl}AH;  
        .OutlineLevel = wdOutlineLevelBodyText wu'60po  
         %&GQ]pmcY  
        .CharacterUnitLeftIndent = 0 B)*%d7=x  
        .CharacterUnitRightIndent = 0 {+}Lc$O#C  
        .CharacterUnitFirstLineIndent = 2 N?:S?p9R@  
         Os+ =}  
        .LineUnitBefore = 0 I !~Omr@P  
        .LineUnitAfter = 0 %)]RM/e8  
         qILr+zH  
    End With AlV2tffY^  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False 8yl /!O,v  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll F@3,>~[%I  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese A(5? ci  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True 2Z |kf9  
    DoEvents ]P^ +~  
     JOk`emle  
    '正文校式 [r'M_foga*  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") jL>r*=K)%  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" Gu=bPQOj  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False $R4\jIew V  
    With ActiveDocument.Styles("QLNU正文").Font :{<HiJdp  
         S_=uv)% a  
        .NameFarEast = "宋体" 4f5$^uN$qA  
        .NameAscii = "Times New Roman" GV/FK{v5  
        .NameOther = "宋体" r&;AG@N/  
        .Name = "宋体" I`1=VC]^8  
         ~coG8r"o  
        .Size = 12               '小四号 r?*?iw2g  
         @^@-A\7[KO  
        .Bold = wdUndefined )I_I?e  
        .Italic = wdUndefined E ..[F<5  
        .Subscript = wdUndefined #kEdf0  
        .Superscript = wdUndefined 1Btf)y'  
         SNFz#*  
        .Outline = False X_2I4Jz]6  
        .Emboss = False Stpho4+/y  
        .Shadow = False B$j,:^  
        .Hidden = False "zc!QHpSd  
         D1 z3E;:  
        .DisableCharacterSpaceGrid = True 54&2SU$kx  
    End With ]T`qPIf;yJ  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat dRmTE  
         A}# Mrb  
        .LeftIndent = CentimetersToPoints(0) #^Y-*vf2  
        .RightIndent = CentimetersToPoints(0) p6*D^-  
        .FirstLineIndent = CentimetersToPoints(0) rKxk?}  
         qB`P7!VN^]  
        .LineSpacingRule = wdLineSpaceExactly C:cu1Y9  
        .LineSpacing = 20 8%B @[YDe  
        .Alignment = wdAlignParagraphLeft ;?9~^,l  
         ] 2'~e,"O  
        .WidowControl = False iV=#'yY  
        .KeepWithNext = False J4; ".Y=  
        .KeepTogether = False .X9^A,9  
        .PageBreakBefore = False n\4+xZr  
        .Hyphenation = False 52,a5TVG  
         !JA63  
        .OutlineLevel = wdOutlineLevelBodyText .>e~J+oL  
         !bg3  
       A`Nb"N$H13  
        .CharacterUnitLeftIndent = 0 C+j+q648>  
        .CharacterUnitRightIndent = 0 #.RI9B  
        .CharacterUnitFirstLineIndent = 2 6(=:j"w0  
         *lSIT]1  
        .LineUnitBefore = 0 k:.c(_2M  
        .LineUnitAfter = 0 WM g^W(  
        .SpaceBefore = 0 e2Dj%=`EU  
        .SpaceAfter = 0 ~ln,Cm} 4  
         dewu@  
        .DisableLineHeightGrid = True BHYEd}M  
    End With ,58[WZG  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False ;.Y`T/eWS  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll umeb&\:8S-  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese ~qF9*{~!  
    ActiveDocument.Styles("QLNU正文").NoProofing = True h2]Od(^[  
    DoEvents _{aVm&^kA  
     zb(u?U  
    '图片段落样式 @lI/g  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") }sZ]SE  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" 9S^-qQH3}  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False M DpXth7  
    With ActiveDocument.Styles("QLNU图片段落").Font t z{]H9  
        .Size = 12               '小四号 KN=Orx7Gy  
        .Italic = wdUndefined ?{V[bm  
        .Subscript = wdUndefined /~Iy1L#  
        .Superscript = wdUndefined V RL6F2 >6  
    End With ~ +Y;jA dU  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat i%iU_`  
         .O(UK4Mb  
        .LeftIndent = CentimetersToPoints(0) s*@.qN  
        .RightIndent = CentimetersToPoints(0) ,MJZ*"V/3  
        .FirstLineIndent = CentimetersToPoints(0) o2L/8q.  
         ~i4@sz&  
        .LineSpacingRule = wdLineSpaceSingle 6S wHl_2%  
        .Alignment = wdAlignParagraphCenter f$L5=V  
        .KeepWithNext = True 6pse @x?  
        .OutlineLevel = wdOutlineLevelBodyText lbY>R @5  
         y[vjqfdmU  
        .CharacterUnitLeftIndent = 0 LY MfoXp  
        .CharacterUnitRightIndent = 0 )yk LUse+  
        .CharacterUnitFirstLineIndent = 0 ;L7<mU  
         i F Ab"VA  
        .LineUnitBefore = 0 P\R3/g  
        .LineUnitAfter = 0 |(fWT}tg  
    End With ,LvJ'N  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False V/Tp&+Z.c  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll li[g =A,  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese jZGmTtx  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True 1<F/boF~  
    DoEvents M;OYh  
     +qdK]RR}  
     C~B ^sG@;  
    '第X章 ^]kDYhe*Y  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") uIu0"pv`x  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" 11u qs S2  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False q0}LfXql8  
    With ActiveDocument.Styles("QLNU章节标题").Font >jc No3S  
        .NameFarEast = "黑体" Q. >"@c[  
        .NameAscii = "Arial Black" sf LBi~*j  
        .NameOther = "Arial Black" @S}'_g  
        .Name = "黑体" ~kL":C>2  
        .Size = 16 'D bHXS7N  
        .Bold = True uf6{M_jXZ  
        .UnderlineColor = wdColorAutomatic = FQH  
        .Outline = False K;K tx>Z/  
        .Italic = wdUndefined .Qaqkb-Ty  
        .Subscript = wdUndefined S}+n\pyQ  
        .Superscript = wdUndefined 8LL);"$  
        .Scaling = 100 Jad'8}0J  
        .DisableCharacterSpaceGrid = True cX2b:  
    End With +W}f0@#)<  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat 0Z\fK>yw  
        .LineSpacingRule = wdLineSpaceSingle & 3gni4@@  
        .Alignment = wdAlignParagraphCenter lUrchLoDt  
        .WidowControl = True Qk6FK]buV  
        .KeepWithNext = True 3yQ(,k#  
        .KeepTogether = True vDemY"wz  
        .PageBreakBefore = True ,SBL~JJ  
        .OutlineLevel = wdOutlineLevelBodyText I'!KWpYJT  
         0y(d|;':  
        .LeftIndent = CentimetersToPoints(0) 4 ClW*l  
        .RightIndent = CentimetersToPoints(0) {5*5tCIt  
        .FirstLineIndent = CentimetersToPoints(0) Y#G '[N>  
         k$zDofdfp  
        .CharacterUnitLeftIndent = 0 CA3.fu3(p  
        .CharacterUnitRightIndent = 0 Uhf -} Jdw  
        .CharacterUnitFirstLineIndent = 0 h1"#DnK7  
         3,GSBiK3}  
        .LineUnitBefore = 1 uZNR]+Yu@  
        .LineUnitAfter = 0.5 iL(E`_I<  
         Cpr}*A   
        .AutoAdjustRightIndent = False +VJl#sc/;  
        .DisableLineHeightGrid = True +XQ6KG&  
        .FarEastLineBreakControl = True &EMm<(.]a  
        .WordWrap = True -Fb/GZt|  
    End With X'5te0v`3  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False </eh^<_~  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll S7V;sR"V2  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese Z7(hW,60  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True C][`Dk\D{  
    DoEvents 49CMRO,T  
     wL*z+>5  
    '表格标题 r6A7 }v  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") q>Y_I<;'g  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" kys?%Y1  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False umi#Se3&  
    With ActiveDocument.Styles("QLNU表格标题").Font kn! J`"b  
        .NameFarEast = "楷体" xKxWtZ0  
        .NameAscii = "Arial" OAv/P|n=  
        .Name = "楷体" PW}Yts7p  
        .Size = 10.5 p7z#4 GW  
        .Bold = True L%"&_v#a^  
        .Underline = wdUnderlineNone #2pgh?  
        .Italic = wdUndefined Yy&0b(m U  
        .Subscript = wdUndefined 2oN lQiE_  
        .Superscript = wdUndefined `jJb) z3D  
        .Color = wdColorAutomatic ukN#>e+L1  
    End With i"-j:b:c<  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat 6D$xG"c  
         dM QnN[d6  
        .LineSpacingRule = wdLineSpaceSingle twJck~l~n  
        .Alignment = wdAlignParagraphCenter cu Nwv(P  
        .KeepWithNext = True  9TeDLp  
        .KeepTogether = True Dv$xP )./  
        .OutlineLevel = wdOutlineLevelBodyText 2 `#|;x^<  
         a+Q)~13  
        .LeftIndent = CentimetersToPoints(0) 9Y7 tI 3  
        .RightIndent = CentimetersToPoints(0) _onHe"%{  
        .FirstLineIndent = CentimetersToPoints(0) h7g9:10  
         v^e[`]u(  
        .CharacterUnitLeftIndent = 0 <#c2Hg%jh  
        .CharacterUnitRightIndent = 0 c;j]/ R$i  
        .CharacterUnitFirstLineIndent = 0 RvVnVcn^#  
         fUa`Y ryQ  
        .LineUnitBefore = 1 ?)9 6YX'  
        .LineUnitAfter = 0 (bXCc  
         8gZ5D  
    End With M+Dkn3bx  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False Q (`IiV   
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll ?&?y-&.5-  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese ;$86.2S>B  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True HG Pbx$!  
    DoEvents p 0-\G6  
L)Kn8  
    '表格首行 /({5x[  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") (A1!)c  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False TiH(HW|:  
    With ActiveDocument.Styles("QLNU表格首行").Font Blu^\:?#z-  
        .NameFarEast = "楷体" 7UMsKE-  
        .NameAscii = "Times New Roman" U\51j  
        .Name = "楷体"  p.zU9rID  
        .Size = 9 GU=h2LSi]  
        .Bold = True ieObo foD  
        .Underline = wdUnderlineNone -QRKDp  
        .Italic = wdUndefined ~Su>^T(?-  
        .Subscript = wdUndefined BV<LIrAS  
        .Superscript = wdUndefined J?%Z7&/M>  
    End With p t<84CP  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat Y*4 \K%e(  
        .LineSpacingRule = wdLineSpaceSingle b+{,c@1rd  
        .Alignment = wdAlignParagraphCenter r8@:Ko= a  
         Bs^W0K$uBO  
        .LeftIndent = CentimetersToPoints(0) 2(UT;PSI  
        .RightIndent = CentimetersToPoints(0) E;%{hAD{  
        .FirstLineIndent = CentimetersToPoints(0) :qI myaGQ  
         WC`<N4g|  
         #u#s'W  
        .CharacterUnitLeftIndent = -0.5 iK)w3S}k1y  
        .CharacterUnitRightIndent = -0.5 : ^l`m9  
        .CharacterUnitFirstLineIndent = -0.5 ZV&=B%J bs  
         @%RDw*L(  
        .LineUnitBefore = 0 ?Hq`*I?b9  
        .LineUnitAfter = 0 w LW!_D,/R  
        .SpaceBefore = 0 :kgwKuhL  
        .SpaceAfter = 0  ,5<-\"{]  
         p_[k^@ $  
    End With D|OX]3~  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False iE$0-Qe[3  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll ym-212wl  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese b+hZ<U/  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True J)*y1   
    DoEvents ~fr1O`8  
K 5!k06;s  
    '表格内容 i<-#yL5  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") U,)+wZJ  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False wZ29/{,  
    With ActiveDocument.Styles("QLNU表格内容").Font MYLq2g\  
        .NameFarEast = "楷体" +&JF|#FQ`  
        .NameAscii = "Times New Roman" .Yo# vV  
        .Name = "楷体" Ff|?<\x0}A  
        .Size = 9 rGx1>xd(k  
        .Bold = False ~aBALD0D;  
        .Underline = wdUnderlineNone eqXW|,zUm  
        .Italic = wdUndefined sjztT<{Q^-  
        .Subscript = wdUndefined $.v5G>- )3  
        .Superscript = wdUndefined o6'`W2P  
    End With #* ?a"  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat &bTadd%0  
        .LineSpacingRule = wdLineSpaceSingle ~bg FU  
        .Alignment = wdAlignParagraphCenter )5bhyzSZI  
         SdN|-'qf  
        .LeftIndent = CentimetersToPoints(0) E-l >z%  
        .RightIndent = CentimetersToPoints(0) Dj?9 5Z,r  
        .FirstLineIndent = CentimetersToPoints(0) >&p_G0-  
         jMgNi@  
        .CharacterUnitLeftIndent = -0.5 pp/Cn4"w  
        .CharacterUnitRightIndent = -0.5 IA''- +9  
        .CharacterUnitFirstLineIndent = -0.5 D*heYh  
        .LineUnitBefore = 0 ytHa[U  
        .LineUnitAfter = 0 w!%Bc]  
        .SpaceBefore = 0 7HFw*;  
        .SpaceAfter = 0 F7a\Luae  
    End With )KkA<O}f  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False AM\`v'I*6  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll 24 ]O0K  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese [S' ngQ"f`  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True ZcIwyh(`  
    DoEvents AM,@BnEcuT  
$YFn$.70\  
    '图片标题 OfIml.  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") TqCzpf&&h/  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" /SSl$  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False i |cSO2O+  
    With ActiveDocument.Styles("QLNU图片标题").Font Zb3E-'G+  
        .NameFarEast = "楷体" UtY< R  
        .NameAscii = "Times New Roman" 9].!mpR  
        .Name = "楷体" DOf[?vbu  
        .Size = 10.5 )J5(M`  
        .Bold = True 3xbA]u;gp  
        .Underline = wdUnderlineNone $7,n8ddRy  
        .Italic = wdUndefined E}yl@8g:#  
        .Subscript = wdUndefined |7%M:7 Q  
        .Superscript = wdUndefined PJO +@+"{@  
        .Outline = False 'Ko T8g\b  
        .Shadow = False v;irk<5  
        .Color = wdColorAutomatic l =xy_ TCf  
    End With aZ- )w  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat km.xy_v  
        .LineSpacingRule = wdLineSpaceSingle Xq,{)G%9nM  
        .Alignment = wdAlignParagraphCenter _epi[zf @  
         X`[or:cB  
        .KeepWithNext = wdUndefined gy,B+~p  
        .KeepTogether = True q^k6.5*"  
        .OutlineLevel = wdOutlineLevelBodyText Z-Zox-I1}-  
         lfb]xu]O  
        .LeftIndent = CentimetersToPoints(0) 9^>nZ6  
        .RightIndent = CentimetersToPoints(0) JoIffI?{(D  
        .FirstLineIndent = CentimetersToPoints(0) 9tqX77UK  
         BIS5u4  
        .CharacterUnitLeftIndent = 0 kC6J@t)  
        .CharacterUnitRightIndent = 0 @>&UoH}2  
        .CharacterUnitFirstLineIndent = 0 Q;Xb-\\  
         Ig*!0(v5$  
        .LineUnitBefore = 0 -g_PJ.Hk  
        .LineUnitAfter = 0 [Nsv]Yz  
    End With /id(atiF^  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False Vtr 0=-m&  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll *b~$|H-\  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese NkA|T1w7  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True %E,s*=j  
    DoEvents `TBau:ElI  
}D{y u+)  
    '目录项 [iB`- dE,  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") ~O&3OL:L  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" dKi+~m'w  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False +Z#lf  
    With ActiveDocument.Styles("QLNU目录项").Font AI/xOd!a  
        .NameFarEast = "黑体" 2wpLP^9Vr<  
        .NameAscii = "Times New Roman" ?HAWw'QW  
        .NameOther = "Times New Roman" XF'K dz>p  
        .Name = "黑体" szGp<xv_p  
        .Size = 10.5 n:x6bPal]  
        .Bold = False 6xvyhg#B  
        .Italic = wdUndefined mi6<;N 2w|  
        .Underline = wdUnderlineNone _.yBX\tf[  
        .Color = wdColorAutomatic ;y Wfb|!  
        .Superscript = wdUndefined t@.M;b8  
        .Subscript = wdUndefined |?i-y3N  
    End With Q3'\Vj,S&  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat G"3D"7f a  
         q>?uB4>^  
        .LineSpacingRule = wdLineSpaceSingle  UcKpid  
        .Alignment = wdAlignParagraphLeft S3A OT  
         c5nl!0XX  
        .WidowControl = False ="JLUq*]s  
        .KeepWithNext = False {H=DeQ  
        .KeepTogether = False CZuV{Oh}?  
        .PageBreakBefore = False Sc`W'q^X  
        .NoLineNumber = False Ws{2+G~  
        .OutlineLevel = wdOutlineLevelBodyText P]bI".A8  
         d>VerZZU  
        .LeftIndent = CentimetersToPoints(0) 2y`rS _2  
        .RightIndent = CentimetersToPoints(0) *C}vy`X  
        .FirstLineIndent = CentimetersToPoints(0) #iJ+}EW _  
         BMgiXdv.B  
        .CharacterUnitLeftIndent = 0 f@]4udc e  
        .CharacterUnitRightIndent = 0 R^{Ow  
        .CharacterUnitFirstLineIndent = 0 58ev (f  
         t9;yyZh  
        .LineUnitBefore = 0 -[^aWNqyJ  
        .LineUnitAfter = 0 H3nx8R$j](  
    End With 7 `thM/fN  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False Ox Zw;yD  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll IJhJfr0)Oo  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot BRhAL1  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese "at*G>+  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True cL?FloPc*  
    DoEvents gk1I1)p  
     7 &DhEI ^  
    '参考文献 j:0(=H!#  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") .r[kNh@ b%  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" eZ8~t/8  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False !:'%'@uc  
    With ActiveDocument.Styles("QLNU参考文献").Font [f!sBJ!  
        .NameFarEast = "宋体" !/[/w39D0o  
        .NameAscii = "Times New Roman" Gn>#Mvq  
        .NameOther = "Times New Roman" =I-SQI8  
        .Name = "Times New Roman" g!,>.  
        .Size = 12 6p=AzojoB  
        .Bold = False NffZttN  
        .Italic = wdUndefined KD11<&4_x  
        .Subscript = wdUndefined Zx@/5!_n.  
        .Superscript = wdUndefined q$Gf9&ZO  
        .Underline = wdUnderlineNone 'P3CgpF<Z2  
        .UnderlineColor = wdColorAutomatic :U$<h  
        .Color = wdColorAutomatic NnRR"'   
        .Engrave = False * _)xlpy  
    End With hB]4Tn5H  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat ou0(C `  
         ep>*]'  
        .LineSpacingRule = wdLineSpaceExactly )#%k/4(Y  
        .LineSpacing = 16 ]X ,f  
        .Alignment = wdAlignParagraphLeft WyF1Fw  
        .WidowControl = False /4}{SE  
        .KeepWithNext = False KU|dw^Yk  
        .KeepTogether = False }lvD 5  
        .PageBreakBefore = False oj/,vO:QT  
        .OutlineLevel = wdOutlineLevelBodyText 1\X1G>60m  
         1O"7%Pvw  
        .LeftIndent = CentimetersToPoints(0) z^;*&J   
        .RightIndent = CentimetersToPoints(0) URz$hcI8  
        .FirstLineIndent = CentimetersToPoints(0) _3i .o$GO  
         4 Z.G  
        .CharacterUnitLeftIndent = 0 N<}{oIsZ+  
        .CharacterUnitRightIndent = 0 k z"F4?,  
        .CharacterUnitFirstLineIndent = -2 c!{v/zOz  
         B b_R~1 l  
        .LineUnitBefore = 0 ?ey!wcv~  
        .LineUnitAfter = 0 Vcm9:,Xlw  
        .SpaceBefore = 0 [7]Kvb2t  
        .SpaceAfter = 0 +] s"*'V$  
         3C=ON.1eg  
    End With iaPrkMhd  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False QVA)&k'T,  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll vN=e 1\  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS zUF%`CR  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True .'.#bH9K  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese $[x2L s~  
    DoEvents qq9fZZb  
,HO~NqmB4  
    ' 2y s'q !  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") =87.6Ai  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" (U#4j 6Q  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False @8a1a3_F  
    With ActiveDocument.Styles("QLNU论文题目").Font BG\g`NK}Z  
        .NameFarEast = "黑体" Dl_y[ 9  
        .NameAscii = "Arial Black" z~i=\/~tZ  
        .NameOther = "Arial Black" ckY,6e"6  
        .Name = "Arial Black" -!zyit5B  
        .Size = 16 16Ym*kWIps  
        .Bold = False PQ9.aJdw@-  
        .Italic = wdUndefined  } Wx#"6  
        .Superscript = wdUndefined ;-Fr^|do y  
        .Subscript = wdUndefined + KGZk?%  
        .Underline = wdUnderlineNone x%Ivd  
        .UnderlineColor = wdColorAutomatic E2+x?Sc+  
        .Color = wdColorAutomatic %eW[`uyV  
~<!b}Hv  
    End With I CCmE#n  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat wDJbax?  
        .LineSpacingRule = wdLineSpaceSingle \3a(8Em  
        .Alignment = wdAlignParagraphCenter r\-Mj\$-  
        .WidowControl = True c'ExZ)RJ  
        .KeepWithNext = True Z#0hh%E"|y  
        .KeepTogether = True aZ"9)RJe  
        .PageBreakBefore = True U>PF#@ C/  
        .NoLineNumber = False MhaN+N  
        .OutlineLevel = wdOutlineLevelBodyText F0 x5(lp Q  
         O{:_-eI&d  
        .LeftIndent = CentimetersToPoints(0) +o^b ,!  
        .RightIndent = CentimetersToPoints(0) $Hh3*reSg-  
        .FirstLineIndent = CentimetersToPoints(0) k<x  %  
         !|}(tqt  
        .CharacterUnitLeftIndent = 0 qw={gZ  
        .CharacterUnitRightIndent = 0 oNH &VHjU  
        .CharacterUnitFirstLineIndent = 0 cK6M8:KW  
         Z:7X=t =  
        .LineUnitBefore = 1 iU]py  
        .LineUnitAfter = 1 mVUDPMyZ  
         Ry2rQM`  
        .BaseLineAlignment = wdBaselineAlignAuto G$FNofQx  
    End With t_%6,?S6  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False jLRUWg  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll Hry*.s -  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS rWzw7T~  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True ;[9WB<t  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese EA_6L\+8&  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True aMI\gCB/  
    DoEvents 'Pyeb`AXE9  
     ?ra6Lo  
    '中文摘要 .b'hVOs{  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") U, q ]  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" BIyNiol$AJ  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False Twi:BI`.  
    With ActiveDocument.Styles("QLNU中文摘要").Font I`"B<=zi  
        .NameFarEast = "宋体" j<[+vrj  
        .NameAscii = "Times New Roman" 2O}UVp>  
        .NameOther = "Times New Roman" }$EcNm$%  
        .Name = "Times New Roman" 0`y;[qAG[  
        .Size = 12 1xAZ0X#  
        .Bold = wdUndefined ?+EN.P[;3  
        .Superscript = wdUndefined aM/sD=}  
        .Subscript = wdUndefined PO9<g% qTf  
        .Italic = wdUndefined G4DuqN~2m  
        .Underline = wdUnderlineNone jF4h/((|EU  
        .UnderlineColor = wdColorAutomatic ^,F8 ha  
        .Color = wdColorAutomatic $$QbcnOf$  
    End With z@5t7e)!R  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat E{_$C!.  
        .LineSpacingRule = wdLineSpaceExactly (NPDgR/   
        .LineSpacing = 20 0=  ]RG  
        .Alignment = wdAlignParagraphLeft /4w"akB|P  
         G, ,c,  
        .WidowControl = False ^D` ARH  
        .KeepWithNext = False O :P%gz4  
        .KeepTogether = True :"BZK5{8  
        .PageBreakBefore = False Id-?her>B  
        .NoLineNumber = False V0y Q  
        .OutlineLevel = wdOutlineLevelBodyText A#t#c*  
         &Xw{%Rg  
        .LeftIndent = CentimetersToPoints(0) N#<h/  
        .RightIndent = CentimetersToPoints(0) _c| aRRW  
        .FirstLineIndent = CentimetersToPoints(0) T 9lk&7W  
         ^3`CP4DT  
        .CharacterUnitLeftIndent = 0 [;O 6)W  
        .CharacterUnitRightIndent = 0 :$eg{IXC"  
        .CharacterUnitFirstLineIndent = 2 7/^`y')  
        .LineUnitBefore = 0 QI\&D)  
        .LineUnitAfter = 0 G+Vlaa/7  
         5<1,`Bq@  
    End With GMD>Ih.k:9  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False 1%W|>M`  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll 5 \1C@d  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS dfkmIO%9X  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True +Ja9p  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese @#sBom+K`  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True r2,AZ+4FP  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete LZC)vF5  
    DoEvents ai/VbV'|  
     OFS` ?>  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") |/LCwq%  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" XHq8p[F  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False h ]'VAt  
    With ActiveDocument.Styles("QLNU英文标题").Font QvB]?D#h  
        .NameFarEast = "黑体" pMJK?- )  
        .NameAscii = "Arial Narrow" Ga o(3Y  
        .Name = "Arial Narrow" ,1>ABz  
        .Size = 16 '&_< !Nv3  
        .Bold = True P\#z[TuHKC  
        .Bold = wdUndefined qSj$0Hq5XI  
        .Superscript = wdUndefined sR%,l  
        .Subscript = wdUndefined Q)pm3Wi  
        .Italic = wdUndefined MN|8(f5Gs  
         ?FC6NEu}8  
        .Underline = wdUnderlineNone NUB3L  
        .UnderlineColor = wdColorAutomatic T/8*c0mU  
        .StrikeThrough = False ZT@a2:&  
        .DoubleStrikeThrough = False 6@ `'}  
    End With :m|%=@]`  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat VeT\I.K[  
        .LineSpacingRule = wdLineSpaceSingle NUiNn 7C  
        .Alignment = wdAlignParagraphCenter \gd.Bl  
        .WidowControl = True iM'{,~8R5  
        .KeepWithNext = False n|,kL!++.  
        .KeepTogether = False -t28"jyj  
        .PageBreakBefore = False 3PS( 1  
        .NoLineNumber = False =l&A9 >\  
        .FirstLineIndent = CentimetersToPoints(0) ~c8Z9[QW  
        .OutlineLevel = wdOutlineLevelBodyText 5tyr$P! N  
         Rx e sK  
        .LeftIndent = CentimetersToPoints(0) ~4p@m>>  
        .RightIndent = CentimetersToPoints(0) []e*Io&[  
        .FirstLineIndent = CentimetersToPoints(0) +{* @36A5A  
         ep]tio_  
        .CharacterUnitLeftIndent = 0 DFvLCGkDk  
        .CharacterUnitRightIndent = 0 xv! QO  
        .CharacterUnitFirstLineIndent = 0 WgBV,{ C  
         xHN"7j}h  
        .LineUnitBefore = 1 # f~,8<K  
        .LineUnitAfter = 1 K%TlBK V  
         y7 tK>aD}  
    End With "],amJ  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False MguH)r` uT  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll {eR,a-D!7  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS Gx75EQ2  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True rw*#ta O  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese NG!~<Kx   
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True w`~j(G4N  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete |BysSJ  
    DoEvents )KvQaC  
Rb_HD  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") X2#;1 ku  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" FBfyW- 7  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False ;jb+x5t  
    With ActiveDocument.Styles("QLNU英文摘要").Font 4%5H<:V7  
        .NameFarEast = "宋体" ]@@3]  
        .NameAscii = "Arial" \ ]AsL&  
        .NameOther = "Arial" XO |U4 #ya  
        .Name = "Arial" qGS]2KY  
        .Size = 12 J(&a,w>p  
        .Bold = wdUndefined GdN'G  
        .Italic = wdUndefined 0q_Ol]<V  
        .Superscript = wdUndefined HRF4 Ro  
        .Subscript = wdUndefined 7QdU|1]  
    End With %dXfC!  
     9HI9([Cs  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat k]*DuVCOX  
         =d_@k[8<0  
        .LineSpacingRule = wdLineSpaceExactly Dim,HPx]d  
        .LineSpacing = 20 qwka77nNT  
         VN=S&iBa/  
        .Alignment = wdAlignParagraphJustify hM*T{|y  
         Y4PU~ l  
        .WidowControl = False #N-NI+qX  
        .KeepWithNext = False #vN\]e  
        .KeepTogether = False .MO"8}]8Z  
        .PageBreakBefore = False GnbXS>  
        .NoLineNumber = False oh{!u!L`]  
         Q!DQ!;Br6  
        .OutlineLevel = wdOutlineLevelBodyText V%~u8b  
         pf.T{ /%  
        .LeftIndent = CentimetersToPoints(0) F8 4LMk?U  
        .RightIndent = CentimetersToPoints(0) F*WW v&\X  
        .FirstLineIndent = CentimetersToPoints(0) m9^ ? p  
         h 9V9.'  
        .CharacterUnitLeftIndent = 0 Zxw>|eKI>D  
        .CharacterUnitRightIndent = 0 ^0t81,`  
        .CharacterUnitFirstLineIndent = 2 /wIev1Z!Y  
         54 8w v  
        .LineUnitBefore = 0 % ~%>3  
        .LineUnitAfter = 1 C._I\:G^  
         >c~~i-=  
    End With +nKxSjqI  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False #mqz*=L3  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll %v++AcE  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS Gq5)>'D?  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False uQ9/7"S  
    DoEvents eW*nRha  
u(KeS`  
    Options.Pagination = True JnX@eBNV  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." dy u brIG  
    DoEvents KZV$rJ%G  
    ActiveDocument.Repaginate rnxO2   
?5m[Qc (<  
End Sub -0| '{  
e=nExY  
tYt/m6h  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: ~S Js2- 2  
{]-nYHGL  
用VBA控制WORD自己修订学生毕业文的格式。 5v8&C2Jy@  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? R{.wAH(  
Qwx}e\=  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

=]7|*-  
'ESy>wA{y<  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 zZ-e2)1v  
第6车皮 -lSm:O@'  

f$V']dOj1q  
/q='~t  
第9车皮 dJNY uTZ'  
aDza"Ln  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 >R!^aJ  
8Yq6I>@!  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 F>*w)6 4~  
P!bm$h*3?  
Main2.bas w V56LW  
,PN>,hFL  
Attribute VB_Name = "SubMain" yJb;V#  
Option Explicit L4kYF~G:4  
=Z-.4\3  
'采集文件与临时文件 Y,E:?  
Public Const TmpFile As String = "d:\30-0600.dat" >+oQxml6nI  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 [U3z*m>e;  
k )){1O  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long I8^z\ef&  
Public hBCFile As Long  '记录采集参数的文件 y ImriCT  
Public Const TmpBMP As String = "d:\1.bmp" *QLl jGe  
Public hTmpFile As Long 8-8= \  
\UB<'~z6!  
-JwH^*Ad  
'采集窗口参数常量 J_P2%b=C  
Public Const FrameH As Long = 280& M;Vx[s,#,  
Public Const FrameW As Long = 768& -QS_bQG%  
Public Const pFrameSize As Long = FrameW * FrameH XTW/3pB  
&5d>jEaB}  
'标志区范围,用于识别车辆 <B u*:O  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X v/yk T9@;  
Public Const mkW As Integer = 28  '识别标志立柱宽度 R4V>_\D/  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) hr6f}2  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) kf5921(P  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 3'& ]v6|  
'车缝检测位置常数 yxA0#6so  
Public Const sSize As Long = 32& E?08=$^5%  
Public Const sPos As Long = 310& pM VeUK?  
Public Const sPosL As Long = 200& %8{' XJ!  
Public Const sPosR As Long = 500& O~aS&g/sf  
'车缝检测框位置 b:%>T PT  
Public Slice(1 To sSize, 1 To FrameH) As Byte 1YnDho;~  
Public SliceL(1 To sSize, 1 To FrameH) As Byte nh9K(  
Public SliceR(1 To sSize, 1 To FrameH) As Byte $/wr?  
Public avSL As Integer, avSLR As Integer, avSLL As Integer W=)}=^N0  
wRie{Vk  
=}c~BHT  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 tO~H/0  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 TvdmgVNP  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 P$4?-AZ  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long SxT:k,ji  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte >656if O  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 pbm4C0W}  
SZwfYY!ft0  
'w9tZO\2  
K{|;'N-1  
'一次连续采集的帧数 c yN_Sg  
Public tFrames As Long xOu cZ+  
o~GhV4vq  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 >) S a#w;  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 5gJQr%pS  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize D]oS R7h  
23+GX&Rp  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte Y}f%/vu s  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte 'm/b+9?.  
Public pWorkSpace(1 To FrameW * FrameH) As Long XTeU 2I  
Public Const pBufferSize As Long = FrameW * FrameH * 2 = )(;  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 =ARI*  
\-sD RW  
Public hBoard As Long   '采集卡标识 >J 8?n,*  
Public mBufferAddr As Long  '缓存地址 oN _% oc  
Public BufferSize As Long  '缓存大小(字节) i!cz I8  
Public iCurrentCard As Long NU 6P  
Public CapStatus As Long ~kN 6Hr*X  
Public iFrames As Long W BiBtU  
Public currentBr As Byte, currentContr As Byte o-)E_X  
3rR(>}:[V  
Public hMEM As Long, mStatus As Long Uw)K [T  
Public Const hMemSize As Long = pFrameSize * 4 C8 G[ 'aQ  
Public hMemWork As Long 3{$c b"5  
Public Const hMemWorkSize As Long = pFrameSize * 5 , H[o.r=  
[;.zl1S<  
6(ja5)sn*  
u8[X\f  
'串口接收轨道衡数据 D %5 0  
Public WeightFromCom As String }:hdAZ+z  
Public bReceiveComplete As Boolean <w,aS;v6jp  
TS1 k'<c?  
vk#xCggK  
Public Type GrayBMPHeader /D~ ,X48+  
  Tag As Integer Z)?"pBv'  
  FileLength As Long    '文件大小 7CQ48LH]  
  Reserve1 As Long ,g\.C+.S  
  DataOffset As Long    '图像数据偏移量 H-UMsT=g]  
  BMPHeaderSize As Long  '文件头长 Tp0Tce/  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… '-v~HwC+/T  
                        'the following sizes are possible: z-,U(0 .  
                        '28h - windows 3.1x, 95, nt, … ZGp8$Y>r  
                        '0ch - os/2 1.x aX  ?ON  
                        'f0h - os/2 2.x V25u'.'v  
ul% q6=f)  
  ImageWidth As Long           '图像宽(像素数) IPT}JX'  
  ImageHeight As Long          '图像高(像素数) }Rt<^oya*  
  PlaneNumber As Integer  '图像层数 3cOXtDV YT  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap s}HTxY;  
                                        '4 - 16 color bitmap LTa9' q0  
                                        '8 - 256 color bitmap }D|"$*  
                                        '16 - 16bit (high color) bitmap % mI q,  
                                        '24 - 24bit (true color) bitmap j4NS5  
                                        '32 - 32bit (true color) bitmap /Hd\VI  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) ].1R~7b  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) myJsRb5  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) ;CU3CLn  
                                    '3 - bitfields (also identified by bi_bitfields) =CqLZ$10  
  IMAGESIZE As Long  '图像数据字节数 ke/o11LP  
  hResolution  As Long  '水平分辩率  像素数/米 Pp.X Du  
  vResolution  As Long  '垂直分辩率 FNm8j#c~Q  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 ^R2:Z&Iv%  
  ImportantColors As Long EIf~>AI  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 Y}Qu-fm  
End Type =RQ>q  
o\2#}eie  
XE>XzsnC  
m*a0V  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader b1s1;8 Q  
Public sRECT As RECT .Wa6?r<g  
rP>5OLP  
9h9Y:i*Gh5  
Public conn As ADODB.Connection *np%67=jO  
Public rsTrain As ADODB.Recordset xwz2N5  
Public rsOperater As ADODB.Recordset Y*7.3 +#  
Public rsGoods As ADODB.Recordset lFRgyEPH  
Public rsGood2 As ADODB.Recordset _ :][{W#  
Public rsSender As ADODB.Recordset hy6px  
Public rsReceover As ADODB.Recordset 8taaBM`:  
Public rsTrainTMP As ADODB.Recordset WRo#ZVt9$  
mirMDJsl%  
u37+B  
'打开采集卡 l5@k8tnz  
'设置参数 .UJDn^@  
'设置为实时单帧采集到缓存方式 02=eE|Y@  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 "2Ye\#BU6  
2=U4'C4#  
2 K` hH  
Sub Main() kszY bz"  
  Dim i As Integer, status As Long A>'o5+  
     :/1WJG:!  
   InitBMPinfo LL:B H, [  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 4ci @$nL1  
    BMPHeader.Tag = &H4D42 g/T`4"p[H  
    BMPHeader.ImageWidth = FrameW 46$5f?Z  
    BMPHeader.ImageHeight = FrameH >+G=|2  
    BMPHeader.BMPHeaderSize = &H28 t(s']r  
    BMPHeader.PlaneNumber = 1 $aVcWz %  
    BMPHeader.bpp = 8 b2:CFtH5  
    BMPHeader.Compression = 0 rgOB0[  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 Pu}2%P)p  
    BMPHeader.vResolution = &H1274 ^LnCxA&QH  
    BMPHeader.ColorsinBMP = 256 a Fl(K\  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP b9"Q.*c<Z^  
    BMPHeader.DataOffset = Len(BMPHeader) #%E~I A%  
    For i = 0 To 255 2P]rJ  
      BMPHeader.Pallate(i) = RGB(i, i, i) Q4Cw{2r  
    Next i ^srx/6X  
    BMPHeader.IMAGESIZE = FrameH * FrameW *d)B4qG  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE 30B! hj$C  
WMYvE\"  
3 i>uKU1  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) 3: 76x  
     $)PNf'5Zg  
    BMP1.ImageWidth = FrameW DuCq16'0T  
    BMP1.ImageHeight = FrameH * 2 N b+zP[C  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight ==Y^~ab;K  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE * DU86JL`  
rVZk G,Q  
  '确定标志位置,为pilarX, pilarY确定初始值 t/nu/yz5E  
   PilarW = mkW &}*[-z  
   PilarH = mkH  '此两项为固定值 XV!P8n  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) [Si`pPvl  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 ! WQEv_G@  
   )C <sj   
   xe_c`%_  
  '连续采集记录文件 EpPKo  
  ' 建立一个缓冲区为页对齐方式的文件 K{"+eA>CU  
  If Dir(TmpFile) <> "" Then 7MBz&wE^f  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ =o9 %)  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) U${dWxC  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 $e0sa=/  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 i5:fn@&  
  Else /y NU0/  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ =G*<WcR  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) %"{SGp  
  End If A2htD!3  
  If hFile = 0 Then Thz&wH`W  
    MsgBox TmpFile & ": File Open Error", vbOKOnly Zf IQ Fh>  
    Exit Sub O~igwFe  
  End If X4 xnr^  
  '采集参数记录文件 HQ4o^WC  
hBCFile = FreeFile() E?%rmdyhL!  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile [x9eamJ,H  
   ?HU(0Vgn'  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 UF0PWpuO  
If hMEM = 0 Then M`S >Q2{  
    fStatus = GetLastError Y2Y/laD  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ QCMt4`% 'u  
     & "请向技术人员报告该错误代码。", vbOKOnly QDLtilf :  
    CloseHandle hFile W${0#qq  
    Exit Sub P PmE.%_  
End If A.(Z0,S-i  
S{&;  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) _d,_&7  
If hMemWork = 0 Then ve'hz{W  
    fStatus = GetLastError (?oK+,v?L  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ y/ vE  
     & "请向技术人员报告该错误代码。", vbOKOnly OCF= )#}qd  
     '释放已成功分配的内存  Q L  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) 2}hEBw68  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) 0urQA_JC  
     f`vB$r>  
    CloseHandle hFile `43E-'g  
    Exit Sub , @(lYeD"  
End If z,$^|'pP  
VYik#n>|Gp  
' Test writing 4fp}`U  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& 8BBuYY {  
     l[email protected]  
   '初始化采集卡参数 y1@{(CDp"  
   iCurrentCard = -1 &@nI(PXv  
   hBoard = okOpenBoard(iCurrentCard) _sx]`3/86  
   Debug.Print hBoard wR\%tumk  
   If hBoard = 0 Then T+Du/ERL  
      ExitGrabber Br;1kQ%eC  
      End A) '{G  
   End If ".~,(*  
   okGetBufferSize hBoard, mBufferAddr, BufferSize M/>^_zG  
   If mBufferAddr = 0 Then Ptn0;GC  
     MsgBox "缓存不存在!" C+jlIT+  
     ExitGrabber U H `=  
   End If $xNZ.|al  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize)  O &;Cca  
    w8$8P  
   E ekX|*  
   currentBr = 128: currentContr = 128 +>Y2luR1  
   '设置视频输入参数 z GA1  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 }eSaF@.  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input 7'CdDB6&.  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 {0QNqjue  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 AvH^9zEE(  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 }-!0d*I  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 4 Bs '5@  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) f D2. Zh  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值)  Jro)  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) tVFl`Xr   
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 PkMN@JS  
   g \&Z_  
   '设置采集参数 oyK'h9Wt1  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 sYYNT*  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 <Zn]L:  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 <Y9e n!3\  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 H $XO] \  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 2w+w'Ag_R  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 t#=W'HyW8  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 x rf z-"n4  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 i=nd][1n  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 1F{c5  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 6||zfH  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 B[epI3 R  
   <D%.'=%pZ  
   'de&9\  
   okCloseBoard hBoard 4ba[*R2  
   Sleep 50 5$d>:" >  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 Y2W|b5  
   EWrIDZi  
   '设置数据传送方式 MA6(VII  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 yxik`vmH  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。  l| j  
   nD{o8;  
   sRECT.Right = -1   '用于获得当前设置值 }&F|u0@b  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) Jx!#y A;  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom fX2sjfk  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 W2&o'(P\  
   sRECT.Left = 0 58V`I5_  
   sRECT.Top = 0 :Ugf3%sQ  
   sRECT.Right = sRECT.Left + FrameW 8,7^@[bzXx  
   sRECT.Bottom = sRECT.Top + FrameH * 2 wQEsq<  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) l1l=52r   
   `-/-(v+ i  
   sRECT.Right = -1   '检查新设置值 #p*D.We  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) C6Lc   
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom TD!--l*gL  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) )%dxfwd6  
   <Z5-?wgf9  
   If TESTSignal = False Then @>cz$##`  
      'ExitGrabber x8 _f/2&  
   End If gF# HNv  
   FC@h6 \+a  
   %68'+qz  
   3K!(/,`  
   '设为实时采集状态 C.].HQ  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) L`NY^  
   T\?$7$/V  
   N:x--,2  
   '单帧采集 z{`K_s%5  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 J2adG+=  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) w;W# 'pE  
   okCaptureTo hBoard, BUFFER, 0, 1 'single _wH>h$E  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 N?`V;`[  
   '   Sleep 20 %PM&`c98z7  
   'Loop 1-0tG+  
   okGetCaptureStatus hBoard, True . |%n"{  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize JlR$"GU  
   '写入768*576测试图象 R-LMV  
   ArrayToBMP TmpBMP hK+6S3-E z  
   }IEwGoDwNs  
   '打开数据库 q=(% ]BK  
   Set conn = New ADODB.Connection SO4?3wg7  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ :e /*5ix  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ !mHMFwvS  
      "; Mode=Read|Write" fG9 ;7KG  
   conn.Open cD6S;PSg  
   `Y O(C<r-  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) $>Qq 7  
   frmRecord.Visible = True i' V("  
   frmQuery.Visible = True : e1kpQ  
   Load frmReceiveFromComm ,4:=n$e 0  
   M#n lKj<  
   '调试参数 ,.9k)\/V  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then '.EO+1{a  
     SignalBox.Visible = True J/LsL k  
   End If ~I6N6T Z  
   If InStr(UCase(Command()), "/COMM") > 0 Then d^MRu#]  
     frmReceiveFromComm.Visible = True lg"aB  
   End If ,_iq$I;  
_NefzZWUJ  
End Sub aKjP{Z0k$  
!6!Gx:  
Sub ExitGrabber() Rjp7H  
  '关闭数据库 ,2YZB*6h{  
  '关闭采集卡 M8nfbc^  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) 76H>ST@G|  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ysapvQN_6  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) f7YBhF   
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) |;:g7eb  
  okStopCapture hBoard ' _d4[Olu  
  okCloseBoard hBoard d|?Xo\+  
  CloseHandle hFile Yw] 7@  
  Close #hBCFile I+=+ ,iXhB  
  conn.Close v%:VV*MxF  
  End J-#V_TzJ?  
End Sub `+z^#3l  
$vrkxn  
Function ArrayToBMP(ByVal File As String) i/j53towe  
Dim BytesWrite As Long 5skxixG  
-M/j&<;LW  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ 0vETg'r  
  CREATE_ALWAYS, 0&, 0&) vAp<Muj(a  
`AYq,3V  
If hTmpFile = 0 Then }@eIO|  
   ArrayToBMP = False IjGPiC  
   Exit Function 8Cs;.>75[  
End If @}=(4%  
H-vHcqFx3  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN G %'xEr0n  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& d~1uK-L]*  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN .G.WPVE  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& ~8s2p%~  
nr2 Q[9~  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN ^/_Yk .w  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& CP~mKmMV  
)fHr]#v  
If BytesWrite < pFrameSize Then 4- ~Z{#-  
  ArrayToBMP = False Ve2{;`t  
End If Kv<f< >|L  
KL9k9|!p  
CloseHandle hTmpFile p^CTHk_|  
j$K*R."  
End Function WQ{[q" O  
 />Q}0H g  
Function ArrayToBMP1(ByVal File As String) G4uG"  
z/u^  
Dim BytesWrite As Long NV7k@7_{B  
,AmwsXN"F  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ W1 k]P.  
  CREATE_ALWAYS, 0&, 0&) SE'!j]6jI  
 0:f]&Ng  
If hTmpFile = 0 Then `^52I kM)  
   ArrayToBMP1 = False \ ?pyax8  
   Exit Function 6<2H 7'  
End If  D|) a7_  
LH)XD[  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 3pg=9*{  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& Q F)\\ D[  
Fvf |m7  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN <+k"3r{y"  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& K>dB{w#gS  
M@#T`aS  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN 8l_M 0F ,  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& N 0H=;CIQ  
4qdoF_  
If BytesWrite < pBufferSize Then 2]1u0-M5L  
  ArrayToBMP1 = False ^|H={pd'c0  
End If 1rJ2}d\y  
rUpe  ;c  
CloseHandle hTmpFile N+'j on}U  
V(_1q  
End Function W#S82  
"$XX4w M  
'使用该过程建立的文件要求在用后关闭 y(o)} m*0  
Public Function ArrayToBMP2(File As String) As Boolean R Wc<CQcL"  
GlnO8cAB  
Dim BytesWrite As Long -QroT`gy  
T] \c2U  
ArrayToBMP2 = True H T|DT  
12a`,~  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ 3w</B- |nQ  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) 'C/yQvJ  
s'h;a5Q1'Q  
If hTmpFile = 0 Then wqhktgG  
   ArrayToBMP2 = False qT48Y  
   Exit Function } vmRm*8z  
End If q pCI [[  
#0>xa]S  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN odCt6Du  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& C,An\lsT  
^cm ] [9  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN yEq7ueJ'  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& Xx"<^FS[zC  
T9C_=0(hn  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN .^?zdW  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& $#q` Y+;L2  
F}5d>nw  
If BytesWrite < pFrameSize Then *!%lBt{2  
  ArrayToBMP2 = False &)Xc'RQ.C  
End If +{1.kb Zq  
=eDI vNps  
CloseHandle hTmpFile X/yq<_ g  
CZ<T@k  
End Function _p^ "l2%D/  
1~*1W4};F8  
Private Function TESTSignal() As Boolean DsejZ&  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long vd {QFJ  
H+4j.eVzZU  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) Ut;`6t  
qx t0Jr8  
If extsign = 1 Then Zz0e4C  
   TESTSignal = True Iko]c_W0  
Else BH">#&j [  
    If extsign = 0 Then ]K"&Vd  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly |5bLV^mv]i  
        TESTSignal = False 1@DC#2hPr  
        Exit Function _dJ(h6%3  
    End If u.|Z3=?VG  
End If ZEAUoC1E1  
Nob(D'vSr  
'测试视频输入类型 M2O_kO eZ  
'video type ;f =m+QXU  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 5~|{:29X  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE)  Y !?'[t  
If videotype = 1 Then r-<O'^C  
        '"隔行信号(Interlaced)" L=l&,ENy  
Else G3~`]qf  
   If videotype = 0 Then Qc; kj  
       '"逐行信号(Non-interlaced)" s V_(9@b  
   Else H"#ITL  
     If videotype = -1 Then z3Q&O$5\  
       ' "不支持" flsejj$  
     End If wT4@X[5$  
   End If "f,{d}u  
End If bC/":+s& p  
}d<R 5  
'测试垂直扫描线数 @1MnJP  
'video scanlines qI+2,6 sGI  
scanlines = -1 +!/ATR%Uci  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) p+;& Gg54  
    If scanlines = -1 Then ]mTBD<3\  
        ' "不支持" 7l D-|yx  
    Else 98>GHl'lM  
        'Trim(Str(ScanLines)) + " 行数/幅" w G%W{T$  
    End If [d: u(  
xG9Sk  
'测试帧频 TmsIyDcD~  
'video field frequency =V[uXm  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) T3X'73M  
    If fieldfrq = -1 Then [={mCGU  
        'lblSignal(8) = "不支持" q`q;og `  
    Else Z!)~?<gcq:  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" ']r8q %  
    End If rm iOeS`:  
End Function 0NXH449I=  
u^1#9bAW8  
J@s>Pe)  
Sub PicIdentify() }yz>(Pq  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 c.ow4 ~>  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 or/gx3  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 s6!6Oqh  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍  .Q{RT p  
^7-zwl(>?N  
  Dim fPTR As Long, cFrame As Long vADiW~^Q^  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer |eqBCZn  
     c$O8Rhx  
*m~-8_ >;  
cFrame = 0 : ?>7Z6  
X@rA2);6  
[_,as  
Do While cFrame < tFrames TSlB.pw%v  
   LQ jbEYp  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) aD^$ v  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) e-nA>v  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize eTiTS*`u  
   CM;b_E)9)f  
  frmRecord.RText.Text = Str(cFrame) IS2cU'   
  frmRecord.RText.Refresh 7>FXsUt_  
       ,/42^|=Z6O  
  If CheckMark = True Then p +VU:%.t  
   ArrayToBMP TmpBMP 9R50,l sE  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) 9iA rBL"  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" i%hCV o  
   M+)a6ge  
   DrawSlice 0l!#u`cCI  
   1E+12{~m"i  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) W Yw#mSp  
   'If i = vbNo Then '5e,@t%y  
   '  Exit Do gcJ!_KZK  
   'End If tt"<1 z@  
   'cFrame = cFrame + 1 mj~:MCC  
   g 7\ =  
  End If c-a,__c?hx  
  DoEvents H@Dpht>[  
  cFrame = cFrame + 1 }LzBo\  
Loop eb62(:=N6  
End Sub 0 j.K?]f)h  
,_2 -Op  
~}Xus?e  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean " kDiK`i  
Yj %]|E-  
'如标志区模式反差存在则为TRUE,否则返回FALSE o ).deP s-  
jD: N)((  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long 3JCo!n0   
CheckMark = True #b/qR^2qW  
   Q7 BbST+  
'复制标志区 ,T$ts  
For i = 1 To mkH h051Ol\v*  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW y&/IJst&aq  
Next i 1Kg0y71"  
|#oS7oV(  
For j = 1 To PilarW * PilarH / 2 BVQy@:K/  
   mTop = mTop + MKpilar(j) )@PnpC%H  
Next j !+l'<*8V  
p4`1^}f&Ie  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH =!q% 1mP  
   mBot = mBot + MKpilar(j)  is'V%q  
Next j w!.@64-  
oQ$yr^M  
mTop = mTop / PilarW / PilarH * 2 "-J 5!y*,Y  
mBot = mBot / PilarW / PilarH * 2 Lc3&\q e  
  kv+%  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 Dw-d`8*  
2u"lc'9v  
'平均值极值化 !wAT`0<94F  
  For j = 1 To PilarH * PilarW 3H,E8>Vd  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) U!wi;W2  
  Next j +iVEA(0&$  
   $v^hzC  
mTop = 0: mBot = 0 .tngN<f  
For j = 1 To PilarH * PilarW / 2 34@[ ZKJ5  
  mTop = mTop + MKpilar(j) ]<;,HGO  
Next j GG} %  
RK3y q$  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW R>< g\{G]  
  mBot = mBot + MKpilar(j) x9_ mlZ  
Next j Ei;tfB  
]v+<K63@T  
.E4* >@M5  
  mTop = mTop / PilarH / PilarW * 3 E5k)~P`|  
  mBot = mBot / PilarH / PilarW * 3 k]b*&.EY1  
   ).T&fa"  
>=~\b  
If mBot > iWhite And mTop < iBlk Then $ghZ<Y2}9  
  CheckMark = True SQKhht`M  
Else dmFn0J-\  
  CheckMark = False ]%Q!%uTh  
End If ZN[<=w&(cB  
End Function \br!77  
rP@#_(22  
Sub Capture1Frame() -dntV=  
   okCaptureTo hBoard, BUFFER, 0, 1 'single }z3j7I   
   okGetCaptureStatus hBoard, True e#"h@kZP  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize $|K d<wv  
End Sub aeqz~z2~8s  
i? 00!t  
Dl,QCZeM  
Sub CopyMark(iBlk As Integer, iWhite As Integer) hW^,' m  
'复制标志区并返回标志区暗区与亮区的亮度平均值 F3tps jQ  
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 9t`;~)o  
   Lb*KEF%s  
'复制标志区 dG\ wW@}J  
For i = 1 To mkH #6`5-5Ks;  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW r*X,]\V0x  
Next i 7T~ M`$h  
VF]AH}H8I  
For j = 1 To mkW * mkH / 2 -YRIe<}E -  
   mTotal = mTotal + MKpilar(j) 8|u 4xf<  
Next j JF~i.+{ h  
\2SbW7"/;P  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 s#2t\}/  
$( hT{C,K  
mTotal = 0 X>q`F;W  
For j = mkW * mkH / 2 + 1 To mkW * mkH oA1_W).wJ  
   mTotal = mTotal + MKpilar(j)  ]hl*6  
Next j Kxe\H'rR  
b 2gng}  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 Y.:R-|W  
SZykG[  
'背景亮度 X{9^$/XsJ  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW nl@an!z  
  For i = 1 To 4 * FrameW <izQ]\kL  
    bsTotal = bsTotal + BsLine(i) | ,8z" g  
  Next i #& 3,T1i`  
  bsAV = bsTotal / FrameW / 4 YQVo7"`%  
M`MxdwR  
End Sub .`or^`X3  
p/H.bG!z  
d2\ !tJm  
Sub AdjIMGbright(Optional bInit As Boolean = True) /y$Omc^  
*~rj!N?;  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) %#6@PQ[R.  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 }Zhe%M=}G  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 "wUIsuG/p  
     TlG>)Z@/  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer x4_IUIgh  
   TBlSZZ-55]  
  '按标准亮度与对比度采集一帧,确定背景亮度 T j$'B[cv  
  currentContr = 128   '初始对比度 }@DCcf$<  
  currentBr = 128   '初始亮度 d {z[46>  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 9&mSF0q  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 j=\h|^gA  
  DoEvents "c^!LV  
  Capture1Frame mHD_cgKN  
  '获得图像上缘4行象素 N0`9/lr|  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW tC[ZWL  
  CopyMark iBlack, iBright   '图像标志区亮度 J-W9Bamx  
  For i = 1 To 4 * FrameW blO4)7m  
    bsTotal = bsTotal + BsLine(i) H]TdW; ZbZ  
  Next i /:dLqyQ_V  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 @gUp9ZwtH  
   `~1!nfFD  
  Select Case bsAV m</m9h8  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 j3-YZKpg  
       currentBr = 150 V<ESj K8  
       currentContr = 60 n1[c\1   
     Case 61 To 80   '有可见背景 b3(* /KgK  
       currentBr = 140 &kb`)F3nU  
       currentContr = 70 <_?zln:4.  
     Case 81 To 100  '有清晰背景 m5Bf<E,c  
       currentBr = 128 c*USA eP  
       currentContr = 80 ( ?FH`<  
     Case 100 To 150  '有明亮背景 3%WB?k c  
       currentBr = 140                '5:30-6:00钟实测数据 qxL\ G &~  
       currentContr = 50 Ufr@j` *  
     Case 151 To 180 sdp&D@  
       currentBr = 130 rd < m:r  
       currentContr = 60 ,Oo`*'a[o7  
     Case 181 To 220  '背景全为白色 d;i|s[6ds`  
       currentBr = 110 I-#H+\S  
       currentContr = 130 uvys>]+  
     Case 221 To 255  '背景全为白色 UG| /Px ]  
       currentBr = 100 0<M-asI?  
       currentContr = 100 05UN <l]  
  End Select $8EEtr,!  
   r]B8\5|<d  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 dFg>uo  
        Case 100 To 150 CH++3i2&  
          currentBr = currentBr - 10 0G%9 @^B  
        Case 151 To 255 h~dQ5%  
          currentBr = currentBr - 20 . i0K-B  
  End Select n#_B4UqW%  
   {Jr1K,  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 hp dI5  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 "ra$x2|=}  
End Sub 8|&,JdT  
 01kRe  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) lu utyK!  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long -V$|t<  
     ''17(%  
    For i = 1 To 8 UQVL)-Z  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& ) u?f| D  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& =H95?\}T[  
    Next i pEyZH!W  
     =lacfPS  
    For j = 1 To 1024 z]7 WC  
      L1 = L1 + LeftBK(j, 0) )f8>kz(  
      L2 = L2 + LeftBK(j, 1) VRo&1:  
      R1 = R1 + RightBK(j, 0) u6iW1,#  
      R2 = R2 + RightBK(j, 1) y\Wn:RR1[  
    Next j bG;fwgAr  
    diffL = Abs(L1 - L2) / 1024 b,!C 8rJ  
    diffR = Abs(R1 - R2) / 1024 @T1G#[C~t  
End Sub 62xOh\(  
JsaXI:%1  
Function CheckSlice() As Boolean HU0.)tD  
  CopySlice avSL, avSLR, avSLL I8#2+$Be+@  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then ?Y=aO(}=h  
    CheckSlice = True GwWK'F'2  
  Else ns[/M~_r  
    CheckSlice = False CEfqFn3^  
  End If ! j~wAdHk  
End Function UmKE]1Yw4r  
n Ja!&G&  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) L!f~Am:#  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long 7?lz$.*Avp  
  For i = 1 To FrameH S ?Zh#`(*  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize Bfb~<rs[  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize <JPN< Kv  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize }D1x%L  
  Next i $ QbJT`,mr  
  For i = 1 To FrameH ,05PYBc3  
    For j = 1 To sSize `kKssU<  
       total = total + Slice(j, i) c r=Q39{  
       totalL = totalL + SliceL(j, i) 7lC$UQx8  
       totalR = totalR + SliceR(j, i) =vThtl/azD  
    Next j `Fqth^RK?p  
  Next i MGdzrcF  
  avSL = total / FrameH / sSize 5(;Y&?k  
  avSLR = totalR / FrameH / sSize K)SWM3r  
  avSLL = totalL / FrameH / sSize D?Oe";"/  
End Sub p.8bX  
q~`hn(S  
Sub DrawSlice() D]]e6gF$e  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B DYX{v`>f^  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B lZzW- %K  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B HcRw9,I'  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) F`=p/IAJK  
End Sub 7w )?s@CD  
Sub DrawMark(pic As Control) FvT&nb{  
   Dim i As Long, j As Long S!K<kn`E3  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B  Omd;  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B ,GOIg|51  
   For i = 1 To PilarH 3Tr,waV  
     For j = 1 To PilarW t FU4%c7V  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) ]2zM~  
     Next j *tjaac;z<J  
   Next i EKc<|e,F  
End Sub +%5L2/n7  
'1u?- 2  
Function avIMG() As Integer =<\22d5L  
  Dim i As Long, j As Long, totalIMG As Long aIgexi,  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize QE 4   
  For i = 1 To pFrameSize :>-zT[Lcn  
    totalIMG = totalIMG + pBuffer(i) 0nc(2Bi  
  Next i UiU/p  
  avIMG = totalIMG / pFrameSize XJul ~"  
End Function ^}  {r@F  
-"-.Z&#  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer )x-b+SC  
  Dim i As Long, j As Long, totalIMG As Long QO@86{u#Y  
  For i = 1 To FrameH n%Oi~7>  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth =OufafZb  
  Next i (Jp~=6&lKf  
  For i = 1 To FrameH * barWidth  %:26v  
    totalIMG = totalIMG + pBuffer(i) FDo PW~+[  
  Next i a)|y0w)vV  
  avRegion = totalIMG / pFrameSize zAB = >v  
End Function 4*_jGw  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 P9!awLM-  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 pq*e0uW  
 }$oS /bo  
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 %/dOV[/  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long K6{wM  
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 CU=sQfE  
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 _'D(>e?  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long 1dv P2E  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 `%YMUBaI  
mG)5xD  
MlTC?Rp#  
Private Const GENERIC_READ = &H80000000 m|NZ093d  
Private Const GENERIC_WRITE = &H40000000 x'EEmjJ  
3a:Hx| Yg  
Private Const FILE_SHARE_READ = &H1 Na@bXcz)  
Private Const FILE_SHARE_WRITE = &H2 ?HG[N7=j  
Private Const OPEN_EXISTING = 3 ,ye}p 1M  
jCY~Wc  
Private Const INVALID_HANDLE_VALUE = -1 Q{~g<G  
j_C"O,WS  
'//file seek 9]Jv >_W*  
Private Const FILE_BEGIN = 0 y;o - @]  
Private Const FILE_CURRENT = 1 eA N{BPN [  
Private Const FILE_END = 2 <F^9ML+'  
2: QT`e&  
Private Const ERROR_SUCCESS = 0& 2n.HmS  
Byq VNz0L  
'//device io control \.2i?<BC  
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 ,nf}4  
izSX  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 X~IilGL8:  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 T]wC?gQG  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 eEXNEgbn  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 -!!]1\S*Y  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C 9!Av sC9  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 -9vNV:c  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F P!-RZEt$  
|GMo"[  
'//type Y" =8wNbr  
Private Type LARGE_INTEGER iM!Ya!  
    lowpart As Long }NDl~5  
    highpart As Long *VsGa<V  
End Type h6k" D4o\  
KHx2$*E_  
Private Enum MEDIA_TYPE ,^bgk -x-  
    Unknown {Q>OZm\+  
    F5_1Pt2_512 5mam WPw  
    F3_1Pt44_512 <M9NyD`  
    F3_2Pt88_512 Cab-:2L]  
    F3_20Pt8_512 +'8a>K^  
    F3_720_512 s AFn.W  
    F5_360_512 J0V m&TY  
    F5_320_512 Kyx9_2  
    F5_320_1024 3JC uM_y  
    F5_180_512 1;[KBYUH  
    F5_160_512 %N Q mV_1  
    RemovableMedia b |:Y3_>  
    FixedMedia 8SpG/gl"  
End Enum yeyDB>#Va.  
JuZkE9C,${  
Private Type DISK_GEOMETRY pZ8J\4+  
    Cylinders           As LARGE_INTEGER H!*ypJ  
    MediaType           As MEDIA_TYPE 0SvPr [ >  
    TracksPerCylinder   As Long =]%,&Se  
    SectorsPerTrack     As Long $e1.y b%  
    BytesPerSector      As Long et5lfj  
End Type _Q:z -si  
;6@sC[  
'//private vars 7"eK<qJ  
Private hDisk           As Long             'disk handle E5i5gE"\  
Private lpGeometry      As DISK_GEOMETRY    'disk info z5gVP8*z5  
Private lBufferSize     As Long             'the buffer size of read/write P;"moluE;  
 Gd A!8  
Public Function OpenDisk(ByVal FileName As String) As Boolean 9mxg$P4  
'// 打开磁盘 # fqrZ9:@  
    hDisk = CreateFile(FileName, _ yKhI&  
                        GENERIC_READ Or GENERIC_WRITE, _ (:8a6=xQ  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ Q z(n41@`  
                        ByVal 0&, _ W=HvMD  
                        OPEN_EXISTING, _ 'v^Vg  
                        0, _ ~QSX 1w"  
                        0) \^6[^\@[  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) c:7V..   
End Function "BsK' yo.  
%GTFub0 F  
Public Function CloseDisk() As Boolean 6):1U  
'//关闭磁盘 PVg<Ovi^d  
    CloseDisk = CloseHandle(hDisk) a/ uo)']B  
End Function LEM%B??&5z  
ZBDF>u@  
Public Function GetDiskGeometry() As Boolean xc*a(v0  
'//获取磁盘参数 ='jT 5Mg  
    Dim dwOutBytes      As Long *rTg>)  
    Dim bResult         As Boolean &]YyV.  
     NWh1u`  
    bResult = DeviceIoControl(hDisk, _ 7j)ky2r#  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ T 1q27I  
                                ByVal 0&, 0, _ c\n_[r  
                                lpGeometry, Len(lpGeometry), _ ~~Bks{"BS  
                                dwOutBytes, _ -i?gY F!G  
                                ByVal 0&) 3w)r""C&  
     n UmyPQ~  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack w71YA#cg  
    GetDiskGeometry = bResult I?Iz5e-  
End Function c2 NB@T9'v  
T9R# .y,  
Public Sub GetDiskInfo(MediaType As Long, _ {C&U q#V  
                        Cylinders As Long, _ ~1;M4K  
                        TracksPerCylinder As Long, _ ,KJHYm=Q  
                        SectorsPerTrack As Long, _ "dP-e  
                        BytesPerSector As Long) 8#;=>m%  
'//返回磁盘的参数 0GxJja  
    MediaType = lpGeometry.MediaType zg3kU65PJE  
    Cylinders = lpGeometry.Cylinders.lowpart / -v ;  
    TracksPerCylinder = lpGeometry.TracksPerCylinder g"748LY>=p  
    SectorsPerTrack = lpGeometry.SectorsPerTrack FD[*Q2fU  
    BytesPerSector = lpGeometry.BytesPerSector \dCGu~bT  
-$"$r ~ad  
End Sub  vyDxX  
z'l HL  
Public Property Get BufferSize() As Long O:#YLmbCN  
'//返回每次读/写的缓冲大小 Lfn$Q3}O`$  
    BufferSize = lBufferSize |K_%]1*riC  
End Property c#TY3Z|  
{U2AAQSa  
l<XYDb~op  
Public Function LockVolume() As Boolean ?o[h$7` o6  
'// 将卷锁定 T/E=?kBR  
    Dim dwOutBytes  As Long 8\68NG6o  
    Dim bResult     As Boolean Ho&:Zs  
     <oJ?J^  
    bResult = DeviceIoControl(hDisk, _ _{c_z*rM8  
                                FSCTL_LOCK_VOLUME, _ q{`1 [R  
                                ByVal 0&, 0, _ rO>'QZ%  
                                ByVal 0&, 0, _ %SB4_ r*<  
                                dwOutBytes, _ 5IUdA?  
                                ByVal 0&) |'-aR@xJ  
    LockVolume = bResult "LTw;& y  
End Function ]+Lr' HF  
ef^GJTv&k  
=s!0EwDH3  
Public Function UnlockVolume() As Boolean |l8=z*v<  
'// 将卷解锁 ~bkO8tn  
    Dim dwOutBytes As Long zc8^#D2y&  
    Dim bResult As Boolean oc)`hg2=  
     el`?:dY H  
    bResult = DeviceIoControl(hDisk, _ ~qQZhu"  
                                FSCTL_UNLOCK_VOLUME, _ hYpxkco"4'  
                                ByVal 0&, 0, _ h&K$(}X  
                                ByVal 0&, 0, _ F(n<:TvlK  
                                dwOutBytes, _ `bBkPH}M  
                                ByVal 0&) @Dfg6<0  
    UnlockVolume = bResult IQU1 JVk Z  
End Function Y Iwa =^  
v4hrS\M  
Bc.de&Bxz_  
Public Function DismountVolume() As Boolean r'Wf4p^Xd  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 (=uT*Cb  
    Dim dwOutBytes As Long ,z.l#hj,{  
    Dim bResult As Boolean WYb}SI(E  
     ewd eC  
    bResult = DeviceIoControl(hDisk, _ .KKecdd?=  
                                FSCTL_DISMOUNT_VOLUME, _ ?|k bIZP(  
                                ByVal 0&, 0, _ i#>t<g`l  
                                ByVal 0&, 0, _ 1iY4|j;ahV  
                                dwOutBytes, _ g;=VuQuP|  
                                ByVal 0&) {Z k^J  
    DismountVolume = bResult #WZat ?-N  
End Function R_B0CM<!  
FWJ**J  
j7ZxA*  
Public Function ReadDisk(ByVal Cylinders As Long, _ !.,J;Qt  
                    ByVal Tracks As Long, _ e1a\ --  
                    db() As Byte) As Boolean 5H.~pc2y  
'//按柱面和磁道来读取磁盘数据 gdeM,A|  
    Dim iPos    As Long w^Y/J4 I0  
    Dim lRead   As Long %IBT85{  
     N#Rb8&G)b  
    iPos = Cylinders * Tracks * lBufferSize EtzS aB*|  
     !b_(|~7Lc  
    If SeekAbsolute(0, iPos) Then rl 7up  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) joskKik^  
    End If 27fLW&b2  
End Function #M|lBYdW}  
;*Vnwt A  
Public Function WriteDisk(ByVal Cylinders As Long, _ <&Xl b0  
                     ByVal Tracks As Long, _ V K6D  
                     db() As Byte) As Boolean _!1LV[x!s  
'//按柱面和磁道来写磁盘数据 {,JO} Dmu5  
    Dim iPos    As Long m6[ }KkW  
    Dim lRead   As Long =s":Mx,o  
     |hxiARr4  
    iPos = Cylinders * Tracks * lBufferSize ?Fx~_GT  
     *V hEl7  
    If SeekAbsolute(0, iPos) Then lXTE#,XVf  
        WriteDisk = WriteBytes(lBufferSize, db()) jz_Y|"{`v  
    End If %B\x %e ;P  
End Function MrB#=3pT  
jbipNgxkr  
8)bR\s   
'///////////////////////////////////////////////////////////////////////////////////// i*/i"W<  
'//file system  > )< ?  
~D3 S01ecM  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean }(8 >&  
'//seek file 0&s a#g2  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte )KE  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) 2|^@=.4\  
    If LowPos = -1 Then +ZNOvcsV  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) :.ZWYze  
    Else BL 1KM2]  
        SeekAbsolute = True u ,3 B[  
    End If *Z"`g %,;  
     iH4LZ  
End Function BeLD` 4K  
Lq5xp<  
JD#q6 &|  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean (a#gCG\  
'//read data to array >\[]z^J  
    Dim RetVal    As Long j yD3S a3  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) .2c/V  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF : wS&3:h  
    ReadBytes = Not (RetVal = 0) l+@;f(8}  
     sR1_L/.  
End Function _ cQ '3@  
]uox ^HC  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean =oI[E~1<  
'//write data from array `{:Nt#7  
    Dim RetVal As Long \"(?k>]E  
    Dim BytesToWrite As Long KxK,en4)+  
    Dim BytesWritten As Long GIzB1cl:  
     pi"M*$  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) 7ivo Q  
     )9"^ D  
    WriteBytes = Not (RetVal = 0)  :W,S  
End Function ]TT >3"Dw7  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 |gI>Sp%Fu  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ @$r[$D v  
DWORD dwCB; Fge%6hu  
LARGE_INTEGER  offset; 7*uN[g#p  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); $x'jf?zs!  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); :rU.5(,  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ \85%d0@3  
DWORD error = GetLastError(); Rb:H3zh  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); t9U6\ru  
return FALSE; nDdY~f.B  
} r%f Q$q>  
return TRUE; ,Suk_aX>  
} IOZw[9](+  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : 39 }e }W"  
6ioj!w<N  
介个真的看不懂。 S.`y%t.GP  
你说你老啦,喜欢怀旧了,才想起来填坑。 ):PN0 .H8  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 LSc^3=X  
uSR%6=$  
+h"i6`g  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : WDghlC6g!l  
佩服,玩也玩得这么专业! aQmS'{d?^  
F}l3\uC]  
(9]1 p;  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : &w^9# L  
伍SIR,再次抱拳佩服 vGsAM* vw6  
^!^M Gzu  
&,{ >b[  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : >.UEs 8QV  
引用第19楼伍胥之于06-14-2010 12:33发表的  : ]lKUpsQI  
rCqwJoC`v  
lGahwn:  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 pFd{Tdh  
XPrnQJ  
我连一级也没有考过。 'J*'{  
.
j{FRD8]V  
uDG>m7(}/h  
引用
yqx!{8=V  
矬子里拔将军... i;~.kgtq4  
你们那里的俗语是吧? V"8Go;[  
@>VX]Qe^X  
我们这里说"矮子里拔长脚"..应该是同一个意思... =W')jKe0  
5+{oQs_  
有趣....各地有表达意思一样却方式不同的俗语.... Hj`'4  
e%:vLE 9  
eptw)S-j  
你的文章写的有脸皮,没屁眼的, Il\{m?Y  
让看客大为不满... xr.;B`T0\'  
Y/UvNb<lK  
你等着,,估计你以后接到的午夜凶铃就多了... :s+?"'DP  
yT<"?S>D  
hy#nK:B  
我到现在也没有接到你的午夜凶铃呢! N:64Gko"K  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : IV1O/lGp  
每个人的故事对其他人都是故事, '%e@7Cs  
自己的故事也是其中之一. BJHWx,v  
跳出来看, FDF DB  
不过是众人中的一个人的故事. 1M)88&  
4VF]t X?o  
所以,接着听故事. KJ&I4CU]^  
c'?EI EP  
女人们有兴趣的就等老伍开个新帖或者跟贴, u-.5rH l  
听他痛说恋爱革命历史.... Z8h;3Ek  
=v|$dDz  
杂家接着听他自学程序员历史, TG?>;It&  
高级程序员考了吗? |R91|-H  
 fZap\  
&)q>Z!C-l  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! }|/<!l+;$  
.+8#&Uy  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 /!5cf;kl*l  
?Nt m5(R  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 |jH Yf42Q  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : O~Dm|hP  
哦, 打倒忽悠大家的家伙.      %yVP@M  
l2!ztK1^  
Co<F<eXe  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : \z-OJ1[F  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 /T<,vR  
PrEfJ?  
Y]}>he1/ 5  
其实标题没有什么,卡总既然改了就不必再改回了。 iS8yJRy  
"4QD\k5  
主要是当初写的时候真是顶着锅盖写的。 H#I%6k*\a  
<;E>1*K}8  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
82楼  发表于: 2015-09-05   
引用
引用第6楼沧桑于06-13-2010 14:39发表的  : EAnw:yUV(  
老伍在写交代材料啊,而且写在一个ZT的贴下,哈哈。 eRwm>l"fVV  
CEb al\R  
kF"G {5  
这不是怕您见笑嘛!现在露馅了,只得继续招供了。 q+Qrc]>-f  
h<f]hJ`ep  
可以从宽不?
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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