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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 7JL*y\'  
~bsL W:.'  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : >r8$vQGj  
=|Vm69  
老五,I 服了U。 W, YYL(L  
"u=U@1 ^  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 6vL+qOdx  
qy$1+>f1  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean WJJwhr  
q?TI(J+/  
Dim regEX As New RegExp r{1xjAT  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 vf-cx\y7  
\-eDNwJ:#@  
Dim LastTitle0String As String, LastTitle0No As Long <>I4wqqb  
Dim LastTitle1String As String, LastTitle1No As Long -Nu Rf#  
Dim LastTitle2String As String, LastTitle2No As Long jDKL}x  
Dim LastTitle3String As String, LastTitle3No As Long H7&bUt/  
Dim LastTitle4String As String, LastTitle4No As Long oy< q;'  
Dim LastTitle5String As String, LastTitle5No As Long O\=c&n~`  
Dim LastTabelString As String, LastTableNo As Long eJ2$DgB}t  
Dim LastFigureString As String, LastFigureNo As Long (w/)u  
KsR^:_e  
Dim strSeperator As String ckCb)r_  
SGK=WLGM8  
Sub ConvertWidth(fTEXT As String, rText As String) DwBKqhu  
        Selection.Find.ClearFormatting [:xpz,  
        Selection.Find.Replacement.ClearFormatting R.rxpJ+kU  
        Selection.Find.Wrap = wdFindContinue b$O1I[o  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText j 5{ "j  
        DoEvents Z.x9SEe1t  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True m:4Ec>?e  
End Sub *B ]5K{N  
o%1dbbh  
Sub ClearDomain() $Il :Yw_  
        With Selection.Find >|| =#;  
            .ClearFormatting  XeRbn  
            .Replacement.ClearFormatting uL1$yf'  
            .Wrap = wdFindContinue aH(B}wh{  
            Me.txtStatus.Text = "清除所有域代码" =(%+S<}  
            DoEvents #OE]'k Ss  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False tJgo% P1  
        End With ;VlA~tv  
End Sub \ &#pJB BG  
\&Bvh4Q  
Private Sub cmdCheck_Click() W2-1oS~ma  
    bContinue = True n |Is&fy  
    Dim NoSeries1(1 To 16) As String d|Q_Z @;JF  
    Dim NoSeries2(1 To 16) As String d4[mR~XXT  
    Dim NoSeries5(1 To 16) As String >ngP\&\  
    Dim NoSeriesRM(1 To 16) As String !W?6,i-]  
    Dim paraTotal As Long, ParaText As String L kA_M'G  
    Dim ttString As String, ttNo As String KB6'sj  
     }2CVA.Qm!  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long cq-UVk"Gl  
u?- X07_  
    Me.txtStatus.Visible = True 6Q}WX[| tQ  
    Me.lbParaType.Visible = True ,R8:Y*@P  
    Me.cmdCheck.Enabled = False v5Qp[O_  
     WK)2/$7@  
     XZ1oV?Z4  
     /_g-w93   
     ),53(=/hl  
    Dim ParaType As String, rText As String aW.[3M;?v  
     +D&aE$<  
    Selection.WholeStory i *9Bu;  
    Selection.NoProofing = True -Uu65m~:{k  
     *~H\#N|x  
    tm1 = Now p #DJow  
     mYRW/8+g  
        ActiveWindow.View.Type = wdNormalView s4uYp  
     QO|roE  
    NoSeries1(1) = "一" y?4% eD  
    NoSeries1(2) = "二" 1GA$nFBVC  
    NoSeries1(3) = "三" H1^m>4ll9  
    NoSeries1(4) = "四" .*_uXQ  
    NoSeries1(5) = "五" kEr; p{5  
    NoSeries1(6) = "六" {iRXK   
    NoSeries1(7) = "七" F\U^-/0,  
    NoSeries1(8) = "八" !caY  
    NoSeries1(9) = "九" y)%CNH)*x  
    NoSeries1(10) = "十" $V?h68[c  
    NoSeries1(11) = "十一" jXCSD@?]K  
    NoSeries1(12) = "十二" wr+r J  
    NoSeries1(13) = "十三" }_vUsjK  
    NoSeries1(14) = "十四" ICxj$b  
    NoSeries1(15) = "十五" XI"8d.VR  
    NoSeries1(16) = "十六" } 63Qh}_Y  
     LH_rc  
    NoSeries2(1) = "㈠" J g:%|g  
    NoSeries2(2) = "㈡" I&lb5'6D  
    NoSeries2(3) = "㈢" X6`F<H`  
    NoSeries2(4) = "㈣" zFpM\{`[g  
    NoSeries2(5) = "㈤" AIK99  
    NoSeries2(6) = "㈥" wx2 EMr   
    NoSeries2(7) = "㈦" ?9I=XTR  
    NoSeries2(8) = "㈧" $~s|%>@  
    NoSeries2(9) = "㈨" Fu;\t 0  
    NoSeries2(10) = "㈩" d} {d5-_a  
     e <]^7pz  
    NoSeries5(1) = "①" B>=NE.ulUL  
    NoSeries5(1) = "②" ']]5xH*U  
    NoSeries5(3) = "③" XNd%3r m,  
    NoSeries5(4) = "④" We51s^(  
    NoSeries5(5) = "⑤" Z&w/JP?  
    NoSeries5(6) = "⑥" 5l]G1+  
    NoSeries5(7) = "⑦" 34e> R?J  
    NoSeries5(8) = "⑧" /yhGc}h  
    NoSeries5(9) = "⑨" L2GUrf  
    NoSeries5(10) = "⑩" Z'F=Xw6;b  
     LL lt9(^d  
     tITx+i  
    NoSeriesRM(1) = "I" -o`Eka!ELz  
    NoSeriesRM(2) = "II" R_ |Sg  
    NoSeriesRM(3) = "III" +^0Q~>=VD  
    NoSeriesRM(4) = "IV" rz'A#-?'oG  
    NoSeriesRM(5) = "V" TcjTF|q>  
    NoSeriesRM(6) = "VI" :e|[gEA  
    NoSeriesRM(7) = "VII" %4 0uw3  
    NoSeriesRM(8) = "VIII" `$hna{e^n  
    NoSeriesRM(9) = "IX" kafRuO~$  
    NoSeriesRM(10) = "X" Q (gc(bJV  
    NoSeriesRM(11) = "XI" % bpVK~z  
    NoSeriesRM(12) = "XII" QhqXd  
    NoSeriesRM(13) = "XIII" oMNgyAp^  
    NoSeriesRM(14) = "XIV" v vvH5NRm  
    NoSeriesRM(15) = "XV" dd{pF\a  
    NoSeriesRM(16) = "XVI" { t1|6R0  
     _/(7:  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) %hnv go:^g  
     ^S]-7>Yyr  
    If i = vbNo Then ML9nfB^z!  
        Exit Sub "?r=n@Kv  
    End If 4x;vn8 yh  
     m5w ZS>@  
    If Me.chkSuper.Value Then @s[Vtw%f  
        Me.txtStatus.Text = "检查修改所有的上标格式" 6~#$bp^-  
     G{C27k>wa  
        CheckSuperScript qT}AY.O%^  
         czH`a=mjH  
    End If %DqPRl.Gu  
     Y  c]  
    If Me.chkStyle.Value Then 8;vpa*  
        Me.txtStatus.Text = "设置样式,请稍候...." -hjGPu  
        DoEvents ,dZ&i! @?  
        CeateOrModifyStyle ~l SdWUk>  
    End If p#fd+  
     Vy6A]U\%  
     GI ~<clhf  
     xP+HdA2X  
    ClearDomain HXY,e$c#y  
         ^P| K2at  
     iJH;OV;P  
     %n7mN])  
    If Me.chkLIST.Value Then ZBX,4kxK7  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" %%-hax.x0X  
     bU+ z(Eg6  
        ConvertListToOrdinary Q;EQ8pL?"  
    End If D;RZE  
     U! xOJ  
     :p6.v>s8  
    Dim pType As String, trimpTEXT As String ImnN&[Cu  
    If Me.chkNum.Value = True Then N=hhuKt]  
        Me.txtStatus.Text = "转换全角数字形式为半角" ;WG6|QgV?-  
        ConvertWidth "1", "1" f:)%+)U<Xm  
        DoEvents oI/jGyY;  
        ConvertWidth "2", "2" wy)I6`v  
        DoEvents Ny oRp  
        ConvertWidth "3", "3" 9"%ot=)  
        DoEvents P*M$^p  
        ConvertWidth "4", "4" h%0hryGB  
        DoEvents T+9#&  
        ConvertWidth "5", "5" xdqiogue  
        DoEvents cI g|sn  
        ConvertWidth "6", "6" &F xw19[G  
        DoEvents &N^^[ uG  
        ConvertWidth "7", "7" [`'[)B  
        DoEvents iR` c/  
        ConvertWidth "8", "8" (w+dB8 )X  
        DoEvents %?`TyVt&0  
        ConvertWidth "9", "9" p"lTZ7c:Y  
        DoEvents qDzd_E@aR  
        ConvertWidth "0", "0" v\;hI5WY  
        DoEvents Ln2dD>{2  
        ConvertWidth "a", "a" B)1.CHV%<  
        DoEvents O F|3y~z  
        ConvertWidth "b", "b" ,cg%t9  
        DoEvents K$K 6,54y  
        ConvertWidth "c", "c" f-M9OI  
        DoEvents  | D?lF  
        ConvertWidth "d", "d" ?jDdF  
        DoEvents iCK p"(kf  
        ConvertWidth "e", "e" icnc5G  
        DoEvents GNIZHyT(O  
        ConvertWidth "f", "f" 9~FB^3Nz_  
        DoEvents NE'4atQ |  
        ConvertWidth "g", "g" >^!qx b-  
        DoEvents e,0y+~  
        ConvertWidth "h", "h" 5qx,b&^w  
        DoEvents P{{pp<tX*&  
        ConvertWidth "i", "i" FSp57W$  
        DoEvents r'C(+E (  
        ConvertWidth "j", "j" E$w2S Q  
        DoEvents '&<T;V%  
        ConvertWidth "k", "k" /N'|Vs,X  
        DoEvents Fo0 dz  
        ConvertWidth "l", "l" k;AV  'r  
        DoEvents >#j f Z5t  
        ConvertWidth "m", "m" `!t+sX- n  
        DoEvents !VF.=\iH/  
        ConvertWidth "n", "n" 9*"Ae0ok1  
        ConvertWidth "o", "o" O_n) 2t(c?  
        ConvertWidth "p", "p" :Jz@`s1n  
        ConvertWidth "q", "q" T9,T'y>BD  
        ConvertWidth "r", "r" No1*~EQ  
        ConvertWidth "s", "s" Sjogv  
        ConvertWidth "t", "t" zURob MpE#  
        ConvertWidth "u", "u" ^71!.b%  
        ConvertWidth "v", "v" ^9g+\W  
        ConvertWidth "w", "w" |KM<\v(A{  
        ConvertWidth "x", "x" 4kZ9]5#.  
        ConvertWidth "y", "y" @\_l%/z{  
        ConvertWidth "z", "z" T{VdlgL  
        ConvertWidth "A", "A" )w.\xA~|  
        ConvertWidth "B", "B" "AAzBWd/  
        ConvertWidth "C", "C" ^{vf|zZ _  
        ConvertWidth "D", "D" %#^)hX,+Q  
        ConvertWidth "E", "E" :W++ `f&  
        ConvertWidth "F", "F" pjh o#yP  
        ConvertWidth "G", "G" K:i{us`  
        ConvertWidth "H", "H" 0VOj,)K=  
        ConvertWidth "I", "I" Gxj3/&]^Y  
        ConvertWidth "J", "J" c,\!<4  
        ConvertWidth "K", "K" +}u{{  
        ConvertWidth "L", "L" HalkNR-eEm  
        ConvertWidth "M", "M" 0!^vQ  
        ConvertWidth "N", "N" ?3vOc/2@  
        ConvertWidth "O", "O" #t^y$9^  
        ConvertWidth "P", "P" aeP 6JHj  
        ConvertWidth "Q", "Q" PN$vBFjm  
        ConvertWidth "R", "R" rps2sXGr  
        ConvertWidth "S", "S" ~gjREl,+D#  
        ConvertWidth "T", "T" 0d%p<c  
        ConvertWidth "U", "U" f"8!uE*;  
        ConvertWidth "V", "V" t mCm54  
        ConvertWidth "W", "W" 5,pKv  
        ConvertWidth "X", "X" }E}b/ulg1  
        ConvertWidth "Y", "Y" h.`U)6*?&N  
        ConvertWidth "Z", "Z" m)]A$*`<  
        ConvertWidth "^l", "^p" kDrqV{ _  
        ConvertWidth "(", "(" D)u 9Y  
        ConvertWidth ")", ")" `k>h2(@9S  
     WrS|$: 0  
    End If RH+'"f  
b)5z'zQu  
    With ActiveDocument U!0 Qf7D  
        Dim tbl As Table ns{BU->f  
        For Each tbl In .Tables tc_D8Q_  
            tbl.Rows.Alignment = wdAlignRowCenter * t,J4c  
            tbl.Range.Font.NameFarEast = "楷体" j#`d%eQ~J  
            tbl.Range.Font.NameAscii = "Times New Roman" _ B5t)7I  
            tbl.Range.Font.Size = 10.5 K1F,M9 0]  
        Next e>:bV7h j~  
        Set tbl = Nothing .7!n%Ks  
    End With 7xmyj y%c  
     ^YpA@`n  
     d_0r  
    With ActiveDocument ?-"%%#  
         `? X=@  
        For i = 1 To .TablesOfContents.Count G O=&  
            .TablesOfContents(i).Delete (($"XOU  
        Next PhS`,I^Z  
         J:{$\m'  
         8, >YB+Hb  
         -RSPYQjz  
        paraTotal = .Paragraphs.Count 2!Mwui;%  
        paraCounter = 1 u)Dh kF|  
         #..-!>lY  
        LastTitle0No = 0 |kUxTe  
        LastTitle1No = 0 %/86}DCfE?  
        LastTitle2No = 0 0S{dnp  
        LastTitle3No = 0 N<xf=a+j  
        LastTitle4No = 0 5K~kzR L$r  
        LastTableNo = 0 }Z|uLXaz  
        LastFigureNo = 0 b`4R`mo  
         m}x&]">9  
        Dim Sec As Long T%%+v#+  
         HhmC+3w.7  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) `@Q%}J  
        If Sec = 0 Then qrFC4\q}  
            Exit Sub *acN/Ca1  
        End If ?Q~6\xA  
         $7#N@7  
        k = 0 1lxsj{>U  
        Do While (paraCounter < paraTotal) And bContinue BZXP%{njS  
            k = k + 1 $9}z^sGIM  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then 1D,$Az~.  
                Exit Do Llf |fayq  
            End If 7*7Z&1*3  
            paraCounter = paraCounter + 1 HlkG^:)  
            If k Mod 20 = 0 Then Ew4>+o!  
                Me.lbCounter.Caption = paraCounter W hf7J'  
                DoEvents T@n-^B!Xq  
            End If 9Yh0' <Z  
        Loop ,@_$acm  
         nbnbG0r:  
         S_z}h  
        Do While (paraCounter < paraTotal) And bContinue ?a h<Qf]  
             wW7W+,{o  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) 7VF^&6  
            ShapeHeight = 0 m"2KAq61  
            ShapeWidth = 0 /ry# q% ?  
           x,s Ma*vd  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth P(_wT:8C?  
             Wp0e?bK_  
            Select Case ParaType {\OIowa  
                Case "【】表格内容" T:$zNX<f  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" 6z^Kg~a   
                Case "章" ,1\nd{  
                    LastTitle0No = LastTitle0No + 1 >bf29tr  
                    '新一章开始,复位其下属标题编号 e7{n=M  
                    LastTitle1No = 0 I[~EQ {Iz  
                    LastTitle2No = 0 O};U3=^0f  
                    LastTitle3No = 0 hSgfp  
                    LastTitle4No = 0 *cdr,AD?lH  
                     Su<Ggv"  
                    k = Val(ttNo) +fgF &.  
                    If k = 0 Then '非数字编号章节 Wdt 9k.hzN  
                        If ttNo <> NoSeries1(LastTitle0No) Then .b4_O CGg  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString C] <K s  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText iY =M67V  
                        End If 4T-9F  
                    Else x*H4o{o0  
                        If Val(ttNo) <> LastTitle0No Then ~ caKzq  
                            rText = "第" & LastTitle0No & ttString w1J&c'-  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText O7#ECUH  
                        End If |g5B==KI  
                         $B6"fYiDk  
                    End If hcw)qB,s  
                     U&fOsx?"  
                    '章段落设置 @j%r6N  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 _YXk ,ME!Q  
                    .Paragraphs(paraCounter).Style = "QLNU章节" `"0#lZ`n  
                    .Paragraphs(paraCounter).Range.Select }lzyl*.  
                    Selection.EndKey unit:=wdLine E^.y$d~dS  
                    tc = Replace(rText, vbCr, "") gI&& LwT 4  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False ` Nn^   
                Case "一级标题" `?P k~7  
                    LastTitle1No = LastTitle1No + 1 {iP^51fy  
                    '新一级标题开始,复位其下属标题编号 /t-m/&>  
                    LastTitle2No = 0 73$^y)AvY  
                    LastTitle3No = 0 y.AF90Q>)  
                    LastTitle4No = 0 H61 ,pr>  
                     r( _9_%[  
                    If ttNo <> NoSeries1(LastTitle1No) Then KzRw)P  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString or_x0Q  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText g)*[W>M  
                    End If FhgO5@BO  
                   U!:Q|':=h  
                     yZ[H&>  
                    '一级标题段落设置  格式:一、标题内容 }]pq&v!  
                    .Paragraphs(paraCounter).Range.Text = rText ti:qOSIDTA  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" ta>:iQ a  
                    .Paragraphs(paraCounter).Range.Select wVvk{tS  
                    Selection.EndKey unit:=wdLine 8K! l X  
                    tc = Replace(rText, vbCr, "") G<kslTPyq  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 8>Xyz`$kH  
                Case "二级标题" / r #.BXP  
                    LastTitle2No = LastTitle2No + 1 f>)k<-<yj  
                    '新二级标题开始,复位其下属标题编号 i|X ;n  
                    LastTitle3No = 0 6#xP[hlR[  
                    LastTitle4No = 0 oYNP,8r^  
                     %nJ^0X_]  
                    If ttNo <> NoSeries1(LastTitle2No) Then s(Of EzsH=  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString `}1IQ.3  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText 3~"G(UP  
                    End If XqVhC ):  
                     DLYk#d: q?  
                    '二级标题段落设置 格式:(一)、标题内容 .:tAZZ  
                    .Paragraphs(paraCounter).Range.Text = rText ]8(_{@ /  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" kji*7a?y  
                     .Od.lxz"mp  
                    .Paragraphs(paraCounter).Range.Select UV%A l)3  
                    Selection.EndKey unit:=wdLine T}(J`{ 9i  
                    tc = Replace(rText, vbCr, "") 'CT 8vt;  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False =T)4Oziks  
                 4@P H5z  
                Case "三级标题" bk E4{P"  
                    LastTitle3No = LastTitle3No + 1 Egv (n@1  
                    '新三级标题开始,复位其下属标题编号 >]q{vKCAP  
                    LastTitle4No = 0 LL5n{#)N  
                     Kk2PWJ7  
                    If Val(ttNo) <> LastTitle3No Then )v1n#m,W  
                            rText = LastTitle3No & ". " & ttString 4P@Ak7iL(V  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText N"2Ire  
                         4,m aA  
                    End If U2=l; R{  
                    '三级标题段落设置 格式:1. 标题内容 .__X- +^  
                    .Paragraphs(paraCounter).Range.Text = rText ]/!#:  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" #C1u~db  
                    .Paragraphs(paraCounter).Range.Select _94|^   
                    Selection.EndKey unit:=wdLine etdI:N*x  
                    tc = Replace(rText, vbCr, "") 3^l@!Qw  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False VLW<"7I 6\  
                Case "四级标题" 0c4H2RW  
                    LastTitle4No = LastTitle4No + 1 -W(O~AK  
                     )s6pOx Wx  
                    If Val(ttNo) <> LastTitle4No Then x^kV;^ I  
                            rText = "(" & LastTitle4No & "). " & ttString .P\wE";  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText `;-K/)/x  
                     MXY[t  
                    End If * B!uYP  
                    '四级标题段落设置 格式:(1). 标题内容 oD]tHuDa  
                    .Paragraphs(paraCounter).Range.Text = rText 0  ;$[  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" c&.>SR')  
                    .Paragraphs(paraCounter).Range.Select + E7s[9/r  
                    Selection.EndKey unit:=wdLine w-?_U7'  
                    tc = Replace(rText, vbCr, "") >3V{I'^^-  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False DVxW2J  
                 Ml1sE,BT  
                Case "表格标题" K!6k<  
                    LastTableNo = LastTableNo + 1 g$s"x r`:  
                     Q=lQy  
                    If ttNo <> CStr(LastTableNo) Then m72r6Yq2@  
                            rText = "表" & LastTableNo & ". " & ttString 4y&%YLMpl  
                            ErrMsg.AddItem "表格编号错误:" & ParaText 3z9}cOFq]z  
                   C-/<5D j  
                    End If v*'dA^Q  
                     z=>U>  
                    '表格名称段落设置 格式:表1. 表格名称 Al="ss&2  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" tz-, |n0  
                    xe = Replace(rText, vbCr, "") Tj}H3/2  
                    .Paragraphs(paraCounter).Range.Select )Xxu-/-  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 z{U2K '  
                    Selection.Range.Text = xe <zE,T@c  
                    Selection.EndKey DjK:)  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False g+oS bC  
                 &*\wr} a!  
                Case "表格首行" Uk=jQfA*J  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" Fyy)665x/  
                Case "图片标题" 4QODuyl2H  
                    LastFigureNo = LastFigureNo + 1 )(`I1"1   
                     d@~Hp?  
                    If ttNo <> CStr(LastFigureNo) Then h.@5vhD  
                            rText = "图" & LastFigureNo & ". " & ttString mGZ^K,)&OR  
                            ErrMsg.AddItem "表格编号错误:" & ParaText ;^nN!KDjR  
                   ?sV0T)uk  
                    End If  ,$ L>  
                    '图片名称段落设置 格式:图1. 图名称 >%k:+ +b{  
                    .Paragraphs(paraCounter).Range.Text = rText Md_S};!QN6  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" 1w}%>e-S  
                    .Paragraphs(paraCounter).Range.Select 4(>|f_$  
                    Selection.EndKey unit:=wdLine -@{5 u d  
                    xe = Replace(rText, vbCr, "") s86Ij>VLf  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False &U%AVD[  
                Case "正文" ca/AScL  
                     '正文名称段落设置 hnag <=  
                    .Paragraphs(paraCounter).Style = "QLNU正文" =n>&Bl-Bl  
               Case "文献条目" xMNUy B{?  
                    With .Paragraphs(paraCounter) ?yop#tjCbY  
                        '.Range.Select [+EmV>Y  
                        'Selection.ClearFormatting /?<o?IR~6  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” XnmQp)nyV  
                        .Style = "QLNU参考文献" (055>D6  
                    End With cl kL)7RQ  
               Case "图表注解" % "|I` m  
                    With .Paragraphs(paraCounter) v0)I rO  
                        .Range.Font.NameFarEast = "楷体" :/ ,h)h)|  
                        .Range.Font.NameAscii = "Times New Roman" f0+)%gO{  
                        .Range.Font.Size = 9 '小5号字 c8!q_H~  
                         !t /I j~o  
                        .Alignment = wdAlignParagraphCenter R7u&`  
                        .LeftIndent = 0 {/SUfXq  
                        .RightIndent = 0 vZ[wr@)  
                        .FirstLineIndent = 0  1+|s   
                        .LineSpacing = 12 2mj?&p?  
                        .LineSpacingRule = wdLineSpaceExactly 4SRX@/ #8*  
                        .LineUnitAfter = 0 (27bNKr  
                        .LineUnitBefore = 0 EY Ni`  
                        .OutlineLevel = wdOutlineLevelBodyText >5Y%4++(  
                        .PageBreakBefore = False z97RNT|Y7U  
                        .RightIndent = 0 D+G?:m R  
                        .WordWrap = True 4lMf'V7*l  
                        .LineUnitAfter = 0.5 &5:83#*Oj  
                         Nv!If$d  
                    End With *;7~aM  
                Case Else 9<BC6M_/  
                    '不作处理 !5lb+%7  
            End Select NuZiLtC  
             T.\=R  
            '含有inlineshape的段落处理 ^ Q]I)U  
            If ShapeHeight > 30 Then c:(Xk zj  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 *@`Sx'5!  
            End If +VxzWNs*JP  
             H/"$#8-/  
            If (ShapeWidth + ShapeHeight) > 150 Then yO\ .dp  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" &Z!O   
            End If ayR=GqZ1  
             ]E/^(T-O  
            '段落计数器递 BEWDTOY[  
            paraCounter = paraCounter + 1 M4[(.8iE  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter KwO;ICdJ  
            Me.txtStatus.Text = ParaText m{T:<:q~  
            DoEvents pRyePxCDj)  
        Loop J:g4ES-/   
    End With 6 U|An*  
     *9J >3   
    msg = "" \ vf&Ldk  
     IiW*'0H:/  
    For i = 0 To Me.ErrMsg.ListCount - 1 ?:DeOBAb  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) _p0@1 s(U  
    Next Aw#@}TGT  
     BZHba8c(  
     bzYj`t?  
     }ZaZPB/_}P  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg V0 70oZ  
    Me.cmdCheck.Enabled = True 9yla &XTD  
    Me.txtStatus.Visible = True -JgN$Sf  
    Me.lbParaType.Visible = False i+rh&,  
     <y4hK3wP  
    bContinue = False XdS&s}J[I  
End Sub 4mYJi#e6x  
>@?!-Fy5  
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) x_ Y03__/  
    Dim pTEXT As String Msj(>U&}+  
     ejs_ ?   
    pTEXT = ChKRange.Text fCC^hB]'  
     d)hA'k  
    ParaType = "其它" =^a Ngq  
    TitleString = pTEXT *K}h >b 1  
    TitleNo = "N/A" Eod'Esye5  
     klpYtQ  
    shpCounter = ChKRange.InlineShapes.Count .d mU h-  
    If shpCounter <> 0 Then )LOV)z|}  
        MaxShpHeight = 0: TotalShpWidth = 0 5dwC~vn}c  
        For i = 1 To shpCounter :(7icHa  
            k = ChKRange.InlineShapes(i).Height =+>cTV  
            l = ChKRange.InlineShapes(i).Width Cn6<I{`\  
            If k > MaxShpHeight Then `^_c&y K  
                MaxShpHeight = k p1}umDb%  
            End If L>xecep  
            TotalShpWidth = TotalShpWidth + l n{'LF #4l  
        Next u*n%cXY;J/  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then ~)ut"4  
            Exit Sub nh"8on]M~  
        End If Q8d-yJs&  
    End If 8NP|>uaj  
     #R^^XG`1  
    '空行 hbfN1 "z  
    If Len(pTEXT) <= 2 Then E~]37!,\\9  
        Exit Sub )>-94xx|  
    End If Lt'FA  
     :c03"jvYE  
         M/<>'%sj  
    '是否为表格中的文字 rnNB!T   
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then s}w?Dvo\  
        ParaType = "表格内容" $)or{Z$&  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) z[vHMJ 0  
        If k = 1 Then ^HiI   
            ParaType = "表格首行" 3 UXaA;  
        End If Rda~Drz  
        Exit Sub /i:c! l9  
    End If ^:hI bF4G  
     ULT,>S6r  
    '例外情况:脚注 \tCxz(vKz  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then Xg <R+o  
        ParaType = "脚注" ^&[Z@*A8#  
        Exit Sub Go;fQ yG  
    End If u9c^:Op  
     g/3t@7*<  
    '例外情况:尾注 yyZs[ 5Q  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then pUV4oyGV   
        ParaType = "尾注" /Py1Q  
        Exit Sub 4eD>DW  
    End If =[_=y=G  
     I= '6>+P  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then pc+'/~  
        ParaType = "页眉页脚" X0FTD':f  
        Exit Sub *OM+d$l!  
    End If G!<-9HA5  
     ;*+wg5|  
     6j 2mr6o  
    With regEX BQo$c~  
        .Global = True a8w/#!^34  
         .:wo AR W!  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" 8u|F %Sg  
        If regEX.Test(pTEXT) Then Sv#S_jh  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") sa?Ul)L2  
            TitleString = regEX.Replace(pTEXT, "$3") DH IC:6EY  
            TitleNo = regEX.Replace(pTEXT, "$1") UiE 1TD{  
            ParaType = "章" W]B75  
            Exit Sub ==!k99`f,  
        End If Q0j4 c  
         [\BLb8  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" ov$S   
        If regEX.Test(pTEXT) Then vRI0fDu  
            ParaType = "一级标题" .X.,.vHx  
            regEX.Execute (pTEXT) UI]UxEJ  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") ?"@`SEdnU2  
            TitleString = regEX.Replace(pTEXT, "$3") 7gnrLc$]O  
            TitleNo = regEX.Replace(pTEXT, "$1") b f j]Q  
            Exit Sub aGz$A15#  
        End If XbaUmCuh  
         #_pQS}$  
        '全角或半角括号中的数字 IIh \ d.o  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" Fo.p}j+>  
        If regEX.Test(pTEXT) Then pu OAt  
            ParaType = "二级标题" i8nzPKF2$3  
            regEX.Execute (pTEXT) ]@P!Q&V #  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") hI6Tp>b*~  
            TitleString = regEX.Replace(pTEXT, "$5") Z%4w{T+[  
            TitleNo = regEX.Replace(pTEXT, "$2") Rlwewxmr  
            Exit Sub 07 E9[U[  
        End If ^l8&y;-T  
         wdMVy=SS  
        '阿拉伯数字  1. 2. n=iL6Yu(  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" Bw Cwy  
        If regEX.Test(pTEXT) Then KAI/*G\z  
            ParaType = "三级标题" EK 8rV  
            regEX.Execute (pTEXT) \2#j1/d4  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 Ne b")  
            TitleString = regEX.Replace(pTEXT, "$3") e8,!x9%J  
            TitleNo = regEX.Replace(pTEXT, "$1") -\I".8"YE  
            Exit Sub JIOeDuw+  
        End If 8M6wc394  
         VKb=)v[K  
        '全角或半角括号中的阿拉伯数字 Sv>bU4LHf  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" :jHDeF.A  
        If regEX.Test(pTEXT) Then #E ;a ;$p  
            ParaType = "四级标题" _C4N6YdU  
            regEX.Execute (pTEXT) 'UFPQ  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") s2kom)  
            TitleString = regEX.Replace(pTEXT, "$5") .~AQxsGH  
            TitleNo = regEX.Replace(pTEXT, "$2") NK!#K>AO  
            Exit Sub Va-.  
        End If Ha41Wn'tZ  
         H"b }l f  
        '表格名称 `:*O8h~i^8  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" ]_js-+w6  
        If regEX.Test(pTEXT) Then Cj5=UUnO  
            ParaType = "表格标题" '7yVvd  
            regEX.Execute (pTEXT) \ $Q?  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) Qz4n%|  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) [}Z!hq  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) .~Gt=F+`s  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 ^3O`8o  
            Exit Sub o |"iW" +  
        End If 4?',E ddo  
         :pw6#yi8`  
        '图片名称 _t-e.2a v  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" t 2Y2v2 J  
        If regEX.Test(pTEXT) Then :8LK}TY7  
            ParaType = "图片标题" tO~o-R  
            regEX.Execute (pTEXT) c2~oPUj  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") 6|10OTVu`  
            TitleString = regEX.Replace(pTEXT, "$3") `gE_u  
            TitleNo = regEX.Replace(pTEXT, "$1") H[[#h=r0f  
            Exit Sub Mh@RO|F  
        End If _xu_W;nh  
         2qDyb]9  
        '参考文献 S4C4_*~Vd  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 N /Fa^[  
        If regEX.Test(pTEXT) Then Q&`if O  
            ParaType = "文献条目" M $\!SXL  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") e13' dCG  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") f7v|N)  
            Exit Sub rp_Aw  
        End If WT'?L{  
         J`'wprSBb  
        prfx = Left(pTEXT, 2) s$ZKd  
        If prfx = "注:" Or prfx = "注:" Then Wagb|B\  
            ParaType = "图表注解" t2_pwd*B  
            Exit Sub !.c no&  
        End If XtftG7r9S  
         8;<3Tyjzu  
         j<PpCL_8%  
        ParaType = "正文" 5J2tR6u-(  
         Xf%wW[~  
    End With :TRhk.  
End Sub j}aU*p~N  
,/Al'  
Sub ConvertListToOrdinary() / TAza9a  
    Dim st As Paragraph ;dqu ld+q  
    With ActiveDocument b@ OF  
        For i = .Paragraphs.Count To 1 Step -1 n0vhc;d  
            Set st = .Paragraphs(i) k.?@qCs[  
            lst = st.Range.ListFormat.ListString ,jJbQIu#  
            If lst <> "" Then gV;9lpZ2  
                st.Range.ListFormat.RemoveNumbers .2x`Fj;o1  
                st.Range.InsertBefore lst & " " 4|/=]w  
            End If !~-@p?kW/  
        Next 'M=V{.8U  
    End With 7CSd}@71\  
    Set st = Nothing c;doxNd6  
End Sub W;QU6z>  
qrkJ:  
Private Sub UserForm_Activate() qs3V2lvYw{  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" SGUZ'}  
    Me.lbTotal.Font.Bold = True n}3fItSJ  
    Me.txtStatus.Visible = False 1 +9}Xnxb  
    Me.cmdCheck.Enabled = True d_)VeuE2  
x.ucsb  
End Sub 2+}hsGnp  
DpvMY94Qh  
Q+z y\T  
Sub CheckSuperScript() *DuP~8  
    Selection.Find.ClearFormatting J?oEzf;M  
    Selection.Find.Replacement.ClearFormatting ;6tGRh$b  
    With Selection.Find Lem:zXj  
        .Text = "[【\[[〖](*)[】\]〗]]" 8?G534*r@2  
        .Replacement.Text = "[\1]" O>/& -Wk=  
        .Replacement.Font.Superscript = True T3In 0LQ  
        '.Replacement.Font.Color = wdColorBlue jPmp=qg"q  
        .Forward = True R :, |xz  
        .Wrap = wdFindContinue "#=WD  
        .FORMAT = True 3) _(t.$D  
        .MatchCase = False ;3 /*Z5p  
        .MatchWholeWord = False g n 6@x  
        .MatchByte = False c+.? +g  
        .MatchAllWordForms = False j!/=w q  
        .MatchSoundsLike = False #OVS]Asn}  
        .MatchWildcards = True vxl!`$Pi  
    End With L%31>)8  
    Selection.Find.Execute Replace:=wdReplaceAll N(Xg#m   
End Sub O=\`q6l  
H57wzG{xG  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) E=RX^ 3+}  
    bContinue = False Xr]<v%,C  
    Set regEX = Nothing n|) JhXQ  
End Sub gmdA1$c  
E#(dri*#t  
Sub CeateOrModifyStyle() a n|bzG  
' s/0~!0  
' 9N;y^ Y\  
Dim stl As Style j)Y68fKK  
     2}kJN8\F  
    Options.Pagination = False UsnIx54D3  
     x2Dg92  
    On Error Resume Next RFT`r  
    For Each stl In ActiveDocument.Styles B<!WAw+  
        stl.Delete ?7\$zn)v#  
    Next +J  <<me4  
    On Error GoTo 0 :nn(Ndlz9  
     w~Jy,[@n  
    Set stl = Nothing UU  DZ  
     uTRFeO>  
    DoEvents :\IZ-  
    On Error Resume Next %^}|HG*i??  
     W7?f_E\>W  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph g%%j"Cz1  
     /5j]laYK)  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph jI45X22j  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph cOb ,Md  
     `c/mmS  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph xM D]b  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph >m4HCs>  
     F~zrg+VDjL  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph \KkAU6  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph *s (L!+  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph %%^by  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph 57`9{.HB  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph R[f@g;h  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph ;\rKkH"K8n  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph YV)h"u+@0  
     D |9ItxYu  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph FSA"U9 w<  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph d/l>~%bR  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph 6+W`:0je  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph ` l}+BI`4  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph K%(DRkj)  
     {7+y56[yu  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph CNrK]+>  
    On Error GoTo 0 \) vI-  
    DoEvents *7^w}v+.  
     }<mK79m  
    'BaseStyle 'FwNQzzt  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False 4j}uVGi{e  
    With ActiveDocument.Styles("BaseStyle").Font 5sguv^;C5  
        .NameFarEast = "宋体" x|U[|i,;  
        .NameAscii = "Times New Roman" ^8{:RiN6e~  
        .NameOther = "宋体" 1wt(pkNk  
        .Size = 10.5 # mW#K  
        .Bold = wdUndefined ]=jpqxlx  
        .Italic = wdUndefined 7|^5E*8/  
        .Subscript = wdUndefined 1Gh3o}z  
        .Subscript = wdUndefined 6w*q~{"(   
         qExmf%q:q  
        .Underline = wdUnderlineNone 1LonYAHF  
        .UnderlineColor = wdColorAutomatic N\W4LO6  
        .StrikeThrough = False DH'0#  
        .DoubleStrikeThrough = False w/Y6m.i1  
         E2yL9]K2  
        .Outline = False 0)E`6s#M  
        .Emboss = False f~v@;/HL  
        .Shadow = False "Is0:au+?}  
        .Hidden = False Ztj~Q9mu  
        .SmallCaps = False k/.a yLq  
        .AllCaps = False Rd>PE=u  
        .Color = wdColorAutomatic cB|Rj}40v  
        .Engrave = False 9s`j@B0N57  
        .Scaling = 100 ILMXWw  
        .Kerning = 1 F9 2et<y.  
        .Animation = wdAnimationNone ?? h4qJ  
        .DisableCharacterSpaceGrid = False %TS8 9/  
        .EmphasisMark = wdEmphasisMarkNone GCv*a[8?n  
    End With qN(,8P\90  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat mH5[(?   
        .LeftIndent = 0 Z{rD4S @ ^  
        .RightIndent = 0 *;Gnod<  
        .SpaceBefore = 0 taqmtXU=(  
        .SpaceBeforeAuto = False mFW/xZwR,5  
        .SpaceAfter = 0 dc%0~Nz  
        .SpaceAfterAuto = False D5jZ;z}  
         wSIfqf+y  
        .LineSpacingRule = wdLineSpaceSingle g: ,*Y^T  
        .Alignment = wdAlignParagraphJustify G ,? l o=m  
         A v[|G4n  
        .WidowControl = False OpxJiu=W  
        .KeepWithNext = False ~WX40z  
        .KeepTogether = False Y^9b>H\2  
        .PageBreakBefore = False yvt :/X  
        .NoLineNumber = False =`KV),\  
         jZP ~!q  
        .FirstLineIndent = CentimetersToPoints(0) CyV(+KBe_  
        .OutlineLevel = wdOutlineLevelBodyText   7)  
        .CharacterUnitLeftIndent = 0 {B)-+0 6  
        .CharacterUnitRightIndent = 0 ]97`=,OUg  
        .CharacterUnitFirstLineIndent = 0 FiW>kTM8  
        .LineUnitBefore = 0 hWfC"0  
        .LineUnitAfter = 0 7MhN>a;A\  
        .AutoAdjustRightIndent = True wH0Ks5  
        .DisableLineHeightGrid = True CZ}%\2>-v  
         3FhkK/@  
        .FarEastLineBreakControl = True a@niig  
        .WordWrap = True (#5TM1/A  
        .Hyphenation = False 8bW,.to(?x  
         !1fAW! 8  
        .HangingPunctuation = True T;Zv^:]0  
        .HalfWidthPunctuationOnTopOfLine = True Olltu"u  
        .AddSpaceBetweenFarEastAndAlpha = True KXbD7N.  
        .AddSpaceBetweenFarEastAndDigit = True \p{$9e;8yT  
        .BaseLineAlignment = wdBaselineAlignBaseline pPnJf{  
    End With -:!FQ'/7E  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False dr W}w+ !  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll t+%tN^87:  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese KdU&q+C^  
    ActiveDocument.Styles("BaseStyle").NoProofing = False HG:9yP<,o  
     X@up=%(  
    '一级标题题样式 Ub%1OQ  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 8w L%(p  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" C ehz]C  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False Lk:Sju  
    With ActiveDocument.Styles("QLNU一级标题").Font _~a5;[~  
        .NameFarEast = "黑体" k!= jO#)Rd  
        .NameAscii = "Arial Black" ;vLg4k  
        .NameOther = "黑体" *8#]3M]  
        .Name = "黑体" O&ZVu>`g  
        .Size = 16              '三号 2kV{|`1  
        .Bold = True 3{R7y  
        .Italic = wdUndefined Ub| -Q  
        .Subscript = wdUndefined y-=YXqj  
        .Superscript = wdUndefined >TB Rp,;r  
    End With }S}9Pm,:  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat GK8x<Aq%z  
         X+;{&Efrl  
        .LeftIndent = CentimetersToPoints(0) C .{`-RO  
        .RightIndent = CentimetersToPoints(0) 'c&S%Ra[3G  
        .FirstLineIndent = CentimetersToPoints(0) I%gDqfdL  
         s7G!4en  
        .LineSpacingRule = wdLineSpaceSingle aOK,Mm:iO  
        .Alignment = wdAlignParagraphCenter Z Vj  
         Hsvu&>[`S  
        .WidowControl = True c/ s$*"  
        .KeepWithNext = True '?j,oRz^T  
        .KeepTogether = True P DtLJt$  
        .OutlineLevel = wdOutlineLevelBodyText i)mQ?Y#o  
         !a<}Mpeg  
        .LineUnitBefore = 0.5 :iVEm9pB)  
        .LineUnitAfter = 0.5 $5S/~8g(  
    End With 9#D?wR#J=  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False rIo)'L$uU  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll -wUw)gJbM  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese z57|9$h}w  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True HqKI|^  
    DoEvents 3_cZaru  
     rWnZIt"  
    '二级 f<}>*xH/k  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ?TEdGe\*  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" J6W "t  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False *h Z{>  
    With ActiveDocument.Styles("QLNU二级标题").Font YpwMfl4  
        .NameFarEast = "黑体" PAHkF&  
        .NameAscii = "Arial Narrow" YDo Vm?  
        .NameOther = "黑体" hB 36o9|9  
        .Name = "黑体" J sc`^a%`'  
        .Size = 15        '小三号 fqQ(EVpQ  
        .Bold = False F` "bMS  
        .Outline = False RY9h^q*  
        .Italic = wdUndefined >+ E  
        .Subscript = wdUndefined 0Er;l|  
        .Superscript = wdUndefined VT~jgsY  
    End With (J,^)!g7  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat !3T,{:gyrI  
        .LeftIndent = CentimetersToPoints(0)  :bBMy\(u  
        .RightIndent = CentimetersToPoints(0) kjOPsz*0  
        .FirstLineIndent = CentimetersToPoints(0) 'H.,S_v1x  
         h:l4:{A64  
        .LineSpacingRule = wdLineSpaceSingle "+GKU)  
        .Alignment = wdAlignParagraphLeft MTUJsH\  
         3,4m|Z2)  
        .WidowControl = True ._5"FUg  
        .KeepWithNext = True ( V^C7ix:  
        .KeepTogether = True +Oa+G.;)o4  
        .PageBreakBefore = False d-BUdIz  
        .OutlineLevel = wdOutlineLevelBodyText jZLD^@AP  
         /C"?Y'  
        .LineUnitBefore = 0.5 f{j (H?5  
        .LineUnitAfter = 0.5 oNK-^N?-T  
         6<N Q/*(/  
    End With -&3mOn& (1  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False Y[WL}:"93  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll C#Y_La  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese 3D*vNVI  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True n\G88)Dv`V  
    DoEvents A:5B6Z  
     <oP"kh<D4  
    '三级标题样式 "O j2B|:s&  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") .X)TRD#MW  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" Wp0L!X=0  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False e~iPN.'1  
    With ActiveDocument.Styles("QLNU三级标题").Font &yt noj1L(  
        .NameFarEast = "宋体" 6Lhfb\2?  
        .NameAscii = "Times New Roman" ji :E  
        .NameOther = "黑体" "- XJZ;5  
        .Name = "黑体" !3 j@gi2  
        .Size = 14               '四号 whdoG{/  
        .Bold = False m#kJ((~  
        .Outline = False 2\, h "W(  
        .Italic = wdUndefined syR +;  
        .Subscript = wdUndefined \$%q< _l  
        .Superscript = wdUndefined w=MiJr#3^  
    End With q;0QI{:5v  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat }8,[B50  
        .LeftIndent = CentimetersToPoints(0) ((T0zQ7=  
        .RightIndent = CentimetersToPoints(0) ~w9.}   
        .FirstLineIndent = CentimetersToPoints(0) ZuIw4u(9  
         i!k5P".o^  
        .LineSpacingRule = wdLineSpaceSingle -D-]tL6w  
        .Alignment = wdAlignParagraphLeft /ig'p53jL  
         4~ YPLu  
        .WidowControl = True 5^+QTQ  
        .KeepWithNext = True z=/xv},  
        .KeepTogether = True +M %zOX/  
        .PageBreakBefore = False 9u2Mra  
        .OutlineLevel = wdOutlineLevelBodyText $Z!7@_Ys  
         %\ef Mhn  
        .CharacterUnitLeftIndent = 0 ?!d\c(5Gt  
        .CharacterUnitRightIndent = 0 C^W9=OH  
        .CharacterUnitFirstLineIndent = 2 rW<sQ0   
         k),!%6\(  
        .LineUnitBefore = 0.5 o6LZ05Z-&  
        .LineUnitAfter = 0 ~!A*@a C  
    End With *4oj' }  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False ;\[ el<Y)s  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll vE=)qn=a  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese F^bzE5#  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True Fo86WP}  
    DoEvents z0Bw+& ^]}  
     1p|}=R  
    '四级标题样式 k,UezuV  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") nm.~~h+8M  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" B^C!UWN>%X  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False G<f"_NT  
    With ActiveDocument.Styles("QLNU四级标题").Font p z]T9ol~  
        .NameFarEast = "宋体" 1deNrmp%  
        .NameAscii = "Times New Roman" 4EtP|  
        .NameOther = "宋体" ;DXcEzV  
        .Name = "宋体" Q $5U5hb  
        .Size = 12               '小四号 >nA6w$  
        .Bold = True Fs|aH-9\  
        .Outline = False mx:)&1  
        .Italic = wdUndefined dD{{G :V  
        .Subscript = wdUndefined ;[}<xw3):  
        .Superscript = wdUndefined )of?!>'S[  
    End With a$K.Or}  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat *'&mcEpg  
         u(92y]3,  
        .LeftIndent = CentimetersToPoints(0) Sgy_?Y  
        .RightIndent = CentimetersToPoints(0) aO'lk  
        .FirstLineIndent = CentimetersToPoints(0) asQXl#4r  
         Pm* N!:u  
        .LineSpacingRule = wdLineSpaceSingle 8p)*;Y  
        .Alignment = wdAlignParagraphLeft FPB O=?H.  
         B}y`E <  
        .WidowControl = True 1s@% q <  
        .KeepWithNext = True +o94w^'^$b  
        .KeepTogether = True alB[/.1  
        .PageBreakBefore = False 1tMs\e-  
        .OutlineLevel = wdOutlineLevelBodyText a&*fk?o  
         *#n?6KqZ  
        .CharacterUnitLeftIndent = 0 +>,4d  
        .CharacterUnitRightIndent = 0 k@i+gV%  
        .CharacterUnitFirstLineIndent = 2 )1!jv!  
         sVjM^y24  
        .LineUnitBefore = 0 ,b/qcu_|-  
        .LineUnitAfter = 0 Q\ AM] U  
         &!E+l<.RF  
    End With {vL4:K  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False RV2s@<0p  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll X\dPQwas M  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese o;D[ F  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True 00d<V:Aoy  
    DoEvents l0%qj(4`6&  
     G6?+Qz r  
    '正文校式 B-`,h pp  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") $% ts#56*  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" O%KP,q&}Y  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False 2kS]:4)T  
    With ActiveDocument.Styles("QLNU正文").Font xct{Tv[FO  
         hb_J . Q  
        .NameFarEast = "宋体" wh~g{(Xvq  
        .NameAscii = "Times New Roman" r6#It$NU  
        .NameOther = "宋体" 7Y>17=|  
        .Name = "宋体" ;[ag|YU$Y  
         $B3<"  
        .Size = 12               '小四号 l(CMP!mY  
         viP.G/(\]  
        .Bold = wdUndefined t|ih{0  
        .Italic = wdUndefined snW=9b)m  
        .Subscript = wdUndefined V&75n.L  
        .Superscript = wdUndefined $aFCe}3b<  
         >%o\Ue  
        .Outline = False \ $PB~-Z  
        .Emboss = False ,iQRf@#W_b  
        .Shadow = False p[zKc2TPk  
        .Hidden = False O DLRzk(  
         {+&qC\YF  
        .DisableCharacterSpaceGrid = True K Qz.g3,  
    End With ! &k}YF  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat F/ODV=J-  
         ^lp#j;Df  
        .LeftIndent = CentimetersToPoints(0) ? !dy  
        .RightIndent = CentimetersToPoints(0) 4%(\y"T  
        .FirstLineIndent = CentimetersToPoints(0) j m]d:=4_  
         {M.OOEcIp  
        .LineSpacingRule = wdLineSpaceExactly !M&Qca2  
        .LineSpacing = 20 I!L`W _  
        .Alignment = wdAlignParagraphLeft 2{sx"/k\A  
         *C*'J7  
        .WidowControl = False yX'f"*  
        .KeepWithNext = False {vf"`#Q9  
        .KeepTogether = False Tf bB1  
        .PageBreakBefore = False Wt%+q{  
        .Hyphenation = False g2&%bNQ-5  
         Hlr[x  
        .OutlineLevel = wdOutlineLevelBodyText {H5a.+-(bE  
         el;eyGa  
       s?irT;=  
        .CharacterUnitLeftIndent = 0 $z>L $,c>  
        .CharacterUnitRightIndent = 0 "GTlJqhk  
        .CharacterUnitFirstLineIndent = 2 5ZXP$.  
         aBN^J_  
        .LineUnitBefore = 0 H:d@@/  
        .LineUnitAfter = 0 v|&Nh?r  
        .SpaceBefore = 0 &`RD5uml  
        .SpaceAfter = 0 M!9gOAQP  
         z~S(OM@olJ  
        .DisableLineHeightGrid = True 4w\@D>@}H  
    End With XmK2Xi;=b  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False M'n2j  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll ^J TrytIB  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese `|Wu\X  
    ActiveDocument.Styles("QLNU正文").NoProofing = True 8-2e4^ g(  
    DoEvents Lcx)wof  
     I)B+h8l72<  
    '图片段落样式 c89+}]mGq  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") oVK3=m@ {  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" BXCB/:0  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False R.FC3<TTv  
    With ActiveDocument.Styles("QLNU图片段落").Font srh>" 2."  
        .Size = 12               '小四号 `k 5'nnyP  
        .Italic = wdUndefined W@vt6v  
        .Subscript = wdUndefined sr=~U q{g  
        .Superscript = wdUndefined 8)wxc1  
    End With l. 9 i `  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat @]rl2Qqe  
         yFYFFv\?  
        .LeftIndent = CentimetersToPoints(0) L>&o_bzp  
        .RightIndent = CentimetersToPoints(0) lD%Fk3  
        .FirstLineIndent = CentimetersToPoints(0) ;_HG 5}i  
         GbLuX U  
        .LineSpacingRule = wdLineSpaceSingle /:YM{,]  
        .Alignment = wdAlignParagraphCenter 94>EA/+Ek  
        .KeepWithNext = True ~ry B*eZH  
        .OutlineLevel = wdOutlineLevelBodyText gtV^6(Y  
         E=-ed9({:  
        .CharacterUnitLeftIndent = 0 ^{IF2_h"  
        .CharacterUnitRightIndent = 0 !6R;fD#^s  
        .CharacterUnitFirstLineIndent = 0 'K L" i  
         $E j;CN59  
        .LineUnitBefore = 0 gB;5&;T:  
        .LineUnitAfter = 0 (&W&1KT  
    End With r\+0J`  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False 5 +Ei! E89  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll Cm~Pn "K_]  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese /3VSO"kcZ  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True  MYD`P2F  
    DoEvents 2+2Gl7" s  
     gyz#:z$p^  
     h2b,(  
    '第X章 )dv w.X  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") %a_ rYrL  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" X#|B*t34  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False Q||v U  
    With ActiveDocument.Styles("QLNU章节标题").Font *Va;ra(V2  
        .NameFarEast = "黑体" Q=,6W:j  
        .NameAscii = "Arial Black" >;$C@  
        .NameOther = "Arial Black" x e~lV  
        .Name = "黑体" Vw^2TRU  
        .Size = 16 A *$JF>`7  
        .Bold = True V+A9.KoI  
        .UnderlineColor = wdColorAutomatic CWTPf1?eB  
        .Outline = False vpS &w  
        .Italic = wdUndefined nD8 Qeem@  
        .Subscript = wdUndefined g?e$B}%  
        .Superscript = wdUndefined GV+K] KDI  
        .Scaling = 100 t==CdCl  
        .DisableCharacterSpaceGrid = True qPn }$1+~  
    End With X3bPBv  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat O7M8!3Eqm  
        .LineSpacingRule = wdLineSpaceSingle  ?)_?YLi  
        .Alignment = wdAlignParagraphCenter |8bqn^@$t  
        .WidowControl = True uX!5G:x]  
        .KeepWithNext = True [eb?Fd~WB]  
        .KeepTogether = True &!xePKvO6k  
        .PageBreakBefore = True / bxu{|.  
        .OutlineLevel = wdOutlineLevelBodyText pdz_qj!Z  
         R 2{kS  
        .LeftIndent = CentimetersToPoints(0) $j+RUelFY  
        .RightIndent = CentimetersToPoints(0) PQkFzyk  
        .FirstLineIndent = CentimetersToPoints(0) o*[n[\cR  
         )}/ ycTs  
        .CharacterUnitLeftIndent = 0 EDl*UG83G  
        .CharacterUnitRightIndent = 0 WS!:w'rzr  
        .CharacterUnitFirstLineIndent = 0 n0ZrgTVJ  
         F1Jd-3ei  
        .LineUnitBefore = 1 R;G"LT  
        .LineUnitAfter = 0.5 /tG0"1{  
         X6hp}  
        .AutoAdjustRightIndent = False _i/x4,=xv  
        .DisableLineHeightGrid = True nOH x^(  
        .FarEastLineBreakControl = True P1r)n{;  
        .WordWrap = True 8(6(,WwP}  
    End With prWK U  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False .qN|.:6a  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll SH009@l_8  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese B$ Z%_j&  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True TbUouoc  
    DoEvents r+0<A.''a  
     u{6b>c|,X  
    '表格标题  .J0Tn,m  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") _5t~g_(1OK  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" iFJ1}0<(x  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False 2@A%;f0Q  
    With ActiveDocument.Styles("QLNU表格标题").Font k Y}r^NaQA  
        .NameFarEast = "楷体" ;*H@E(g  
        .NameAscii = "Arial" KWq&<X5  
        .Name = "楷体" / S 9(rI<'  
        .Size = 10.5 Y-&SZI4H  
        .Bold = True u/I|<NAC,  
        .Underline = wdUnderlineNone DV8b<)  
        .Italic = wdUndefined vj_[LFE  
        .Subscript = wdUndefined Z7="on4  
        .Superscript = wdUndefined |g$n-t  
        .Color = wdColorAutomatic k%|Sl>{Ir  
    End With 5~pQ$-  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat D(' w<9.  
         Z8Jrt3l{2  
        .LineSpacingRule = wdLineSpaceSingle >!U oS  
        .Alignment = wdAlignParagraphCenter 6SJryf~w  
        .KeepWithNext = True HGwSsoS  
        .KeepTogether = True Q{:5gh  
        .OutlineLevel = wdOutlineLevelBodyText 7gk}f%,3P  
         ;v*J:Mn/=  
        .LeftIndent = CentimetersToPoints(0) (}#8$ )  
        .RightIndent = CentimetersToPoints(0) \~(scz$  
        .FirstLineIndent = CentimetersToPoints(0) (uxe<'Co|  
         /O^aFIxk  
        .CharacterUnitLeftIndent = 0 ma gZmY~  
        .CharacterUnitRightIndent = 0 x$:P;#  
        .CharacterUnitFirstLineIndent = 0 dr[sSBTY"  
         Bi dTrO  
        .LineUnitBefore = 1 Un~8N  
        .LineUnitAfter = 0 F3%8E<QZd;  
         m\0Xh*  
    End With j_ \?ampF  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False _x2i=SFo*$  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll !:GlxmtoW?  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese mw\ z'  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True or8`.h EHI  
    DoEvents 9tMaOm  
KkIgyLM  
    '表格首行 6H#4iMeh  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") |h7 d #V>  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False H,{WrWA  
    With ActiveDocument.Styles("QLNU表格首行").Font Ue=Je~Ri;9  
        .NameFarEast = "楷体" @{X<|,W9w  
        .NameAscii = "Times New Roman" G0izZWc  
        .Name = "楷体" ?_@_NV MY  
        .Size = 9 jQ"z\}Wf  
        .Bold = True &c|3v!  
        .Underline = wdUnderlineNone 2m*g,J?ql  
        .Italic = wdUndefined kA"|PtrW  
        .Subscript = wdUndefined ;UAi>//#   
        .Superscript = wdUndefined Qvx[F:#Tk  
    End With C)a;zU;9  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat e2dg{n$6"  
        .LineSpacingRule = wdLineSpaceSingle XHh !Q0v;  
        .Alignment = wdAlignParagraphCenter R/O>^s!Co  
         pnpx`u;  
        .LeftIndent = CentimetersToPoints(0) &>xd6-  
        .RightIndent = CentimetersToPoints(0) \Zgc [F  
        .FirstLineIndent = CentimetersToPoints(0) 2}BQ=%E!'  
         :;g7T-_q  
         +NT8dd  
        .CharacterUnitLeftIndent = -0.5 2LTMt?  
        .CharacterUnitRightIndent = -0.5 L%CBz]`  
        .CharacterUnitFirstLineIndent = -0.5 +W7#G `>  
         JQ~[$OGH  
        .LineUnitBefore = 0 'Zket=Sm;  
        .LineUnitAfter = 0 }t FRl  
        .SpaceBefore = 0 :,@\q0j"=  
        .SpaceAfter = 0 <y4WG  
         )ZQ>h{}D  
    End With Po1/_# mu  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False v] ?zG&Jh  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll ]Uu:t  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese 6/=0RTd  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True uE]Z,`e  
    DoEvents l2*o@&.  
|b+ZKRW  
    '表格内容 TS Ev^ u)3  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") Dga;GYx  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False e*!0|#-  
    With ActiveDocument.Styles("QLNU表格内容").Font "8#EA<lsS  
        .NameFarEast = "楷体" }ZKG-~  
        .NameAscii = "Times New Roman" I;g>r8N-Bu  
        .Name = "楷体" u(Kof 'p7  
        .Size = 9 6]^~yby P  
        .Bold = False Pe,:FIp,  
        .Underline = wdUnderlineNone i>aIuQ`pe  
        .Italic = wdUndefined \+T U{vr  
        .Subscript = wdUndefined y(fJ{k   
        .Superscript = wdUndefined t9\}!{<s  
    End With DfsPg':z  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat I yPk3N  
        .LineSpacingRule = wdLineSpaceSingle ,s~d39{  
        .Alignment = wdAlignParagraphCenter v(`9+*  
         ^Mmsja5K  
        .LeftIndent = CentimetersToPoints(0) ng6".u9  
        .RightIndent = CentimetersToPoints(0) QUO'{;,  
        .FirstLineIndent = CentimetersToPoints(0) 1KMSBLx  
         xo.k:F  
        .CharacterUnitLeftIndent = -0.5  %ZR<z$  
        .CharacterUnitRightIndent = -0.5 Q|7$SS6$  
        .CharacterUnitFirstLineIndent = -0.5  v[+ ]  
        .LineUnitBefore = 0 y7ZYo7avg  
        .LineUnitAfter = 0 B'D\l\w  
        .SpaceBefore = 0 4/ ?@ %  
        .SpaceAfter = 0 Pea2ENe3  
    End With @km@\w  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False UID0|+%Y  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll =H_vRd  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese 7@NV|Idtd  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True 5kx-s6 `!  
    DoEvents b9Mp@I7Q-  
r^v1_u, 1I  
    '图片标题 ]5',`~jkF  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 8fSY@  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" hqW),^\>'  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False 4Nl3"@<$  
    With ActiveDocument.Styles("QLNU图片标题").Font Gpf9uj%  
        .NameFarEast = "楷体" {~"fq.h!M  
        .NameAscii = "Times New Roman" Q`m9I  
        .Name = "楷体" 8n"L4jb(:  
        .Size = 10.5 xh:A*ZI=7  
        .Bold = True oWb\T 2!m  
        .Underline = wdUnderlineNone !Pc&Sg  
        .Italic = wdUndefined \n<9R8g5  
        .Subscript = wdUndefined /_[?i"GW  
        .Superscript = wdUndefined Z4s+8cTHn  
        .Outline = False pdySip<  
        .Shadow = False eD,'M  
        .Color = wdColorAutomatic V]5MIiNl  
    End With )C>8B`^S  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat HPc~wX  
        .LineSpacingRule = wdLineSpaceSingle UGDB4S  
        .Alignment = wdAlignParagraphCenter L6 IIk  
         Aryp!oW  
        .KeepWithNext = wdUndefined WS6;ad;|  
        .KeepTogether = True ''?iJFR  
        .OutlineLevel = wdOutlineLevelBodyText !I jU*c@  
         %}}?Y`/W )  
        .LeftIndent = CentimetersToPoints(0) 0$BX8?Z  
        .RightIndent = CentimetersToPoints(0) Kn*LwWne  
        .FirstLineIndent = CentimetersToPoints(0) PSHzB! H=n  
         1'YUK"i  
        .CharacterUnitLeftIndent = 0 ?ocBR la  
        .CharacterUnitRightIndent = 0 NA!?.zn  
        .CharacterUnitFirstLineIndent = 0 +'0V6 \y  
         7ND4Booul  
        .LineUnitBefore = 0 VD~ %6AjyN  
        .LineUnitAfter = 0 v];P| Fi  
    End With 1}Th@Vq  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False _lBHZJ+  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll 8.zYa(< 2  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese FI"KJk'  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True g-4j1yJV<  
    DoEvents *_sSM+S  
`>Ms7G9S~e  
    '目录项 TXS{=  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") `rest_vu  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" < # zd]t  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False 2 -pv &  
    With ActiveDocument.Styles("QLNU目录项").Font 3jx/1VV  
        .NameFarEast = "黑体" HV=P! v6  
        .NameAscii = "Times New Roman" +yI2G! $T9  
        .NameOther = "Times New Roman" bk|?>yd  
        .Name = "黑体"  "SA*  
        .Size = 10.5 ?3y>K!D(A  
        .Bold = False G$[Hm\V  
        .Italic = wdUndefined qs>&Xn  
        .Underline = wdUnderlineNone A=+1PgL66  
        .Color = wdColorAutomatic 8gxo{<,9  
        .Superscript = wdUndefined {_R{gpj'  
        .Subscript = wdUndefined Gzc`5n{"  
    End With &Lbh?C  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat #H]c/  
         _%wB*u,X  
        .LineSpacingRule = wdLineSpaceSingle `b KJ  
        .Alignment = wdAlignParagraphLeft +Kp8X53  
         69S*\'L  
        .WidowControl = False )4R[C={  
        .KeepWithNext = False :(YFIW`59  
        .KeepTogether = False g=$nNQ \6=  
        .PageBreakBefore = False O$7cN\Z  
        .NoLineNumber = False zSagsH |W  
        .OutlineLevel = wdOutlineLevelBodyText .#}A/V.-Y  
         W1JvLU5L*r  
        .LeftIndent = CentimetersToPoints(0) .sSbU^U   
        .RightIndent = CentimetersToPoints(0) AAF']z<4_"  
        .FirstLineIndent = CentimetersToPoints(0) +xS<^;   
         +GEdVB  
        .CharacterUnitLeftIndent = 0 +45.fo  
        .CharacterUnitRightIndent = 0 YQ>O6:%  
        .CharacterUnitFirstLineIndent = 0 CT/>x3o  
         73l,PJ  
        .LineUnitBefore = 0 c t@3]  
        .LineUnitAfter = 0 >mj WC) U  
    End With VA  @  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False i1 c[Gk.o  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll #y f  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot n)PqA*  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese B9wQ;[gQB  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True ~U4Cf >  
    DoEvents :W#?U yo  
     OHv4Yy]$B  
    '参考文献 hd W7Qck"  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") QYEGiT   
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" >avkiT2  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False 7ufTmz#j<  
    With ActiveDocument.Styles("QLNU参考文献").Font SB`xr!~A]  
        .NameFarEast = "宋体" 9 ^=kt 2[  
        .NameAscii = "Times New Roman" d~q7!  
        .NameOther = "Times New Roman" n-{.7  
        .Name = "Times New Roman" L]q%;u]8!  
        .Size = 12 KMx '(  
        .Bold = False b!qlucA eE  
        .Italic = wdUndefined 6OR)97  
        .Subscript = wdUndefined kP1cwmZ7F  
        .Superscript = wdUndefined ( 6ucA  
        .Underline = wdUnderlineNone iD<}r?Z  
        .UnderlineColor = wdColorAutomatic OQVo4yl"  
        .Color = wdColorAutomatic ; o(:}d  
        .Engrave = False VAp  1{  
    End With OBf$Z"i  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat X/ Ii}X/p  
         n5y0$S/ D  
        .LineSpacingRule = wdLineSpaceExactly 4 |UtE<<b  
        .LineSpacing = 16 oA8A @,-L  
        .Alignment = wdAlignParagraphLeft g "N&*V2  
        .WidowControl = False t$b5,"G1  
        .KeepWithNext = False %{jL+4veoL  
        .KeepTogether = False ]GDjR'[z  
        .PageBreakBefore = False fg/hUUl  
        .OutlineLevel = wdOutlineLevelBodyText )"]( ?V  
         6]mAtA`Y  
        .LeftIndent = CentimetersToPoints(0) Z&n#*rQ7[  
        .RightIndent = CentimetersToPoints(0) [Wxf,rW i  
        .FirstLineIndent = CentimetersToPoints(0) :kC*<f\  
         J&bMox  
        .CharacterUnitLeftIndent = 0 )d>Dcne  
        .CharacterUnitRightIndent = 0 XePGOw))O  
        .CharacterUnitFirstLineIndent = -2 >`<qa!9  
         dM-~Qo  
        .LineUnitBefore = 0 n(.L=VuXn  
        .LineUnitAfter = 0 =7EkN% V:{  
        .SpaceBefore = 0 w,j;XPp  
        .SpaceAfter = 0 z'*{V\  
         TAq[g|N-;  
    End With ,BR W=  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False NZ?dJ"eq7  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll )2 b-3lz  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS [ #fz [U  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True B>[myx  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese 3_>=Cv}  
    DoEvents EHfB9%O7y  
ikO9p|J  
    ' 5lyHg{iqD  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") I|Mw*2U  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" >3}N;  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False Lj/  
    With ActiveDocument.Styles("QLNU论文题目").Font g9Ty%|Q7(  
        .NameFarEast = "黑体" u $B24Cy.  
        .NameAscii = "Arial Black" 8tO.o\)h  
        .NameOther = "Arial Black" q. j$]?PQ  
        .Name = "Arial Black" {"*_++|  
        .Size = 16 u4'B  
        .Bold = False U;M !jj  
        .Italic = wdUndefined e'p" gX  
        .Superscript = wdUndefined $W9dUR0  
        .Subscript = wdUndefined v3(0Mu0J  
        .Underline = wdUnderlineNone h+S]C#X,}  
        .UnderlineColor = wdColorAutomatic |pBvy1e4)  
        .Color = wdColorAutomatic P0RtS1A  
-C8LM ls  
    End With 3S1{r )[j  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat |v<4=/.  
        .LineSpacingRule = wdLineSpaceSingle 0<##8m@F8  
        .Alignment = wdAlignParagraphCenter J ~KygQ3%  
        .WidowControl = True Oc-ia)v1G  
        .KeepWithNext = True 5RP5%U  
        .KeepTogether = True \Y`psSf+  
        .PageBreakBefore = True ge1U1o  
        .NoLineNumber = False cM\BEh h  
        .OutlineLevel = wdOutlineLevelBodyText NErvX/qK  
         AmQsay#I_  
        .LeftIndent = CentimetersToPoints(0) PS0 /O k  
        .RightIndent = CentimetersToPoints(0) %/BBl$~ji  
        .FirstLineIndent = CentimetersToPoints(0) )-h{0o  
         ,!X:wY}dW  
        .CharacterUnitLeftIndent = 0 etQS&YzC  
        .CharacterUnitRightIndent = 0 [Fv_~F491  
        .CharacterUnitFirstLineIndent = 0 Qwp2h"t`  
         g?K? Fn.}  
        .LineUnitBefore = 1 ? A04qk  
        .LineUnitAfter = 1 *?VB/yO=0  
         A|GsbRuy  
        .BaseLineAlignment = wdBaselineAlignAuto V{ ~~8b1E  
    End With w ~^{V4V  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False 5bd4]1 gj  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll jUDE)~h  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS BU7QK_zT:  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True k=G c#SD5_  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese =dmxE*C  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True f0YBy<a  
    DoEvents V;Q@' <w  
     0#ON}l)>  
    '中文摘要 DiZ;FHnaG?  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") Kjpsz];  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" [^XD @  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False $`R =Q  
    With ActiveDocument.Styles("QLNU中文摘要").Font m)]|mYjju  
        .NameFarEast = "宋体" !)}D_9{  
        .NameAscii = "Times New Roman"  4G hg~0  
        .NameOther = "Times New Roman" :&LV^ A  
        .Name = "Times New Roman" )6eFYt%c  
        .Size = 12 zy.v[Y1!  
        .Bold = wdUndefined j,Qb'|f5  
        .Superscript = wdUndefined Q.\vN-(  
        .Subscript = wdUndefined O&}R  
        .Italic = wdUndefined P.(z)!]  
        .Underline = wdUnderlineNone >FJK$>[1:p  
        .UnderlineColor = wdColorAutomatic g|h;*  
        .Color = wdColorAutomatic R]RLy#j  
    End With ,Ek6X)|@  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat 9$}> O]  
        .LineSpacingRule = wdLineSpaceExactly :XTxrYt28  
        .LineSpacing = 20 &Aym@G|k?  
        .Alignment = wdAlignParagraphLeft Ga V OMT  
         r{_1M>F D!  
        .WidowControl = False 54/ZGaonz  
        .KeepWithNext = False c8HETs1  
        .KeepTogether = True wUfPnAD.'  
        .PageBreakBefore = False $Rn9*OKr  
        .NoLineNumber = False :9(w~bB9$  
        .OutlineLevel = wdOutlineLevelBodyText P7REE_<1  
         EW3--33s  
        .LeftIndent = CentimetersToPoints(0) e@& 2q{Gi=  
        .RightIndent = CentimetersToPoints(0) P ?96;  
        .FirstLineIndent = CentimetersToPoints(0) uax kGEXr  
         L`fT;2  
        .CharacterUnitLeftIndent = 0 1_StgFu u  
        .CharacterUnitRightIndent = 0  9*Fc+/  
        .CharacterUnitFirstLineIndent = 2 v[ R_6  
        .LineUnitBefore = 0 |CK/-UG}  
        .LineUnitAfter = 0 t}MT<Jj  
         f# hmMa  
    End With B B^81{A  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False G^SDB!/@J  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll FI)0.p  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS 4VkJtu5  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True W .Al\!Gi  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese z6 h/C {  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True yVJ)JhV  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete 1F+nWc2b  
    DoEvents =/\l=*  
     6UuM `eu  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") +vPCr&40  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" ~q}]/0-m  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False zy~*~;6tW  
    With ActiveDocument.Styles("QLNU英文标题").Font AJ6O>Euq  
        .NameFarEast = "黑体" 238z'I+$G/  
        .NameAscii = "Arial Narrow" V#c=O}  
        .Name = "Arial Narrow" @V@<j)3P  
        .Size = 16 t+jdV  
        .Bold = True 84s:cO  
        .Bold = wdUndefined ]eX(K5 A  
        .Superscript = wdUndefined 2uMSeSx$  
        .Subscript = wdUndefined IVeA[qA0  
        .Italic = wdUndefined BZjL\{IW  
         T(k:\z/  
        .Underline = wdUnderlineNone mXM U  
        .UnderlineColor = wdColorAutomatic AboRuHQ  
        .StrikeThrough = False I;9DG8C&v*  
        .DoubleStrikeThrough = False E~8J<g E  
    End With a)6?:nY$  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat :K(+ KN(  
        .LineSpacingRule = wdLineSpaceSingle RLGIST`  
        .Alignment = wdAlignParagraphCenter ZW 5FL-I  
        .WidowControl = True };*&;GFe  
        .KeepWithNext = False Xob(4  
        .KeepTogether = False EJJ&`,q  
        .PageBreakBefore = False f9'dZ}B  
        .NoLineNumber = False zOJzQZ~  
        .FirstLineIndent = CentimetersToPoints(0) M?kXzb\O  
        .OutlineLevel = wdOutlineLevelBodyText N ]GF>kf:  
         'lgS) m  
        .LeftIndent = CentimetersToPoints(0) h*sL' fJ]  
        .RightIndent = CentimetersToPoints(0) 3ZvQUH/{W  
        .FirstLineIndent = CentimetersToPoints(0) MW=rX>tE  
         J`wx72/-ZW  
        .CharacterUnitLeftIndent = 0 s8k4e6ak  
        .CharacterUnitRightIndent = 0 #jg3Ku;Y  
        .CharacterUnitFirstLineIndent = 0 $]?M[sL\N7  
         5z" X>!?^  
        .LineUnitBefore = 1 JqEo~]E]  
        .LineUnitAfter = 1 ;)sC{ "Jb  
         rKl  
    End With B<~BX [  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False Hq,N OP  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll u:,B&}j  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS -&QpQ7q1  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True SV^[)p )  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese 7'@~TM  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True +Lo,*  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete I#W J";kqB  
    DoEvents ESe$6)P  
4 X0ku]  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") ,{Z!T5 |  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" !{ORFd  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False E clsOBg  
    With ActiveDocument.Styles("QLNU英文摘要").Font >-(,BfZ  
        .NameFarEast = "宋体" 7}tXF  
        .NameAscii = "Arial" ZZ>(o d!B  
        .NameOther = "Arial" <S0gIg`)  
        .Name = "Arial" ]_4HtcL4  
        .Size = 12 .;&4'ga 4  
        .Bold = wdUndefined %y)LBSxf  
        .Italic = wdUndefined ;|oem\dKv  
        .Superscript = wdUndefined 5g2:o^  
        .Subscript = wdUndefined Nm3CeU  
    End With y"zZ9HQM  
     0rc'SEl  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat [Fr <tKtB  
         }jg,[jw_"X  
        .LineSpacingRule = wdLineSpaceExactly X C '|  
        .LineSpacing = 20 ^5-SL?E  
         zZ8:>2Ps(  
        .Alignment = wdAlignParagraphJustify al4X}  
         !'=< uU-  
        .WidowControl = False > }86#^F  
        .KeepWithNext = False QVD^p;b  
        .KeepTogether = False z~;@Mo"*f  
        .PageBreakBefore = False ?6:e%YT  
        .NoLineNumber = False Angt=q  
         IY|>'}UU#  
        .OutlineLevel = wdOutlineLevelBodyText t5S!j2E  
         @EH@_EwYV  
        .LeftIndent = CentimetersToPoints(0) M7neOQHq  
        .RightIndent = CentimetersToPoints(0) @%6"xnb `  
        .FirstLineIndent = CentimetersToPoints(0) <ol? 9tm  
         XZ|\|(6Cc  
        .CharacterUnitLeftIndent = 0 1*B'o<?P1  
        .CharacterUnitRightIndent = 0 .L_ Hk  
        .CharacterUnitFirstLineIndent = 2 =AeOkie  
         _No<fz8  
        .LineUnitBefore = 0 }`uq:y  
        .LineUnitAfter = 1 *(nu0  
         .3xf!E*  
    End With RP 6hw|  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False w.Go]dpK  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll 8ZDWaq8^2N  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS L#/<y{  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False ES []A&tf  
    DoEvents S2$r 6T  
(KT+7j0^  
    Options.Pagination = True 6H|&HV(!R  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." {)- 3g~  
    DoEvents ABhQ7 x|  
    ActiveDocument.Repaginate /qXP\ a  
GUsJF;;V  
End Sub z-`4DlJUS  
>7QC>ws%  
< z{,@Z}  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: $eh>.c'&]  
'_o(I  
用VBA控制WORD自己修订学生毕业文的格式。 $(pVE}J  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

OG}m+K&<  
p*" H&xA@  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 a+Z95~*sZ"  
第6车皮 Y>i?nC%*  

# ^~[\8v>  
j[<}l&  
第9车皮 O4i5 fVy{  
P(#by{s  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 ZH<:YOQ  
)|?s!rw +  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 6.!Cm$l  
8- U1Y  
Main2.bas = UT^5cl(  
}bxW@(bs  
Attribute VB_Name = "SubMain" ;/Z9M"!u[  
Option Explicit ]'2;6%. 4  
x!08FL)  
'采集文件与临时文件 <[e E5X(  
Public Const TmpFile As String = "d:\30-0600.dat" ~K-c-Zs#z  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 3 0fsVwE2  
&(] @L\A  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long !F_BLHig  
Public hBCFile As Long  '记录采集参数的文件 dM nJ)R  
Public Const TmpBMP As String = "d:\1.bmp" z!r-g(^G  
Public hTmpFile As Long CAhkv0?8  
Gx]J6Z8  
z"@yE*6  
'采集窗口参数常量 i,Q{Z@,  
Public Const FrameH As Long = 280& D~i m1h;>  
Public Const FrameW As Long = 768& y.l`NTT] <  
Public Const pFrameSize As Long = FrameW * FrameH m.}Yn,  
(A\ p5@ht  
'标志区范围,用于识别车辆 1b,,uI_  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X :bhpYEUMx  
Public Const mkW As Integer = 28  '识别标志立柱宽度 Wp[R$/uT  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) ;QA`2$O w  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) 9{;cp?\)M  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 eKq`t.*Ft  
'车缝检测位置常数 $YX\&%N  
Public Const sSize As Long = 32& F(w  
Public Const sPos As Long = 310& `T gwa  
Public Const sPosL As Long = 200& 0~5'O[NhF  
Public Const sPosR As Long = 500& 4t0B_o"  
'车缝检测框位置 zIyMq3  
Public Slice(1 To sSize, 1 To FrameH) As Byte !e}LB% zf  
Public SliceL(1 To sSize, 1 To FrameH) As Byte JToc ("V  
Public SliceR(1 To sSize, 1 To FrameH) As Byte ,(6U3W*bu  
Public avSL As Integer, avSLR As Integer, avSLL As Integer ;;9W/m~]  
JIl<4 %A  
7eh<>X!TX  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 4\.1phe$a  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 *P#okwp  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 YB^[HE\#y  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long d&dp#)._8  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte $&@L[[xl  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 TfYX F`d  
Z*}5M4  
LvsNU0x  
]+SVQ|v0  
'一次连续采集的帧数 S-^RZ"  
Public tFrames As Long YM idSfi  
I'_u4  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 =-r[ s%t &  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 = 2 3H/  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize 0 s-IW  
vT#$`M<  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte {PXN$p:'  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte b0A*zQA_)  
Public pWorkSpace(1 To FrameW * FrameH) As Long VZ`L-P$AF  
Public Const pBufferSize As Long = FrameW * FrameH * 2 *<PQp   
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 }w0>mA0=H  
uK:?6>H  
Public hBoard As Long   '采集卡标识 cZ@z]LY.g  
Public mBufferAddr As Long  '缓存地址 0<8p G:BQ  
Public BufferSize As Long  '缓存大小(字节)  f:_\S  
Public iCurrentCard As Long thYG1Cs  
Public CapStatus As Long $rAHtr  
Public iFrames As Long 1@j0kTJ~m  
Public currentBr As Byte, currentContr As Byte )jh4HMvmC  
Jzg>Y?jN R  
Public hMEM As Long, mStatus As Long 7g}lg8M  
Public Const hMemSize As Long = pFrameSize * 4 :3z`+5Y*  
Public hMemWork As Long RGw=!0V  
Public Const hMemWorkSize As Long = pFrameSize * 5 J P2zom  
GvL)SVv?  
CMm:Vea  
'Y ZYRFWXM  
'串口接收轨道衡数据 Kd?TIeFE  
Public WeightFromCom As String F ;o ^.  
Public bReceiveComplete As Boolean cK;,=\  
qH3|x08  
RJo"yB$1e6  
Public Type GrayBMPHeader SD"'  
  Tag As Integer ^r u1QDT  
  FileLength As Long    '文件大小 j{i3lGaN  
  Reserve1 As Long oJcDs-!  
  DataOffset As Long    '图像数据偏移量 TV~ <1vj  
  BMPHeaderSize As Long  '文件头长 MT8BP)C  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… x-Kq=LFy.  
                        'the following sizes are possible: [Ch)6p  
                        '28h - windows 3.1x, 95, nt, … ]}3AP!:  
                        '0ch - os/2 1.x %6\e_y%  
                        'f0h - os/2 2.x HAHv^  
u7_IO  
  ImageWidth As Long           '图像宽(像素数) \"]vSx >  
  ImageHeight As Long          '图像高(像素数) ^^u{W|'CaH  
  PlaneNumber As Integer  '图像层数 -'j_JJ  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap \GL!x 7s1A  
                                        '4 - 16 color bitmap 'l%b5:  
                                        '8 - 256 color bitmap qno8qF*  
                                        '16 - 16bit (high color) bitmap y<Hka'(%  
                                        '24 - 24bit (true color) bitmap ?R  4sH  
                                        '32 - 32bit (true color) bitmap 3;wAm/Z:Q  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) gEVN;G'B<=  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) "ooq1 0P  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) {bxTODt@  
                                    '3 - bitfields (also identified by bi_bitfields) l\PDou@5  
  IMAGESIZE As Long  '图像数据字节数 (vq0Gl  
  hResolution  As Long  '水平分辩率  像素数/米  As&=Pb9  
  vResolution  As Long  '垂直分辩率 e/pZLj]M  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 @a08*"lbp  
  ImportantColors As Long 8X6F6RK6,1  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 5J d7<AO_  
End Type [jPUAr}  
aZ[ aZU  
J}Q4.1WG$  
_Eus<c  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader Q>jx`68'KI  
Public sRECT As RECT O F$0]V  
e)pQh& uD  
Htg,^d 5  
Public conn As ADODB.Connection j.? '*?P  
Public rsTrain As ADODB.Recordset 'y(;:Kc  
Public rsOperater As ADODB.Recordset 6qW/Td|g  
Public rsGoods As ADODB.Recordset T6gugDQ~.  
Public rsGood2 As ADODB.Recordset o"^+i#H!  
Public rsSender As ADODB.Recordset Q\pTyNAYn  
Public rsReceover As ADODB.Recordset Pc+8CuN?  
Public rsTrainTMP As ADODB.Recordset  V Ae@P  
k 8C[fRev  
1o&] =(  
'打开采集卡 %^e~;i=2  
'设置参数 5 pJ)OX  
'设置为实时单帧采集到缓存方式 <Yzk]98W5.  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 4fK(<2i  
k<aKT?Ek>  
\7W4)>At-  
Sub Main() ,/d R  
  Dim i As Integer, status As Long -8j<`(M' 5  
     HgHhc&-  
   InitBMPinfo 4eZ  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 [I4:R_\  
    BMPHeader.Tag = &H4D42 ]}KoW?M  
    BMPHeader.ImageWidth = FrameW IO,ddVO  
    BMPHeader.ImageHeight = FrameH ^ :%"Z&  
    BMPHeader.BMPHeaderSize = &H28 o5!"dxR  
    BMPHeader.PlaneNumber = 1 L aI(  
    BMPHeader.bpp = 8 _/@VV5Mq  
    BMPHeader.Compression = 0 gk"0r\Eq  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 c4]/{!4 Q  
    BMPHeader.vResolution = &H1274 K+9oV[DMs  
    BMPHeader.ColorsinBMP = 256 4 1w*<{Lk  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP (8M^|z}q  
    BMPHeader.DataOffset = Len(BMPHeader) jwm2ZJW  
    For i = 0 To 255 z:RclDm  
      BMPHeader.Pallate(i) = RGB(i, i, i) t7A '  
    Next i XS$5TNI  
    BMPHeader.IMAGESIZE = FrameH * FrameW _R&}CP  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE ~]+-<O^U~  
80PlbUBb!  
l>l)m-;O  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) 3=6`'PKRQ  
     c$X0C&m  
    BMP1.ImageWidth = FrameW K k 5 vC{  
    BMP1.ImageHeight = FrameH * 2 cY%[UK$l  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight  tCT-cs  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE Kd 2?9gaw  
s0,\[rM  
  '确定标志位置,为pilarX, pilarY确定初始值 oV4+w_rrLc  
   PilarW = mkW ")J\} $r  
   PilarH = mkH  '此两项为固定值 OYcf+p"<\  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) q4].C|7   
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 Y^zL}@  
   L@ ,-V  
   ya!RiHj  
  '连续采集记录文件 <SiD m-=E  
  ' 建立一个缓冲区为页对齐方式的文件 Dj=OUo[[d  
  If Dir(TmpFile) <> "" Then s[ {L.9Y  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ bjgf8427I  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) .rfufx9Sw  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 R|7yhsJq,  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 r"yA=d'c  
  Else Q o}&2m  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ )_*<uSl  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) F[q:jY  
  End If %+PWcCmn  
  If hFile = 0 Then +UzFHiGy#  
    MsgBox TmpFile & ": File Open Error", vbOKOnly 0_Gi1)  
    Exit Sub : K%{?y  
  End If ZTCzD8  
  '采集参数记录文件 .'3&!#3  
hBCFile = FreeFile() #[.vfG  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile cR; zNS  
   l `D>h2]  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 Y2&>;ym!  
If hMEM = 0 Then W$&kOdD!$  
    fStatus = GetLastError F-!,U)  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ h/h`?vWu  
     & "请向技术人员报告该错误代码。", vbOKOnly g[VVxp!C<  
    CloseHandle hFile s%tPGjMq  
    Exit Sub m$T?~o o  
End If E0K'|*  
h @{U>U7  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) }*WNrS">S  
If hMemWork = 0 Then 4@,d {qp~  
    fStatus = GetLastError ;>*l?m-S@n  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ '4gi*8Y  
     & "请向技术人员报告该错误代码。", vbOKOnly ]=2wQ8  
     '释放已成功分配的内存 em^|E73  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) GCN(  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) D`nW9i7  
     Ka[@-XH  
    CloseHandle hFile dXAKk[uf  
    Exit Sub `;[ j`v8O  
End If B{fPj9Y0  
]X:{y&g(  
' Test writing ]+1?T)<!  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& 19 h7 M  
     @Y/PvS 8!  
   '初始化采集卡参数 X#l]%IrW!  
   iCurrentCard = -1 VE4Z;Dr "  
   hBoard = okOpenBoard(iCurrentCard) Z]$RO  
   Debug.Print hBoard 8no_ xFA  
   If hBoard = 0 Then /O"IA4O  
      ExitGrabber j, SOL9yg  
      End .#"O VI]#  
   End If _xgF?#  
   okGetBufferSize hBoard, mBufferAddr, BufferSize zYf `o0U  
   If mBufferAddr = 0 Then I] qml2  
     MsgBox "缓存不存在!" i^c  
     ExitGrabber m'Jk!eo  
   End If ]~my<3j}or  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) @@L@r6  
   hFORs.L&G  
   =NyN.^bwT  
   currentBr = 128: currentContr = 128 + y!B`'J  
   '设置视频输入参数 wRgh`Hc\}  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 g8 (zvG;Y  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input iI_ad7,u  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 ->DfT*)  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 \3P.GS{l  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 8 *@knkJ  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 {}Y QB'}  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) (*63G4Nz\  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) @\[UZVmBw  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) 7%p[n;-o&  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 \;0J6LBc  
   w(w%~;\kLP  
   '设置采集参数 =^. f)  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 I(6k.PQ  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 DlB"o.  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 [al,UO  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 "j+zd&*={  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 FA 1E`AdU  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 s : c  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 !^Mk5E(  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 |yE_M-Nc  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 zk+&5d 4(  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 #q{i<E 07  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 (mq 7{ ;7y  
   P8DT2|Z6f]  
   m5HP56a  
   okCloseBoard hBoard 2ql7*g?Uq@  
   Sleep 50  3nfw:.  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 jEQr{X7bEL  
   K&(}5`H0=  
   '设置数据传送方式 PP+{zy9Sb  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 pWo`iM& F  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 9/$D&tRN  
   !!Tk'=t9"3  
   sRECT.Right = -1   '用于获得当前设置值 ei 1(A  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) PV?XpT  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom Ndj9B|s_  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 c5_?jKpl  
   sRECT.Left = 0 v:s.V>{"S  
   sRECT.Top = 0 ;6N@raP7  
   sRECT.Right = sRECT.Left + FrameW Xg*IOhF6x  
   sRECT.Bottom = sRECT.Top + FrameH * 2 4l! ^"=rh  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) +MG(YP/ l  
   WNkAI9B  
   sRECT.Right = -1   '检查新设置值 qzv$E;zAl  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) zx7*Bnu0  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom =>ooB/  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) ien >Ou  
   8fpaY{]  
   If TESTSignal = False Then u@SE)qg  
      'ExitGrabber a jy.K'B*  
   End If HR'r~ #j  
   :0BaEqX  
   &(!Sy?tNe  
   @";z?xj  
   '设为实时采集状态 h,Y MR3:X  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) pm<zw-  
   'U<-w$!f+^  
   E.v~<[g  
   '单帧采集 C3fSSa%b  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 ^FSUK  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) }Sa2s&[<  
   okCaptureTo hBoard, BUFFER, 0, 1 'single x Z2 }1D  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 lhm=(7Y  
   '   Sleep 20 J-g#zs  
   'Loop {Y{*(5YV  
   okGetCaptureStatus hBoard, True c1 j)  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize 7+aTrE{  
   '写入768*576测试图象 A(y^1Nm  
   ArrayToBMP TmpBMP -Z&6PT7  
   y}jX/ Ln  
   '打开数据库 L2>UA<@mZ  
   Set conn = New ADODB.Connection D$k40Mz  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ M 7j0&>NTG  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ n50XGv  
      "; Mode=Read|Write" jREj]V>  
   conn.Open 4kO[|~#  
   5q[0;`J  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) ZVotIQ/Q'  
   frmRecord.Visible = True A3%s5`vNvH  
   frmQuery.Visible = True 2Up1 FFRx  
   Load frmReceiveFromComm Tfc5R;Rw  
   $rf4h]&<  
   '调试参数 +O23@G?x  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then jRXpEiM  
     SignalBox.Visible = True }?B=R#5  
   End If fRo_rj _  
   If InStr(UCase(Command()), "/COMM") > 0 Then >So)KB  
     frmReceiveFromComm.Visible = True t5h]]TOz  
   End If )L#C1DP#  
j3QpY9A  
End Sub X<s']C9c  
(80#{4kl  
Sub ExitGrabber() |RQ19m@  
  '关闭数据库 \(_FGa4j  
  '关闭采集卡 _5Q?]-M  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) =Haqr*PDx  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) jqHg' Fq  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) 2BOe,giy  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) }'{39vc .  
  okStopCapture hBoard Z(AI]wk3<  
  okCloseBoard hBoard Yo:l@(  
  CloseHandle hFile ADRjCk}I  
  Close #hBCFile .?b2Bd!MC  
  conn.Close -A}*Aa'\  
  End c@:L7#8  
End Sub CQfrAk4mu  
uV<I!jyI  
Function ArrayToBMP(ByVal File As String) {H eIY2  
Dim BytesWrite As Long D%cWw0Oq  
G.K3'^_  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ m3]|I(]`Xe  
  CREATE_ALWAYS, 0&, 0&) HxJKS*H;  
m`UNdFS  
If hTmpFile = 0 Then  =%AFn9q  
   ArrayToBMP = False -X(%K6{  
   Exit Function )AOD~T4s7  
End If _xign 3  
=?UCtYN,P  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN iK%<0m  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& FKflN  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN :u#Ls,OZz  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& Q[i /]  
H<|I&nV  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN SymSAq0$F  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& JsOPI ]  
KU[eY }   
If BytesWrite < pFrameSize Then 0 3L"W^gc  
  ArrayToBMP = False oo7&.HWf  
End If uf,4GPo,  
*W q{ :k  
CloseHandle hTmpFile 2A@9jl s  
T{u!4Yu  
End Function XtfO;`   
*zX*k 7LnV  
Function ArrayToBMP1(ByVal File As String) LH.. 8nfl  
@YmD 79  
Dim BytesWrite As Long ' >> IMF  
le`&VdE^  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ y'4H8M2?  
  CREATE_ALWAYS, 0&, 0&) rAD5n, M]  
/=4P< &J  
If hTmpFile = 0 Then Y?hC/ 6$7  
   ArrayToBMP1 = False W5*%n]s~  
   Exit Function l|-1H76  
End If B?c9cS5Mj  
]B0 >r^  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN DG1  >T  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& haW8zb0z  
j[YzBXd V  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN /E(H`;DG  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& }gL9G  
~,yHE3B\G  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN "Iu[)O%  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& UwY<3ul  
H n+1I   
If BytesWrite < pBufferSize Then B M{GSX  
  ArrayToBMP1 = False L'4ob4r{L  
End If YMP:T?vMVh  
L f[>U  
CloseHandle hTmpFile Oy[1_qfP  
%>'2E!%  
End Function 94r8DkI  
0B)l"$W[)/  
'使用该过程建立的文件要求在用后关闭 v'*Q[ ('  
Public Function ArrayToBMP2(File As String) As Boolean f&t]O$  
d -6[\S#  
Dim BytesWrite As Long >x)YdgJ*  
phSF. WC  
ArrayToBMP2 = True DHGv< F@  
<Fb3\T L  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ {s|rk  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) Fa^5.p  
13Ga #  
If hTmpFile = 0 Then 9Qp39(l:  
   ArrayToBMP2 = False Ojp)OeF\  
   Exit Function yyh L]Uq"=  
End If rKq/=Avv  
u3kK!2cdP  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN (5{|']G  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& zLXmjrC  
[.B)W);  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN R|H9AM ~E  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& ~c[} %Ir>  
h{.KPK\  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN OlhfBu)~  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& ~6@zXHAS  
K|];fd U  
If BytesWrite < pFrameSize Then Ld? tVi  
  ArrayToBMP2 = False Z$0r+phQk=  
End If =<(:5ive  
 }5bh,'  
CloseHandle hTmpFile hN c;, 13  
{6)fZpd)@  
End Function t$r^'ZN  
FCQoz"M  
Private Function TESTSignal() As Boolean ^4]#Ri=U  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long H ~1laV  
n1o/-UY  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) 6BVV2j)zl:  
dN;kYWRK  
If extsign = 1 Then B?-RzWB\3  
   TESTSignal = True )7=B]{B_  
Else tx&>Eo  
    If extsign = 0 Then (?xGl V`n  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly />q=qkdq0  
        TESTSignal = False j11\t  
        Exit Function %([$v6 y  
    End If mp0p#8txi  
End If [6BL C{2  
JU:!lyd  
'测试视频输入类型 *wP8)yv7  
'video type lO8.Q"mxo  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 dra'1E  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) #})Oz| c  
If videotype = 1 Then " e g`3v  
        '"隔行信号(Interlaced)" _3tHzDSG #  
Else (.P;VH9R\  
   If videotype = 0 Then 8+ eZU<\B(  
       '"逐行信号(Non-interlaced)" wq_c^Ioy  
   Else *103  
     If videotype = -1 Then y#HD1SZ  
       ' "不支持" b>E%&sf  
     End If >5wA B  
   End If PB4E_0}h  
End If rB?u.jn0T  
R B.j@*  
'测试垂直扫描线数 hxx,E >k  
'video scanlines xq =+M!V  
scanlines = -1 |8&AsQd  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) wQ!~c2a<8  
    If scanlines = -1 Then hSaS2RLF  
        ' "不支持" 3/:O8H  
    Else |K'{R'A  
        'Trim(Str(ScanLines)) + " 行数/幅" '*!R gbj;  
    End If 5}9-)\8=z  
m(nlu  
'测试帧频 [6 wI22  
'video field frequency !$AVl MnJ  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ)  ?1r@r  
    If fieldfrq = -1 Then KoiU\r  
        'lblSignal(8) = "不支持" \^;Gv%E  
    Else  wxsJB2  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" B P"PUl:  
    End If +@]1!|@(  
End Function lf0/ 0KH  
l7aGo1TcIh  
%9[GP7?  
Sub PicIdentify() NmST1pMk  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 )(*A1C[  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 {b^naE  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 i2.y)K)  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 y 4,2Xs9,  
4DEsB)%X  
  Dim fPTR As Long, cFrame As Long 51.F,uY  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer CSc*UX+  
     R%aH{UhE`  
CB_(9T72H  
cFrame = 0 <?52Svi}}  
lZ0+:DaP2  
VbM5]UT/  
Do While cFrame < tFrames cZ|D!1%  
   V-A^9AAPm  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) 0NfO|l7P  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) s6Bt)8A  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize &o^wgmS   
   5h1!E  
  frmRecord.RText.Text = Str(cFrame) Y::fcMJr;Q  
  frmRecord.RText.Refresh vPmP<c)cb  
       >tr?5iKxc  
  If CheckMark = True Then \q Q5x  
   ArrayToBMP TmpBMP E{T\51V]%  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) vKAHf;1  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" A/{pG#if]3  
   Jkpw8E7  
   DrawSlice % %c0UaV  
   2P$lXGjh  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) <X p F  
   'If i = vbNo Then 0o At=S  
   '  Exit Do (&PamsV*8  
   'End If , 9|%  
   'cFrame = cFrame + 1 i0-!!  
   ^K@r!)We  
  End If )oTEB#J  
  DoEvents rRcfZZ~` M  
  cFrame = cFrame + 1 vc6UA%/f  
Loop FvG9PPd  
End Sub '`"LX!"ZO  
[2 2 IF  
z:u`W#Rf  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 2-llT  
1?(BWX)7  
'如标志区模式反差存在则为TRUE,否则返回FALSE (m)%5*:  
VT3Zo%Xx  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long <tf4j3lwH  
CheckMark = True @[=*w`1  
   X]cB `?vR  
'复制标志区 {,IWjt &>  
For i = 1 To mkH M42Zpb].  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW ?#}=!$p  
Next i P)1@HDN==  
kSU5  }  
For j = 1 To PilarW * PilarH / 2 ||`w MWq  
   mTop = mTop + MKpilar(j) `"AjbCL  
Next j dwrc"GK!o  
Z<jRZH*L  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH :FG}k Y  
   mBot = mBot + MKpilar(j) n ^n' lgUT  
Next j Ep5lm zg  
C>v    
mTop = mTop / PilarW / PilarH * 2 +D?d)lK  
mBot = mBot / PilarW / PilarH * 2 (n"  )  
{Hp?rY@  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 <kLY1 EILM  
n,PHfydqX  
'平均值极值化 Zt lS*id_  
  For j = 1 To PilarH * PilarW &M>S$+I n  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) wrqdQ} @(  
  Next j "oz @w'rG  
   Redp'rXT<h  
mTop = 0: mBot = 0 ,Lv} Xku  
For j = 1 To PilarH * PilarW / 2 [2i+f <  
  mTop = mTop + MKpilar(j) FAM`+QtNw  
Next j Lom%eoH)  
U%oI*  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW FVY,CeA.  
  mBot = mBot + MKpilar(j) e"r}I!.  
Next j 3 %DA{  
H7Y}qP5X  
ujz %0Mq;  
  mTop = mTop / PilarH / PilarW * 3 h4?+/jk7  
  mBot = mBot / PilarH / PilarW * 3 +V2a|uvEc  
   Z6D4VZVF  
wB9IP{Pf  
If mBot > iWhite And mTop < iBlk Then LvWU %?  
  CheckMark = True FT|*~_@  
Else T d;e\s/]  
  CheckMark = False |]GEJUWtCd  
End If QMtt:f]?i  
End Function ++&F5'?g  
ATnD~iACY  
Sub Capture1Frame() `yQHPN0/  
   okCaptureTo hBoard, BUFFER, 0, 1 'single Maa5a  
   okGetCaptureStatus hBoard, True 3BY/&'oX  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize !ox&`  
End Sub .Z_U]_(  
v[Q)cqj/  
T{uktIO/  
Sub CopyMark(iBlk As Integer, iWhite As Integer) /2FX"I[0V%  
'复制标志区并返回标志区暗区与亮区的亮度平均值 "b1_vA]03  
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 GGJ_,S*  
   g,,cV+  
'复制标志区 "VT5WFj  
For i = 1 To mkH Q~xR'G[N  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW GK&yP%Z3  
Next i z7<^aS  
l g8~` 96  
For j = 1 To mkW * mkH / 2 .z[+sy_  
   mTotal = mTotal + MKpilar(j) 2CmeO&(Qf*  
Next j YvYavd  
;Ly4Z*!2  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 Phb<##OB  
o8s&n3mY}y  
mTotal = 0 "*7I~.7U(*  
For j = mkW * mkH / 2 + 1 To mkW * mkH n|,Es!8:o  
   mTotal = mTotal + MKpilar(j) s{s0#g  
Next j UD9h5PgT  
7PQedZ<\  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 dtF6IdAf  
e. [+xOu`  
'背景亮度 2Cr+Z(f  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW kk~{2   
  For i = 1 To 4 * FrameW RLKO0 #  
    bsTotal = bsTotal + BsLine(i) c U{LyZp  
  Next i ise@,[!  
  bsAV = bsTotal / FrameW / 4 3M@>kIT8  
20fCWVw}?}  
End Sub V >['~|  
W/\7m\ B  
8ZIv:nO$  
Sub AdjIMGbright(Optional bInit As Boolean = True) *kKGsy  
M  j5C0P(  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) whLske-  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 Ys<wWfW  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 Xrz0ch  
     4k#B5^iJ  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer SQ.4IWT(hR  
   Q'8v!/"}p{  
  '按标准亮度与对比度采集一帧,确定背景亮度 &Mc mA  
  currentContr = 128   '初始对比度 0(i`~g5  
  currentBr = 128   '初始亮度 c<H4rB  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 kBONP^xI  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 I7uYsjh@u  
  DoEvents _p_F v>>:  
  Capture1Frame IcQ?^9%{  
  '获得图像上缘4行象素 92SB'T>  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW KDXo9FzF  
  CopyMark iBlack, iBright   '图像标志区亮度 piId5Gx7  
  For i = 1 To 4 * FrameW {xH \!!"T  
    bsTotal = bsTotal + BsLine(i) M}nalr+#  
  Next i ,7QnZ=F  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 %kcg#p+tE  
   3YLnh@-  
  Select Case bsAV {^\-%3$  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 JQtH },T r  
       currentBr = 150 78.sf{I  
       currentContr = 60 plf<O5'  
     Case 61 To 80   '有可见背景 ,88Y1|:X  
       currentBr = 140 ;8T<L[ ^U  
       currentContr = 70 iF%q 6R  
     Case 81 To 100  '有清晰背景 WEsH@ [  
       currentBr = 128 yr=r? h}  
       currentContr = 80 Fx@ {]  
     Case 100 To 150  '有明亮背景 :w];N|48s  
       currentBr = 140                '5:30-6:00钟实测数据 hV,3xrm?P  
       currentContr = 50 r! M2H {  
     Case 151 To 180 ^#=L?e  
       currentBr = 130 VLO>{"{'  
       currentContr = 60 7q\c\qL  
     Case 181 To 220  '背景全为白色 8odVdivh  
       currentBr = 110 +]>a`~   
       currentContr = 130 N!m%~},s//  
     Case 221 To 255  '背景全为白色 @i`gR%  
       currentBr = 100 z N t7DK  
       currentContr = 100 {$EXI]f  
  End Select }`MO}Pz  
   4/h2_  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 #E ~FF@a  
        Case 100 To 150 Qb|dp~K.M  
          currentBr = currentBr - 10 %bi mcRX#W  
        Case 151 To 255 HAiUFO/R  
          currentBr = currentBr - 20 %b*%'#iK  
  End Select eT|_0kx1  
   E$1^}RGT)  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 [-CG&l2?L  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 3jI.!xD`  
End Sub jqLyX  
T2->  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) asF- mf;D  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long va<+)b\  
     [qXpi'q[  
    For i = 1 To 8 aQG#bh [  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& ?UxY4m%R;  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& :D,YR(])  
    Next i B@=Yj_s  
     3Yf$WE8#l  
    For j = 1 To 1024 7&QVw(:)M  
      L1 = L1 + LeftBK(j, 0) x)?\g{JH  
      L2 = L2 + LeftBK(j, 1) {c1qC zM4  
      R1 = R1 + RightBK(j, 0) ry T8*}o  
      R2 = R2 + RightBK(j, 1) oF>GWst TR  
    Next j 4ku/3/ 6  
    diffL = Abs(L1 - L2) / 1024 J~}UG]j n  
    diffR = Abs(R1 - R2) / 1024 C=]3NB>Jc  
End Sub =aekY;/  
F#PJ+W*h  
Function CheckSlice() As Boolean w %zw+E  
  CopySlice avSL, avSLR, avSLL j~{2fd<>  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then y{"E) YY  
    CheckSlice = True U=t'>;(g  
  Else a2 SQ:d  
    CheckSlice = False RasoO j$  
  End If +sI.GWQ_:  
End Function l6 WcnJ  
UQ8x #(`ak  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) xC{NIOYn'  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long N<{ `n;  
  For i = 1 To FrameH =I5XG"",  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize U\ L"\N7  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize 7^iAc6QSy3  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize R#`itIYh  
  Next i s +GF- kJ*  
  For i = 1 To FrameH j*zK"n  
    For j = 1 To sSize ' EDi6  
       total = total + Slice(j, i) ##5/%#eZ  
       totalL = totalL + SliceL(j, i) j"V$J8)[  
       totalR = totalR + SliceR(j, i) $W?XxgkB?  
    Next j Om^/tp\  
  Next i |. 6@-h~8  
  avSL = total / FrameH / sSize \fhT#/0N  
  avSLR = totalR / FrameH / sSize (LfVa`<1  
  avSLL = totalL / FrameH / sSize @Dy.HQ~  
End Sub ZX0c_Mk=  
{#%xq]r_  
Sub DrawSlice() m7"f6zSo(  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B s/^k;qw  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B S3_4i;K\  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B 47RYpd  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) cDx^}N!  
End Sub ;1dz?'%V  
Sub DrawMark(pic As Control) :9#`| #uh  
   Dim i As Long, j As Long Chua >p!$g  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B v<SEGv-  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B md`ToU  
   For i = 1 To PilarH l#"alU!<^  
     For j = 1 To PilarW :qbG%_PJ  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) i#lo? \PO>  
     Next j yRYWx` G  
   Next i }"-r;i  
End Sub 4yA`);r62  
j[fQs,efK  
Function avIMG() As Integer c|R/, /  
  Dim i As Long, j As Long, totalIMG As Long V!P3CNK  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize QdTe !f|  
  For i = 1 To pFrameSize 9PJDT]  
    totalIMG = totalIMG + pBuffer(i) x.yL'J\)  
  Next i </X"*G't  
  avIMG = totalIMG / pFrameSize cOb%SC[A{  
End Function SSXS  
c{Kl?0#[  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer [z~Nw#  
  Dim i As Long, j As Long, totalIMG As Long A|J\X=5  
  For i = 1 To FrameH V\"5<>+O  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth .ndQ(B  
  Next i NM@An2  
  For i = 1 To FrameH * barWidth jE#8&P~  
    totalIMG = totalIMG + pBuffer(i) FNuu',:  
  Next i X W)A~wPBs  
  avRegion = totalIMG / pFrameSize @r?`:&m0  
End Function @"!SU' *  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 \NU [DHrMP  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 $0}bi:7  
m;f?}z_\$  
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 ]5f M?:<l  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long ef&@aB  
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@YL.'KU)  
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 %, et$1`g  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long N| Pm|w*?  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 .,Qnn}:l  
l7,qWSsn K  
AnY)T8w  
Private Const GENERIC_READ = &H80000000 1fv~r@6s  
Private Const GENERIC_WRITE = &H40000000 v4_OUA>z,  
|nN/x<v  
Private Const FILE_SHARE_READ = &H1 #@^w>D6W  
Private Const FILE_SHARE_WRITE = &H2 FH8mK)  
Private Const OPEN_EXISTING = 3 Uob|Q=MQ  
lM^!^6=v0l  
Private Const INVALID_HANDLE_VALUE = -1 `HG19_Z  
cl{W]4* $  
'//file seek 5iddB $  
Private Const FILE_BEGIN = 0 ]Cn*C{  
Private Const FILE_CURRENT = 1 X3{1DY3@u  
Private Const FILE_END = 2 g@i>R>  
;Ia1L{472m  
Private Const ERROR_SUCCESS = 0& DA)v3Nd  
*\KvcRMGUa  
'//device io control %J7mZB9  
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 WV1 Z  
WgJAr73 l  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 4oV_b"xz~  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 @ z)tC@  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 DXW?;|8)O  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 Tki/ d\!+  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C ^YJA\d@  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 1lyOp   
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F 'S7@+kJ  
{ $/Fk6qr  
'//type :IVMTdYf  
Private Type LARGE_INTEGER F9P0cGD s  
    lowpart As Long yM:~{;HLF  
    highpart As Long 6bKO;^0  
End Type yVHlT  
i i@1!o  
Private Enum MEDIA_TYPE Sn2Ds)Pfx3  
    Unknown v\(m"|4(i  
    F5_1Pt2_512 BddECY,z  
    F3_1Pt44_512 gH^$Y~Lx  
    F3_2Pt88_512 N5s|a5  
    F3_20Pt8_512 ^FM9} t/U,  
    F3_720_512 t!~YO'<dS  
    F5_360_512 v7F RTrqjj  
    F5_320_512 ZT"|o\G^Q  
    F5_320_1024 U?fN3  
    F5_180_512 t"/"Ge#a  
    F5_160_512 #A9_A%_.h  
    RemovableMedia b+].Uc  
    FixedMedia |sqo+E  
End Enum nX\]i~  
uuYH6bw*d  
Private Type DISK_GEOMETRY '$h @  
    Cylinders           As LARGE_INTEGER l$VxE'&LQ  
    MediaType           As MEDIA_TYPE 8@yc}~8 *  
    TracksPerCylinder   As Long  OI_/7@L  
    SectorsPerTrack     As Long >xV<nLf/  
    BytesPerSector      As Long b2X'AHK S  
End Type BX(d"z b<  
R P:F<`DB|  
'//private vars A?D"j7JD=L  
Private hDisk           As Long             'disk handle 0t COb9  
Private lpGeometry      As DISK_GEOMETRY    'disk info R``V Q  
Private lBufferSize     As Long             'the buffer size of read/write %}MA5 t]o  
9id~NNr7  
Public Function OpenDisk(ByVal FileName As String) As Boolean r@[VY g~  
'// 打开磁盘 K= Z]#bm  
    hDisk = CreateFile(FileName, _ }S MJD  
                        GENERIC_READ Or GENERIC_WRITE, _ (_qBsng:  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ 'SU9NQS  
                        ByVal 0&, _ Fy@#r+PgWp  
                        OPEN_EXISTING, _ O% K?l}e  
                        0, _ `x$}~rP&)!  
                        0) 7s8<FyFsjd  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) @y0bU*v7  
End Function bI]UO)  
0uIV6LI  
Public Function CloseDisk() As Boolean Mj B< \g>  
'//关闭磁盘 HS6Imi  
    CloseDisk = CloseHandle(hDisk) i\Pr3 7 "  
End Function $wYuH9(  
.aismc`=  
Public Function GetDiskGeometry() As Boolean _d[2_b1  
'//获取磁盘参数 8jjk?PUD8  
    Dim dwOutBytes      As Long qN1 -plY  
    Dim bResult         As Boolean rw8J:?0x  
     @SC-vc  
    bResult = DeviceIoControl(hDisk, _ R_>TEYZ  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ oIvnF:c  
                                ByVal 0&, 0, _ 5<O61Lgx  
                                lpGeometry, Len(lpGeometry), _ K>R;~ o  
                                dwOutBytes, _ {nPkb5xbW  
                                ByVal 0&) ))IgB).3M  
     RUk<=! U  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack a|P~LMPM  
    GetDiskGeometry = bResult `@$"L/AJ  
End Function co^P7+j  
Z0"&   
Public Sub GetDiskInfo(MediaType As Long, _  9VUm=Z#`  
                        Cylinders As Long, _ 4/2RfDp  
                        TracksPerCylinder As Long, _ "T{~,'T  
                        SectorsPerTrack As Long, _ oBj>9I;  
                        BytesPerSector As Long) &@W4^- 9  
'//返回磁盘的参数 h76NR  
    MediaType = lpGeometry.MediaType E]H   
    Cylinders = lpGeometry.Cylinders.lowpart !/4 V^H  
    TracksPerCylinder = lpGeometry.TracksPerCylinder l0caP(  
    SectorsPerTrack = lpGeometry.SectorsPerTrack 1(?CNW[  
    BytesPerSector = lpGeometry.BytesPerSector #OD@q;  
W?^8/1U  
End Sub !q-:rW? c  
cCh0?g7nV  
Public Property Get BufferSize() As Long ? gA=39[j  
'//返回每次读/写的缓冲大小 yxCM l.  
    BufferSize = lBufferSize WE5"A| =  
End Property fs rg2:kQ  
3j+=3n,  
s0)qlm*  
Public Function LockVolume() As Boolean <RoX|zJw  
'// 将卷锁定 N8 kb-2  
    Dim dwOutBytes  As Long V+=*2?1  
    Dim bResult     As Boolean RUS7Z~5  
     sm2p$3v  
    bResult = DeviceIoControl(hDisk, _ 9uw,-0*5  
                                FSCTL_LOCK_VOLUME, _ K/ wiL 69  
                                ByVal 0&, 0, _ }+{*, z  
                                ByVal 0&, 0, _ 7"n)/;la  
                                dwOutBytes, _ Tw`c6^%^y  
                                ByVal 0&) @cu}3>  
    LockVolume = bResult 68p\WheCal  
End Function ^A 11h6I  
&ppE |[{  
^p"4)6p-W  
Public Function UnlockVolume() As Boolean kJur UDo  
'// 将卷解锁 Nxbd~^j  
    Dim dwOutBytes As Long 6VH90KAT  
    Dim bResult As Boolean 84p[N8  
     iM?I /\  
    bResult = DeviceIoControl(hDisk, _ us\%BxxI9  
                                FSCTL_UNLOCK_VOLUME, _ }_a +X  
                                ByVal 0&, 0, _ 9{O2B5u1  
                                ByVal 0&, 0, _ |5O >>a()  
                                dwOutBytes, _ .*EOVo9S  
                                ByVal 0&) 6bbZ<E5At  
    UnlockVolume = bResult :7$\X[  
End Function .7pGx*WH^Y  
Q{qj  
`z-H]fU  
Public Function DismountVolume() As Boolean (o x4K{  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 POqRHuFq  
    Dim dwOutBytes As Long 2fkIdy#n@  
    Dim bResult As Boolean IqhICC1V-  
     h/ LR+XX!  
    bResult = DeviceIoControl(hDisk, _ W>` g;[ W  
                                FSCTL_DISMOUNT_VOLUME, _ e8d5(e  
                                ByVal 0&, 0, _ r^w\9a_  
                                ByVal 0&, 0, _ 6(N.T+;]  
                                dwOutBytes, _ \3H<z@;  
                                ByVal 0&) T6 h;Y  
    DismountVolume = bResult ><;l:RGK|  
End Function >/TB_ykb  
`ICcaRIN8I  
qJ{r!NJJ 8  
Public Function ReadDisk(ByVal Cylinders As Long, _ #*yM2H"7,;  
                    ByVal Tracks As Long, _ +A8=R%&b)[  
                    db() As Byte) As Boolean ).0V%}>  
'//按柱面和磁道来读取磁盘数据 $6:XsrV\a  
    Dim iPos    As Long ="3a%\  
    Dim lRead   As Long /S7+B ]  
     WFU?o[k-O  
    iPos = Cylinders * Tracks * lBufferSize |5 oKq'(b  
     l zfD)TWb  
    If SeekAbsolute(0, iPos) Then z:Xj_ `p  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) Y!++C MzU  
    End If r#_7]_3  
End Function s{(ehP.Dd  
pu/m8  
Public Function WriteDisk(ByVal Cylinders As Long, _ My]+?.Ru  
                     ByVal Tracks As Long, _ v!<PDw2'  
                     db() As Byte) As Boolean .k# N7[q=  
'//按柱面和磁道来写磁盘数据 Sni&?tcY  
    Dim iPos    As Long :DZLjC  
    Dim lRead   As Long a. h?4+^bN  
     ; g Z%U  
    iPos = Cylinders * Tracks * lBufferSize $ZQl IJZ  
     Tjnt(5 g  
    If SeekAbsolute(0, iPos) Then OW+e_im}  
        WriteDisk = WriteBytes(lBufferSize, db()) 8- dRdQu ]  
    End If c;c:Ea5  
End Function P]pmt1a  
to99 _2  
D^66p8t  
'///////////////////////////////////////////////////////////////////////////////////// E$]a?uA:  
'//file system /]ku$.mr \  
Sk8%(JD7  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean b@=z rhQ  
'//seek file y#]}5gJ  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte `4VO&lRm  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) V/aQ*V{  
    If LowPos = -1 Then :D"@6PC]  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) !Oeq G  
    Else 'R^iKNPs  
        SeekAbsolute = True )8pc f`h{  
    End If wzD\8_;6N  
     3C277nx  
End Function zc6H o  
6RK ~Dl&g  
=ud `6 {R  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean wqJ* %  
'//read data to array \e?.h m q  
    Dim RetVal    As Long wXc,FD$  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) g~~m' ^  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF KK:N [x  
    ReadBytes = Not (RetVal = 0) ixOEdQ  
     Q,zC_  
End Function CnabD{uTf  
q{a#HnZo"  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean HzP.aw4  
'//write data from array ?Wwh _TO  
    Dim RetVal As Long yJnPD/i  
    Dim BytesToWrite As Long 0Vf)Rw1%I  
    Dim BytesWritten As Long @4;HC=~  
     IYuyj(/!  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) pG0!ALT  
     9aTL22U?  
    WriteBytes = Not (RetVal = 0) ^g9}f  
End Function jmkRP"ZnA  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 -Bj.hx*  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ FI\IY R  
DWORD dwCB; g<f P:/  
LARGE_INTEGER  offset; h]qT1( I  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); {5SfE$r  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); ]x1p!TSU  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ CNut{4  
DWORD error = GetLastError(); v#zPH5xo  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); llNXQlP\B  
return FALSE; a IQOs  
} TW>?h=.z  
return TRUE; /v5qyR7an  
} e[s5N:IUd3  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : n? ]f@OR  
sW?B7o?  
介个真的看不懂。 pzg&/m&F`  
你说你老啦,喜欢怀旧了,才想起来填坑。 Q? qjWZY  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 PT+c&5AS  
@m?{80;uQ  
?s%v 3T  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : /1[gn8V691  
佩服,玩也玩得这么专业! 8)Zk24:])_  
EI\ v  
X Cm\z9F  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : 9&K/GaG  
引用第19楼伍胥之于06-14-2010 12:33发表的  : QU/3X 1W  
K\&o2lo]  
O?ktWHUx  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 .X `C^z]+  
c!Dc8=nE0m  
我连一级也没有考过。 1h=D4yN  
.
Y)M8zi>b  
t3b@P4c \  
引用
}Hy ~i  
矬子里拔将军... l}}UFEA^  
你们那里的俗语是吧? {Q~7M$  
GaBTj_3  
我们这里说"矮子里拔长脚"..应该是同一个意思... P`TIaP9%E  
|nY~ZVTt/  
有趣....各地有表达意思一样却方式不同的俗语.... J :S'uxM  
=_PvrB2'  
-(IC~   
你的文章写的有脸皮,没屁眼的, >]&X ^V%Q#  
让看客大为不满... 7pet Hi  
UFENy."P  
你等着,,估计你以后接到的午夜凶铃就多了... i:Y\`J  
</s,pe79B  
vM`~)rO@!  
我到现在也没有接到你的午夜凶铃呢! %0XvJF)s  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : B8V,)rn  
每个人的故事对其他人都是故事, C_->u4 -  
自己的故事也是其中之一. Do*n#=  
跳出来看, YG[w@u  
不过是众人中的一个人的故事. U7H 9/<&o  
eVt1d2.O  
所以,接着听故事. *YvRNHP  
4tJa-7  
女人们有兴趣的就等老伍开个新帖或者跟贴, 'fY9a(Xt.  
听他痛说恋爱革命历史.... IR$ (_9z  
u^4h&fL  
杂家接着听他自学程序员历史, C6QbBo  
高级程序员考了吗? Gv~p  
S_Z`so }  
Dp!zk}f|  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! N :W9},  
yA;W/I4  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 =u|~ <zQw  
#H5=a6E+q  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 MFwO9"<A  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : <nzN$"%  
哦, 打倒忽悠大家的家伙.      6 /Y1 wu  
X0uJNHO  
f[jN wb  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : q,l)I+  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 r<R4 1Fz  
sqO< J$tz  
|g&ym Fc  
其实标题没有什么,卡总既然改了就不必再改回了。 ~[W#/kd1n  
Sc$UZ/qPT  
主要是当初写的时候真是顶着锅盖写的。 JK )qZ=  
LN^f1/ b*  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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