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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean #nD]G#>e  
O`;e^PhN  
Dim regEX As New RegExp ^69ZX61vt  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 \CY_nn|&g  
S'h{["P~ 0  
Dim LastTitle0String As String, LastTitle0No As Long T 5AoBUw  
Dim LastTitle1String As String, LastTitle1No As Long 7f$ hg8  
Dim LastTitle2String As String, LastTitle2No As Long =tKb7:KU  
Dim LastTitle3String As String, LastTitle3No As Long )YtdU(^J$  
Dim LastTitle4String As String, LastTitle4No As Long G~VukW<e  
Dim LastTitle5String As String, LastTitle5No As Long hxB` hu-  
Dim LastTabelString As String, LastTableNo As Long JO3x#1~;_  
Dim LastFigureString As String, LastFigureNo As Long [P3].#"]M=  
Z\\'0yuY(  
Dim strSeperator As String SHAC(3o /e  
!_No\O  
Sub ConvertWidth(fTEXT As String, rText As String) {o."T/?d'  
        Selection.Find.ClearFormatting QY^v*+lr\  
        Selection.Find.Replacement.ClearFormatting R4#56#d<  
        Selection.Find.Wrap = wdFindContinue 7;8#iS/  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText mRECd Gst  
        DoEvents 9'My /A0  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True [U^@Bkh  
End Sub N wISf  
!.EDQ1k  
Sub ClearDomain() ;Y^ .SR"  
        With Selection.Find ^$D2fS  
            .ClearFormatting x%Fy1.  
            .Replacement.ClearFormatting (lz Z=T  
            .Wrap = wdFindContinue WZ A8D0[  
            Me.txtStatus.Text = "清除所有域代码" Ft[)m#Dj`  
            DoEvents <`f~Z|/-_(  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False URo#0fV4C  
        End With [ r<0[  
End Sub * NB:"1x  
-4=\uvYh  
Private Sub cmdCheck_Click() ,. K}uW  
    bContinue = True 1v?|n8  
    Dim NoSeries1(1 To 16) As String % >mB"Y,  
    Dim NoSeries2(1 To 16) As String DNyU]+\L[l  
    Dim NoSeries5(1 To 16) As String (6Y.|u]bq  
    Dim NoSeriesRM(1 To 16) As String &gr)U3w  
    Dim paraTotal As Long, ParaText As String 2H p<(  
    Dim ttString As String, ttNo As String z'!sc"]W6  
     U WU PY  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long <hv {,1p-r  
 |Ok=aV7  
    Me.txtStatus.Visible = True smJ#.I6/L  
    Me.lbParaType.Visible = True !&f>,?wlP  
    Me.cmdCheck.Enabled = False < %t$0'  
     O-N@HZC  
     NbyXi3@v  
     wn&5Ul9Elb  
     J;|i6q q  
    Dim ParaType As String, rText As String ?xT ^9  
     W]-c`32~S  
    Selection.WholeStory Qp5YS  
    Selection.NoProofing = True ng-rvr  
     VQV%1f  
    tm1 = Now pR,eus;8  
     <y!(X"n`  
        ActiveWindow.View.Type = wdNormalView :~ ; 48m  
     :&'[#%h8  
    NoSeries1(1) = "一" !</Snsi  
    NoSeries1(2) = "二" y.6Yl**l  
    NoSeries1(3) = "三" @((Y[<  
    NoSeries1(4) = "四" n a3st*3V_  
    NoSeries1(5) = "五" c+bOp 05o-  
    NoSeries1(6) = "六" a9sbB0q-K@  
    NoSeries1(7) = "七" Lc?q0x^s  
    NoSeries1(8) = "八" FRR`<do5$,  
    NoSeries1(9) = "九" k0e {c  
    NoSeries1(10) = "十" K]Rb~+a<  
    NoSeries1(11) = "十一" }u `~lw(Z  
    NoSeries1(12) = "十二" Q2 S!}A  
    NoSeries1(13) = "十三" Z{ AF8r  
    NoSeries1(14) = "十四" X%lk] &2  
    NoSeries1(15) = "十五" KB\A<(o,  
    NoSeries1(16) = "十六" 's>./Pf  
     o6@`aU  
    NoSeries2(1) = "㈠" xV+cX*4h  
    NoSeries2(2) = "㈡" "?f_U/+D<  
    NoSeries2(3) = "㈢" fhp+Ep!0Y  
    NoSeries2(4) = "㈣" "c2{n,  
    NoSeries2(5) = "㈤" 'k1vV  
    NoSeries2(6) = "㈥" # VAL\Z  
    NoSeries2(7) = "㈦" BM+>.  
    NoSeries2(8) = "㈧" DZ*m"Bi  
    NoSeries2(9) = "㈨" 8ED}!;ZU  
    NoSeries2(10) = "㈩" "/~KB~bB  
     p4sU:  
    NoSeries5(1) = "①" t91z <Y|  
    NoSeries5(1) = "②" GX@=b6#-  
    NoSeries5(3) = "③" ,mY3oyu  
    NoSeries5(4) = "④" bPL.8hX   
    NoSeries5(5) = "⑤" 6$ \69   
    NoSeries5(6) = "⑥" <AN=@`+  
    NoSeries5(7) = "⑦" b&_u+g  
    NoSeries5(8) = "⑧" gc"A Tc  
    NoSeries5(9) = "⑨" $psPNJG  
    NoSeries5(10) = "⑩" Dx*tolF  
     tT`{xM  
     F=9 -po  
    NoSeriesRM(1) = "I" l(j._j~p  
    NoSeriesRM(2) = "II" '#ow 9w+^  
    NoSeriesRM(3) = "III" 7+c}D>/` :  
    NoSeriesRM(4) = "IV" ys DGF@wZC  
    NoSeriesRM(5) = "V" 1<n'F H3  
    NoSeriesRM(6) = "VI" 4^u wZ:  
    NoSeriesRM(7) = "VII" :vWixgLg  
    NoSeriesRM(8) = "VIII" E8Y (C_:s  
    NoSeriesRM(9) = "IX" Y2&hf6BE  
    NoSeriesRM(10) = "X" 6jpfo'uB$  
    NoSeriesRM(11) = "XI" L_(Y[!  
    NoSeriesRM(12) = "XII" f$I$A(0P  
    NoSeriesRM(13) = "XIII" rWS],q=c  
    NoSeriesRM(14) = "XIV" kWm[Lt  
    NoSeriesRM(15) = "XV" |k [ hk  
    NoSeriesRM(16) = "XVI" ig}H7U2q@  
     U3rpmml  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) g5>c-i  
     9'I$8Su  
    If i = vbNo Then U_oei3QP  
        Exit Sub ;]A:(HSZj  
    End If C?-_8OA  
     ZhnRsn9  
    If Me.chkSuper.Value Then C<"b99\2`  
        Me.txtStatus.Text = "检查修改所有的上标格式" .cCB,re  
     SYaL@54  
        CheckSuperScript [`/d$V!e  
         %&\DCAFk  
    End If *{1]b_<  
     hG!|ts  
    If Me.chkStyle.Value Then 71wtO  
        Me.txtStatus.Text = "设置样式,请稍候...." 0J5IO|1M  
        DoEvents i^ _?C5  
        CeateOrModifyStyle DMpNm F>  
    End If f)9{D[InM^  
     ?'%9  
     kgGMA 7Jy  
     m1{OaHxKh  
    ClearDomain f`Wces=5  
         "}ZUa~7  
     U!D\Vd  
     eGE[4Z  
    If Me.chkLIST.Value Then _2p D  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" >@+ r|  
     'joE-{  
        ConvertListToOrdinary (+w .?l  
    End If I5H#]U  
     &|#z" E^-  
     96 P3B}Dk  
    Dim pType As String, trimpTEXT As String -s,guW |  
    If Me.chkNum.Value = True Then hutdw>  
        Me.txtStatus.Text = "转换全角数字形式为半角" 9{Xh wi)z  
        ConvertWidth "1", "1" k.K;7GZC  
        DoEvents a&)4Dv0  
        ConvertWidth "2", "2" nZP%Z=p7  
        DoEvents ^QbaMX  
        ConvertWidth "3", "3" Y. 1dk  
        DoEvents 9Lp[y%{GP  
        ConvertWidth "4", "4" &?(472<f**  
        DoEvents sA1 XtO<&7  
        ConvertWidth "5", "5" Q2 jl61d_9  
        DoEvents NU |vtD  
        ConvertWidth "6", "6" geJO#;  
        DoEvents r;'Vy0?AL  
        ConvertWidth "7", "7" N3SB-E+  
        DoEvents b+!I_g4P  
        ConvertWidth "8", "8" m>8tA+K)+)  
        DoEvents i8 fUzg)  
        ConvertWidth "9", "9" gVU&Yl~/^  
        DoEvents =qy{8MsjA  
        ConvertWidth "0", "0" Ps=<@,dks  
        DoEvents r]yI5 ;  
        ConvertWidth "a", "a" &8'QD~  
        DoEvents jB-wJNP/  
        ConvertWidth "b", "b" FTT=h0t  
        DoEvents ^,,lo<d_L  
        ConvertWidth "c", "c" kXY p.IVA  
        DoEvents %LZ-i?DL4Q  
        ConvertWidth "d", "d" P%_PG%O2p  
        DoEvents F ?.J1]  
        ConvertWidth "e", "e" !^_G~`r$2J  
        DoEvents YM4njkI7  
        ConvertWidth "f", "f" q%\rj?U_  
        DoEvents IKVS7m  
        ConvertWidth "g", "g" T*v@hbJ  
        DoEvents yr, Oq~e  
        ConvertWidth "h", "h" (8d"G9R(  
        DoEvents C=!YcJ9  
        ConvertWidth "i", "i" .In8!hjYy4  
        DoEvents /aX#j`PrH  
        ConvertWidth "j", "j" n.tJ-l5[  
        DoEvents u(bPdf@kz  
        ConvertWidth "k", "k" vm4q1!!(  
        DoEvents GJ P\vsaQ  
        ConvertWidth "l", "l" Y&y5^nG  
        DoEvents `@#,5S$ E  
        ConvertWidth "m", "m" D! $4  
        DoEvents 4M3{P  
        ConvertWidth "n", "n" ganXO5T$  
        ConvertWidth "o", "o" QoTjKck.  
        ConvertWidth "p", "p"  OYwH$5  
        ConvertWidth "q", "q" \r^*4P,,  
        ConvertWidth "r", "r" le.(KgRS4  
        ConvertWidth "s", "s" 6S6E 1~  
        ConvertWidth "t", "t" n&;-rj^qq  
        ConvertWidth "u", "u" >^(Q4eU7!  
        ConvertWidth "v", "v" =[x @BzH  
        ConvertWidth "w", "w" O}cg1Q8p  
        ConvertWidth "x", "x" yMCd5%=M\  
        ConvertWidth "y", "y" g4CdzN~  
        ConvertWidth "z", "z" RQt\_x7P  
        ConvertWidth "A", "A" rn"}@5  
        ConvertWidth "B", "B" avwhGys#  
        ConvertWidth "C", "C" n=tg{_9f%  
        ConvertWidth "D", "D" r5(-c]E7  
        ConvertWidth "E", "E" +:m'a5Dm  
        ConvertWidth "F", "F" mvrg!/0w  
        ConvertWidth "G", "G" l! 9G  
        ConvertWidth "H", "H" XJ9l, :c,  
        ConvertWidth "I", "I" D`fi\A  
        ConvertWidth "J", "J" [/Ya4=C@  
        ConvertWidth "K", "K" L; f  
        ConvertWidth "L", "L" ~G#^kNme  
        ConvertWidth "M", "M" oMer+=vH  
        ConvertWidth "N", "N" zyF[I6Gs  
        ConvertWidth "O", "O" (25v7 Y ]  
        ConvertWidth "P", "P" #M5[T N!  
        ConvertWidth "Q", "Q" 97~*Z|#<+  
        ConvertWidth "R", "R" aVbv.>  
        ConvertWidth "S", "S" (U#9  
        ConvertWidth "T", "T" s\#eD0|  
        ConvertWidth "U", "U" eq(Xzh  
        ConvertWidth "V", "V" Z2soy-  
        ConvertWidth "W", "W" F2k)hG*|{  
        ConvertWidth "X", "X" }2i3  
        ConvertWidth "Y", "Y" \5=fC9*G  
        ConvertWidth "Z", "Z" 3G9AS#-C  
        ConvertWidth "^l", "^p" "H!2{l{  
        ConvertWidth "(", "(" +jIE,N  
        ConvertWidth ")", ")" Fm,} sP"Qx  
     *3r{s'm  
    End If y*fU_Il|!  
n]]!:jFC  
    With ActiveDocument PN @[k:5(  
        Dim tbl As Table J^]Y`Q`  
        For Each tbl In .Tables -f!oq7U  
            tbl.Rows.Alignment = wdAlignRowCenter fsVQZ$h73  
            tbl.Range.Font.NameFarEast = "楷体" +5C*i@v  
            tbl.Range.Font.NameAscii = "Times New Roman" {8a s _  
            tbl.Range.Font.Size = 10.5 G: p!PB>=  
        Next oP( Hkp,'  
        Set tbl = Nothing '.&z y#  
    End With 6: o?@%  
     qGgqAF#B  
     x s ^$fn\  
    With ActiveDocument J Je?Zu\  
         o N/T>&d  
        For i = 1 To .TablesOfContents.Count n gC|BLT%h  
            .TablesOfContents(i).Delete 2gC.Z:}  
        Next 2(Ez H  
         *q/oS8vavd  
         ]/C1pG*o  
         @vcvte  
        paraTotal = .Paragraphs.Count -+#g.1UL/  
        paraCounter = 1 Tr@}  
         U3zwC5}BN  
        LastTitle0No = 0 tzFgPeo$;  
        LastTitle1No = 0 )s';m$  
        LastTitle2No = 0 ?]bZ6|;2  
        LastTitle3No = 0 B\z4o\am%  
        LastTitle4No = 0 wtL_c  
        LastTableNo = 0 d,0Yi u.p  
        LastFigureNo = 0 E%E3h1Ua  
         Nq3q##Ut:  
        Dim Sec As Long l<l6Ey(  
         j)[ w X  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) =W Q_5}  
        If Sec = 0 Then !Qd4Y =  
            Exit Sub 3"OD"  
        End If V9o_ Q  
         V$7SVq  
        k = 0 bWAVBF  
        Do While (paraCounter < paraTotal) And bContinue Z*Qra4GBl]  
            k = k + 1 {V)Z!D  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then (&x#VmDL  
                Exit Do Q<F-l. q   
            End If pdQ6/vh  
            paraCounter = paraCounter + 1 R0v5mD$:G  
            If k Mod 20 = 0 Then SKf[&eP,G  
                Me.lbCounter.Caption = paraCounter 5I(gP  
                DoEvents 1*!`G5c,}  
            End If d;kdw  
        Loop Uhz<B #tj  
         6 NJ5v +  
         E'J|  p7  
        Do While (paraCounter < paraTotal) And bContinue 7k>sE  
             `1$7. ydQ  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) a ykNH>#Po  
            ShapeHeight = 0 <r%QaQRbm  
            ShapeWidth = 0 RW@sh9  
           M6+_Mi.  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth +R_w- NI  
             k!lz_Y  
            Select Case ParaType oU.LYz_  
                Case "【】表格内容" B3V=;zn3  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" ,.ln  
                Case "章" =os%22*  
                    LastTitle0No = LastTitle0No + 1 2nFSu9}+r  
                    '新一章开始,复位其下属标题编号 {t;{={$  
                    LastTitle1No = 0 3B<$6  
                    LastTitle2No = 0 #sq$i  
                    LastTitle3No = 0 ]zza/O;31(  
                    LastTitle4No = 0 `Al5(0Q  
                     TCd1JF0  
                    k = Val(ttNo) >|[74#}7  
                    If k = 0 Then '非数字编号章节 e Ert_@}  
                        If ttNo <> NoSeries1(LastTitle0No) Then U_UX *  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString -H%806NAX7  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText 5r:SBt|/  
                        End If IaU  
                    Else K] ^kUN_  
                        If Val(ttNo) <> LastTitle0No Then n>Rt9   
                            rText = "第" & LastTitle0No & ttString Rj|8l K;,  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText G^]7!:0  
                        End If U&D"fM8  
                         wM;9plYlw0  
                    End If yBPaGZ{f  
                     7O)U(<70  
                    '章段落设置 45hjN6   
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 P"<HxT ?  
                    .Paragraphs(paraCounter).Style = "QLNU章节" TuBl9 p'6  
                    .Paragraphs(paraCounter).Range.Select [7~ !M*o9  
                    Selection.EndKey unit:=wdLine &.Jp,Xt)  
                    tc = Replace(rText, vbCr, "") <E(#;F^y  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False s9wc ZO  
                Case "一级标题" x_JCH7-  
                    LastTitle1No = LastTitle1No + 1 Vc! ;O9dP  
                    '新一级标题开始,复位其下属标题编号 tfr*/+F  
                    LastTitle2No = 0 f3+@u2Pv  
                    LastTitle3No = 0 0.~Pzg  
                    LastTitle4No = 0 H-9%/e  
                     )k.[Ve  
                    If ttNo <> NoSeries1(LastTitle1No) Then y6lle<SIu  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString FX FTf2*T  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText A&2)iQ  
                    End If 5Z7<X2  
                   z~/z>_y$nv  
                     }/yhwijg  
                    '一级标题段落设置  格式:一、标题内容 R^.oM1qu|  
                    .Paragraphs(paraCounter).Range.Text = rText oXc!JZ^  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" K>h=  
                    .Paragraphs(paraCounter).Range.Select \S)\~>.`y!  
                    Selection.EndKey unit:=wdLine ?dukK3u  
                    tc = Replace(rText, vbCr, "") E0<9NF Qr7  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 5_ @8g+ ~  
                Case "二级标题" S3[r v  
                    LastTitle2No = LastTitle2No + 1 -|MeC  
                    '新二级标题开始,复位其下属标题编号 iR9 $E  
                    LastTitle3No = 0 K.Tfu"6  
                    LastTitle4No = 0 ag-\(i;K]  
                     8xQ5[Ov  
                    If ttNo <> NoSeries1(LastTitle2No) Then 1Z +3=$P  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString 9ZL3p!  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText *N .f_s  
                    End If J >Y wMl  
                     cp0@wC#d  
                    '二级标题段落设置 格式:(一)、标题内容 8Vkw vc  
                    .Paragraphs(paraCounter).Range.Text = rText u6A ReL 'f  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" C|"h]  
                     gc 14 %  
                    .Paragraphs(paraCounter).Range.Select b<de)MG  
                    Selection.EndKey unit:=wdLine gL(ny/Ob9  
                    tc = Replace(rText, vbCr, "") bUf2uWy7  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False BpL,<r,  
                 Y. ]FVq  
                Case "三级标题" lCDu,r;\  
                    LastTitle3No = LastTitle3No + 1 2<Tbd"x?  
                    '新三级标题开始,复位其下属标题编号 G SXe=?  
                    LastTitle4No = 0 jmbwV,@Q2  
                     )v-sde\  
                    If Val(ttNo) <> LastTitle3No Then "r!O9X6  
                            rText = LastTitle3No & ". " & ttString a a=GW%  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText ngprTMO$&  
                         &+\J "V8  
                    End If Cg/L/0Ak  
                    '三级标题段落设置 格式:1. 标题内容 YK/?~p9:  
                    .Paragraphs(paraCounter).Range.Text = rText [a;U'v*  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" Bf$YwoZov  
                    .Paragraphs(paraCounter).Range.Select y]B?{m``6  
                    Selection.EndKey unit:=wdLine U5]{`C0H?  
                    tc = Replace(rText, vbCr, "") :=BFx"Y  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False :A\8#]3  
                Case "四级标题" [V~(7U  
                    LastTitle4No = LastTitle4No + 1 C`z[25o  
                     8. [TPiUn'  
                    If Val(ttNo) <> LastTitle4No Then y#5xS  
                            rText = "(" & LastTitle4No & "). " & ttString )\C:|  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText m]8rljo  
                     ugEh}3  
                    End If 'ao<gTUbu  
                    '四级标题段落设置 格式:(1). 标题内容 $9DV }  
                    .Paragraphs(paraCounter).Range.Text = rText <FIc!  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" XYtDovbv&  
                    .Paragraphs(paraCounter).Range.Select wR\Y+Z   
                    Selection.EndKey unit:=wdLine $DZ\61  
                    tc = Replace(rText, vbCr, "") c rPEr  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False \0iF <0oy  
                 66*/"dBwm  
                Case "表格标题" QAigbS n]  
                    LastTableNo = LastTableNo + 1 >(s)S[\  
                     PpD ?TAlA  
                    If ttNo <> CStr(LastTableNo) Then N/QTf1$  
                            rText = "表" & LastTableNo & ". " & ttString :b[ [}'  
                            ErrMsg.AddItem "表格编号错误:" & ParaText s l|n]#)  
                   \WG6\Zg0A  
                    End If 5:%xuJD  
                     t@[&8j2B>  
                    '表格名称段落设置 格式:表1. 表格名称 ?(el6J}  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" LfEeFF=#n  
                    xe = Replace(rText, vbCr, "") Vv4 w?K  
                    .Paragraphs(paraCounter).Range.Select B] dvX  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 e`%U}_[d  
                    Selection.Range.Text = xe 4k5X'&Q  
                    Selection.EndKey pe>R2<!$  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False 'c3P3`o,;  
                 Y<0;;tVf4U  
                Case "表格首行" V(mz||'*  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" -y70-K3  
                Case "图片标题" bI 3o|  
                    LastFigureNo = LastFigureNo + 1 +85i;gO5  
                     6]yYiz2Xn  
                    If ttNo <> CStr(LastFigureNo) Then :c@v_J6C&  
                            rText = "图" & LastFigureNo & ". " & ttString v /{LC4BF  
                            ErrMsg.AddItem "表格编号错误:" & ParaText +je Pp_3$O  
                   TU4"7]/{M  
                    End If kw&,<V77~  
                    '图片名称段落设置 格式:图1. 图名称 )$XW~oA'  
                    .Paragraphs(paraCounter).Range.Text = rText eAh~ `  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" j:# wt70  
                    .Paragraphs(paraCounter).Range.Select !%{/eQFT4  
                    Selection.EndKey unit:=wdLine Eg&xIyRmm  
                    xe = Replace(rText, vbCr, "") <H{%`  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False o(GXv3L  
                Case "正文" t{#B td  
                     '正文名称段落设置 nFU'DZ  
                    .Paragraphs(paraCounter).Style = "QLNU正文" m?DI]sIv#  
               Case "文献条目" >J+'hm@  
                    With .Paragraphs(paraCounter) @:\Iw"P  
                        '.Range.Select ezn%*X y,  
                        'Selection.ClearFormatting >58N P1[k  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” 4.:2!Q  
                        .Style = "QLNU参考文献" 68 % = V>V  
                    End With pj:s+7"t  
               Case "图表注解" u}ULb F  
                    With .Paragraphs(paraCounter) 4}@J]_]Z  
                        .Range.Font.NameFarEast = "楷体" 9P;}P ! W  
                        .Range.Font.NameAscii = "Times New Roman" "c8 -xG  
                        .Range.Font.Size = 9 '小5号字 'thWo wE  
                         P` Hxj> {  
                        .Alignment = wdAlignParagraphCenter P(BjXMd  
                        .LeftIndent = 0 '\8gY((7   
                        .RightIndent = 0 @j *K|+X"  
                        .FirstLineIndent = 0 m~c z  
                        .LineSpacing = 12 *Y"Kbn 6  
                        .LineSpacingRule = wdLineSpaceExactly ~u-DuOZ8  
                        .LineUnitAfter = 0 ;i*<HNQ  
                        .LineUnitBefore = 0 x%Ph``XI  
                        .OutlineLevel = wdOutlineLevelBodyText h.PVRAwk  
                        .PageBreakBefore = False "]\sw"zO?  
                        .RightIndent = 0 b^[Ab:`}[V  
                        .WordWrap = True od=%8z  
                        .LineUnitAfter = 0.5 f%fD>a  
                         2Wwzcvs@  
                    End With \vj<9ke&  
                Case Else @X@?jj&  
                    '不作处理 .?T,>#R  
            End Select wVU. j$+_#  
             ]hNio6CVm  
            '含有inlineshape的段落处理 $VOSd<87  
            If ShapeHeight > 30 Then -j1?l Y  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 HBHDu;u  
            End If ~NT2QY5!K  
             *->2$uWP  
            If (ShapeWidth + ShapeHeight) > 150 Then 5VD(fW[OW]  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" )Qe<XJH!  
            End If iV#sMJN9  
             04ZP\  
            '段落计数器递 f]Jn\7j4  
            paraCounter = paraCounter + 1 7kX;|NA1  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter W^{zlg  
            Me.txtStatus.Text = ParaText ;}v#hKC~  
            DoEvents XpWcf ([  
        Loop )Il) H  
    End With jdz]+Q`jq  
     w<=?%+n  
    msg = "" 2P3,\L  
     m)l<2 `CM  
    For i = 0 To Me.ErrMsg.ListCount - 1 L?_'OwaY  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) 0c6b_%Rd  
    Next iNj*G j  
     = F*SAz  
     I`k%/ei38  
     |>_e& }Y%L  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg 2d),*Cvf  
    Me.cmdCheck.Enabled = True 1iNq|~  
    Me.txtStatus.Visible = True T1,Nb>gBq^  
    Me.lbParaType.Visible = False ?=zF]J:G1w  
     En01LrC?  
    bContinue = False NWnUXR  
End Sub c>I(6$  
{k BHZ$/  
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) :;Z?2P5i  
    Dim pTEXT As String L'(ei7Z  
     1dDK(RBbQ  
    pTEXT = ChKRange.Text +i"^"/2f{  
     ^n Gj 7b  
    ParaType = "其它" !1G6ZC:z  
    TitleString = pTEXT 8@b,>l$  
    TitleNo = "N/A" r<< ]41  
     @JB9qT  
    shpCounter = ChKRange.InlineShapes.Count vmEbk/Vy  
    If shpCounter <> 0 Then S7i,oP7  
        MaxShpHeight = 0: TotalShpWidth = 0 G8bc\]  
        For i = 1 To shpCounter fXNl27c-  
            k = ChKRange.InlineShapes(i).Height ?|4Y(0N  
            l = ChKRange.InlineShapes(i).Width 'W'['TV  
            If k > MaxShpHeight Then u^2)oL  
                MaxShpHeight = k CK[w0VCT  
            End If :wWPEhK  
            TotalShpWidth = TotalShpWidth + l >6yA+?[:  
        Next N@}5Fnk-  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then \! `k:lusa  
            Exit Sub (*qMs)~]B  
        End If <}Hfu-PLo  
    End If X#v6v)c  
     4FwtC"G3  
    '空行 Fpe>| "&  
    If Len(pTEXT) <= 2 Then i2bkgyzB.  
        Exit Sub h 8Shf"  
    End If }6S~"<Ym  
     `Hlv*" w$  
         t`F<lOKj  
    '是否为表格中的文字 8v{0=9,Z  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then d\eTyN'rA  
        ParaType = "表格内容" % YgGw:wZ  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) SZ$~zT;c  
        If k = 1 Then Sq<ds}o'8l  
            ParaType = "表格首行" 9 5cIdF 6m  
        End If )gNS%t c*K  
        Exit Sub hIBW$  
    End If Z+p'3  
     d WKjVf  
    '例外情况:脚注 4~8!3JH39  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then "XKcbdr8-  
        ParaType = "脚注" LVHIQ9  
        Exit Sub 2TQyQ%  
    End If ''p7!V?  
     =74yhPAW  
    '例外情况:尾注 {>EM=ZZfg  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then 4Ny lc.2mi  
        ParaType = "尾注" K/T4T\  
        Exit Sub M~h^~:Lk  
    End If JWB3;,S  
     +K2p2Dw(k  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then O@9<7@h+Nl  
        ParaType = "页眉页脚" dd?ZQ:n  
        Exit Sub oGIh:n7 q+  
    End If `1xJ1 z#  
     tJ 3Hg8;  
     le7!:4/8  
    With regEX 62s0$vw  
        .Global = True +"yt/9AO  
         r<)>k.] !  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" n]nb+_-97  
        If regEX.Test(pTEXT) Then FdwlRuG  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") 9nGS"E l{  
            TitleString = regEX.Replace(pTEXT, "$3") %"yy8~|  
            TitleNo = regEX.Replace(pTEXT, "$1") 5xb1FH d:  
            ParaType = "章" `8x.Mv  
            Exit Sub w'i8yl bZ  
        End If 3'*}ZDC  
         {7F?30: ]  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" v35!? 5{  
        If regEX.Test(pTEXT) Then $u"*n\k>  
            ParaType = "一级标题"  []L yu  
            regEX.Execute (pTEXT)  b79z<D  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") ;\mTm;]G  
            TitleString = regEX.Replace(pTEXT, "$3") XEX-NE"]  
            TitleNo = regEX.Replace(pTEXT, "$1") wC&+nS1  
            Exit Sub `4Db( ~  
        End If 1r:i'cW h  
         xZE%Gf_U  
        '全角或半角括号中的数字 mMt~4(5  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" =|j~*6Hd  
        If regEX.Test(pTEXT) Then +uqP:z  
            ParaType = "二级标题" 5~! &x@  
            regEX.Execute (pTEXT) =6YffXa_s  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") pw, <0UhV  
            TitleString = regEX.Replace(pTEXT, "$5") UngK9uB~  
            TitleNo = regEX.Replace(pTEXT, "$2") [}*xxy   
            Exit Sub T[(4z@d`5  
        End If .\rJ|HpZ1J  
         o],z/MPL  
        '阿拉伯数字  1. 2. S\jIs[Dz  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" ,qUOPW ?=  
        If regEX.Test(pTEXT) Then >Hd Pcsl L  
            ParaType = "三级标题" }57d3s  
            regEX.Execute (pTEXT) AQ<2 "s  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 I d}@  
            TitleString = regEX.Replace(pTEXT, "$3")  #Y_v0.N  
            TitleNo = regEX.Replace(pTEXT, "$1") W{!Slf  
            Exit Sub Jf</83RZ  
        End If *B*dWMh  
         %^qf0d*  
        '全角或半角括号中的阿拉伯数字 }L|cg2y  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" c{(4s6D  
        If regEX.Test(pTEXT) Then EJByYk   
            ParaType = "四级标题" (@(rz/H  
            regEX.Execute (pTEXT) h.t2;O,b  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") _N1UL?  
            TitleString = regEX.Replace(pTEXT, "$5") 6'a 1]K  
            TitleNo = regEX.Replace(pTEXT, "$2") ZHN}:W/p  
            Exit Sub FfSKE  
        End If e$Npo<u  
          ?S2!'L  
        '表格名称 TBU.%3dEyI  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" 9{- Sa  
        If regEX.Test(pTEXT) Then QnMN8Q9  
            ParaType = "表格标题" HYcwtw6  
            regEX.Execute (pTEXT) $`'%1;y@  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) 9zKbzT]  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) KQu lz  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) b%_[\((  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 IpYw<2'  
            Exit Sub k62KZ5| D  
        End If "k> ;K,:  
         <c!I\y  
        '图片名称 1cdX0[sN  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" IEj=pI   
        If regEX.Test(pTEXT) Then #Zq[.9!q{  
            ParaType = "图片标题" 4xsnN@b  
            regEX.Execute (pTEXT) n&fV^ x  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") yv+DM`0  
            TitleString = regEX.Replace(pTEXT, "$3") j0(+Kq:J  
            TitleNo = regEX.Replace(pTEXT, "$1") {8im{]8_  
            Exit Sub kN8?.V%Utw  
        End If Gi S{=+=5  
         ~i5t1  
        '参考文献 d@QC[$qXj  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 d>bS)  
        If regEX.Test(pTEXT) Then ;n2b$MB?nM  
            ParaType = "文献条目" ,\CG}-v@CN  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") L9bIdiB7  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") iS#m{1m$$  
            Exit Sub )BX-Y@fpA  
        End If Kc#42 C;t/  
         \!J9|  
        prfx = Left(pTEXT, 2) y&(R1Y75  
        If prfx = "注:" Or prfx = "注:" Then \0bZ1"  
            ParaType = "图表注解" _[p@V_my  
            Exit Sub 41s[p56+@  
        End If JANP_b:t  
         .NX>d@ Kc  
         Op 0Qpn  
        ParaType = "正文" OE8H |?%  
         ~'u %66  
    End With N1l&$#Fr!s  
End Sub #- z(]Y,y  
/OsTZ"*.2/  
Sub ConvertListToOrdinary() *#&s+h,^  
    Dim st As Paragraph no UXRQ  
    With ActiveDocument ^BN?iXQhN  
        For i = .Paragraphs.Count To 1 Step -1 "v[?`<53^l  
            Set st = .Paragraphs(i) l ]CnLqf&  
            lst = st.Range.ListFormat.ListString ptCAtEO72  
            If lst <> "" Then r4wnfy  
                st.Range.ListFormat.RemoveNumbers #Py\'  
                st.Range.InsertBefore lst & " " zKf.jpF^  
            End If Z#_+yw  
        Next \?K>~{)  
    End With )an,-EIX%  
    Set st = Nothing cuUl r  
End Sub a"pejW`m  
=7P(T`j  
Private Sub UserForm_Activate() bqI| wGCA"  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" `7o(CcF6H  
    Me.lbTotal.Font.Bold = True 4SGF8y@WU  
    Me.txtStatus.Visible = False ?cmv;KV   
    Me.cmdCheck.Enabled = True )u}MyFl.  
lKA2~o  
End Sub O~u@J'4  
>G<.^ ~o  
ZnXq+^ Z4  
Sub CheckSuperScript() nv-_\M   
    Selection.Find.ClearFormatting RXWS,rF  
    Selection.Find.Replacement.ClearFormatting KX$Q`lM   
    With Selection.Find c ;@k\6  
        .Text = "[【\[[〖](*)[】\]〗]]" =2tl149m/z  
        .Replacement.Text = "[\1]" nd xijqw  
        .Replacement.Font.Superscript = True `mo>~c7  
        '.Replacement.Font.Color = wdColorBlue @;T?R  
        .Forward = True {z0PB] U  
        .Wrap = wdFindContinue n<3*7/-  
        .FORMAT = True (Gp|K6  
        .MatchCase = False Ag@R 60#  
        .MatchWholeWord = False KGq4tlM6  
        .MatchByte = False >^V3Z{;  
        .MatchAllWordForms = False *s}j:fJ  
        .MatchSoundsLike = False 3^%sz!jK+  
        .MatchWildcards = True 7nOn^f D  
    End With lV )SOs$  
    Selection.Find.Execute Replace:=wdReplaceAll )WR *8659e  
End Sub ]>'yt #]  
TkjPa};R  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) *JmU",X  
    bContinue = False B_uAa5'  
    Set regEX = Nothing QU%'z/dip  
End Sub ?[~)D}] j  
u4,b%h.  
Sub CeateOrModifyStyle() vp#r :+=  
' N \Wd 0b  
' ^{(i;IVG  
Dim stl As Style j[q$;uSD  
     m<wEw-1.  
    Options.Pagination = False !tr /$  
     oEuo@\U05v  
    On Error Resume Next )9mUE*[  
    For Each stl In ActiveDocument.Styles F)Qj<6  
        stl.Delete iT}L9\  
    Next R`F8J}X_  
    On Error GoTo 0 O,A}p:Pgs  
      U<Z\jT[  
    Set stl = Nothing }y P98N5o  
     wG2-,\:  
    DoEvents sXmo.{Ayb  
    On Error Resume Next S&w(H'4N  
     GK. U_`4?  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph D-!#TN`Y  
     /*2sg>e'QF  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph AcCM W@e  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph 3V2w1CERE  
     cc|"^-j-7  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph nbM7 >tnsk  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph 9CW8l0  
     e)x;3r"j  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph RI2Or9.   
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph ; rJ  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph ZP olE_P7  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph 2`]_c=  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph y+ ZCuX  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph }5 qjGD  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph z,#3YC{'  
     R 404\XGL  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph J&jNO Nu?  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph ~!G&K`u  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph x[i Et%_  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph /qalj\ud  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph xB&6f")  
     A[.5Bi  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph t1h2ibO  
    On Error GoTo 0 TV&4m5  
    DoEvents zcTY"w\b  
     {cF >, T  
    'BaseStyle Vy:MK9U2  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False avI   
    With ActiveDocument.Styles("BaseStyle").Font <(<19t5.  
        .NameFarEast = "宋体" ^68BxYUoD\  
        .NameAscii = "Times New Roman" {x8UL7{  
        .NameOther = "宋体" oL 69w1  
        .Size = 10.5 <0hJo=6a8  
        .Bold = wdUndefined uY5Gn.Y  
        .Italic = wdUndefined Z" !+ p{u  
        .Subscript = wdUndefined 9X2 lH~C  
        .Subscript = wdUndefined FII>6c  
         c6NCy s  
        .Underline = wdUnderlineNone /|. |y S9  
        .UnderlineColor = wdColorAutomatic *;I F^u1  
        .StrikeThrough = False mK2M1r  
        .DoubleStrikeThrough = False Bhnwb0b<  
         r31H Zx1^  
        .Outline = False H%\\-Z$#  
        .Emboss = False te b~KM  
        .Shadow = False gUq)M  
        .Hidden = False 4{1 .[##]o  
        .SmallCaps = False Q(e3-a  
        .AllCaps = False v8L&F9 o  
        .Color = wdColorAutomatic ?fXlrJ  
        .Engrave = False al3[Ph5G  
        .Scaling = 100 V^^nJs tV  
        .Kerning = 1 +^6v%z  
        .Animation = wdAnimationNone L beMP  
        .DisableCharacterSpaceGrid = False Nu%JI6&R  
        .EmphasisMark = wdEmphasisMarkNone Mi5"XQ>/  
    End With  ,B<Tt|'  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat 7:_\t!]  
        .LeftIndent = 0 ZdJer6:Z}  
        .RightIndent = 0 G$buZspL'd  
        .SpaceBefore = 0 RL;>1Q,H  
        .SpaceBeforeAuto = False b@&ydgmaQ  
        .SpaceAfter = 0 `*1059   
        .SpaceAfterAuto = False {lhdropd  
         G3G"SJ np  
        .LineSpacingRule = wdLineSpaceSingle @Fl&@ $  
        .Alignment = wdAlignParagraphJustify ;%R+]&J  
         5E#koy7 $s  
        .WidowControl = False [Bz'c1  
        .KeepWithNext = False pdrF/U+  
        .KeepTogether = False u+RdC;_  
        .PageBreakBefore = False UkY `&&ic  
        .NoLineNumber = False H#joc0?P  
         jSj (ZU6  
        .FirstLineIndent = CentimetersToPoints(0) =k(~PB^>  
        .OutlineLevel = wdOutlineLevelBodyText I@f">&^  
        .CharacterUnitLeftIndent = 0 s: .5S  
        .CharacterUnitRightIndent = 0 XU}sbbwu  
        .CharacterUnitFirstLineIndent = 0 #VwA?$4g`  
        .LineUnitBefore = 0 $*Q_3]AY]  
        .LineUnitAfter = 0 .2jG ~_W[  
        .AutoAdjustRightIndent = True Wo^r#iRko  
        .DisableLineHeightGrid = True ^5l4D3@E  
         #^bkM)pc  
        .FarEastLineBreakControl = True >iCk vQ  
        .WordWrap = True $ZPiM  
        .Hyphenation = False bh8IF,@a  
         M!s@w%0?'  
        .HangingPunctuation = True QzQTE-SQ  
        .HalfWidthPunctuationOnTopOfLine = True Odo"S;)  
        .AddSpaceBetweenFarEastAndAlpha = True =lf&mD _/  
        .AddSpaceBetweenFarEastAndDigit = True F;IG@ &  
        .BaseLineAlignment = wdBaselineAlignBaseline w]{NaNIeq1  
    End With U*' YGv  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False f'\NGL  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll ]bq<vI%  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese lj1wTiaI(  
    ActiveDocument.Styles("BaseStyle").NoProofing = False F<UEipe/N  
     PG1#Z?_  
    '一级标题题样式 n+EK}= DK  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") |x AwiF_  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" g8{?;  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False `aS9 o]t  
    With ActiveDocument.Styles("QLNU一级标题").Font Q1Jkt  
        .NameFarEast = "黑体" &!3=eVg  
        .NameAscii = "Arial Black" @lau?@$ja  
        .NameOther = "黑体" V+()`>44  
        .Name = "黑体" _faI*O Y8  
        .Size = 16              '三号 ='7n  
        .Bold = True QrP$5H{[E  
        .Italic = wdUndefined 35 ;)O -  
        .Subscript = wdUndefined m_TZY_;  
        .Superscript = wdUndefined =9 TAs? =  
    End With cs?@Ri=g  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat #@m*yJg<  
         ]x hmM1$  
        .LeftIndent = CentimetersToPoints(0) S"iQQV{)Z  
        .RightIndent = CentimetersToPoints(0) ^;2dZgJ4^  
        .FirstLineIndent = CentimetersToPoints(0) z:aT5D  
         {9<2{$Og  
        .LineSpacingRule = wdLineSpaceSingle X^#.4:>.  
        .Alignment = wdAlignParagraphCenter 9 GdrJ~h  
         )y7 SkH|  
        .WidowControl = True Z:#-4CiP  
        .KeepWithNext = True 'U)|m  
        .KeepTogether = True [G/q*a:K  
        .OutlineLevel = wdOutlineLevelBodyText {V!Jj6n  
         +|OkT  
        .LineUnitBefore = 0.5 u_o>v{&i  
        .LineUnitAfter = 0.5 j${:Y$VmE  
    End With / 4K*iq  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False 6t5)r lT  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll W"rX$D [Le  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese N.q4Ar[x#p  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True A}#@(ma7  
    DoEvents N[j7^q7Xt  
     <[^nD>t_  
    '二级 Qr;es,f  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") X,/@#pSOz  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" >NN|vj  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False n ?%3=~9  
    With ActiveDocument.Styles("QLNU二级标题").Font F6T@YSP  
        .NameFarEast = "黑体" (WK $ )f  
        .NameAscii = "Arial Narrow" JlF0L%Rc  
        .NameOther = "黑体" $a6&OH/  
        .Name = "黑体" =*q:R9V  
        .Size = 15        '小三号 HRx% m1H  
        .Bold = False *|x2"?d-F:  
        .Outline = False N,w;s-*  
        .Italic = wdUndefined Z;@F.r  
        .Subscript = wdUndefined -;z&">  
        .Superscript = wdUndefined |67j__XC  
    End With XHO}(!l\  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat 7cn"@h rJ  
        .LeftIndent = CentimetersToPoints(0) x7J|  
        .RightIndent = CentimetersToPoints(0) eBTy!!  
        .FirstLineIndent = CentimetersToPoints(0) hGH{Xp[mW  
         rG"}CX`]:  
        .LineSpacingRule = wdLineSpaceSingle #ZIV>(Q\H  
        .Alignment = wdAlignParagraphLeft ^yKP 99(  
         N1I1!!$K;%  
        .WidowControl = True VwoCR q*  
        .KeepWithNext = True P Z-|W  
        .KeepTogether = True v&U'%1|  
        .PageBreakBefore = False `5`Pv'`  
        .OutlineLevel = wdOutlineLevelBodyText _[V.%k  
         eb:mp/  
        .LineUnitBefore = 0.5 ,z)7rU`  
        .LineUnitAfter = 0.5 [?BmW {*u.  
         _tQ=ASe0  
    End With i\B >J?Q\  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False ^sq3@*hCw  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll #3$U&|`  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese HLAYmXX"w  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True >]=1~ sF  
    DoEvents jow^~   
     k 6~k  
    '三级标题样式 Zg7~&vs$  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") oJ`ih&Q8  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" Jug1Va<^c  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False [^W4%S  
    With ActiveDocument.Styles("QLNU三级标题").Font o><~.T=d&  
        .NameFarEast = "宋体" bK%go  
        .NameAscii = "Times New Roman" .9 WUp>  
        .NameOther = "黑体"  UJoWTx  
        .Name = "黑体" 4j)Y>  
        .Size = 14               '四号 gtz!T2%  
        .Bold = False 4i[3|hv'  
        .Outline = False Y ,?  
        .Italic = wdUndefined qJW> Y}  
        .Subscript = wdUndefined pM\)f  
        .Superscript = wdUndefined C["^%0lj  
    End With )F<<M+q=  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat r{kV*^\E  
        .LeftIndent = CentimetersToPoints(0) amGQ!$] %#  
        .RightIndent = CentimetersToPoints(0) hE!3 kaS  
        .FirstLineIndent = CentimetersToPoints(0) T}P| uP  
         C4Q ^WU+$j  
        .LineSpacingRule = wdLineSpaceSingle E8>npDFv.  
        .Alignment = wdAlignParagraphLeft <P( K,L?r  
         [*?P2.bf  
        .WidowControl = True K4xZT+Qb  
        .KeepWithNext = True Tm_vo-   
        .KeepTogether = True L5cNCWpo  
        .PageBreakBefore = False *ZGQ`#1.X6  
        .OutlineLevel = wdOutlineLevelBodyText \ +v_6F  
         ?4q6>ipx  
        .CharacterUnitLeftIndent = 0 ~sAINV>A  
        .CharacterUnitRightIndent = 0 Yh:*.@  
        .CharacterUnitFirstLineIndent = 2 t9m:  E  
         7 .+kcqX  
        .LineUnitBefore = 0.5 quf,Z K5  
        .LineUnitAfter = 0 g i:;{  
    End With Y_%\kM?7  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False ekP=/;T#S  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll bqf=;Nvog  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese "[H9)aAj7  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True J mFzSR?}  
    DoEvents Lq  LciD  
     " %|CD"@  
    '四级标题样式 -MHu BgYJ-  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") +:It1`A~]  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" RgQ\Cs24Q  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False .gT@_.ZD9  
    With ActiveDocument.Styles("QLNU四级标题").Font 6%ID*  
        .NameFarEast = "宋体" /Os)4yH\  
        .NameAscii = "Times New Roman" R]/F{Xs  
        .NameOther = "宋体" HqOSQ<-Fo  
        .Name = "宋体" 8pDJz_F!{  
        .Size = 12               '小四号 b_Ba0h=  
        .Bold = True U*k$pp6\b~  
        .Outline = False [O [ N_z  
        .Italic = wdUndefined )TyL3Z\>(  
        .Subscript = wdUndefined -H.;73Kb[  
        .Superscript = wdUndefined xzMa[D4(  
    End With g@nk0lQewj  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat "=| yM~V  
         [fR<#1Z  
        .LeftIndent = CentimetersToPoints(0) /D8cJgH-  
        .RightIndent = CentimetersToPoints(0) LjXtOF  
        .FirstLineIndent = CentimetersToPoints(0) Ec0Ee0%A]  
         <g,k[  
        .LineSpacingRule = wdLineSpaceSingle -.g5|B  
        .Alignment = wdAlignParagraphLeft Qkqn~>  
         1WcT>_$  
        .WidowControl = True f]5bAs  
        .KeepWithNext = True Dw[w%uz  
        .KeepTogether = True 4pq>R  
        .PageBreakBefore = False >g93Bj*  
        .OutlineLevel = wdOutlineLevelBodyText f QuphMOl6  
         BD=;4SLT  
        .CharacterUnitLeftIndent = 0 >6ch[W5k@  
        .CharacterUnitRightIndent = 0 |fTQ\q]W  
        .CharacterUnitFirstLineIndent = 2 %<DRrKt  
         s&y  
        .LineUnitBefore = 0 3=dGz^Zdv:  
        .LineUnitAfter = 0 gNs@Q !  
         EE&~D~yHUL  
    End With N ~M:+ \  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False 6Om-[^  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll fgl"ox  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese -mX _I{BJ  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True FPFt3XL  
    DoEvents Ks X@e)8u  
     f*5=,$0  
    '正文校式 .,m$Cm  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") e@0wF59  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" )KBv[|  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False [ Q=) f  
    With ActiveDocument.Styles("QLNU正文").Font r-Z'  
         <`| }bt  
        .NameFarEast = "宋体" 7\a(Imq  
        .NameAscii = "Times New Roman" q.<q(r  
        .NameOther = "宋体" o?p) V^7  
        .Name = "宋体" wqE ]o= k  
         0<v~J9i  
        .Size = 12               '小四号 gMI%z2]'-  
         )CdglPK  
        .Bold = wdUndefined ^n]tf9{I  
        .Italic = wdUndefined 7GK| A{r  
        .Subscript = wdUndefined f 21w`Uk48  
        .Superscript = wdUndefined {%S1x{U}W-  
         .Ji r<" *<  
        .Outline = False "! Mu5Ga  
        .Emboss = False uLhamE)  
        .Shadow = False g-}Vu1w0{6  
        .Hidden = False 8CA4gnh  
         pBL{DgX  
        .DisableCharacterSpaceGrid = True ,Z>RvLl  
    End With .D4 D!!  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat Uk;SY[mU  
         A2rr>  
        .LeftIndent = CentimetersToPoints(0) v l {hE~  
        .RightIndent = CentimetersToPoints(0) T X6Ydd  
        .FirstLineIndent = CentimetersToPoints(0) J4lE7aFDA~  
         "[GIW+ui  
        .LineSpacingRule = wdLineSpaceExactly eIo f{#  
        .LineSpacing = 20 2U|Nkm  
        .Alignment = wdAlignParagraphLeft >454Yir0Mk  
         mW8CqW\Q5  
        .WidowControl = False Ju+@ROZ  
        .KeepWithNext = False L?9Vz&8]  
        .KeepTogether = False [.<vISRir  
        .PageBreakBefore = False O%c6vp7  
        .Hyphenation = False HSK^vd?_l  
         )\VUAD%~e7  
        .OutlineLevel = wdOutlineLevelBodyText 8%`Sx[  
         WJz   
       CF42KNq  
        .CharacterUnitLeftIndent = 0 {_[l,tdZ  
        .CharacterUnitRightIndent = 0 Sk;IAp#X9  
        .CharacterUnitFirstLineIndent = 2 i,4JS,82I  
         Nob(bD5SpE  
        .LineUnitBefore = 0 V aq=f/  
        .LineUnitAfter = 0 G =< KAJ  
        .SpaceBefore = 0 8 (.<  
        .SpaceAfter = 0 3<JZt.|  
         M9f*7{c  
        .DisableLineHeightGrid = True 1 uXtBk6  
    End With -Qn:6M>w^  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False )[nzmL*w  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll 2N)Ywqvj  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese YuPgsJ [m  
    ActiveDocument.Styles("QLNU正文").NoProofing = True IyP\7WZ  
    DoEvents sL&u%7>Re  
     qKO\;e*  
    '图片段落样式 tanuP@O  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") #v(+3Hp  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" UdL`.D,  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False 31b-r[B{%  
    With ActiveDocument.Styles("QLNU图片段落").Font ' {:(4>&  
        .Size = 12               '小四号 S~6<'N&[  
        .Italic = wdUndefined )-jvp8%BK  
        .Subscript = wdUndefined j*xens$ )  
        .Superscript = wdUndefined Iv/yIS  
    End With %&gx@ \v  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat &Puu Xz<  
         kN]#;R6  
        .LeftIndent = CentimetersToPoints(0) ?;{A@icr  
        .RightIndent = CentimetersToPoints(0) Vs07d,@w>  
        .FirstLineIndent = CentimetersToPoints(0) @KS:d\l}U  
         L</"m[  
        .LineSpacingRule = wdLineSpaceSingle t1ZZru'r  
        .Alignment = wdAlignParagraphCenter `RmB{qgB  
        .KeepWithNext = True }#E4t3  
        .OutlineLevel = wdOutlineLevelBodyText 89 fT?tT  
         4-3B"  
        .CharacterUnitLeftIndent = 0 j/Bzbjq"  
        .CharacterUnitRightIndent = 0 (V=lK6WQm  
        .CharacterUnitFirstLineIndent = 0 dr/!wr'&hS  
         Nr(WbD[T  
        .LineUnitBefore = 0 /#,<> EfT  
        .LineUnitAfter = 0 `b7 o  
    End With m,up37-{  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False *$l8H [  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll f "-<Z_  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese x!YfZ*  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True 6#{= E @  
    DoEvents mLq?-&F  
     #4c uNX5m%  
     z6{0\#'K  
    '第X章 },f7I^s|  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") `H+Eo<U  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" &kO4^ A  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False -OkKLub  
    With ActiveDocument.Styles("QLNU章节标题").Font 0IA '8_K  
        .NameFarEast = "黑体" xc*ys-Nv  
        .NameAscii = "Arial Black" P_ ZguNH  
        .NameOther = "Arial Black" ^R<= }  
        .Name = "黑体" d1E~H]X4  
        .Size = 16 /VJ@`]jhDf  
        .Bold = True 9Hc#[Ml  
        .UnderlineColor = wdColorAutomatic 7<1Y%|x`  
        .Outline = False _t;w n7p  
        .Italic = wdUndefined C)ChF`Ru':  
        .Subscript = wdUndefined m CdkYN#  
        .Superscript = wdUndefined K@>v|JD  
        .Scaling = 100 1m ![;Pg3  
        .DisableCharacterSpaceGrid = True fp>o ^+VB  
    End With +[F9Q,bH@b  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat }y[o[>  
        .LineSpacingRule = wdLineSpaceSingle B2 Orw8F  
        .Alignment = wdAlignParagraphCenter ;TW@{re  
        .WidowControl = True 5 !NPqka}.  
        .KeepWithNext = True YK[O#V  
        .KeepTogether = True c"QH-sE  
        .PageBreakBefore = True KR522YW  
        .OutlineLevel = wdOutlineLevelBodyText E RMh% C  
         Wq>j;\3b3  
        .LeftIndent = CentimetersToPoints(0) 3(PU=  
        .RightIndent = CentimetersToPoints(0) U`8)rtYw  
        .FirstLineIndent = CentimetersToPoints(0) r%B5@+{so  
         ^ul`b  
        .CharacterUnitLeftIndent = 0 oFIs,[ Go  
        .CharacterUnitRightIndent = 0 ]}5j X^j  
        .CharacterUnitFirstLineIndent = 0 S3oU7*OZ  
         !8A5Y[(XD  
        .LineUnitBefore = 1 c|O5Vp}  
        .LineUnitAfter = 0.5 9td(MZ%i~N  
         [yVU p+  
        .AutoAdjustRightIndent = False >2C;5ba  
        .DisableLineHeightGrid = True F%Mlid;1  
        .FarEastLineBreakControl = True  u?'X%'K*  
        .WordWrap = True j5/H#_ .  
    End With .OWIlT4K  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False _D+7w'8h  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll RyM2CQg[  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese `\.n_nM  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True {u5)zVYC,U  
    DoEvents wvh4AE5F|z  
     sY#K=5R  
    '表格标题 $@#nn5^IX  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ^~Ar  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" (8EZ,V:  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False `o*eLLk  
    With ActiveDocument.Styles("QLNU表格标题").Font t(_XB|AKm  
        .NameFarEast = "楷体" ]k KsGch  
        .NameAscii = "Arial" YInW)My.h  
        .Name = "楷体" /aPq9B@  
        .Size = 10.5 W%$p,^@S5  
        .Bold = True j`tUx# h  
        .Underline = wdUnderlineNone <$= 8'$T81  
        .Italic = wdUndefined  XG^  
        .Subscript = wdUndefined R0=/ Th -  
        .Superscript = wdUndefined {< wq}~  
        .Color = wdColorAutomatic $u"K1Q 3  
    End With |owh F  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat U>I#f  
         f'.yM*  
        .LineSpacingRule = wdLineSpaceSingle }5S2v+zE  
        .Alignment = wdAlignParagraphCenter RdY#B;  
        .KeepWithNext = True #pVk%5N  
        .KeepTogether = True i2!{.*.  
        .OutlineLevel = wdOutlineLevelBodyText 5GRN1Aov<  
         iL\\JuY  
        .LeftIndent = CentimetersToPoints(0) K8RloDjk_A  
        .RightIndent = CentimetersToPoints(0) Ugs<WVp$  
        .FirstLineIndent = CentimetersToPoints(0) Y}WO`+Vf5  
         vu#:D1/BB  
        .CharacterUnitLeftIndent = 0 TZ*i b~  
        .CharacterUnitRightIndent = 0 Jq; }q63:  
        .CharacterUnitFirstLineIndent = 0 C<7J5  
         +ypT"y  
        .LineUnitBefore = 1 X:!%"K%}  
        .LineUnitAfter = 0 B}!n6j`  
         VtmUK$k}I  
    End With |LjCtm)@+  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False My1E@<  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll }0!\%7-Q  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese '"KK|]vJ  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True @a3<fmJ  
    DoEvents AV&eg e  
O;zW'*c+  
    '表格首行 5_i&}c23Vn  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") nv8,O=#s  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False qxrOfsh  
    With ActiveDocument.Styles("QLNU表格首行").Font lA ,%'+-  
        .NameFarEast = "楷体" +X- k)9  
        .NameAscii = "Times New Roman" oC?b]tzj  
        .Name = "楷体" U$J]^-AS  
        .Size = 9 +0a',`yc  
        .Bold = True ']rh0?  
        .Underline = wdUnderlineNone xFvSQ`sp  
        .Italic = wdUndefined !C+25vup  
        .Subscript = wdUndefined "vJADQ4F  
        .Superscript = wdUndefined EfUo<E  
    End With Q^ F- 8  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat vLC&C-f  
        .LineSpacingRule = wdLineSpaceSingle P&SR;{:y  
        .Alignment = wdAlignParagraphCenter h FjW.~B  
         [NFA dE  
        .LeftIndent = CentimetersToPoints(0) Y/ h ay[6  
        .RightIndent = CentimetersToPoints(0) v>e4a/  
        .FirstLineIndent = CentimetersToPoints(0) 0FW=8hFp,  
         u9&p/qMx2  
         m[7a~-3:J  
        .CharacterUnitLeftIndent = -0.5 FUOvH 85f  
        .CharacterUnitRightIndent = -0.5 {:dE_tqo  
        .CharacterUnitFirstLineIndent = -0.5 <l6CtK@  
         dG|\geD  
        .LineUnitBefore = 0 cK?t]%S  
        .LineUnitAfter = 0 t +#Ss v8  
        .SpaceBefore = 0 LTCjw_<7  
        .SpaceAfter = 0 3 (<!pA  
         m7@`POI  
    End With 8~I>t9Q+  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False tDwXb>  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll A} "*`y  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese :,u+[0-S  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True +pV3.VMH0  
    DoEvents SVpe^iQ]1\  
:L?zk"0C  
    '表格内容 <zUmcZ  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") -WYJ1B0v  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False S xgY q  
    With ActiveDocument.Styles("QLNU表格内容").Font +GGj*sD  
        .NameFarEast = "楷体" _1hqD EM  
        .NameAscii = "Times New Roman" ht-6_]+ME  
        .Name = "楷体" dEL>Uly  
        .Size = 9 XNl!(2x'pb  
        .Bold = False qI"mW@G~H  
        .Underline = wdUnderlineNone jBQQ?cA  
        .Italic = wdUndefined  OkQSqL  
        .Subscript = wdUndefined kP6r=HH@  
        .Superscript = wdUndefined q\/|nZO4  
    End With V]8fn MH  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat nOB ]?{X  
        .LineSpacingRule = wdLineSpaceSingle $ OR>JnV  
        .Alignment = wdAlignParagraphCenter h'}5 "m  
         (+U!# T]'D  
        .LeftIndent = CentimetersToPoints(0) uu/M XID  
        .RightIndent = CentimetersToPoints(0) rm cy-}e  
        .FirstLineIndent = CentimetersToPoints(0) }s|v-gRM{  
         p$=3&qR 6  
        .CharacterUnitLeftIndent = -0.5 o60wB-y  
        .CharacterUnitRightIndent = -0.5 5N6%N1  
        .CharacterUnitFirstLineIndent = -0.5 +Q '|->#  
        .LineUnitBefore = 0 msCAC*;,  
        .LineUnitAfter = 0 n}+ DO6J  
        .SpaceBefore = 0 %DN& K  
        .SpaceAfter = 0  {jl4`  
    End With IW46-;l7  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False Vy?w,E0^:  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll fvx0]of  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese jC@^/rMh  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True '2vlfQ@8a~  
    DoEvents b6i0_fOO  
vB,N6~r>  
    '图片标题 _]4cY%s  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") COT;KC6 n  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" :[rx|9M6  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False 0<)8 ?ow  
    With ActiveDocument.Styles("QLNU图片标题").Font b 9?w _  
        .NameFarEast = "楷体" *rbH|o8  
        .NameAscii = "Times New Roman" Ry(!< w,  
        .Name = "楷体" FD6|>G  
        .Size = 10.5 X}Csl~W8in  
        .Bold = True `rcjZ^n  
        .Underline = wdUnderlineNone  O{4m-;  
        .Italic = wdUndefined oT_,k}LIX  
        .Subscript = wdUndefined UFl*^j_)]  
        .Superscript = wdUndefined [sad}@R7  
        .Outline = False l nZ=< T  
        .Shadow = False 2#&K3v  
        .Color = wdColorAutomatic z~W@`'f  
    End With ;L`'xFo>>  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat |#sP1w'l]  
        .LineSpacingRule = wdLineSpaceSingle Md~ mI8  
        .Alignment = wdAlignParagraphCenter &@Q3CCDS  
         N8vWwN[3  
        .KeepWithNext = wdUndefined ooq>/OI0  
        .KeepTogether = True V*AG0@& !  
        .OutlineLevel = wdOutlineLevelBodyText V- v Vb  
         '"TBhisky  
        .LeftIndent = CentimetersToPoints(0) a2i   
        .RightIndent = CentimetersToPoints(0) ^\CQWgY(  
        .FirstLineIndent = CentimetersToPoints(0) s)L7o)56/  
         (I+-wki"e  
        .CharacterUnitLeftIndent = 0 b)V[d8IA  
        .CharacterUnitRightIndent = 0 g7H;d  
        .CharacterUnitFirstLineIndent = 0 7OZ s~6(  
         0s8S`hCn>  
        .LineUnitBefore = 0 w_-{$8|  
        .LineUnitAfter = 0 `K@   
    End With E8nqEx Q  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False x?%vqg^r  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll ?e@Ff"Y@e  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese wS5hXTb"  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True @-m&X2J+c  
    DoEvents AiyjrEa%  
!!QMcx_C#/  
    '目录项 *7R3EUUk  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") ]juXm1)>W1  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" ucn aj|  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False L.GpQJ8u  
    With ActiveDocument.Styles("QLNU目录项").Font +]__zm/^  
        .NameFarEast = "黑体" XI0O^[/n{  
        .NameAscii = "Times New Roman" YF"D;.  
        .NameOther = "Times New Roman" "au"\}   
        .Name = "黑体" }C'z$i( y  
        .Size = 10.5 7F<{ Qn  
        .Bold = False [@@{z9c  
        .Italic = wdUndefined ~ l}f@@u  
        .Underline = wdUnderlineNone aH }/+Hu-  
        .Color = wdColorAutomatic s|C[{n<_  
        .Superscript = wdUndefined O_QDjxj^rZ  
        .Subscript = wdUndefined @O"7@%nu  
    End With o3 0C\  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat z'l$;9(y  
         "FHJ_$!  
        .LineSpacingRule = wdLineSpaceSingle C?qRZB+W#  
        .Alignment = wdAlignParagraphLeft 1UP {j`-K|  
         yr\ClIU  
        .WidowControl = False l7`{O/hN  
        .KeepWithNext = False h<9vm[.  
        .KeepTogether = False M CC4'  
        .PageBreakBefore = False HZ3;2k  
        .NoLineNumber = False _k:8ib2TQ  
        .OutlineLevel = wdOutlineLevelBodyText @CNJpQ ujn  
         CPB{eQeDuv  
        .LeftIndent = CentimetersToPoints(0) (%_X{R'  
        .RightIndent = CentimetersToPoints(0) F ~A $7  
        .FirstLineIndent = CentimetersToPoints(0) 6 Bq_<3P_  
         f' A$':Y  
        .CharacterUnitLeftIndent = 0 i(~DhXz*T  
        .CharacterUnitRightIndent = 0 A f'&, 1=q  
        .CharacterUnitFirstLineIndent = 0 ElO|6kOBYG  
         h)Y] L#R  
        .LineUnitBefore = 0 )>@S8v,(  
        .LineUnitAfter = 0 _E '? U  
    End With o z*;q]  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False Pe`mZCd^  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll -A#p22 D,5  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot N~/ 'EaO  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese a1pp=3Pd?~  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True ^IT F*  
    DoEvents M?l v  
     ^E}?YgNp  
    '参考文献 `v -[&  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") 461g7R%r  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" UL[,A+X8D  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False =lAjQt  
    With ActiveDocument.Styles("QLNU参考文献").Font Y0(4]X \ey  
        .NameFarEast = "宋体" !Z_+H<fi+I  
        .NameAscii = "Times New Roman" =g+}4P  
        .NameOther = "Times New Roman" (xgw';g  
        .Name = "Times New Roman" ]>M\|,wh  
        .Size = 12  X }(s(6  
        .Bold = False |WB-Ng  
        .Italic = wdUndefined >0HH#JW  
        .Subscript = wdUndefined r<!hEWO>v  
        .Superscript = wdUndefined kk fWiPO^  
        .Underline = wdUnderlineNone .\_):j*  
        .UnderlineColor = wdColorAutomatic U7 WYS8  
        .Color = wdColorAutomatic n/ KO{:  
        .Engrave = False T)P)B6q   
    End With )rEl{a  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat V]|X ,G  
         O)jD2X?  
        .LineSpacingRule = wdLineSpaceExactly @i#JlZM_  
        .LineSpacing = 16 * JK0X  
        .Alignment = wdAlignParagraphLeft *}2L4]  
        .WidowControl = False @}y.  
        .KeepWithNext = False izP )t  
        .KeepTogether = False b8d0]YS  
        .PageBreakBefore = False oq7G=8gTp  
        .OutlineLevel = wdOutlineLevelBodyText  l"ms:v  
         puPI ^6y%  
        .LeftIndent = CentimetersToPoints(0) a0NiVF-m%  
        .RightIndent = CentimetersToPoints(0) s{b\\$Rb  
        .FirstLineIndent = CentimetersToPoints(0) ^J]&($-  
         9#9 UzKX#  
        .CharacterUnitLeftIndent = 0 O9daeIF0#  
        .CharacterUnitRightIndent = 0 : UeK0  
        .CharacterUnitFirstLineIndent = -2 3ijPm<wn  
         }=X: F1S  
        .LineUnitBefore = 0 { Zgd  
        .LineUnitAfter = 0 oC`F1!SfOO  
        .SpaceBefore = 0 ZLjAhd)  
        .SpaceAfter = 0 `cp\UH@  
         Sp>g77@  
    End With [9sEc  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False _?-oPb  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll [9 MH"\  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS L{1sYR%s\  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True 6Vnq|;W3Zv  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese xn*$Ty+  
    DoEvents @43psq1  
.B]l@E-u  
    ' pGD@R=8  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") U:8[%a  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" G*IP?c>=  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False  VAiJL  
    With ActiveDocument.Styles("QLNU论文题目").Font "$(+M t^  
        .NameFarEast = "黑体" g}MUfl-L  
        .NameAscii = "Arial Black" & tH?m;V  
        .NameOther = "Arial Black" 6R45 +<.  
        .Name = "Arial Black" ^QNc!{`  
        .Size = 16 +q&Hj|;8r  
        .Bold = False s4bV0k  
        .Italic = wdUndefined I|rb"bG  
        .Superscript = wdUndefined ?^voA.Bv<  
        .Subscript = wdUndefined i"&FW&W  
        .Underline = wdUnderlineNone :)1"yo\  
        .UnderlineColor = wdColorAutomatic y#'hOSR2  
        .Color = wdColorAutomatic R;DU68R  
F85_Lz4  
    End With =}Tm8b0  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat |gE1P/%k  
        .LineSpacingRule = wdLineSpaceSingle ;<Q%d~$xy}  
        .Alignment = wdAlignParagraphCenter X&9: ^$m  
        .WidowControl = True OZ\6qMH3e  
        .KeepWithNext = True mB-,\{)  
        .KeepTogether = True (;#c[eKy  
        .PageBreakBefore = True L/"MRQ"  
        .NoLineNumber = False ZV gfrvZP  
        .OutlineLevel = wdOutlineLevelBodyText 1<ag=D`F_"  
         j n^X{R\  
        .LeftIndent = CentimetersToPoints(0) 811>dVq3/  
        .RightIndent = CentimetersToPoints(0) ^fsMf B  
        .FirstLineIndent = CentimetersToPoints(0) - rO34l  
         d?7?tL2  
        .CharacterUnitLeftIndent = 0 d-b04Q7DQ  
        .CharacterUnitRightIndent = 0 %:aXEjm@  
        .CharacterUnitFirstLineIndent = 0 &_L%wV|[  
         uHU@j(&c  
        .LineUnitBefore = 1 0O"W0s"T#  
        .LineUnitAfter = 1 Ef]Hpjvp  
         8m") )i-  
        .BaseLineAlignment = wdBaselineAlignAuto ?=&; A  
    End With mG S4W;  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False 6+$2rS$1V  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll 1Ms]\<^j  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS %>FtA)  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True J+/}m}bx  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese >NUbk9}J4  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True G(t:s5:  
    DoEvents c'2/C5  
     f\_RW;y|m  
    '中文摘要 SES.&e|!6  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") N,TV?Q5l7  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" <UGaIb  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False ! JA;0[;l=  
    With ActiveDocument.Styles("QLNU中文摘要").Font ZA="Dac  
        .NameFarEast = "宋体" Gd!-fqNa'x  
        .NameAscii = "Times New Roman" 529b. |  
        .NameOther = "Times New Roman" 9rEBq&  
        .Name = "Times New Roman" M!,H0( @G  
        .Size = 12 ~ *&\5rPb  
        .Bold = wdUndefined T#B#q1/  
        .Superscript = wdUndefined `n$Ak5f  
        .Subscript = wdUndefined 7IxeSxXH  
        .Italic = wdUndefined sqKx?r72  
        .Underline = wdUnderlineNone u ON(LavB  
        .UnderlineColor = wdColorAutomatic JY  
        .Color = wdColorAutomatic VKttJok1  
    End With Et3]n$  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat `=Ip>7T&  
        .LineSpacingRule = wdLineSpaceExactly [rx9gOOa&  
        .LineSpacing = 20 0j@mzd2  
        .Alignment = wdAlignParagraphLeft _V$'nz#>e  
         [NSslVr  
        .WidowControl = False T >8P1p@A,  
        .KeepWithNext = False M FIb-*wT  
        .KeepTogether = True e(7#>O%1  
        .PageBreakBefore = False ~kZdep^ ]  
        .NoLineNumber = False t^'nh 1=  
        .OutlineLevel = wdOutlineLevelBodyText g,d_  
         2u$-(JfoS  
        .LeftIndent = CentimetersToPoints(0) =muQ7l:(  
        .RightIndent = CentimetersToPoints(0) jz8u'y[n7  
        .FirstLineIndent = CentimetersToPoints(0) %}@iz(*}>  
         z>PVv)X  
        .CharacterUnitLeftIndent = 0 8R*;8y_  
        .CharacterUnitRightIndent = 0 Ic(qA{SM  
        .CharacterUnitFirstLineIndent = 2 ,' k?rQ  
        .LineUnitBefore = 0  Qx z[  
        .LineUnitAfter = 0 F;Q,cg M  
         M|blg!j;  
    End With _r-LX"  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False :9QU\{2  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll -K/+}4i3N  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS v +4v  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True mn@1&#c4y  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese Xc-["y64  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True vzS b(  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete S"!6]!~^  
    DoEvents . \caRb[  
     "L2*RX.R  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") # `=Zc7gf  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" D_lRYLA+  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False _^FC 9  
    With ActiveDocument.Styles("QLNU英文标题").Font :UdW4N-  
        .NameFarEast = "黑体" S1$^ _S =  
        .NameAscii = "Arial Narrow" W'4/cO  
        .Name = "Arial Narrow" S# ]] h/  
        .Size = 16 %"`p&aE:  
        .Bold = True ^BF}wQb :j  
        .Bold = wdUndefined 8Qg{@#Wr  
        .Superscript = wdUndefined xJ3C^b%H  
        .Subscript = wdUndefined 8xB-cE  
        .Italic = wdUndefined jC&fnt,O  
         ]ogifnwv  
        .Underline = wdUnderlineNone dWn6-es  
        .UnderlineColor = wdColorAutomatic r<0E[ ~  
        .StrikeThrough = False ZO/e!yju  
        .DoubleStrikeThrough = False ^ 9+ Qxv  
    End With {N~mDUoJ|  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat 7 z    
        .LineSpacingRule = wdLineSpaceSingle )=f}vHg$  
        .Alignment = wdAlignParagraphCenter LtRRX@qJw  
        .WidowControl = True UPH#~D!  
        .KeepWithNext = False jq H)o2"/  
        .KeepTogether = False /MtmO$ .  
        .PageBreakBefore = False OQumA j  
        .NoLineNumber = False L62'Amml  
        .FirstLineIndent = CentimetersToPoints(0) =RWTjTZ   
        .OutlineLevel = wdOutlineLevelBodyText KSs1EmB  
         GDLi ?3q  
        .LeftIndent = CentimetersToPoints(0) &%fcGNzJQ  
        .RightIndent = CentimetersToPoints(0) <)ZQRE@  
        .FirstLineIndent = CentimetersToPoints(0) `%Fp'`ZM$8  
         <%^ /uS  
        .CharacterUnitLeftIndent = 0 <ww D*t  
        .CharacterUnitRightIndent = 0 x;[ .ZzQ  
        .CharacterUnitFirstLineIndent = 0 H?"M&mF  
         ZuGSRGX'  
        .LineUnitBefore = 1 ]+:yfDtZd  
        .LineUnitAfter = 1 qe.QF."y  
         3A,N1OXG  
    End With :-{"9cgF R  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False e_b,{l#  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll a{ST4d'T  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS +Q+O$-a <  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True ^8&}Nk[j  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese X H%pV  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True y11^q*}  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete I<2`w L=  
    DoEvents 4r $#-  
/<-PW9X?  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") Xy(QK2|  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" a*(Zb|g  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False OH@"]Nc~  
    With ActiveDocument.Styles("QLNU英文摘要").Font P|Aac,nE+^  
        .NameFarEast = "宋体" !l*A3qA  
        .NameAscii = "Arial" ZFLmD|q#{  
        .NameOther = "Arial" 3uYLA4[-B  
        .Name = "Arial" l`\L@~ln  
        .Size = 12 d~8U1}dP  
        .Bold = wdUndefined ~);4O8~.  
        .Italic = wdUndefined =b%f@x_U1  
        .Superscript = wdUndefined `sm Cfh}j6  
        .Subscript = wdUndefined Owf!dMA;nF  
    End With !`_f  
     THwM',6  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat \oPe" k=  
         GXZ="3W |  
        .LineSpacingRule = wdLineSpaceExactly z#+WK| a  
        .LineSpacing = 20 ;"&?Okz  
         i$y=tJehi  
        .Alignment = wdAlignParagraphJustify 7 (2}Vs!5  
         {jD?obs  
        .WidowControl = False .6gx|V+  
        .KeepWithNext = False z<eu=OD4t  
        .KeepTogether = False >Cr"q*  
        .PageBreakBefore = False uUfw"*D  
        .NoLineNumber = False <4TI;yy6?  
         <~m qb=qA$  
        .OutlineLevel = wdOutlineLevelBodyText XEiVs\) G  
         0'd@8]|H  
        .LeftIndent = CentimetersToPoints(0) "[ LUv5  
        .RightIndent = CentimetersToPoints(0) ()6% 1zCO  
        .FirstLineIndent = CentimetersToPoints(0) [6TI_U~  
         |&@q$d  
        .CharacterUnitLeftIndent = 0 tEL;,1  
        .CharacterUnitRightIndent = 0 ^X&`YXjuN  
        .CharacterUnitFirstLineIndent = 2 PSc=k0D  
         :Ak^M~6a5  
        .LineUnitBefore = 0 )#AYb   
        .LineUnitAfter = 1 CRo'r/G  
         L9/'zhiZBx  
    End With ).k U7;0  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False ZJ{DW4#t  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll 9we];RYK  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS "22./vWV|i  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False U)kyq  
    DoEvents `)a|Q  
d_ =K (}eR  
    Options.Pagination = True 4>(K~v5;N  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." .Vt|; P}  
    DoEvents ?`TJ0("z"  
    ActiveDocument.Repaginate F,_cci`p  
1le9YL1_g  
End Sub L@\t] ~  
2M+RA}dX  
q-t%spkl  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: xLIyh7$t  
s-*N_Dv  
用VBA控制WORD自己修订学生毕业文的格式。 HV!P]82Pa  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

A f?&VD4K  
h<m>S,@g  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 n;b 9f|&z  
第6车皮 [-[|4|CnOm  

a(o[ bH.|;  
 4z|Yfvq  
第9车皮  'U`I  
cNN_KA  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 WY~}sE  
qj|B #dU  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 $j}sxxTT  
e$(i!G)  
Main2.bas p|%Y\!  
>-y&k^a=  
Attribute VB_Name = "SubMain" Mz{ Rh+gS  
Option Explicit &<i>)Ss  
cl7+DAE  
'采集文件与临时文件 u=  +  
Public Const TmpFile As String = "d:\30-0600.dat" /C8(cVNZ  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 .'AHIR&>  
0\}j[-`pF  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long Zk;;~ESOU  
Public hBCFile As Long  '记录采集参数的文件 e]X9"sd0=  
Public Const TmpBMP As String = "d:\1.bmp" ~KfjT p#  
Public hTmpFile As Long 1 }q[8q  
/0YNB)  
l1_X5DI  
'采集窗口参数常量 k0D&F;a%  
Public Const FrameH As Long = 280& IO_H%/v"jC  
Public Const FrameW As Long = 768& Xhkw<XbV  
Public Const pFrameSize As Long = FrameW * FrameH _5YL !v&  
<ct{D|mm  
'标志区范围,用于识别车辆 9'8oOBqm3%  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X NtOR/*  
Public Const mkW As Integer = 28  '识别标志立柱宽度 Z*e7W O.  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) 3y D5u  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) "AVj]jR  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 7iJk0L$]x  
'车缝检测位置常数 yb**|[By  
Public Const sSize As Long = 32& \&qVr1|  
Public Const sPos As Long = 310& iii$)4V  
Public Const sPosL As Long = 200& TuCOoz@d  
Public Const sPosR As Long = 500& 0_y%Qj^e  
'车缝检测框位置 't_=%^ q  
Public Slice(1 To sSize, 1 To FrameH) As Byte w)8@Tu:Q  
Public SliceL(1 To sSize, 1 To FrameH) As Byte o_*|`E  
Public SliceR(1 To sSize, 1 To FrameH) As Byte LP)mp cQ  
Public avSL As Integer, avSLR As Integer, avSLL As Integer ~O 6~',KD  
N$,)vb<  
{}^ELw  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 @x J^JcE  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 ^9b `;}).  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 x}>tX  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long &Y=NUDt_  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte n _ez6{  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 ]R>k0X.V  
17Gdu[E  
j1iC1=`ZM  
IKr7"`  
'一次连续采集的帧数 K ;xW/7?  
Public tFrames As Long /tv;W   
+m7 x>ie)  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 hA\8&pI;  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 ;^8^L'7cr  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize $-AvH( @  
# nYGKZ  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte 22r01qH  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte OB^2NL~Q~  
Public pWorkSpace(1 To FrameW * FrameH) As Long K+$c,1 wb  
Public Const pBufferSize As Long = FrameW * FrameH * 2 @ Q1j H~t  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 g4$%)0x%  
a&ByV!%%+_  
Public hBoard As Long   '采集卡标识 +@qk=]3a  
Public mBufferAddr As Long  '缓存地址 &s;%(c04A  
Public BufferSize As Long  '缓存大小(字节) fY"28#   
Public iCurrentCard As Long XP;&iZ J  
Public CapStatus As Long A>g$[  
Public iFrames As Long RK3/!C`  
Public currentBr As Byte, currentContr As Byte 7ER 2 h*  
gX _BJ6  
Public hMEM As Long, mStatus As Long `U1%d7[vY  
Public Const hMemSize As Long = pFrameSize * 4 }Voh5*$E`  
Public hMemWork As Long q@-qA]  
Public Const hMemWorkSize As Long = pFrameSize * 5 I~qiF%?d  
(Mm{"J3uv  
imhq*f#A[  
ry]7$MQyV  
'串口接收轨道衡数据 #f~a\}$I  
Public WeightFromCom As String p+7BsW.l  
Public bReceiveComplete As Boolean )?bb]hZg?O  
EH "g`r  
;VFr5.*x  
Public Type GrayBMPHeader xA5$!Oq7  
  Tag As Integer t5Mo'*j =  
  FileLength As Long    '文件大小 EXFxiw  
  Reserve1 As Long yK7>^p}V  
  DataOffset As Long    '图像数据偏移量 -pGt ;  
  BMPHeaderSize As Long  '文件头长 *f#4S_ws`  
                        'length of the bitmap info header used to describe the bitmap colors, compression,…  k"7eHSy,  
                        'the following sizes are possible: *_wef/==  
                        '28h - windows 3.1x, 95, nt, … @ :4Kk 4g1  
                        '0ch - os/2 1.x Y)*lw  
                        'f0h - os/2 2.x rlIEch^wZ  
.- Lqo=o\  
  ImageWidth As Long           '图像宽(像素数) U?lu@5 ^Z  
  ImageHeight As Long          '图像高(像素数) YPy))>Q>cK  
  PlaneNumber As Integer  '图像层数 Wkk Nyg,  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap -9*WQU9R  
                                        '4 - 16 color bitmap fDqXM;a"  
                                        '8 - 256 color bitmap 2!otVz! Mh  
                                        '16 - 16bit (high color) bitmap 2* L/c-  
                                        '24 - 24bit (true color) bitmap $B?7u@>,  
                                        '32 - 32bit (true color) bitmap rWs5s!l,  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) ge oN4  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) VfcQibm  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) FVmg&[ .  
                                    '3 - bitfields (also identified by bi_bitfields) 66Xt=US  
  IMAGESIZE As Long  '图像数据字节数 D)sEAfvX  
  hResolution  As Long  '水平分辩率  像素数/米 85{vz|(':  
  vResolution  As Long  '垂直分辩率 %UJ4wm  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 u .=;A#  
  ImportantColors As Long _z5C plO  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 *vO'Z &  
End Type e d*AU,^@v  
?BZ][~n-Q  
e,*[5xQ  
g[jZ A[[  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader !m|%4/ M@  
Public sRECT As RECT /_a *C.a6  
=|%T E   
e`Yns$x  
Public conn As ADODB.Connection ] zY  
Public rsTrain As ADODB.Recordset ~=mM/@ HD  
Public rsOperater As ADODB.Recordset ui{_w @o  
Public rsGoods As ADODB.Recordset m8PB2h  
Public rsGood2 As ADODB.Recordset Zn0fgQd  
Public rsSender As ADODB.Recordset m'B6qy!}6  
Public rsReceover As ADODB.Recordset "'#Hh&Us  
Public rsTrainTMP As ADODB.Recordset iP%=Wo.  
j1kc&(  
Pvw%,=41O  
'打开采集卡 S%fBt?-Cm  
'设置参数 JrAc]=  
'设置为实时单帧采集到缓存方式 EG.C2]Fi  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 !v L :P2  
y)E2=JQA/  
.Cus t  
Sub Main() UVJ(iNK"  
  Dim i As Integer, status As Long $ bosGG  
     ,AM-cwwT:u  
   InitBMPinfo 7$=@q|$  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 0cUt"(]  
    BMPHeader.Tag = &H4D42 P.B'Gh#^  
    BMPHeader.ImageWidth = FrameW ;LE @Ezx  
    BMPHeader.ImageHeight = FrameH K-u/q6ufK  
    BMPHeader.BMPHeaderSize = &H28 OJ 5 !+#>  
    BMPHeader.PlaneNumber = 1 3T/j5m}+!  
    BMPHeader.bpp = 8 ? $ c  
    BMPHeader.Compression = 0 ix+x-G  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 ?63JQ.;  
    BMPHeader.vResolution = &H1274 kwR@oVR^  
    BMPHeader.ColorsinBMP = 256 *~uuCLv_  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP rfi`Bp  
    BMPHeader.DataOffset = Len(BMPHeader) TMCA?r%Y\  
    For i = 0 To 255 !?*!"S-Sl  
      BMPHeader.Pallate(i) = RGB(i, i, i) u Cfp+  
    Next i RWo B7{G  
    BMPHeader.IMAGESIZE = FrameH * FrameW ~Wm}M  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE ,-Nk-g  
UYOn p7R<  
$SVGpEw  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) 6w;|-/:`  
     8!6*|!,:?n  
    BMP1.ImageWidth = FrameW 9`{2h$U  
    BMP1.ImageHeight = FrameH * 2 OF/)-}!  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight *^Y0}?]qT  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE 9Ol_z\5  
>pvg0Fh  
  '确定标志位置,为pilarX, pilarY确定初始值 ^b %8_?2m  
   PilarW = mkW `=DCX%Vw  
   PilarH = mkH  '此两项为固定值 NF!1)  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) hY 2PV7"[;  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 "%t`I)  
   K>6k@okO  
   & }}WP:U  
  '连续采集记录文件 Q$L(fH kw  
  ' 建立一个缓冲区为页对齐方式的文件 tlgvBRH>  
  If Dir(TmpFile) <> "" Then I7^X;Q F  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ 3]es$Jy  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) Sg>0P*K@  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 +yH~G9u(  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 x 4</\o  
  Else j]"xck  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ u/c3omY"#  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 34kd|!e,  
  End If CHit  
  If hFile = 0 Then ]/Q y1,  
    MsgBox TmpFile & ": File Open Error", vbOKOnly u g"<\"  
    Exit Sub xN8JrZE&  
  End If veg!mY2&  
  '采集参数记录文件 )N 6[rw<  
hBCFile = FreeFile() ok2~B._+;  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile Z<<gz[$+p  
   H`lD@ q'S  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 m@u`$rOh  
If hMEM = 0 Then  ja- ~`  
    fStatus = GetLastError E}9ldM=]s  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ AuipK*&g  
     & "请向技术人员报告该错误代码。", vbOKOnly -z$2pXT ^  
    CloseHandle hFile z x Uj1  
    Exit Sub S)@vl^3ec  
End If a BH1J]_  
/+`<X%^U  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) A i){,nh`0  
If hMemWork = 0 Then g+)\ /n|  
    fStatus = GetLastError 8G] m7Z  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ ]G PJ(+5  
     & "请向技术人员报告该错误代码。", vbOKOnly ,D2_Z]  
     '释放已成功分配的内存 eI rmD  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) B~z g"  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) L_K\i?  
     :qTcxzV  
    CloseHandle hFile qU*&49X  
    Exit Sub bK8F |  
End If X\2 hKUkT  
`lezJ (Xm  
' Test writing 'A!/pUML  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& ]=VS~azZ5  
     2\B9o `Y  
   '初始化采集卡参数 /&as)  
   iCurrentCard = -1 XuoEAu8]  
   hBoard = okOpenBoard(iCurrentCard) n o+tVm|  
   Debug.Print hBoard E0^%|Mh]b  
   If hBoard = 0 Then 0DVZRB  
      ExitGrabber YQdX>k  
      End 3,L3C9V'  
   End If cievC,3*  
   okGetBufferSize hBoard, mBufferAddr, BufferSize X/K)kIi  
   If mBufferAddr = 0 Then cN lY=L  
     MsgBox "缓存不存在!" PFy;qk  
     ExitGrabber \Fg6b6  
   End If S5u#g`I]  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) D8AIV K]  
   etMh=/NFV  
   <Iyot]E  
   currentBr = 128: currentContr = 128 g^$11  
   '设置视频输入参数 Z WRRh^  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 0&IXzEOr  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input v#]v,C-*  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 Pph8"`mv.m  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 D *I;|.=u  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 Jhy t)@7/,  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 aC~n:0 v  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) ;GFB@I@  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) n,a5LR  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) 5vX 8mPR_  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 kefv=n*]l  
   )QCM2  
   '设置采集参数 <!}l~Ln15  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 Vy^yV|`v  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 "=\_++  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 L\wpS1L(  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 /dJ)TW(Ir  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 =l 2Dm  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 F0'A/T'ht  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 ]ZzG!7  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 0O,T=z[+>  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 K}E7|gdG  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 @U3foL2\  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 DwY<qNWT  
    Vm;Q w  
   R=9~*9  
   okCloseBoard hBoard 27E9 NO=  
   Sleep 50 + i@yZfT  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 t_>bTcsU  
   ?t0zsq  
   '设置数据传送方式 tK|9qs<%  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 B5,QJ W*  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 -N7L #a  
   yC 7Vb P  
   sRECT.Right = -1   '用于获得当前设置值 ,mjfZ*N  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT)  +iH30v  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom h>Uid &:?  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 Z\ =04[  
   sRECT.Left = 0 q X%vRf0  
   sRECT.Top = 0 .d~]e2x  
   sRECT.Right = sRECT.Left + FrameW jXY;V3l  
   sRECT.Bottom = sRECT.Top + FrameH * 2 !\#Wk0Ku  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) xPDA475Cw3  
   K+@eH#Cv,(  
   sRECT.Right = -1   '检查新设置值 "4oz lWx  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT)  Ep\  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom >[H&k8\7n  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) EhIV(q9x  
   |[owNV>  
   If TESTSignal = False Then A?IZ( Zx(`  
      'ExitGrabber Yl&tkSw46  
   End If e4=FU&RpNH  
   me:|!lI7YU  
   SQt|(r)  
   { #1j"  
   '设为实时采集状态 B naU)E h  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) 7}'A)C>J;  
   ?7kV+{.  
   }x?H ~QQT  
   '单帧采集 (!VMnLlXRK  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 `!omzE*bk5  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) -<51CDw,  
   okCaptureTo hBoard, BUFFER, 0, 1 'single ,]uX:h-EM  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 S}w.#tyEn  
   '   Sleep 20 9U=fJrj'u  
   'Loop }xf='lE  
   okGetCaptureStatus hBoard, True RJRq` T|m  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize YF! &*6m  
   '写入768*576测试图象 o\]: !#r{T  
   ArrayToBMP TmpBMP UGmuX:@y76  
   d]7|v r]  
   '打开数据库 juCG?}di;  
   Set conn = New ADODB.Connection k)5_1y  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 88#qu.  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ i,'Ka[6   
      "; Mode=Read|Write"  H\=LE  
   conn.Open ! nCjA\$  
   8{G?92 {rN  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) 6i]Nr@1C  
   frmRecord.Visible = True v dH+>l  
   frmQuery.Visible = True pdi=6<?bd  
   Load frmReceiveFromComm [EmOA.6  
   S0N2rU  
   '调试参数 Rct"\{V')n  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then 'z-;*!A}j  
     SignalBox.Visible = True p<HTJ0  
   End If &8]#RQy{f  
   If InStr(UCase(Command()), "/COMM") > 0 Then aI={,\  
     frmReceiveFromComm.Visible = True 9'n))%CZ.  
   End If 7bonOt Y  
)pjjW"C+  
End Sub ^$=tcoQG  
,yk PQzO  
Sub ExitGrabber() # 5y9L  
  '关闭数据库 'n^2|"$sH  
  '关闭采集卡 uS,p|}Q&  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) Z(Eke  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) Jm %ynW  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) nxyjL)!)0  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) A-a17}fta  
  okStopCapture hBoard !_U37Uj<m  
  okCloseBoard hBoard ~IlF*Zz#}6  
  CloseHandle hFile :T7 ?  
  Close #hBCFile  Hz]4AS  
  conn.Close -v;n"Zy1  
  End `!nJS|  
End Sub a1g6} ym\  
s-C!uq  
Function ArrayToBMP(ByVal File As String) }{&l n  
Dim BytesWrite As Long vXy uEEe  
ha|@ X p  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _  's>#8;X  
  CREATE_ALWAYS, 0&, 0&) DHm[8 Qp  
0~+NB-L}  
If hTmpFile = 0 Then X(GmiH /E  
   ArrayToBMP = False b8N[."~:  
   Exit Function 1m>^{u  
End If (!ZQ  
CJ9cCtA  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN ?{ B[ ^  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& <H5n>3#pH  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN w.J%qWJq  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& -XBKOybHBO  
!Tn0M;  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN K,eqD<  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& DO&+=o`"  
mW~i c  
If BytesWrite < pFrameSize Then HQ^9 [HN.  
  ArrayToBMP = False NqJ<!q)  
End If QFW0KD`5  
Pqy-gWOv  
CloseHandle hTmpFile _{6,.TN  
Yzj%{fkh  
End Function :cc[Jco@w  
;RWW+x8IB  
Function ArrayToBMP1(ByVal File As String) =5y`(0 I`U  
xdd:yrC   
Dim BytesWrite As Long lo+xo;Nd  
9W1;Kb|Z<  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ ~@T+mHny  
  CREATE_ALWAYS, 0&, 0&)  2Vp>"  
5Noe/6  
If hTmpFile = 0 Then /[a|DUoHO  
   ArrayToBMP1 = False [ 8F \;  
   Exit Function bKk CW  
End If C9<4~IM w  
T&1-eq>l  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN brg" :V1a  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& SkiJ pMN  
 @J-plJ4e  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN 81g9ZV(4  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& 1@A7h$ 1P  
8To7c  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN mi7sBA9L8  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& |Du,UY/  
Mn]}s:v  
If BytesWrite < pBufferSize Then 29"mE;j  
  ArrayToBMP1 = False |x &Z~y  
End If 3<c*v/L{C\  
Q0V^PDF  
CloseHandle hTmpFile = :Po%Z%{  
6xQ" bFm  
End Function T>#TDMU#Fm  
O6y @G .+  
'使用该过程建立的文件要求在用后关闭 <9ma(PFa  
Public Function ArrayToBMP2(File As String) As Boolean +w "XNl  
o"|O ]  
Dim BytesWrite As Long DpA\r_D  
pO"m~mpA  
ArrayToBMP2 = True <fNGhmL  
hzaLx8L  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ DVObrL)znL  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) luW <V>  
)fNGB]%  
If hTmpFile = 0 Then ("_Q  
   ArrayToBMP2 = False (E!%v`_0  
   Exit Function L)q`D2|'  
End If 'sj9[o@]  
xME(B@j  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN ]{YN{  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& &&;ex9  
{bN Y  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN jEUx q%BH  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& [ZuVUOm  
-NAmu97V}  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN 8NnhT E  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& B ,V( LTE  
}% eDEM  
If BytesWrite < pFrameSize Then xM&EL>m>L  
  ArrayToBMP2 = False 8)N0S% B  
End If A? e,U,  
o g_Ri$x8  
CloseHandle hTmpFile X(IyvfC  
lZ}P{d'f.  
End Function y k?SD1hj  
43KaL(  
Private Function TESTSignal() As Boolean ,# ]+HS^B  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long BSN6|W  
e\`wlaP,  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) T` uDlo  
GF&_~48GD  
If extsign = 1 Then {3_Gjb5\\4  
   TESTSignal = True SijtTY#r  
Else S#,+Z7  
    If extsign = 0 Then mv{<'  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly /x$}D=(CZ  
        TESTSignal = False xXOR IlD  
        Exit Function $( S*GF$S  
    End If neF8V"-u&  
End If <BS Sa`N`  
c8T/4hU MN  
'测试视频输入类型 -:MmSeG7gO  
'video type FIH@2zA  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 Zw+=ng.q?  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) O47PkP8  
If videotype = 1 Then M3ZOk<O<R  
        '"隔行信号(Interlaced)" Gc wt7~  
Else >wA+[81[  
   If videotype = 0 Then v' C@jsx M  
       '"逐行信号(Non-interlaced)" ri:,q/-  
   Else -(!uC +BZX  
     If videotype = -1 Then 8`}l\ Y  
       ' "不支持" )&>L !,z  
     End If R6 ;jY/*#  
   End If WhH!U0  
End If =tq1ogE  
"c6<zP  
'测试垂直扫描线数  Q.yb 4  
'video scanlines 4iwf\#  
scanlines = -1 i&JpM] N  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) mKM,kY  
    If scanlines = -1 Then |7y 6 pz  
        ' "不支持" YUCC*t  
    Else Wu,S\!  
        'Trim(Str(ScanLines)) + " 行数/幅" +@e }mL\8  
    End If Q |%-9^  
E-^2"j >o  
'测试帧频 :i.t)ES  
'video field frequency Y.7}  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) EOhC6>ATh  
    If fieldfrq = -1 Then 6Z Xu,ks}  
        'lblSignal(8) = "不支持" Y,'%7u  
    Else xWDR72 6  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" hqL+_| DW  
    End If 6.[)`iF+#  
End Function -OWZ6#v(  
/N>} 4Ay  
=LOk13l\"  
Sub PicIdentify() 4h;4!I|  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 }B`Ku5 M  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 guU=NQZ  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 !:3^ hb  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 t ^ m~  
#G[t X6gU  
  Dim fPTR As Long, cFrame As Long Y17hOKc`  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer " CM ucK  
     40u7fojg2  
tj[c#@[B  
cFrame = 0 ZNi +Aw$u  
syR N4  
%yfE7UPS]  
Do While cFrame < tFrames >zQOK-  
   J smB^  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) 9:Si] Pp+S  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) L"^OdpOs  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize ]w!0u2K<Q\  
   Pubv$u 2  
  frmRecord.RText.Text = Str(cFrame) :5jexz."M  
  frmRecord.RText.Refresh zZ: xEc  
       z|I0-1tAK  
  If CheckMark = True Then #ra*f~G  
   ArrayToBMP TmpBMP 9p4y>3  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) r_^) 1w  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" "Kq>#I'%W  
   cAb>2]M5V  
   DrawSlice )&:L'N  
   g  rspt}  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) yPoSJzC=[  
   'If i = vbNo Then 1 DqX:WM6  
   '  Exit Do *jE;9^  
   'End If eeW`JG-E  
   'cFrame = cFrame + 1 `]jqQr97  
   ~g7m3  
  End If ;g+]klR!  
  DoEvents q6R Eh;$  
  cFrame = cFrame + 1 xz8G }Ku  
Loop 9Sz7\W0  
End Sub V#L'7">VP  
zW5C1:.3K  
w G8 nw;  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean f0DK>L  
0elxA8Z~e  
'如标志区模式反差存在则为TRUE,否则返回FALSE <UT>PCNG  
BZ+;n |<r  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long &<Zdyf?[Ou  
CheckMark = True 5]d{6Nc3 P  
   'C^;OjAg  
'复制标志区 GJ,a RI  
For i = 1 To mkH x#r<,uNn,  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW VO_dA4C}z  
Next i {~'H  
R&*@@F-dx  
For j = 1 To PilarW * PilarH / 2 '#q4Bc1  
   mTop = mTop + MKpilar(j) O%&cE*eX  
Next j R!6=7  
H O*YBL  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH ^s-25 6iI  
   mBot = mBot + MKpilar(j) w"~<h;  
Next j F?BS717qS%  
h&`y$Jj  
mTop = mTop / PilarW / PilarH * 2 u%B&WwHG  
mBot = mBot / PilarW / PilarH * 2 6e.[,-eU  
<^c3}  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 Z7z]2v3}c  
bq NP#C  
'平均值极值化 m(_9<bc>  
  For j = 1 To PilarH * PilarW JYJU&u  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) #K4*6LI  
  Next j `eR 7H>I  
   ugLlI2 nJ  
mTop = 0: mBot = 0 o_$&XNC_  
For j = 1 To PilarH * PilarW / 2 !),t"Ae?>  
  mTop = mTop + MKpilar(j) r[pF^y0   
Next j {[W(a<%bXm  
N 9LgU)-Jt  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW 9->q|E4  
  mBot = mBot + MKpilar(j) 8EI:(NE*J  
Next j 4x=(Zw_X  
m*Cu-6&qd  
X{\jK]O  
  mTop = mTop / PilarH / PilarW * 3 X#`dWNrN  
  mBot = mBot / PilarH / PilarW * 3 QIK 9  
   v+6e;xl8  
)+EN$*H  
If mBot > iWhite And mTop < iBlk Then ,[l`zp  
  CheckMark = True orqJ[!u)`  
Else Oaa"T8t  
  CheckMark = False Jzex]_:1~  
End If Z9[+'ZWt  
End Function .Y\EE;8%  
)/>A6A:  
Sub Capture1Frame() ~=cmM  
   okCaptureTo hBoard, BUFFER, 0, 1 'single ^2C>L}  
   okGetCaptureStatus hBoard, True +qy 6d7^  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize u-:Ic.ZV  
End Sub Ilq=wPD}j  
` >U?v  
2hq\n<  
Sub CopyMark(iBlk As Integer, iWhite As Integer) RB$ z]/=  
'复制标志区并返回标志区暗区与亮区的亮度平均值 q.W>4 k  
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 vFhz!P~  
   q7_+}"i  
'复制标志区 ?lKhzH.T  
For i = 1 To mkH 7u|B ](FS  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW ?\y%]1  
Next i %\6Q .V#s  
Y3rt5\!  
For j = 1 To mkW * mkH / 2 X{Zm9T  
   mTotal = mTotal + MKpilar(j) E ]f)Os$  
Next j jatr/  
# yN*',I&  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 Bm/YgQi  
WU)Ss`s \  
mTotal = 0 ] .mqxf  
For j = mkW * mkH / 2 + 1 To mkW * mkH xaW{I7FfG  
   mTotal = mTotal + MKpilar(j) HI D([Wk  
Next j 6Hf,6>  
{dzoEM[ 1s  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 8@eOTzm  
pj8azFZ  
'背景亮度 VteEDL/w  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW fYX<d%?7  
  For i = 1 To 4 * FrameW >cgpajx*  
    bsTotal = bsTotal + BsLine(i) BC77<R!E)  
  Next i b1-&v|L  
  bsAV = bsTotal / FrameW / 4 ^R~~L  
Md&WJ };L  
End Sub D*2\{W/  
(MLhaux-  
>5ChcefH  
Sub AdjIMGbright(Optional bInit As Boolean = True) /XbW<dfl  
uM S*(L_  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) -6C +LbV  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 v("wKHWTI@  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 /X#z*GX  
     y{=>$C[  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer q>s`uFRg(  
   )(TAT<  
  '按标准亮度与对比度采集一帧,确定背景亮度 MKg,!TELe  
  currentContr = 128   '初始对比度 D$q'FZH  
  currentBr = 128   '初始亮度 #*^+F?o,(  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 orfp>B) 0  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 75NRCXh.  
  DoEvents ( kw5>c7  
  Capture1Frame PJ\0JR7a  
  '获得图像上缘4行象素 :Li/=>R^  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW lr3 mE  
  CopyMark iBlack, iBright   '图像标志区亮度 %!|O.xxRR  
  For i = 1 To 4 * FrameW Mvcfk$pA  
    bsTotal = bsTotal + BsLine(i) Z^ar.boc  
  Next i qLK?%?.N<  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 Vw~\H Gs/~  
   h"W8N+e\  
  Select Case bsAV RE"^ )-  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 L:R<e#kgS  
       currentBr = 150 $kPHxD!"  
       currentContr = 60 >*1}1~uU`'  
     Case 61 To 80   '有可见背景 DL8x":;  
       currentBr = 140 rx!=q8=0R  
       currentContr = 70 y7lWeBnC  
     Case 81 To 100  '有清晰背景 1[PMDS_X  
       currentBr = 128 a`c:`v2o  
       currentContr = 80 z&}-8JykH  
     Case 100 To 150  '有明亮背景 r{K;|'d%h  
       currentBr = 140                '5:30-6:00钟实测数据 vhgLcrn  
       currentContr = 50 |yY`s6Uq  
     Case 151 To 180 r>t1 _b+nu  
       currentBr = 130 f.xA_Y>  
       currentContr = 60 h{'t5&yY  
     Case 181 To 220  '背景全为白色 i.y)mcB4  
       currentBr = 110 m_7 nz!h  
       currentContr = 130 vHKlLl>*2  
     Case 221 To 255  '背景全为白色 ]?LB?:6  
       currentBr = 100 |i7a@'0)  
       currentContr = 100 bGmx7qt#  
  End Select K$[$4 dX]  
   ,r^"#C0J}  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 zT9JBMNE:  
        Case 100 To 150 h~} .G{"  
          currentBr = currentBr - 10 wkb$^mU  
        Case 151 To 255 "484 n/D  
          currentBr = currentBr - 20 ^@6q  
  End Select uGVy6,  
   Ng=ONh  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 \RG!@$i  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 l67Jl"v  
End Sub *?% k#S  
.~D>5 JnEk  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) '7 )"  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long %,q. ),F  
     !0}\&<8/m  
    For i = 1 To 8 <L0#O(L  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& /X*oS&-M  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& #x@eDnb_  
    Next i >U!*y4  
     k$i'v:c|:i  
    For j = 1 To 1024 01@t~v3!Z  
      L1 = L1 + LeftBK(j, 0) 7 hw .B'7  
      L2 = L2 + LeftBK(j, 1) MuI2?:~:*4  
      R1 = R1 + RightBK(j, 0) U1R4x!ym4  
      R2 = R2 + RightBK(j, 1) n"D ?I  
    Next j n1v5Q2xw  
    diffL = Abs(L1 - L2) / 1024 %D=]ZV](  
    diffR = Abs(R1 - R2) / 1024 Ip *g'  
End Sub U5r}6D!)  
3iX?~  
Function CheckSlice() As Boolean ;;U :Jtn2  
  CopySlice avSL, avSLR, avSLL 9S7A!AKE  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then ; H0{CkH  
    CheckSlice = True <V&5P3)d9  
  Else !CY&{LEYn0  
    CheckSlice = False p( LZ)7/  
  End If F "jt&9j g  
End Function p Pro }@@  
7jG(<!,  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) >SmV74[s2  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long vqdX^m^PY  
  For i = 1 To FrameH 2N [=  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize sM2MLh'D  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize UQ?%|y*Kc  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize Z;DCI-Wg  
  Next i ~$ ,qgf  
  For i = 1 To FrameH  A[N {  
    For j = 1 To sSize ,!QV>=  
       total = total + Slice(j, i) _lxco=qd=%  
       totalL = totalL + SliceL(j, i) HIvZQQW|  
       totalR = totalR + SliceR(j, i) @%ECj)u`O  
    Next j S?0$?w?  
  Next i ~Ci{3j :]  
  avSL = total / FrameH / sSize ,_ 2x{0w:>  
  avSLR = totalR / FrameH / sSize g=8un`]7  
  avSLL = totalL / FrameH / sSize MgM D\  
End Sub Bi%x`4Lf  
42C<1@>zO  
Sub DrawSlice() <i. a pBH  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B `ldz`yu6++  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B P:xT0g tt  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B V"KS[>>f  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) k!L@G Q  
End Sub PAF8W lg  
Sub DrawMark(pic As Control) *%FA:Y  
   Dim i As Long, j As Long ^A_;#vK  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B o>]`ac0b}Y  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B "&+3#D >  
   For i = 1 To PilarH 0y#Ih {L  
     For j = 1 To PilarW !nf-}z e{  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) tT%/r,  
     Next j \IM4Z|NN"  
   Next i 8?FueAM'  
End Sub t67Cv/r~  
Xl-e !  
Function avIMG() As Integer E,[xUz"  
  Dim i As Long, j As Long, totalIMG As Long PL=^}{r  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize 8{ c!).  
  For i = 1 To pFrameSize 6<'K~1do:  
    totalIMG = totalIMG + pBuffer(i) I:j3sy  
  Next i ] ZoPQUS?  
  avIMG = totalIMG / pFrameSize Tl("IhkC  
End Function -G|a*^  
/F/;G*n  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer I/J7rkf  
  Dim i As Long, j As Long, totalIMG As Long w Iv o"|%  
  For i = 1 To FrameH r7m D{0s*  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth QO;4}rq  
  Next i 3251Vq %  
  For i = 1 To FrameH * barWidth z?]G3$i(  
    totalIMG = totalIMG + pBuffer(i) f>$``.O  
  Next i V|D] M{O  
  avRegion = totalIMG / pFrameSize #s5N [uK^m  
End Function |UUdz_i!:  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 NZLAk~R;0  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。  7A$B{  
c,\i"=!$  
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 e&<yX  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long r#i?j}F}  
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 .p` pG3  
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 kLSrj\6I[  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long E2w z(,@  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 ;t#]2 <d*  
~p1EF;4#  
cQN sL  
Private Const GENERIC_READ = &H80000000 aBuoHdg;  
Private Const GENERIC_WRITE = &H40000000 J;R v ~<7  
/B3R1kNf|  
Private Const FILE_SHARE_READ = &H1 S_(d9GK<  
Private Const FILE_SHARE_WRITE = &H2 \E1U@6a  
Private Const OPEN_EXISTING = 3 '-$XX%TOAc  
(]2H7X:b  
Private Const INVALID_HANDLE_VALUE = -1 ]3{0J  
tfO#vw,@  
'//file seek <c N~jv-w$  
Private Const FILE_BEGIN = 0 uRV<?y%  
Private Const FILE_CURRENT = 1 v6(E3)J7  
Private Const FILE_END = 2 Pt,ebL~  
+~zXDBS9  
Private Const ERROR_SUCCESS = 0& I3b"|%  
uq3{h B#  
'//device io control jH;Du2w  
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 l:B;zi`)oB  
jdA ]2]  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 /u<nLj1  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 gxNL_(A  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 OW;tT=ql  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 YvL?j  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C gk0.zz([  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 <i\A_qqc/  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F BHDML.r }M  
Ka!I`Yf  
'//type ]jMKC8uz  
Private Type LARGE_INTEGER  (t^n'V  
    lowpart As Long R[tC^]ai  
    highpart As Long Ut@RGg+f8  
End Type c7uG9  
x[_=#8~.1x  
Private Enum MEDIA_TYPE uYI@ 9U  
    Unknown U\@A _ B  
    F5_1Pt2_512 jyS=!ydn+  
    F3_1Pt44_512 j V3)2C}  
    F3_2Pt88_512 )=pD%$iq  
    F3_20Pt8_512 -Yi,_#3{  
    F3_720_512 JtKp(k&  
    F5_360_512 }=](p-]5  
    F5_320_512 ;i uQ?MR3  
    F5_320_1024 \ gwXH  
    F5_180_512 ` TqSQg_l  
    F5_160_512 SuBeNA[&  
    RemovableMedia dhPKHrS  
    FixedMedia "Y: /= Gx  
End Enum @exey  
C]u',9,  
Private Type DISK_GEOMETRY &7mW9]  
    Cylinders           As LARGE_INTEGER c,EBF\r8*  
    MediaType           As MEDIA_TYPE E\7 m< 'R  
    TracksPerCylinder   As Long I5ss0JSl/  
    SectorsPerTrack     As Long =JLh?Wx  
    BytesPerSector      As Long d[ gl]tj9  
End Type 6aO2:|:yP  
B:TR2G9UT  
'//private vars  9Ru;`  
Private hDisk           As Long             'disk handle /lhz],w  
Private lpGeometry      As DISK_GEOMETRY    'disk info IE~%=/|  
Private lBufferSize     As Long             'the buffer size of read/write {BBw$m,o  
cV K7  
Public Function OpenDisk(ByVal FileName As String) As Boolean gwkb!#A  
'// 打开磁盘 |`k .y]9  
    hDisk = CreateFile(FileName, _ ;E;To\NCYF  
                        GENERIC_READ Or GENERIC_WRITE, _ V)M1YZV{  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ |iYg >  
                        ByVal 0&, _ <z+:j!~  
                        OPEN_EXISTING, _ gApoX0nrv  
                        0, _ &$FvWFRh#  
                        0) y8Xv~4qQW  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) Z$KLl((  
End Function .\Fss(Zn  
e9pOisZ;8  
Public Function CloseDisk() As Boolean 9;t]Hp_+K  
'//关闭磁盘 b}!3;:iD  
    CloseDisk = CloseHandle(hDisk) ?WI3/>:<  
End Function jF ^5}5U  
 }alj[)  
Public Function GetDiskGeometry() As Boolean G#`\(NW  
'//获取磁盘参数 >u +q1j.  
    Dim dwOutBytes      As Long }3 m0AQ;K  
    Dim bResult         As Boolean hi2sec|;<  
     }l0&a!C  
    bResult = DeviceIoControl(hDisk, _ 3k$[r$+"  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ \kIMDg3}  
                                ByVal 0&, 0, _ kfb/n)b'  
                                lpGeometry, Len(lpGeometry), _ z$lF)r:Bc  
                                dwOutBytes, _ y7\"[<E`(V  
                                ByVal 0&) _o6G6e,  
     |f( ~@Q:  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack nt1CTWKM8^  
    GetDiskGeometry = bResult 8kL4~(hY  
End Function }-p[V$:S  
I+ l%Sn#\  
Public Sub GetDiskInfo(MediaType As Long, _ %y[1H5)3<  
                        Cylinders As Long, _ =s97Z-  
                        TracksPerCylinder As Long, _ NUJ~YWO;  
                        SectorsPerTrack As Long, _ MhEw _{?  
                        BytesPerSector As Long) $& ~;@*[  
'//返回磁盘的参数 u+9<&)X0  
    MediaType = lpGeometry.MediaType S0/usC[r  
    Cylinders = lpGeometry.Cylinders.lowpart &-yGVx  
    TracksPerCylinder = lpGeometry.TracksPerCylinder K/_9f'^  
    SectorsPerTrack = lpGeometry.SectorsPerTrack $o?@ 0  
    BytesPerSector = lpGeometry.BytesPerSector 'm=*u SJK  
/TQ}} YVw  
End Sub ?9MVM~$  
V\~WvV  
Public Property Get BufferSize() As Long [U =Uo*  
'//返回每次读/写的缓冲大小 fIC9WbiH-  
    BufferSize = lBufferSize 'XOX@UH d  
End Property Z,7R;,qX  
m*0,s  
Cr/`keR  
Public Function LockVolume() As Boolean kYwb -;  
'// 将卷锁定 1^J`1  
    Dim dwOutBytes  As Long Iry  
    Dim bResult     As Boolean 1nhtM  
     ;oO v/3  
    bResult = DeviceIoControl(hDisk, _ G\gMC <3  
                                FSCTL_LOCK_VOLUME, _ !/{+WHxIr|  
                                ByVal 0&, 0, _ 4\5uY  
                                ByVal 0&, 0, _ C_fY %O  
                                dwOutBytes, _ q6P wZ_  
                                ByVal 0&) Vn=qV3OE]  
    LockVolume = bResult &O\ (;mFc  
End Function dj6*6qX0'^  
bF}V4"d,B3  
,3DXFV'uxb  
Public Function UnlockVolume() As Boolean q~K(]Ya/  
'// 将卷解锁 &<'n^n  
    Dim dwOutBytes As Long yR~-k?7b  
    Dim bResult As Boolean iX{G]< n  
     ?NNn:tiD  
    bResult = DeviceIoControl(hDisk, _ NVV}6TUV  
                                FSCTL_UNLOCK_VOLUME, _ ,.IEDF<&  
                                ByVal 0&, 0, _ hPhZUL%  
                                ByVal 0&, 0, _ 2 +5e0/_V  
                                dwOutBytes, _ ,SlN zR  
                                ByVal 0&) ?/*~;fM  
    UnlockVolume = bResult Oeya%C5'  
End Function +?D6T!)  
U_yE& 6 T  
>k7q g$  
Public Function DismountVolume() As Boolean ^}yg%+  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 YA(@5CZ  
    Dim dwOutBytes As Long 8G%yB}pa  
    Dim bResult As Boolean qAkx<u  
     ,38Eq`5&W  
    bResult = DeviceIoControl(hDisk, _ n}-3o]ku  
                                FSCTL_DISMOUNT_VOLUME, _ 'rP]Nw  
                                ByVal 0&, 0, _ Br>Fpe$q4  
                                ByVal 0&, 0, _ ;(6g\'m  
                                dwOutBytes, _ 'Yy&G\S  
                                ByVal 0&) yI{5m^s{  
    DismountVolume = bResult F9q8SA#"  
End Function "$HbK @]!h  
p\v Mc\  
BZK`O/  
Public Function ReadDisk(ByVal Cylinders As Long, _ /nx'Z0&+X  
                    ByVal Tracks As Long, _ ]1-z! B4K  
                    db() As Byte) As Boolean }A$WO {2  
'//按柱面和磁道来读取磁盘数据 8 (jUe  
    Dim iPos    As Long ITuq/qts]A  
    Dim lRead   As Long c8 K3.&P6  
     8t"~Om5sG  
    iPos = Cylinders * Tracks * lBufferSize ?ne_m:J[  
     nx":"LFI  
    If SeekAbsolute(0, iPos) Then f2)XP$:  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) v{x{=M]  
    End If O!1TthI  
End Function N@o?b  
Z^KA  
Public Function WriteDisk(ByVal Cylinders As Long, _ Y]aW)u  
                     ByVal Tracks As Long, _ {1 J&xoV"  
                     db() As Byte) As Boolean G`=r^$.3WB  
'//按柱面和磁道来写磁盘数据 eDO!^.<5  
    Dim iPos    As Long o6kNx>tc)  
    Dim lRead   As Long @{ ;XZb^  
     u8zbYd3  
    iPos = Cylinders * Tracks * lBufferSize \Xrw"\")j  
     "](6lB1Oe  
    If SeekAbsolute(0, iPos) Then 1{"ll D  
        WriteDisk = WriteBytes(lBufferSize, db()) N^?9ZO   
    End If IputF<p  
End Function LS>G4 ]  
f,i5iSYf  
cX!Pz.C  
'///////////////////////////////////////////////////////////////////////////////////// 72oWhX=M%  
'//file system Q'B6^%:<~  
tS# `.F~y  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean rPzQ8<  
'//seek file )4Q?aMm  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte v *hRz;  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) Z@D*1\TG=  
    If LowPos = -1 Then +m\|e{G  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) {2'm^0Kl  
    Else ^{@!['  
        SeekAbsolute = True F r?z"  
    End If 1MkI0OZE  
     Ft{[ae?4  
End Function dpZ;l 9  
m@Ev~~;  
DLPUqKL]  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean ?0 *8R K  
'//read data to array &(rWwOo6  
    Dim RetVal    As Long 3.  WF}8  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) }71LLzG`/  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF 1r[@(c0  
    ReadBytes = Not (RetVal = 0) VU|dV\>  
     (3vHY`9  
End Function {C*\O)Gep  
)YW<" $s  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean DsDzkwJE  
'//write data from array 6&v? )o  
    Dim RetVal As Long 1,y&d}GW  
    Dim BytesToWrite As Long )(Iy<Y?#  
    Dim BytesWritten As Long 0O!cN_l|  
     tYW>t9  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) yTM{|D]$(  
     o(A|)c4k  
    WriteBytes = Not (RetVal = 0) l":c  
End Function .?C%1a&_l  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 [ANuBNF  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ pz^<\  
DWORD dwCB; vP!GJX &n5  
LARGE_INTEGER  offset; ~K_Uq*dCE  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); Tz&Y]#h_  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); D.!~dyI.,$  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ &6 -k#r  
DWORD error = GetLastError(); }SyxPXs  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); ~.Ik#At  
return FALSE; Die-@z|Y  
} }H:F< z*  
return TRUE; wl=61 Mb  
} C@y8.#l  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : S&nxo k`e^  
#(Or|\t  
介个真的看不懂。 "tit\a6\(  
你说你老啦,喜欢怀旧了,才想起来填坑。 >r/rc`Q  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 {'+Q H)w(  
Is<"OQ  
gE/Tj $  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : ExSe=4q#  
佩服,玩也玩得这么专业! G}@#u9  
< |O^>s;  
5M]z5}n/  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : Y/TlE?  
伍SIR,再次抱拳佩服 %HQ.|  
-  N>MBn  
_,Fny_u=;  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : 05Fz@31~  
引用第19楼伍胥之于06-14-2010 12:33发表的  : 148V2H)  
|s7`F%  
=*BIB5  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 E! /[gZ  
9A,Z|q/z5  
我连一级也没有考过。 09KcKhFB  
.
Mvj;ic6iK  
idc`p?XP  
引用
7T``-:`[  
矬子里拔将军... yZ]:y-1  
你们那里的俗语是吧? 4PLk  
9L0GLmLk1u  
我们这里说"矮子里拔长脚"..应该是同一个意思... l@j.hTO<  
!9*c8bL D  
有趣....各地有表达意思一样却方式不同的俗语.... A*h{Lsx;  
pY)5bSA  
h<<>3A  
你的文章写的有脸皮,没屁眼的, FQ%c~N  
让看客大为不满... m .IU ;cR  
1[F3 Z  
你等着,,估计你以后接到的午夜凶铃就多了... P`4]-5gE  
h-a!q7]l  
' [|+aJ  
我到现在也没有接到你的午夜凶铃呢! ?rVy2!  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : $w)~O<_U  
每个人的故事对其他人都是故事, TlL^7f}  
自己的故事也是其中之一. hDP/JN8y  
跳出来看, c@[:V  
不过是众人中的一个人的故事. WtQ8X|\`  
0<"k8 k@J  
所以,接着听故事. C fEmT8sa  
A61^[Y,dX_  
女人们有兴趣的就等老伍开个新帖或者跟贴, +:=(#Y  
听他痛说恋爱革命历史.... :Eh\NOc_O  
@}_WE,r  
杂家接着听他自学程序员历史, [L` ZE*z  
高级程序员考了吗? ~0$NJrUy  
( m\$hX  
:a8 YV!X  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! CZnK8&VDY  
r;9 r!$d  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 Tm^89I]L  
\]Kh[z0"  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 H~eRT1  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : y@CHR  
哦, 打倒忽悠大家的家伙.      yH][(o=2  
sL E#q+W  
V"cKJ;s  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : J>d.dq>r  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 O-)-YVU  
8p[)MiC5W^  
ETs>`#`6o  
其实标题没有什么,卡总既然改了就不必再改回了。 vn/.}GkpU  
 !3T&4t  
主要是当初写的时候真是顶着锅盖写的。 5nbEf9&  
% `Z! 4L  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
82楼  发表于: 2015-09-05   
引用
引用第6楼沧桑于06-13-2010 14:39发表的  : ;;&}5jcV  
老伍在写交代材料啊,而且写在一个ZT的贴下,哈哈。 ,AT[@  
s(W|f|R  
\TU3rk&X  
这不是怕您见笑嘛!现在露馅了,只得继续招供了。 cu+FM  
tDUwy^j  
可以从宽不?
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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