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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 hb$Ce'}N  
7dWS  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : ax`o>_)  
4dlGxat  
老五,I 服了U。 jd: 6:Fm  
Tk }]Gev  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 #"!<W0  
*wearCPeJ  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean b6bHTH0  
';CNGv -  
Dim regEX As New RegExp HPl<%%TI  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 [n@] r2g)3  
u`W2 +S  
Dim LastTitle0String As String, LastTitle0No As Long SUiOJ[5,  
Dim LastTitle1String As String, LastTitle1No As Long _6Sp QW  
Dim LastTitle2String As String, LastTitle2No As Long D*jM1w_`  
Dim LastTitle3String As String, LastTitle3No As Long j#|ZP-=1_  
Dim LastTitle4String As String, LastTitle4No As Long oJ^P(]dw  
Dim LastTitle5String As String, LastTitle5No As Long |Cv!,]9:r  
Dim LastTabelString As String, LastTableNo As Long Lbgi7|&  
Dim LastFigureString As String, LastFigureNo As Long K;?+8(H  
ah"o~Cbj  
Dim strSeperator As String pK*TE5 ]  
zhQJy?>'m  
Sub ConvertWidth(fTEXT As String, rText As String) N~Jda o  
        Selection.Find.ClearFormatting c 9Mz]1@f  
        Selection.Find.Replacement.ClearFormatting 3] Ct6  
        Selection.Find.Wrap = wdFindContinue A.SvA Yn  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText Txu/{ M,  
        DoEvents ?<!|  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True 2/?|&[  
End Sub wk^B"+Uhy  
Nn6%9PX_)  
Sub ClearDomain() #a#F,ZT  
        With Selection.Find M`_0C38  
            .ClearFormatting {7[Ox<Ho  
            .Replacement.ClearFormatting 2y4bwi  
            .Wrap = wdFindContinue x2xRBkRg=  
            Me.txtStatus.Text = "清除所有域代码" O.? JmE  
            DoEvents ES[G  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False G|Ti4_w  
        End With _BufO7 `.  
End Sub itz,m r P  
t@(HF-4~=  
Private Sub cmdCheck_Click() MgZ/(X E  
    bContinue = True |!ELV 7?(  
    Dim NoSeries1(1 To 16) As String 1 MFbQs^  
    Dim NoSeries2(1 To 16) As String dtDFoETz  
    Dim NoSeries5(1 To 16) As String &ZO0r ^  
    Dim NoSeriesRM(1 To 16) As String )0`C@um  
    Dim paraTotal As Long, ParaText As String 6u jW Nf  
    Dim ttString As String, ttNo As String ,1`z"7\W  
     vM={V$D&   
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long 10&8-p1/mc  
UQsN 'r\tS  
    Me.txtStatus.Visible = True $xsd~L &  
    Me.lbParaType.Visible = True F9^S"qv$  
    Me.cmdCheck.Enabled = False j 7B!h|  
     _ q"Gix  
      mh%VrA q  
     :gv"M8AP  
     6tZI["\   
    Dim ParaType As String, rText As String ).O)p9  
     $4\j]RE!  
    Selection.WholeStory }MySaL>  
    Selection.NoProofing = True 0GLM(JmK  
     NEs:},)o  
    tm1 = Now ".%k6W<n  
     Eci\a]  
        ActiveWindow.View.Type = wdNormalView iZmcI;?u  
     5P bW[  
    NoSeries1(1) = "一" }> \C{ClI  
    NoSeries1(2) = "二" UKGPtKE<  
    NoSeries1(3) = "三" [),ige  
    NoSeries1(4) = "四" ctQ/wrkU  
    NoSeries1(5) = "五" h[ ZN+M  
    NoSeries1(6) = "六" Ry&6p>-  
    NoSeries1(7) = "七" 4eu O1=  
    NoSeries1(8) = "八"  " bG2:  
    NoSeries1(9) = "九" X}]-*T|a  
    NoSeries1(10) = "十" 8ag!K*\ V<  
    NoSeries1(11) = "十一" G@0& 8  
    NoSeries1(12) = "十二" WH\d| 1)  
    NoSeries1(13) = "十三" lE;!TQj:X  
    NoSeries1(14) = "十四" BT$_@%ea&  
    NoSeries1(15) = "十五" ;uW FHc5@B  
    NoSeries1(16) = "十六" 9r9NxKuAO  
     TeQV?ZQ#}  
    NoSeries2(1) = "㈠" (7Qo  
    NoSeries2(2) = "㈡" / {%%"j  
    NoSeries2(3) = "㈢" :RYTL'hes  
    NoSeries2(4) = "㈣" BtZyn7a  
    NoSeries2(5) = "㈤" ZSw.U:ep$s  
    NoSeries2(6) = "㈥" }V>T M{  
    NoSeries2(7) = "㈦" 0RfZEG)  
    NoSeries2(8) = "㈧" )b)zm2;  
    NoSeries2(9) = "㈨" f);FoVa6  
    NoSeries2(10) = "㈩" YSMAd-Ef-  
     *8q.YuZ  
    NoSeries5(1) = "①" #yen8SskB  
    NoSeries5(1) = "②" )7@0[>  
    NoSeries5(3) = "③" !D6]JPX  
    NoSeries5(4) = "④" ZCw]m#lS  
    NoSeries5(5) = "⑤" "@kaHIf[  
    NoSeries5(6) = "⑥" 3|7QU ld  
    NoSeries5(7) = "⑦" KvS G;  
    NoSeries5(8) = "⑧" 6!o1XQr=Z  
    NoSeries5(9) = "⑨" HW|IILFB  
    NoSeries5(10) = "⑩" buC{ r,  
     jPeYmv]  
     kAx4fE[c  
    NoSeriesRM(1) = "I" x-c"%Z|  
    NoSeriesRM(2) = "II" al0L&z\  
    NoSeriesRM(3) = "III" M|-)GvR$J  
    NoSeriesRM(4) = "IV" M5B# TAybC  
    NoSeriesRM(5) = "V" #ob/p#k  
    NoSeriesRM(6) = "VI" reVgqYp{{-  
    NoSeriesRM(7) = "VII" [QTV9  
    NoSeriesRM(8) = "VIII" :k"]5>(^  
    NoSeriesRM(9) = "IX" G$PE}%X  
    NoSeriesRM(10) = "X" *Ex|9FCt$  
    NoSeriesRM(11) = "XI" s2?&!  
    NoSeriesRM(12) = "XII" =Qq+4F)MD  
    NoSeriesRM(13) = "XIII" @HW*09TG  
    NoSeriesRM(14) = "XIV" Ac6=(B  
    NoSeriesRM(15) = "XV" hZ3bVi)L\  
    NoSeriesRM(16) = "XVI" & kIFcd@  
     ysN3  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) #$vEGY}1  
     $]1=\ I  
    If i = vbNo Then P>L +t`'  
        Exit Sub :gT4K-O j  
    End If 0:+E-^X  
     RSds8\tk  
    If Me.chkSuper.Value Then zDp2g)  
        Me.txtStatus.Text = "检查修改所有的上标格式" i4Jc.8^9$  
     J,G lIv.A  
        CheckSuperScript ^.tg7%dJ  
         4 :=]<sc,  
    End If 'yth'[  
     |}1dFp  
    If Me.chkStyle.Value Then kT?J5u _o  
        Me.txtStatus.Text = "设置样式,请稍候...." %\DX#.  
        DoEvents GfG|&VNlz  
        CeateOrModifyStyle P2!C|SLK  
    End If ^{{q V  
     /(T?j!nPE  
     l,: F  
     u>$t'  
    ClearDomain Qd6FH2Pl  
         JRFtsio*  
     %SI'BJ  
     5;S.H#YOpO  
    If Me.chkLIST.Value Then /=h` L ,  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" f)!Z~t &  
     ^.G$Q#y,  
        ConvertListToOrdinary {$r[5%L\H  
    End If zzz3Bq~  
     tDo"K3   
     F?cK- .  
    Dim pType As String, trimpTEXT As String mq[ug>  
    If Me.chkNum.Value = True Then + #By*;BJ  
        Me.txtStatus.Text = "转换全角数字形式为半角" 2tLJU  Z1  
        ConvertWidth "1", "1" *H122njH+T  
        DoEvents y]im Z4{/  
        ConvertWidth "2", "2" h~26W Lf.  
        DoEvents _U0f=m  
        ConvertWidth "3", "3" aT<q=DO  
        DoEvents /bEAK-  
        ConvertWidth "4", "4" >+waX "e  
        DoEvents $cR{o#  
        ConvertWidth "5", "5" k8Xm n6X  
        DoEvents  _6Ha  
        ConvertWidth "6", "6" p7Cs.2>M>S  
        DoEvents :LTN!jj  
        ConvertWidth "7", "7" =EIkD9u  
        DoEvents KG@8RtHsQ  
        ConvertWidth "8", "8" G`zm@QL  
        DoEvents mTh]PPo   
        ConvertWidth "9", "9" G j1_!.T  
        DoEvents ;]fs'LH  
        ConvertWidth "0", "0" K#xv u1U  
        DoEvents \1`O_DF~o  
        ConvertWidth "a", "a" j4b4!^fV  
        DoEvents AEuG v}#  
        ConvertWidth "b", "b" Y~Ifj,\  
        DoEvents eq"]%s  
        ConvertWidth "c", "c" ]~%6JJN7  
        DoEvents .l|$dE/E  
        ConvertWidth "d", "d" RyNs6  
        DoEvents I|J/F}@p  
        ConvertWidth "e", "e" f-d1KNY  
        DoEvents |'.  
        ConvertWidth "f", "f" &?vgP!d&M  
        DoEvents kl,3IKHa  
        ConvertWidth "g", "g" <or2  
        DoEvents BC]?0 U  
        ConvertWidth "h", "h" o.\oA6P_  
        DoEvents <X5 fUU"+U  
        ConvertWidth "i", "i" 7rPF$ \#  
        DoEvents bi:8(Q$w:`  
        ConvertWidth "j", "j" h1 {3njdr  
        DoEvents 0ksa  
        ConvertWidth "k", "k" fQ98(+6  
        DoEvents 5?L<N:;J_  
        ConvertWidth "l", "l" qa6,z.mQ  
        DoEvents 7Qsgys#/=  
        ConvertWidth "m", "m" _FEF x  
        DoEvents X@f}Q`{Ymj  
        ConvertWidth "n", "n" WKU=.sY  
        ConvertWidth "o", "o" Wvqhl 'J  
        ConvertWidth "p", "p" s79r@])=  
        ConvertWidth "q", "q" >Se,;cB'/]  
        ConvertWidth "r", "r" *j-aXN/$  
        ConvertWidth "s", "s" <1%$Vq  
        ConvertWidth "t", "t" +*^H#|!  
        ConvertWidth "u", "u" dTtSUA|V7"  
        ConvertWidth "v", "v" 1U\z5$V  
        ConvertWidth "w", "w" " Jr-J#gg  
        ConvertWidth "x", "x" =mGez )T5\  
        ConvertWidth "y", "y" FN; ^"H  
        ConvertWidth "z", "z" `"~%bS  
        ConvertWidth "A", "A" x`?3C"N:<  
        ConvertWidth "B", "B" ??T#QQ  
        ConvertWidth "C", "C" .m AjfP*  
        ConvertWidth "D", "D" akT6^cP^  
        ConvertWidth "E", "E" _ J[  
        ConvertWidth "F", "F" Z6pUZ[j,  
        ConvertWidth "G", "G" !by\9  ?n  
        ConvertWidth "H", "H" fzA9'i`  
        ConvertWidth "I", "I" 1 .X@;  
        ConvertWidth "J", "J" D6^6}1WI  
        ConvertWidth "K", "K" 9/;P->wy  
        ConvertWidth "L", "L" VD:/PL  
        ConvertWidth "M", "M" D-4f.Tq4#  
        ConvertWidth "N", "N" Ru~j,|0r4  
        ConvertWidth "O", "O" 0;ji65  
        ConvertWidth "P", "P" ty`DJO=Omj  
        ConvertWidth "Q", "Q" s@DLt+ O5  
        ConvertWidth "R", "R" tl].r|yl  
        ConvertWidth "S", "S" ?rIx/>C9  
        ConvertWidth "T", "T" d| {r5[&  
        ConvertWidth "U", "U" NCx%L-GPi  
        ConvertWidth "V", "V" 0^ibNiSP  
        ConvertWidth "W", "W" o]:9')5^  
        ConvertWidth "X", "X" wf $s*|z  
        ConvertWidth "Y", "Y" v}x&?fU `  
        ConvertWidth "Z", "Z" Rh |nP&6  
        ConvertWidth "^l", "^p" :yjFQ9^?&  
        ConvertWidth "(", "(" LDD|(KLR*.  
        ConvertWidth ")", ")" bTu9;(  
     9,tej  
    End If l+R+&b^  
"nWw;-V}}  
    With ActiveDocument ? qA]w9x  
        Dim tbl As Table gO^gxJ'0t  
        For Each tbl In .Tables EZj9wd"u  
            tbl.Rows.Alignment = wdAlignRowCenter A9JdU&  
            tbl.Range.Font.NameFarEast = "楷体" ^H' \"9;7  
            tbl.Range.Font.NameAscii = "Times New Roman" p^_yU_  
            tbl.Range.Font.Size = 10.5  kwA$Z!Rn  
        Next JG,%qFlk  
        Set tbl = Nothing MWL% Bz  
    End With _l]fkk[T  
     rD>f|kA?L  
     -]=@s  
    With ActiveDocument JZ#[ 2mLh  
         <|\Lm20 G]  
        For i = 1 To .TablesOfContents.Count N!|wo:  
            .TablesOfContents(i).Delete HdG2X  
        Next V_:&S2j  
         @v B!u[{  
         V!dtF,tH  
         S@Hf &hJ  
        paraTotal = .Paragraphs.Count &I406Z f7y  
        paraCounter = 1 CA#,THty  
         `#gie$B{  
        LastTitle0No = 0 QwJyY{O`  
        LastTitle1No = 0 'eX '  
        LastTitle2No = 0 veRm2 LSP  
        LastTitle3No = 0 ukY"+&  
        LastTitle4No = 0 ,=:D   
        LastTableNo = 0 ; Hd7*`$  
        LastFigureNo = 0 h*Pc=/p  
         J'2X&2  
        Dim Sec As Long [sb[Z:  
         5^KWCS7@  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) B+0hzkPY  
        If Sec = 0 Then #u + v_  
            Exit Sub 3H m/(C  
        End If j w9b )  
         @fV9 S"TcM  
        k = 0 +'@Dz9:>  
        Do While (paraCounter < paraTotal) And bContinue I9Fr5p-%O  
            k = k + 1 .}`Ix'.  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then 2>H24F  
                Exit Do 0AV c  
            End If )tpL#J  
            paraCounter = paraCounter + 1 xjUtl  
            If k Mod 20 = 0 Then Z: 7fV5b(  
                Me.lbCounter.Caption = paraCounter o+9j?|M  
                DoEvents g>9kXP+  
            End If BX^tR1  
        Loop Jq^T1_iqn  
         XGMiW0j0B  
         $a %MOKr  
        Do While (paraCounter < paraTotal) And bContinue *|E[L^  
             s!e3|pGS  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) LraWcO\or'  
            ShapeHeight = 0 uOGw9O-d9  
            ShapeWidth = 0 nJLFfXWx  
           BRYHX.}h\A  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth ^ K E%C;u  
             +t:0SRSt  
            Select Case ParaType (@}!0[[^  
                Case "【】表格内容" {91nL'-'  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" Zsh9>]M L  
                Case "章" Pc o'l#:  
                    LastTitle0No = LastTitle0No + 1 tdaL/rRe  
                    '新一章开始,复位其下属标题编号 y#$CMf -q^  
                    LastTitle1No = 0 /^|Dbx!u  
                    LastTitle2No = 0 n\.Vqe  
                    LastTitle3No = 0 LYg- .~<I  
                    LastTitle4No = 0 HX{`Vah E  
                     t!\tF[9e  
                    k = Val(ttNo) qcGK2Qx  
                    If k = 0 Then '非数字编号章节 !&Pui{F  
                        If ttNo <> NoSeries1(LastTitle0No) Then D #/Bx[  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString Q?/o%`N  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText ]]j uN  
                        End If 0,8okA H  
                    Else tlt*fH$ .  
                        If Val(ttNo) <> LastTitle0No Then m<g~H4  
                            rText = "第" & LastTitle0No & ttString "v4B5:bmqW  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText  bnLPlf  
                        End If V}NbuvDB@  
                         _OC<[A  
                    End If W1FI mlXS  
                     9lDhIqx0~  
                    '章段落设置 kd$D 3S ^{  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 ?#YE`]  
                    .Paragraphs(paraCounter).Style = "QLNU章节" ,T8~L#M~  
                    .Paragraphs(paraCounter).Range.Select Oh\<VvZuN  
                    Selection.EndKey unit:=wdLine m<qJcZk  
                    tc = Replace(rText, vbCr, "") VgC2+APg  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False ; p{[1  
                Case "一级标题"  y%b F&  
                    LastTitle1No = LastTitle1No + 1 oD1/{dRzj  
                    '新一级标题开始,复位其下属标题编号 a"g!e^  
                    LastTitle2No = 0 `P;s 8~  
                    LastTitle3No = 0 bB;5s`-  
                    LastTitle4No = 0 _aMPa+D=P  
                     3J438M.ka  
                    If ttNo <> NoSeries1(LastTitle1No) Then 9Ly]DZ;L  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString 1s@+;QUib  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText Q7COQ2~K   
                    End If Wh 2tNyS  
                   y[_Q-   
                     c#tjp(-  
                    '一级标题段落设置  格式:一、标题内容 x*&|0n.D  
                    .Paragraphs(paraCounter).Range.Text = rText }t1a* z  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" {Wu$YWE*sx  
                    .Paragraphs(paraCounter).Range.Select ?vHU #  
                    Selection.EndKey unit:=wdLine \K]0JH  
                    tc = Replace(rText, vbCr, "") -n<pPau2  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False c>~*/%+  
                Case "二级标题" Jl9k``r*  
                    LastTitle2No = LastTitle2No + 1 h_IDO%  
                    '新二级标题开始,复位其下属标题编号 f_Av3  
                    LastTitle3No = 0 A1?2*W  
                    LastTitle4No = 0 1"M]3Kl  
                     ;K &o-y  
                    If ttNo <> NoSeries1(LastTitle2No) Then -701j'q{  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString cX OK)g#  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText PO 7Lf#9]  
                    End If f\>M'{cV  
                     u4%Pca9(=  
                    '二级标题段落设置 格式:(一)、标题内容 "djw>|,N<  
                    .Paragraphs(paraCounter).Range.Text = rText do+.aOC  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" P&e\)Z|  
                     t=O8f5Pf{  
                    .Paragraphs(paraCounter).Range.Select (%W&4a1di  
                    Selection.EndKey unit:=wdLine PJrtM AcKq  
                    tc = Replace(rText, vbCr, "") 4G> H  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False U,-39mr  
                 h"lv7;B$  
                Case "三级标题" ^vO+(p  
                    LastTitle3No = LastTitle3No + 1 nl,uuc *;  
                    '新三级标题开始,复位其下属标题编号 s)Cjc.Qs  
                    LastTitle4No = 0 QM#4uI55B  
                     -FQ 'agf@&  
                    If Val(ttNo) <> LastTitle3No Then #PQB(=299P  
                            rText = LastTitle3No & ". " & ttString 1.9}_4!  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText !*. -`$x  
                         -kwXvYu\  
                    End If r|PB*`  
                    '三级标题段落设置 格式:1. 标题内容 :| 8M`18lZ  
                    .Paragraphs(paraCounter).Range.Text = rText oVe|M ss6  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" J 9 iy  
                    .Paragraphs(paraCounter).Range.Select W= qVc  
                    Selection.EndKey unit:=wdLine 8-%TC\:  
                    tc = Replace(rText, vbCr, "") I \JGs@I   
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False 6N S201o  
                Case "四级标题" spPNr  
                    LastTitle4No = LastTitle4No + 1 %vhnl'  
                     p\ZNy\N^  
                    If Val(ttNo) <> LastTitle4No Then `LE6jp3,  
                            rText = "(" & LastTitle4No & "). " & ttString 1sdLDw_)p  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText .:QLk&a,:,  
                     I4q9|'-yx  
                    End If Q_X.rUL0w  
                    '四级标题段落设置 格式:(1). 标题内容 QR0Q{}wbqU  
                    .Paragraphs(paraCounter).Range.Text = rText qd)/9*|Jl  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" |3[Wa^U5  
                    .Paragraphs(paraCounter).Range.Select zZ323pq  
                    Selection.EndKey unit:=wdLine hUMf"=q+  
                    tc = Replace(rText, vbCr, "") 6WJ)by  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False 1gy.8i  
                 u=7J /!H7^  
                Case "表格标题" NI [ pp`  
                    LastTableNo = LastTableNo + 1  K;z7/[%  
                     bNNr]h8y-  
                    If ttNo <> CStr(LastTableNo) Then r^a7MHY1  
                            rText = "表" & LastTableNo & ". " & ttString 4'A!; ]:  
                            ErrMsg.AddItem "表格编号错误:" & ParaText i,4>0o?  
                    Qq;Foa  
                    End If )MchsuF<  
                     M`i\VG  
                    '表格名称段落设置 格式:表1. 表格名称 |NC*7/}  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" Q;JM$a?5iV  
                    xe = Replace(rText, vbCr, "") QKN+>X  
                    .Paragraphs(paraCounter).Range.Select 474SMx$  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 #(JNn'fzq  
                    Selection.Range.Text = xe 4k_vdz  
                    Selection.EndKey .QJ5sgmh  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False c~uKsU  
                 wlk4*4dKn  
                Case "表格首行" tL) t"  i  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" |O9 O )o  
                Case "图片标题" _JE"{ ;  
                    LastFigureNo = LastFigureNo + 1 q $tUH)0  
                     Zk"eA'"\  
                    If ttNo <> CStr(LastFigureNo) Then 9-DZU,`P  
                            rText = "图" & LastFigureNo & ". " & ttString Ww%=1M]e-  
                            ErrMsg.AddItem "表格编号错误:" & ParaText ?>rW>U6:P  
                   h+&OQ%e=8  
                    End If r^paD2&}  
                    '图片名称段落设置 格式:图1. 图名称 /+;h)3PN6  
                    .Paragraphs(paraCounter).Range.Text = rText j4`0hnqI  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" NzSoqh{R  
                    .Paragraphs(paraCounter).Range.Select ,\ k(x>oy  
                    Selection.EndKey unit:=wdLine C:C}5<fk x  
                    xe = Replace(rText, vbCr, "") bc) ~k:  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False W$OG( m!W>  
                Case "正文" G]i/ nB  
                     '正文名称段落设置 =L:4i\4  
                    .Paragraphs(paraCounter).Style = "QLNU正文" Hx*;jpy(2  
               Case "文献条目" >eB\(EP  
                    With .Paragraphs(paraCounter) Z9 9>5\k  
                        '.Range.Select ~ZEmULKkR  
                        'Selection.ClearFormatting *HO}~A%Lx  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” ahOMCZF|  
                        .Style = "QLNU参考文献" ^,8)iV0j_  
                    End With WDPb !-VT  
               Case "图表注解" o .G!7  
                    With .Paragraphs(paraCounter) dEA 6   
                        .Range.Font.NameFarEast = "楷体" U`d5vEhT  
                        .Range.Font.NameAscii = "Times New Roman" DhT>']Z  
                        .Range.Font.Size = 9 '小5号字 "C19b:4H  
                         0#&5.Gr)  
                        .Alignment = wdAlignParagraphCenter \cUNsB5  
                        .LeftIndent = 0 J/GSceHF  
                        .RightIndent = 0 I}6\Sv=  
                        .FirstLineIndent = 0 O 8u j`G 9  
                        .LineSpacing = 12 -~ Mb  
                        .LineSpacingRule = wdLineSpaceExactly 7~aM=8r  
                        .LineUnitAfter = 0 `[)YEg s  
                        .LineUnitBefore = 0 ]<pjXVRt"  
                        .OutlineLevel = wdOutlineLevelBodyText FCuB \ Q  
                        .PageBreakBefore = False GlT7b/JCG  
                        .RightIndent = 0 %$ Z7x\_  
                        .WordWrap = True m{uxI za  
                        .LineUnitAfter = 0.5 %_L\z*+  
                         Hp|_6hO 2  
                    End With &[/w_| b  
                Case Else  Q&g^c2  
                    '不作处理 `_{`l4i 5  
            End Select Jjv=u   
             {{MRELipW  
            '含有inlineshape的段落处理 /[)qEl2]K  
            If ShapeHeight > 30 Then H {k^S\K  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 JSW}*HR  
            End If {(wH Pzq  
             M&U j^K1  
            If (ShapeWidth + ShapeHeight) > 150 Then Q=T&  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" j|%HIF25  
            End If U,q\em R  
             be-~\@  
            '段落计数器递 jvFTR'R)=  
            paraCounter = paraCounter + 1 R_7 d@FQ1  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter /fT+^&  
            Me.txtStatus.Text = ParaText xJZ>uTN  
            DoEvents ;u(<h?%e  
        Loop xAe~]k_D  
    End With J<maQ6p  
     "WK{ >T  
    msg = "" V8-oYwOR  
     "zFNg';  
    For i = 0 To Me.ErrMsg.ListCount - 1 5HO9 +i  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) #KXa&C  
    Next @8^[!F  
     >W`4aA  
     ,%Up0Rr,  
     *"n vX2iz  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg `~;rblo;  
    Me.cmdCheck.Enabled = True Q|L9g z[?  
    Me.txtStatus.Visible = True rZ^v?4Z\  
    Me.lbParaType.Visible = False C@W"yYt  
     ^__Dd)(  
    bContinue = False fCtPu08{Z  
End Sub ICkp$u^  
%V{7DA&C  
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) a@*S+3  
    Dim pTEXT As String e\JojaV  
     nwaxz >;  
    pTEXT = ChKRange.Text  {=QiZWu  
     O1*NzY0Y%-  
    ParaType = "其它" GBFtr   
    TitleString = pTEXT S.q] .a  
    TitleNo = "N/A" P(73!DT+  
     J8)#PY[i4  
    shpCounter = ChKRange.InlineShapes.Count Bw64  
    If shpCounter <> 0 Then 09kt[  
        MaxShpHeight = 0: TotalShpWidth = 0 V6#K2  
        For i = 1 To shpCounter $g+[yb7@  
            k = ChKRange.InlineShapes(i).Height ]U7KLUY>:  
            l = ChKRange.InlineShapes(i).Width Y +\%  
            If k > MaxShpHeight Then eT8}  
                MaxShpHeight = k tl'9IGlc  
            End If S"k *6 U  
            TotalShpWidth = TotalShpWidth + l G 0;XaL:  
        Next *b}lF4O?  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then qt^T6+faaQ  
            Exit Sub @wC5 g 4E  
        End If $N=N(^  
    End If 15o?{=b[  
     g9WGkH F  
    '空行 B7<Kc  
    If Len(pTEXT) <= 2 Then -s$F&\5by  
        Exit Sub mL`5u f  
    End If -O!Zxg5x  
     ' dx1x6  
         (S`2[.j  
    '是否为表格中的文字  \qR %%S  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then O Wj@< N  
        ParaType = "表格内容" `o?Ph&p}  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) -7&Gi +]  
        If k = 1 Then (%o2jroQ#  
            ParaType = "表格首行" vp cr PVA^  
        End If D"ehWLj  
        Exit Sub X2i}vjkY  
    End If S^<g_ q  
     V-r3-b  
    '例外情况:脚注 9Q-*@6G  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then b2=0}~LK  
        ParaType = "脚注" z)=+ F]  
        Exit Sub { e5/+W  
    End If o9S+6@  
     F. =Bnw/-  
    '例外情况:尾注 -cm$[,b6  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then a~!G%})'a  
        ParaType = "尾注" SdwS= (e6  
        Exit Sub M z;[+p  
    End If VA%Un,5h  
     Io|Aj  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then [mr9(m[F  
        ParaType = "页眉页脚" 2'<[7!  
        Exit Sub ;h" P{fF   
    End If u=/CRjot  
     [ $T(WGF  
     >ap1"n9k  
    With regEX JiU9CeD3  
        .Global = True )){9&5,0:  
         Ze3X$%kWi  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" STw#lU) %(  
        If regEX.Test(pTEXT) Then "a/ Q%.P  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") <P;}unq.kw  
            TitleString = regEX.Replace(pTEXT, "$3") \7 NpT}dj  
            TitleNo = regEX.Replace(pTEXT, "$1") m&iH2 |  
            ParaType = "章" 13&0rLS  
            Exit Sub y&=ALx@  
        End If gxMfu?zk"  
         h"[+)q%L  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" =.`qixN  
        If regEX.Test(pTEXT) Then 'EfR|7m  
            ParaType = "一级标题" -tI'3oT1  
            regEX.Execute (pTEXT) t"YNgC ^  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") ;kJA'|GX  
            TitleString = regEX.Replace(pTEXT, "$3") OOz[-j>'Y+  
            TitleNo = regEX.Replace(pTEXT, "$1") 0% #<c p  
            Exit Sub &"mzwQX  
        End If j]m|7]  
         tpTAeQ*:d  
        '全角或半角括号中的数字 rJInj>|{=  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" zb Z4|_  
        If regEX.Test(pTEXT) Then uH;-z_Wpn!  
            ParaType = "二级标题" z>06hBv(?Y  
            regEX.Execute (pTEXT) A &9(mB  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") N#_GJSG_|  
            TitleString = regEX.Replace(pTEXT, "$5") !'*cs g  
            TitleNo = regEX.Replace(pTEXT, "$2") .ol'.t ,S  
            Exit Sub T}=>C+3r  
        End If r]Ff{la5  
         UD y(v]  
        '阿拉伯数字  1. 2. 4~OQhiJ   
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" BiZ=${y  
        If regEX.Test(pTEXT) Then hw~a:kD  
            ParaType = "三级标题" ^p/Ob'!  
            regEX.Execute (pTEXT) I;?X f  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 z5X~3s\dP  
            TitleString = regEX.Replace(pTEXT, "$3") ) (Tom9 ^  
            TitleNo = regEX.Replace(pTEXT, "$1") fn/7wO$!  
            Exit Sub VCcr3Dx()F  
        End If S" hTE7`   
         ?}Lg)EFH  
        '全角或半角括号中的阿拉伯数字 rUjdq/I:Z  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" 34R!x6W0  
        If regEX.Test(pTEXT) Then <JwX_\?ln  
            ParaType = "四级标题" Vax^8 -  
            regEX.Execute (pTEXT) e~T@~(fft  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") vHE^"l5v  
            TitleString = regEX.Replace(pTEXT, "$5") C}*cx$ .  
            TitleNo = regEX.Replace(pTEXT, "$2") eV cANP  
            Exit Sub oo$MWN8a>r  
        End If cbu@*NzY,  
         7 #=}:3c  
        '表格名称 02k4 N%  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" oq_6L\ ~  
        If regEX.Test(pTEXT) Then gxGrspqg  
            ParaType = "表格标题" |J~eLh[d  
            regEX.Execute (pTEXT) \OpoBXh  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) U70]!EaT  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) 0G2g4DSKD  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) Zf>^4_x3P  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 )*d W=r/$V  
            Exit Sub ,s^<X85gp\  
        End If 6dEyv99  
         M'1!<a-Mp  
        '图片名称 j,2l8?  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" #9LzY  
        If regEX.Test(pTEXT) Then b( ^^m:(w  
            ParaType = "图片标题" l48k<  
            regEX.Execute (pTEXT) +tN &a  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3")  oAZh~~tp  
            TitleString = regEX.Replace(pTEXT, "$3") e|r0zw S  
            TitleNo = regEX.Replace(pTEXT, "$1") xDO7A5  
            Exit Sub (,xZGa  
        End If O;]?gj 1@  
         9%iFV N'  
        '参考文献 H_IGFZCh  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 I6LD)?  
        If regEX.Test(pTEXT) Then \BI/G  
            ParaType = "文献条目" GW2')}g  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") lKEa)KF[  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") ?Jtg3AY  
            Exit Sub KIVH!2q;  
        End If 8)\M:s~7&  
         EC?Efc+O  
        prfx = Left(pTEXT, 2) *V;3~x!  
        If prfx = "注:" Or prfx = "注:" Then 2PSTGG8JV  
            ParaType = "图表注解" W:QwHZ2O  
            Exit Sub - n6jG}01b  
        End If vVs#^"-nW  
         XDD<oo  
         pD@zmCU  
        ParaType = "正文" $YG1z  
         G;oFTP>o  
    End With 8"vwU@cfC  
End Sub ?&l)W~S  
qsg>5E  
Sub ConvertListToOrdinary() Ok%}|/ P4  
    Dim st As Paragraph g9my=gY  
    With ActiveDocument [Id}4[={e  
        For i = .Paragraphs.Count To 1 Step -1  ELh3 ^  
            Set st = .Paragraphs(i) G7* h{nE  
            lst = st.Range.ListFormat.ListString 4o9$bv  
            If lst <> "" Then &}`K^5K|O:  
                st.Range.ListFormat.RemoveNumbers zSjgx_#U  
                st.Range.InsertBefore lst & " " O hR1Jaed  
            End If qU[O1bN  
        Next y02 u?wJ  
    End With u>Ki$xP1  
    Set st = Nothing . %0ne:5  
End Sub }+Vv0jX|V  
 9|S`ub'  
Private Sub UserForm_Activate() u&T dWZe  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" w9#R'  
    Me.lbTotal.Font.Bold = True 3An(jt$%Q  
    Me.txtStatus.Visible = False } IlP:  
    Me.cmdCheck.Enabled = True qA/bg  
Z#Lx_*p]Q  
End Sub #cwCocw  
]R_G{%  
u=qPzmywt  
Sub CheckSuperScript() /CT(k1>  
    Selection.Find.ClearFormatting twk&-:'  
    Selection.Find.Replacement.ClearFormatting )8{6+{5lu  
    With Selection.Find [B?z1z8l  
        .Text = "[【\[[〖](*)[】\]〗]]" 0D)` 2W  
        .Replacement.Text = "[\1]" =`I?mn&  
        .Replacement.Font.Superscript = True f8:$G.}i  
        '.Replacement.Font.Color = wdColorBlue s!6=|SS7  
        .Forward = True I/UQ'xx  
        .Wrap = wdFindContinue /4joC9\AB  
        .FORMAT = True /b.oEGqZX  
        .MatchCase = False wh~s Z  
        .MatchWholeWord = False nb@"?<L!  
        .MatchByte = False 8 HoP( +?  
        .MatchAllWordForms = False G"S5ki`o  
        .MatchSoundsLike = False -'C!"\%  
        .MatchWildcards = True &(&  
    End With e4qj .b  
    Selection.Find.Execute Replace:=wdReplaceAll f(u&XuZ  
End Sub \-. Tg!Q6  
En9R>A;`  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) g<[rH%\6fg  
    bContinue = False -rDz~M+  
    Set regEX = Nothing :LV.G0)#  
End Sub F1A1@{8bN  
T0FZ7  
Sub CeateOrModifyStyle() >v0:qN7|  
' ~r`Wr`]_z  
' (buw^ ,NwZ  
Dim stl As Style \/Ij7nD`l%  
     B[xR-6phW  
    Options.Pagination = False cINHH !v  
     zd`=Ih2Wx  
    On Error Resume Next PX3  
    For Each stl In ActiveDocument.Styles 5iWe-xQ>  
        stl.Delete .T 3=Eq&"W  
    Next \OHv|8!EI@  
    On Error GoTo 0 TvrwVL)  
     jFj~]]j  
    Set stl = Nothing ` X+j2TmS  
     nN ~GP"}  
    DoEvents & QY#3yj=  
    On Error Resume Next  ]R Mb,hJ  
     %N~;{!![p  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph .u< U:*  
     LC'2q*:'  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph Gm&2R4)EP  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph !.+"4TF  
     &jJckT  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph [b5(XIGUN}  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph t]TyXAr~  
     X N;/ nU  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph  0:dB 9  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph J#7(]!;F  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph Tj,2r]g`<  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph <7g Ml  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph +?e}<#vd'?  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph cjg=nTsBA  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph YhgUCF#  
     org*z!;.   
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph 5L &:_iQZy  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph PqhlXqX9  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph M j~${vj  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph <-|SIF  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph w<d*#$[,*  
     HP$K.a7H  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph g[!Cj,  
    On Error GoTo 0 piu0^vEEH  
    DoEvents Jf+7"![|  
     hh&Js'd  
    'BaseStyle uJPH~mdW   
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False ~R!gJTO9  
    With ActiveDocument.Styles("BaseStyle").Font qWB%),`j>  
        .NameFarEast = "宋体" 9U10d&M(  
        .NameAscii = "Times New Roman" #,P(isEZ"  
        .NameOther = "宋体" ;? 8Iys#  
        .Size = 10.5 {aJz. `u\  
        .Bold = wdUndefined ~N[|bPRmhE  
        .Italic = wdUndefined 3zb)"\(R  
        .Subscript = wdUndefined ma7fDo0,`h  
        .Subscript = wdUndefined slSR=XOG  
         zH+<bEo=1=  
        .Underline = wdUnderlineNone P|N?OocE  
        .UnderlineColor = wdColorAutomatic 2k3 z'RLG  
        .StrikeThrough = False &HxT41pku  
        .DoubleStrikeThrough = False q)Je.6$#X  
         y#r\b6  
        .Outline = False |+/$ g.  
        .Emboss = False {Tx 3$eU  
        .Shadow = False K.h]JD]o  
        .Hidden = False Fd"WlBYy0  
        .SmallCaps = False f%1wMOzx  
        .AllCaps = False $SF3odpt  
        .Color = wdColorAutomatic GI4oQcJ  
        .Engrave = False Y:%"K  
        .Scaling = 100 kv%)K'fU4  
        .Kerning = 1 kh&_#,  
        .Animation = wdAnimationNone <NL+9lR  
        .DisableCharacterSpaceGrid = False 0|Q.U   
        .EmphasisMark = wdEmphasisMarkNone .jum "va%  
    End With -4`sqv ]  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat &z0iLa4q)  
        .LeftIndent = 0 5V rcR=?O  
        .RightIndent = 0 W^ClHQ"Iy  
        .SpaceBefore = 0 X)NWX9^;'  
        .SpaceBeforeAuto = False t>@yv#  
        .SpaceAfter = 0 au A.6DQ  
        .SpaceAfterAuto = False K-<n`zg3  
         . /)j5M  
        .LineSpacingRule = wdLineSpaceSingle J/gQQ. s  
        .Alignment = wdAlignParagraphJustify 1Q_ ``.M  
         &U0WkW   
        .WidowControl = False r1hD %a  
        .KeepWithNext = False eU"mG3 __  
        .KeepTogether = False G,/Gq+WX  
        .PageBreakBefore = False GFY-IC+fc  
        .NoLineNumber = False 'Ix5,^M}B  
         Fi k@hu  
        .FirstLineIndent = CentimetersToPoints(0) Q^q=!/qQ  
        .OutlineLevel = wdOutlineLevelBodyText Y(W{Jd+  
        .CharacterUnitLeftIndent = 0 Rh yegD  
        .CharacterUnitRightIndent = 0 9H8=eJd  
        .CharacterUnitFirstLineIndent = 0 [Z% l.  
        .LineUnitBefore = 0 Qasr:p+  
        .LineUnitAfter = 0 intvlki]be  
        .AutoAdjustRightIndent = True vF+YgQ1H  
        .DisableLineHeightGrid = True Qq>ElQ@  
         aKD;1|)  
        .FarEastLineBreakControl = True KY 8^BjY@  
        .WordWrap = True = jBL'|k5  
        .Hyphenation = False :X|AW?*  
         :3 PGf  
        .HangingPunctuation = True -|$*l Q  
        .HalfWidthPunctuationOnTopOfLine = True e Ri!\Fx  
        .AddSpaceBetweenFarEastAndAlpha = True _jk|}IB;X  
        .AddSpaceBetweenFarEastAndDigit = True 3v G  
        .BaseLineAlignment = wdBaselineAlignBaseline 5A;"jp^ Z  
    End With e)b r`CD%  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False Cea"qNq=k  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll x:vrK#8D>  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese n=r= u'oi  
    ActiveDocument.Styles("BaseStyle").NoProofing = False 0 c, bet{m  
     gBfX}EK7F  
    '一级标题题样式 #VQ36pCd  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ! 7Nn ]Lx  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" 0ZFB4GL  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False ^U" q|[qy  
    With ActiveDocument.Styles("QLNU一级标题").Font Vz k cZK  
        .NameFarEast = "黑体" B_b8r7Vn`  
        .NameAscii = "Arial Black" =sL(^UISl  
        .NameOther = "黑体" 9c:5t'Qt5.  
        .Name = "黑体" Age-AJ  
        .Size = 16              '三号 - =yTAx  
        .Bold = True DwTi_8m;  
        .Italic = wdUndefined G@;Nz i89  
        .Subscript = wdUndefined Sq.9-h%5  
        .Superscript = wdUndefined *j/ uihY  
    End With M44_us  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat s%FP6u7[i  
         !OV|I  
        .LeftIndent = CentimetersToPoints(0) 5 7'q;I  
        .RightIndent = CentimetersToPoints(0) R+k=Ea&x  
        .FirstLineIndent = CentimetersToPoints(0) p.qrf7N$  
         30t:O&2<  
        .LineSpacingRule = wdLineSpaceSingle &f$a1#O}dx  
        .Alignment = wdAlignParagraphCenter ;>cLbjD  
         gCjH%=s  
        .WidowControl = True iJ5e1R8tN  
        .KeepWithNext = True ;|2U f   
        .KeepTogether = True e OO!jrT:  
        .OutlineLevel = wdOutlineLevelBodyText C+}CU}  
         9)1P+c--  
        .LineUnitBefore = 0.5 M|$H+e } :  
        .LineUnitAfter = 0.5 ~:R4))qpg  
    End With mxtlr)  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False Rc;1Sm9\  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll  ]v/t8`  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese B/kcb(5v  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True &3!i@2d;3f  
    DoEvents Xcs8zT  
     :d, >d   
    '二级 oiIt3<BX  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ? +5" %4o  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" g-4gI\  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False 4S d+"3M  
    With ActiveDocument.Styles("QLNU二级标题").Font >1_Dk7E0D  
        .NameFarEast = "黑体" ABd153oW"  
        .NameAscii = "Arial Narrow" 1uKD&k%q  
        .NameOther = "黑体" )G}sb*+v?  
        .Name = "黑体" JDIz28Ww  
        .Size = 15        '小三号 *g}vT8w'}  
        .Bold = False I8XGU)  
        .Outline = False FjK Ke7  
        .Italic = wdUndefined $IZ *|>(  
        .Subscript = wdUndefined .N?|t$J  
        .Superscript = wdUndefined H@VBP Q}Q  
    End With [YL sEo=  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat ?z*W8b]'  
        .LeftIndent = CentimetersToPoints(0) W66}\&5  
        .RightIndent = CentimetersToPoints(0) EU`' 8*4  
        .FirstLineIndent = CentimetersToPoints(0) Pcd i  
         O~7p^i}  
        .LineSpacingRule = wdLineSpaceSingle BA`kxL/x  
        .Alignment = wdAlignParagraphLeft !pE>O-| K  
         C@l +\M(  
        .WidowControl = True "j *fVn  
        .KeepWithNext = True F#zQQ)(Pf  
        .KeepTogether = True RlG'|xaT  
        .PageBreakBefore = False Yb,G^+;  
        .OutlineLevel = wdOutlineLevelBodyText Lh8# I&x  
         UHTb61Gs  
        .LineUnitBefore = 0.5 Yj|c+&Ng  
        .LineUnitAfter = 0.5 UMnR=~.  
         Br_3qJNVP  
    End With &utS\-;G  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False VQZT. ^  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll <m|FccvQ  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese A- <.#  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True 3 hp tP  
    DoEvents ?S;et 2f  
     <v1_F;{n  
    '三级标题样式 [ni-UNTv  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Q*TQ*J7".X  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" BxW||O|_N"  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False CNpCe-%&  
    With ActiveDocument.Styles("QLNU三级标题").Font 6%Cna0x:&  
        .NameFarEast = "宋体" Dg?Ho2ih  
        .NameAscii = "Times New Roman" 8' WLm  
        .NameOther = "黑体" 0B#rqTEKu  
        .Name = "黑体" :Kt{t46)  
        .Size = 14               '四号 (7 ] \p  
        .Bold = False 6|>"0[4S  
        .Outline = False fSgGQ D4  
        .Italic = wdUndefined L%=BCmMx  
        .Subscript = wdUndefined 3;'RF#VL  
        .Superscript = wdUndefined ,7/F?!G!J  
    End With n# 4e1n+I  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat GF/!@N  
        .LeftIndent = CentimetersToPoints(0) 8WP|cF]  
        .RightIndent = CentimetersToPoints(0) X4$86  
        .FirstLineIndent = CentimetersToPoints(0) Uaz$<K6  
         S)\Yc=~h  
        .LineSpacingRule = wdLineSpaceSingle /l b"g_  
        .Alignment = wdAlignParagraphLeft ~gi,ky^!  
         O/ ih9,  
        .WidowControl = True 0Q{^BgW  
        .KeepWithNext = True ;!9-I%e  
        .KeepTogether = True Nu[0X  
        .PageBreakBefore = False y?-zQs0  
        .OutlineLevel = wdOutlineLevelBodyText T*"*##c  
         "Nh}_jO  
        .CharacterUnitLeftIndent = 0 t,IQ|B&0  
        .CharacterUnitRightIndent = 0 *=)kR7,]9d  
        .CharacterUnitFirstLineIndent = 2 K^Ixu~  
         aWk1D.  
        .LineUnitBefore = 0.5 ^V?W'~  
        .LineUnitAfter = 0 EG#mNpxE  
    End With x!`~+f.6  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False ]w5j?h"b  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll Z[GeU>?P  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese !?aL_{7J  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True B.Y8O^rx  
    DoEvents + d289"  
     tPz!C&.=  
    '四级标题样式 }{SpV  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") wgcKeTD9  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" iebnQf  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False nl/~7({  
    With ActiveDocument.Styles("QLNU四级标题").Font YsA.,   
        .NameFarEast = "宋体" ;56mkP  
        .NameAscii = "Times New Roman" \1f&D !F]b  
        .NameOther = "宋体" 5)=YTUCk  
        .Name = "宋体" qZB}}pM#  
        .Size = 12               '小四号 sIz*r Gz  
        .Bold = True s;Sv@=\  
        .Outline = False *t_JR  
        .Italic = wdUndefined f2]O5rX p  
        .Subscript = wdUndefined Z[%vO?,  
        .Superscript = wdUndefined @UwDsx&2(t  
    End With "V>p  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat /DxeG'O  
         g+pj1ycw/  
        .LeftIndent = CentimetersToPoints(0) "eH.<&  
        .RightIndent = CentimetersToPoints(0) ;NPbEPL[5  
        .FirstLineIndent = CentimetersToPoints(0) \sc's7  
         P^-daRb  
        .LineSpacingRule = wdLineSpaceSingle #,jw! HO]  
        .Alignment = wdAlignParagraphLeft ~ \3j{pr  
         O <#H5/Tq  
        .WidowControl = True 5-B %08T  
        .KeepWithNext = True \wb0%> 0  
        .KeepTogether = True @w @SOzS)  
        .PageBreakBefore = False ;0JK>c ]#  
        .OutlineLevel = wdOutlineLevelBodyText 1<E:`,Mn?  
         TO]7%aB  
        .CharacterUnitLeftIndent = 0 =LyR CrA  
        .CharacterUnitRightIndent = 0 ~fz9AhU8  
        .CharacterUnitFirstLineIndent = 2 bPMkBm  
         =g^k$ Rc  
        .LineUnitBefore = 0 Rdj/n :  
        .LineUnitAfter = 0 +sm9H"_0  
         Bxf]Lu,\U@  
    End With ;vp[J&=  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False SUaXm#9  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll #7BX,jvn>  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese p;P cD  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True bo_Tp~ j  
    DoEvents ykBq?Vr  
     Uy;e5<<  
    '正文校式 Jj'dg6QY'  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") BWev(SF{Ny  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" cqZuG}VR  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False k3VRa|Y")  
    With ActiveDocument.Styles("QLNU正文").Font 3v,Bg4[i  
         t +h}hL  
        .NameFarEast = "宋体" ?>T (  
        .NameAscii = "Times New Roman" u8N"i),  
        .NameOther = "宋体" f~Ve7   
        .Name = "宋体" yN:U"]glC  
         =&x u"V  
        .Size = 12               '小四号 u0i;vO)MNt  
         `CqF&b  
        .Bold = wdUndefined .3:s4=(f  
        .Italic = wdUndefined )D8V;g(7F  
        .Subscript = wdUndefined 4&_|m yO&  
        .Superscript = wdUndefined )2g-{cYv  
         ?:c:D5 N  
        .Outline = False IRY/0v  
        .Emboss = False a<Ksas'5S  
        .Shadow = False <-s5 ;xwtS  
        .Hidden = False }:xj%?ki  
         "Cn<x\E b  
        .DisableCharacterSpaceGrid = True hNUkaP  
    End With <:!;79T\  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat N}X7g0>hV  
         K['Gp>l  
        .LeftIndent = CentimetersToPoints(0) /;V:<mekf  
        .RightIndent = CentimetersToPoints(0) ;Sw % t(@  
        .FirstLineIndent = CentimetersToPoints(0) 5 K[MKfT  
         cM;,nX%/  
        .LineSpacingRule = wdLineSpaceExactly jrLV\(p  
        .LineSpacing = 20 Wo, "$Z6B  
        .Alignment = wdAlignParagraphLeft Q)%a2s;  
         h%+ 6 y  
        .WidowControl = False vI5'npM  
        .KeepWithNext = False p)YI8nW  
        .KeepTogether = False 2/f!{lz](  
        .PageBreakBefore = False z8*{i]j  
        .Hyphenation = False XFJz\'{  
         mgI7zJX  
        .OutlineLevel = wdOutlineLevelBodyText "[Hn G(gA  
         9 6j*F,{  
       $G D@e0  
        .CharacterUnitLeftIndent = 0 mj|TWDcj+  
        .CharacterUnitRightIndent = 0 h:~ 8WV|  
        .CharacterUnitFirstLineIndent = 2 g>;u} +lO  
         %P HYJc  
        .LineUnitBefore = 0 ]h 4r@L3  
        .LineUnitAfter = 0 3.@ I\p}  
        .SpaceBefore = 0 BU=;rz!;  
        .SpaceAfter = 0 &!0%"4  
         ]~t4E'y)z  
        .DisableLineHeightGrid = True c7f11N!v>b  
    End With vi~NfD@s  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False QvvH/u  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll qN@0k>11?  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese xt=ELzu$  
    ActiveDocument.Styles("QLNU正文").NoProofing = True ]>H'CM4JR  
    DoEvents x) OJ?l  
     ,); -v4$  
    '图片段落样式 7>!Rg~M  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") ^rssZQKY[  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" q&d5V~q  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False Jt|W %`X>D  
    With ActiveDocument.Styles("QLNU图片段落").Font 2Wp)CI<\D  
        .Size = 12               '小四号 ]mdO3P  
        .Italic = wdUndefined %Q y9X+N:  
        .Subscript = wdUndefined CCp&+LRvR  
        .Superscript = wdUndefined o~tL;(sz  
    End With \+VQoB/  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat _}3NLAqg  
         v|@1W Uc,g  
        .LeftIndent = CentimetersToPoints(0) *z6m644H  
        .RightIndent = CentimetersToPoints(0) #-9@*FFL,  
        .FirstLineIndent = CentimetersToPoints(0) T[+~-D @  
         1`v$R0 `!  
        .LineSpacingRule = wdLineSpaceSingle fYUbr"Oe  
        .Alignment = wdAlignParagraphCenter I`4k5KB;  
        .KeepWithNext = True -H9WwFk  
        .OutlineLevel = wdOutlineLevelBodyText iiD }2y b  
         i[ 40p!~  
        .CharacterUnitLeftIndent = 0 hjx= ?  
        .CharacterUnitRightIndent = 0 D+('1E?  
        .CharacterUnitFirstLineIndent = 0 P)rz%,VF+  
         s8|F e_  
        .LineUnitBefore = 0 P?$Iht.^  
        .LineUnitAfter = 0 EU4j'1!&g<  
    End With ;'P<#hM[$  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False Z[G:  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll +xn5 9V  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese XO,gEn&6V  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True P-)`FB  
    DoEvents eiwPp9[08  
     y vo4 .u  
     ~?<VT k  
    '第X章 Eq6. s)10  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ,*j@Zb_r  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" S?e*<s9k  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False k\ A[p\  
    With ActiveDocument.Styles("QLNU章节标题").Font X].Igb)2  
        .NameFarEast = "黑体" %IH ra6  
        .NameAscii = "Arial Black" 1,Ji|&Pwf  
        .NameOther = "Arial Black" <0!)}O  
        .Name = "黑体" a n,$Z,G#K  
        .Size = 16 8G?OZ47k#  
        .Bold = True _ Y8j l,J  
        .UnderlineColor = wdColorAutomatic J*m ~fZ^  
        .Outline = False E=L 1q)  
        .Italic = wdUndefined f3"sKL4|  
        .Subscript = wdUndefined 4">C0m;ks  
        .Superscript = wdUndefined W $EAo+V  
        .Scaling = 100 sQgJ`+Y8_  
        .DisableCharacterSpaceGrid = True dO|n[/qL0  
    End With >v1ajI>O&{  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat &l _NCo2  
        .LineSpacingRule = wdLineSpaceSingle 4)+L(KyB2  
        .Alignment = wdAlignParagraphCenter !B:wzb_  
        .WidowControl = True z%~rQa./$  
        .KeepWithNext = True 7xoq:oP-}N  
        .KeepTogether = True K } TSwY  
        .PageBreakBefore = True E0aJ~A(Hv  
        .OutlineLevel = wdOutlineLevelBodyText {<L|Z=&k`  
         #S') i1 ;  
        .LeftIndent = CentimetersToPoints(0) 3&"+)*/ m  
        .RightIndent = CentimetersToPoints(0) ,<O|Iis  
        .FirstLineIndent = CentimetersToPoints(0) y.+!+4Mg|  
         *!&,)''  
        .CharacterUnitLeftIndent = 0 i f!   
        .CharacterUnitRightIndent = 0 @r9[&  
        .CharacterUnitFirstLineIndent = 0 Xn* >qm  
         c);vl%  
        .LineUnitBefore = 1 7Kn}KO!Y8  
        .LineUnitAfter = 0.5 7O\Qxc\  
         U]64HuL  
        .AutoAdjustRightIndent = False v#b( 0G  
        .DisableLineHeightGrid = True I/Q~rV t  
        .FarEastLineBreakControl = True $J!WuOz4^i  
        .WordWrap = True `<IaQY  
    End With Twq,6X-  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False )POU58$  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll 9/$Cq  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese yLEA bd%+  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True Tjj-8cg  
    DoEvents w'zSV1  
     zp:EssO=Q  
    '表格标题 %1z`/B  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") *r].EBJ\  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" eh}I?:(a?  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False pz,iQUs _o  
    With ActiveDocument.Styles("QLNU表格标题").Font %%qg<iO_  
        .NameFarEast = "楷体" d0}P  
        .NameAscii = "Arial" \<Di |X1  
        .Name = "楷体" T/iZ"\(~w  
        .Size = 10.5 !(#d 7R  
        .Bold = True k4`(7Z  
        .Underline = wdUnderlineNone _<6B.{$\7m  
        .Italic = wdUndefined jWcfQ  
        .Subscript = wdUndefined MD>xRs   
        .Superscript = wdUndefined y[d>7fcf  
        .Color = wdColorAutomatic E?cf#;2h8m  
    End With BT* {&'\/  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat !T$h? o  
         Fb<fQIa  
        .LineSpacingRule = wdLineSpaceSingle 3%YDsd vQx  
        .Alignment = wdAlignParagraphCenter }-T :   
        .KeepWithNext = True }Wz[ox9b  
        .KeepTogether = True mae@ L  
        .OutlineLevel = wdOutlineLevelBodyText xyy EaB  
         2g$;ZBHO|8  
        .LeftIndent = CentimetersToPoints(0) $n_ax\15  
        .RightIndent = CentimetersToPoints(0) IyoitIbLl  
        .FirstLineIndent = CentimetersToPoints(0) ~w"e 2a  
         "V{v*Aei0  
        .CharacterUnitLeftIndent = 0 K-4o_:F  
        .CharacterUnitRightIndent = 0 yt1dYF0Xq  
        .CharacterUnitFirstLineIndent = 0 p "d_+  
         E3QyiW  
        .LineUnitBefore = 1 K?eY<L  
        .LineUnitAfter = 0 qTI_'q  
         |^C3 5 6M>  
    End With ,)Z1&J?  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False A&L2&ofV&q  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll DQ hstXX  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese 21 N!?DR  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True kWbD?i-  
    DoEvents ujh`&GiB+  
$<F9;Z  
    '表格首行 CMC9%uq  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") &Rt^G  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False SshjUNx  
    With ActiveDocument.Styles("QLNU表格首行").Font 3h**y %^  
        .NameFarEast = "楷体" @f`s%o  
        .NameAscii = "Times New Roman" v{oHC4  
        .Name = "楷体" PXo^SHJ+gt  
        .Size = 9 rH9[x8e  
        .Bold = True k@^T<Ci  
        .Underline = wdUnderlineNone Oz-@e%8L  
        .Italic = wdUndefined + ;_0:+//  
        .Subscript = wdUndefined 7O<K?;I  
        .Superscript = wdUndefined g^[BnP)I  
    End With xew s~74L  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat |C}=  1  
        .LineSpacingRule = wdLineSpaceSingle U)C>^ !Us  
        .Alignment = wdAlignParagraphCenter a} V<CBi  
         ".sRi  
        .LeftIndent = CentimetersToPoints(0) a 3C\?5  
        .RightIndent = CentimetersToPoints(0) Pv3qN{265  
        .FirstLineIndent = CentimetersToPoints(0) Aga{ EKd  
         QS%t:,0lp  
         8 B7~Nq'  
        .CharacterUnitLeftIndent = -0.5 } bm ^`QY  
        .CharacterUnitRightIndent = -0.5 gzEcdDD  
        .CharacterUnitFirstLineIndent = -0.5 {C5-M!D{<  
         BoP,MpF  
        .LineUnitBefore = 0 (\H^ KEy  
        .LineUnitAfter = 0 Hgbrlh  
        .SpaceBefore = 0 l09SWug  
        .SpaceAfter = 0 ,d7o/8u  
         ~qkn1N%'  
    End With q*7:L  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False l\ HtP7]  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll g<^-[w4/  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese H&uh$y@  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True (x140_TH~  
    DoEvents !XQ)>T^G5  
h7J4 p  
    '表格内容 % O Jq(}  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") Tzr'3m_  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False |6 E !wW  
    With ActiveDocument.Styles("QLNU表格内容").Font ~RRS{\,  
        .NameFarEast = "楷体" cS RmC  
        .NameAscii = "Times New Roman" lt& c/xi_  
        .Name = "楷体" CtE <9?  
        .Size = 9 ]:.9:RmEV  
        .Bold = False BQL](Y "  
        .Underline = wdUnderlineNone ? b xa k  
        .Italic = wdUndefined pReSvF}}C  
        .Subscript = wdUndefined Ti&v9re%wO  
        .Superscript = wdUndefined b_']S0$c\  
    End With ][B>`gC-  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat 2-beq<I  
        .LineSpacingRule = wdLineSpaceSingle nHl{'|~  
        .Alignment = wdAlignParagraphCenter E^? 3P'%^  
         S^_F0</U,  
        .LeftIndent = CentimetersToPoints(0) xP $\ }  
        .RightIndent = CentimetersToPoints(0) n..R'vNj  
        .FirstLineIndent = CentimetersToPoints(0) Lrq e:\  
         :Hj #1-U  
        .CharacterUnitLeftIndent = -0.5 Mi047-% (  
        .CharacterUnitRightIndent = -0.5 XvIY=~  
        .CharacterUnitFirstLineIndent = -0.5 <`d;>r=4z  
        .LineUnitBefore = 0 lf}%^od~6  
        .LineUnitAfter = 0 %a|m[6+O  
        .SpaceBefore = 0 I\@`AU  
        .SpaceAfter = 0 lK3{~ \J-  
    End With k;Ask#rs  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False Eg4_kp0Lq  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll =`.OKUAn  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese .4XX )f5  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True wVkRrFJ  
    DoEvents 8y'.H21:;  
#A=ER[[  
    '图片标题 Yz ? 8n  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") zR5KC!xc  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" TV~S#yg+H  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False 91M5F$  
    With ActiveDocument.Styles("QLNU图片标题").Font ]}L tf,9  
        .NameFarEast = "楷体" Ao$|`Lgj=z  
        .NameAscii = "Times New Roman" S@cKo&^  
        .Name = "楷体"  _:HQ4s@  
        .Size = 10.5 r=S,/N(1  
        .Bold = True PG@6*E  
        .Underline = wdUnderlineNone f7I!o, /  
        .Italic = wdUndefined e`zCz`R  
        .Subscript = wdUndefined l!j,9wz7  
        .Superscript = wdUndefined 0ni/!}YP_  
        .Outline = False b)7v-1N  
        .Shadow = False t4<+]]   
        .Color = wdColorAutomatic xM**n3SZ`  
    End With {9- n3j}  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat 3M5wF6nY[[  
        .LineSpacingRule = wdLineSpaceSingle 'M,O(utGv  
        .Alignment = wdAlignParagraphCenter e#(X++ G  
         t(p}0}Pp  
        .KeepWithNext = wdUndefined USzO):o  
        .KeepTogether = True ;&$f~P Q  
        .OutlineLevel = wdOutlineLevelBodyText n a+P|'6  
         J }|6m9k!  
        .LeftIndent = CentimetersToPoints(0) 3o`c`;H%p  
        .RightIndent = CentimetersToPoints(0) B:#9   
        .FirstLineIndent = CentimetersToPoints(0) 2#R8}\  
         zo:NE0 0  
        .CharacterUnitLeftIndent = 0 gm =LM=  
        .CharacterUnitRightIndent = 0 $y,tR.5.)[  
        .CharacterUnitFirstLineIndent = 0 Zty9O8g  
         F[*/D/y(  
        .LineUnitBefore = 0 LL+PAvMg  
        .LineUnitAfter = 0 Ca ?d8  
    End With 1!Afq}|  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False F<J`1 :  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll lH/7m;M  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese lsKQZ@LN`  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True  }A&I@2d  
    DoEvents remRm Y?  
x+EEMv3u:  
    '目录项 =)nJ'}x  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") @k)[p+)E  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" *+_+Z DU  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False f0+vk'Z  
    With ActiveDocument.Styles("QLNU目录项").Font h6Cqc}P  
        .NameFarEast = "黑体" ]|_+lik#  
        .NameAscii = "Times New Roman" Q:8t1ZDo  
        .NameOther = "Times New Roman" ftD(ed  
        .Name = "黑体" WkDXWv\{,{  
        .Size = 10.5 Z31a4O  
        .Bold = False .1 jeD.l  
        .Italic = wdUndefined >1hhz  
        .Underline = wdUnderlineNone tv%B=E!r  
        .Color = wdColorAutomatic U&0 RQ:B  
        .Superscript = wdUndefined "x O+  
        .Subscript = wdUndefined 3f(tb%pa5  
    End With _kdt0Vr,L  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat Pxf/*z  
         ##nC@h@  
        .LineSpacingRule = wdLineSpaceSingle q_Z6s5O  
        .Alignment = wdAlignParagraphLeft ^xQPj6P}  
         $8`"  
        .WidowControl = False QBb%$_Z  
        .KeepWithNext = False xM![  
        .KeepTogether = False Nf%/)Tk  
        .PageBreakBefore = False J=b 'b%  
        .NoLineNumber = False H Nd? '  
        .OutlineLevel = wdOutlineLevelBodyText #~[{*[B+  
         ^Vg-fO]V  
        .LeftIndent = CentimetersToPoints(0) xB5QM #w\  
        .RightIndent = CentimetersToPoints(0) {'yr)(:2M  
        .FirstLineIndent = CentimetersToPoints(0) JC iB;!y  
         OJD!Ar8Q  
        .CharacterUnitLeftIndent = 0 $'3'[Nr(;t  
        .CharacterUnitRightIndent = 0 MzE1he1  
        .CharacterUnitFirstLineIndent = 0 e?+&2zMq  
         3L9@ELY4  
        .LineUnitBefore = 0 {43 J'WsJ  
        .LineUnitAfter = 0 @.L/HXu-P  
    End With FT\%=>{  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False ;cGY  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll CIj7' V  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot .yB{+  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese 4@ QR2K|  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True E _\V^  
    DoEvents  GK1oS  
     +mC?.B2D  
    '参考文献  rp=Y }  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") }#6~/ W  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" -|I_aOC@  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False CI=M0  
    With ActiveDocument.Styles("QLNU参考文献").Font iw{^nSD  
        .NameFarEast = "宋体" \|CuTb;0  
        .NameAscii = "Times New Roman" MH|R@g  
        .NameOther = "Times New Roman" L| ;WE=  
        .Name = "Times New Roman" +asO4'r  
        .Size = 12 i&j]FX6q  
        .Bold = False .0p'G}1  
        .Italic = wdUndefined tgY/8& $M  
        .Subscript = wdUndefined n?"("Fiw  
        .Superscript = wdUndefined z fu)X!t^  
        .Underline = wdUnderlineNone |)S*RQb\  
        .UnderlineColor = wdColorAutomatic 8`_tnARIX  
        .Color = wdColorAutomatic V=<AI.Z:w  
        .Engrave = False 85lcd4&~  
    End With xqfIm%9i}  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat $e:bDZ(hjj  
         =yWdtBng  
        .LineSpacingRule = wdLineSpaceExactly B +MnT{  
        .LineSpacing = 16 E] rBq_S  
        .Alignment = wdAlignParagraphLeft 6zI}?KZf  
        .WidowControl = False iXL ?ic  
        .KeepWithNext = False g([M hf#  
        .KeepTogether = False ]K QQdr   
        .PageBreakBefore = False A=wG};%_  
        .OutlineLevel = wdOutlineLevelBodyText +[}<u--  
         k; >Vh'=X  
        .LeftIndent = CentimetersToPoints(0) D 4sp+   
        .RightIndent = CentimetersToPoints(0) <6+T&Ov6  
        .FirstLineIndent = CentimetersToPoints(0) lIPz "  
         ^U##9KkP  
        .CharacterUnitLeftIndent = 0 tV h"C%Vkr  
        .CharacterUnitRightIndent = 0 WEtPIHruyt  
        .CharacterUnitFirstLineIndent = -2 /0Mt-8[  
         i&{%} ==7  
        .LineUnitBefore = 0 f{2I2kJr  
        .LineUnitAfter = 0 ;vy<!@Y;8  
        .SpaceBefore = 0 Mbn;~tY>  
        .SpaceAfter = 0 '$ [%x  
         3i~X`@$k>  
    End With FH%M5RD  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False i8S=uJ]n  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll -b|"%e<'  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS H4$f+  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True 28vQ  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese a'A<'(yv  
    DoEvents "28zLo3  
6 [?5hmc"w  
    ' wF3 MzN=%  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") zbgGK7  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" Hp@Q  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False d.HcO^  
    With ActiveDocument.Styles("QLNU论文题目").Font *K BaKS  
        .NameFarEast = "黑体" !t}yoN n|  
        .NameAscii = "Arial Black" GJ F &id  
        .NameOther = "Arial Black" ]CPF7Hf  
        .Name = "Arial Black" j4u ["O3  
        .Size = 16 Hbn78,~ .  
        .Bold = False .y lvJ$  
        .Italic = wdUndefined yCN?kH G  
        .Superscript = wdUndefined e^;%w#tEqI  
        .Subscript = wdUndefined ;]@Pm<f  
        .Underline = wdUnderlineNone + )[@  
        .UnderlineColor = wdColorAutomatic ?!O4ia3nFk  
        .Color = wdColorAutomatic <W+9 h0c  
RT${7=  
    End With HiBI0)N}  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat '8[; m_S  
        .LineSpacingRule = wdLineSpaceSingle M6GiohI_"P  
        .Alignment = wdAlignParagraphCenter Vcnc=ct  
        .WidowControl = True '.C#"nY>1  
        .KeepWithNext = True ).AMfBQ=;  
        .KeepTogether = True RhC|x,E  
        .PageBreakBefore = True =2}V=E/85  
        .NoLineNumber = False JKy~'>Q  
        .OutlineLevel = wdOutlineLevelBodyText )?pnV":2Y  
         UZ#oaD8H6  
        .LeftIndent = CentimetersToPoints(0) x2'pl (^  
        .RightIndent = CentimetersToPoints(0) cL][ sI  
        .FirstLineIndent = CentimetersToPoints(0) pC #LQ  
         7O:g;UI#  
        .CharacterUnitLeftIndent = 0 7D1$cmtH  
        .CharacterUnitRightIndent = 0 \0vs93>?  
        .CharacterUnitFirstLineIndent = 0 x P/q[7>#Q  
         (L yKo  
        .LineUnitBefore = 1 pRd'\+  
        .LineUnitAfter = 1 U`5/tNx  
         mxpj <^n}  
        .BaseLineAlignment = wdBaselineAlignAuto E^Q J 50  
    End With 9M5W4&  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False `5!AHQ/  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll \BN$WV  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS @DF7j|]tV  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True dMCoN8W  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese C|h Uyo  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True p_X{'=SQ1  
    DoEvents @BG].UJo  
     BMdZd5!p&  
    '中文摘要 K/j u=>  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") tY: Nq*@  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" crN*eFeW  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False <fF|AbC:  
    With ActiveDocument.Styles("QLNU中文摘要").Font 1z4_QZZ.NG  
        .NameFarEast = "宋体" C!ch !E#  
        .NameAscii = "Times New Roman" pWq+`|l$  
        .NameOther = "Times New Roman" 'GT^araz  
        .Name = "Times New Roman" 7?{y&sf  
        .Size = 12 +k~0&lZi  
        .Bold = wdUndefined b`@C#qB  
        .Superscript = wdUndefined v1Q 78P  
        .Subscript = wdUndefined QZIzddwp  
        .Italic = wdUndefined s ;Gg  
        .Underline = wdUnderlineNone P$Oj3HD LM  
        .UnderlineColor = wdColorAutomatic n1PBpM9!  
        .Color = wdColorAutomatic iQS,@6  
    End With A=IpP}7J  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat 2dcvB]T!  
        .LineSpacingRule = wdLineSpaceExactly  !Q*w]  
        .LineSpacing = 20 lcy<taNu)  
        .Alignment = wdAlignParagraphLeft >\w]i*%  
         Y}: 4y$<  
        .WidowControl = False *ra>Kl0   
        .KeepWithNext = False Ow.DBL)x'>  
        .KeepTogether = True ?~4x/d%  
        .PageBreakBefore = False +I3O/=)  
        .NoLineNumber = False LrT EF j  
        .OutlineLevel = wdOutlineLevelBodyText /|<S D.:  
         =,h'}(z_  
        .LeftIndent = CentimetersToPoints(0) [`s0 L#  
        .RightIndent = CentimetersToPoints(0) s]|tKQGl,  
        .FirstLineIndent = CentimetersToPoints(0) ^;rjs|`K#  
         &9|L Z9K  
        .CharacterUnitLeftIndent = 0 841y"@*BY  
        .CharacterUnitRightIndent = 0 vZ811U~}  
        .CharacterUnitFirstLineIndent = 2 d4* SfzB  
        .LineUnitBefore = 0 j/fniyJ)  
        .LineUnitAfter = 0 ([}08OW@  
         iy_Y!wZ{  
    End With G] N3OIw&8  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False 'O\ y7"a  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll &0tW{-Hv"  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS ,B_c  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True H%gAgXHn  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese < oV[[wl  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True tfZ@4%'  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete qw ?(^uZNW  
    DoEvents g(;OUkj$Zp  
     \$*CXjh3G  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") CtV|oeJ  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" 3ce$eZE  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False }z$_ !)/i  
    With ActiveDocument.Styles("QLNU英文标题").Font _> x}MW+  
        .NameFarEast = "黑体" N5,LHO  
        .NameAscii = "Arial Narrow" vSC1n8 /  
        .Name = "Arial Narrow" GBT|1c'i  
        .Size = 16 6@t &  
        .Bold = True ; +(VO  
        .Bold = wdUndefined X^K^az&L  
        .Superscript = wdUndefined o-7{\%+M  
        .Subscript = wdUndefined lWtfcU?S[  
        .Italic = wdUndefined @c'iT20  
         go A=U  
        .Underline = wdUnderlineNone 6ulx0$ [  
        .UnderlineColor = wdColorAutomatic /I!62?)-*  
        .StrikeThrough = False c)B3g.C4m  
        .DoubleStrikeThrough = False yCav;ZS_  
    End With Bv!{V)$  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat T!ZjgCY}  
        .LineSpacingRule = wdLineSpaceSingle 0 !{X8>x  
        .Alignment = wdAlignParagraphCenter {it}\[3  
        .WidowControl = True RL/y7M1j  
        .KeepWithNext = False 1[8^JVC>6  
        .KeepTogether = False BV:Ca34&  
        .PageBreakBefore = False d}':7Np  
        .NoLineNumber = False `[g$EXX  
        .FirstLineIndent = CentimetersToPoints(0) AU}kIm_+  
        .OutlineLevel = wdOutlineLevelBodyText vdC0tax  
         2#sFY/@  
        .LeftIndent = CentimetersToPoints(0) #v<`|_  
        .RightIndent = CentimetersToPoints(0) M\a{2f7'n  
        .FirstLineIndent = CentimetersToPoints(0) 7QNx*8p  
         Yj/ o17  
        .CharacterUnitLeftIndent = 0 Q;w [o  
        .CharacterUnitRightIndent = 0 {H)hoAenA  
        .CharacterUnitFirstLineIndent = 0 \Ta5c31S+  
         XsQ81j.  
        .LineUnitBefore = 1 P.C?/7$7Z+  
        .LineUnitAfter = 1 t!*[nfR  
         jH!;}q  
    End With GWWg3z.o"W  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False lnHY?y7{  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll yn_f%^!G  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS z<%bNnSO  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True @#OL{yMy  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese HbI{Xf[6LP  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True Qn.dL@W  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete 6?~9{0  
    DoEvents wbrOL(q.m  
'jfE?ngt  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") E+qLj|IU  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" D 5n \h5  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False R[j?\#  
    With ActiveDocument.Styles("QLNU英文摘要").Font W"\}##  
        .NameFarEast = "宋体" H-+U^@w  
        .NameAscii = "Arial" |oLGc!i  
        .NameOther = "Arial" #~)A#~4O  
        .Name = "Arial" n qO*z<  
        .Size = 12 |+W{c`KL  
        .Bold = wdUndefined ]v vA]e  
        .Italic = wdUndefined R20 .dA_N  
        .Superscript = wdUndefined I 9qFXvqL  
        .Subscript = wdUndefined t;6<k7h  
    End With yRyXlZC  
     [`b,SX x  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat BVNJas   
         _ia&|#n  
        .LineSpacingRule = wdLineSpaceExactly h~\k;ca  
        .LineSpacing = 20 3 0[Xkz  
         <<u]WsW{C  
        .Alignment = wdAlignParagraphJustify N=Ct3  
         /y{: N  
        .WidowControl = False hS8M|_  
        .KeepWithNext = False JX&]>#6|E  
        .KeepTogether = False tj~r>SRb+  
        .PageBreakBefore = False v#&;z_I+  
        .NoLineNumber = False @9| jY1  
         Gg9s.]W  
        .OutlineLevel = wdOutlineLevelBodyText ,HTwEq>-G  
         jH9PD 8D\  
        .LeftIndent = CentimetersToPoints(0) E > GmFw  
        .RightIndent = CentimetersToPoints(0) 2|lR@L sr  
        .FirstLineIndent = CentimetersToPoints(0) syW[uXNLZ  
         )/@KdEA:  
        .CharacterUnitLeftIndent = 0 -Yse^(^"s  
        .CharacterUnitRightIndent = 0 v1~l=^4&  
        .CharacterUnitFirstLineIndent = 2 =o~+R\1ux+  
         f?tU5EX  
        .LineUnitBefore = 0 iv_3R}IbX  
        .LineUnitAfter = 1 @2hhBW  
         dxAGO(  
    End With (0q`eO2  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False f}(4v1 T  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll 81x/ bx@L%  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS NMK$$0U  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False m_oUl(pk  
    DoEvents >W] Wc4 \  
\ YF@r7  
    Options.Pagination = True /C Xg$%\  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." dY&v(~&;]  
    DoEvents = K}Pfh  
    ActiveDocument.Repaginate #X'-/q`.  
#1E4 R}B  
End Sub pLCj"D).M  
Mb2a;s  
H!]&"V77  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: |e@1@q(a[]  
Q2ne]MI  
用VBA控制WORD自己修订学生毕业文的格式。 $7Hwu^c(  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

\anOOn@  
3%9XJ]Qao  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 DKTD Z*  
第6车皮 7lwTZ*rnY  

M'DWu|dIBA  
#MglHQO+  
第9车皮 jQ?LHUE  
IfMpY;ow=  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 w=b(X q+:  
XAOak$(j  
Main2.bas ) |#%Czd4  
|01?w|  
Attribute VB_Name = "SubMain" I?!rOU= 0  
Option Explicit JN3cg  
,5k-.Md>2*  
'采集文件与临时文件 D@YP7  
Public Const TmpFile As String = "d:\30-0600.dat" N]/!mo?  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 y>VcgLIB  
3NK ^AaTK  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long @]CF&: P A  
Public hBCFile As Long  '记录采集参数的文件 i^z`"3#LE  
Public Const TmpBMP As String = "d:\1.bmp" < a rZbM  
Public hTmpFile As Long Eh8Pwt7C@  
eH>#6R1-  
mPZGA\  
'采集窗口参数常量 f?fKhu2  
Public Const FrameH As Long = 280& [G|mY6F^  
Public Const FrameW As Long = 768& JHV)ZOO  
Public Const pFrameSize As Long = FrameW * FrameH ,lN5,zI=S  
P<dy3 ;  
'标志区范围,用于识别车辆 CX/(o]  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X ]L_w$ev'  
Public Const mkW As Integer = 28  '识别标志立柱宽度 ;I6s-moq_  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) 0`#(Toe{B  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) MEZ{j%-a  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 Y0uvT7+[hi  
'车缝检测位置常数 'w/qcD-  
Public Const sSize As Long = 32& XH4d<?qu  
Public Const sPos As Long = 310& [ . yJV`  
Public Const sPosL As Long = 200& PK6iY7Qp)  
Public Const sPosR As Long = 500& %B2XznZ:  
'车缝检测框位置 ?^!,vh  
Public Slice(1 To sSize, 1 To FrameH) As Byte =J'P.  
Public SliceL(1 To sSize, 1 To FrameH) As Byte X~T/qFS   
Public SliceR(1 To sSize, 1 To FrameH) As Byte JyBp-ii  
Public avSL As Integer, avSLR As Integer, avSLL As Integer pJpNO$$w  
TvhJVVQ+?  
[`fI:ao|  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 Q%ad q-B  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 h,t|V}Wb  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 Xh3;   
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long ,i}|5ozj4  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte (-yl|NFBw  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 70W"G X&  
6o&ZIYJ9k  
,32xcj}j)r  
H -t|i  
'一次连续采集的帧数 0NE{8O0;Fr  
Public tFrames As Long {[G`Z9]z&-  
pgc3j P!  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 dz9Y}\2tf  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 O_,O,1  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize %n?vJ#aX%  
E$\~lcq  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte ~4#B'Gy[  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte f_mhD dq  
Public pWorkSpace(1 To FrameW * FrameH) As Long '"YYj$> '  
Public Const pBufferSize As Long = FrameW * FrameH * 2 &k>aP0k"  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 n~0z_;5  
?H|T& 66  
Public hBoard As Long   '采集卡标识 F#r#}.B='U  
Public mBufferAddr As Long  '缓存地址 2OBfHO~D  
Public BufferSize As Long  '缓存大小(字节) Rs;15@t@  
Public iCurrentCard As Long XJ\hd,R   
Public CapStatus As Long eb:A1f4L  
Public iFrames As Long W.}] .7}h  
Public currentBr As Byte, currentContr As Byte !AHAS  
{eZ{]  
Public hMEM As Long, mStatus As Long LgqGVh3\s  
Public Const hMemSize As Long = pFrameSize * 4 :J_oj:0r"f  
Public hMemWork As Long B&KL2&Z~Pq  
Public Const hMemWorkSize As Long = pFrameSize * 5 7ET jn)%bs  
)$M,Ul  
GlYly5F  
l[h'6+o  
'串口接收轨道衡数据 j+ ::y) $  
Public WeightFromCom As String nS.G~c|  
Public bReceiveComplete As Boolean r#876.JK  
n2-0. Er  
Z| 6{T  
Public Type GrayBMPHeader `^F: -  
  Tag As Integer D@54QJ<  
  FileLength As Long    '文件大小 !XE aF]8  
  Reserve1 As Long dbGg D=}o  
  DataOffset As Long    '图像数据偏移量 %CH6lY=lI  
  BMPHeaderSize As Long  '文件头长 sa-9$},z4  
                        'length of the bitmap info header used to describe the bitmap colors, compression,…  $g8}^1  
                        'the following sizes are possible: Q\_{d0 0  
                        '28h - windows 3.1x, 95, nt, … A*]$v  
                        '0ch - os/2 1.x 5 9 2;W-y  
                        'f0h - os/2 2.x |Ur"za;%@  
fv'4f$U  
  ImageWidth As Long           '图像宽(像素数) b[^{)$(  
  ImageHeight As Long          '图像高(像素数) NlPS#  
  PlaneNumber As Integer  '图像层数 0&w0a P`Y  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap **;p (CI  
                                        '4 - 16 color bitmap bY8GA  
                                        '8 - 256 color bitmap kyUl{Zj  
                                        '16 - 16bit (high color) bitmap .(Y6$[#@  
                                        '24 - 24bit (true color) bitmap xF8S*,#,*  
                                        '32 - 32bit (true color) bitmap 19u =W(  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) $~u.Wq  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) [ = M%  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) j'rS&BI G  
                                    '3 - bitfields (also identified by bi_bitfields) je%M AgW`  
  IMAGESIZE As Long  '图像数据字节数 +&v\ /  
  hResolution  As Long  '水平分辩率  像素数/米 = 1|"-  
  vResolution  As Long  '垂直分辩率 H[&@}v,L  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 QJ X/7RA  
  ImportantColors As Long [s6C ZcL  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 pWaPC /,g  
End Type 7nE"F!d+0  
E,"&- `/2v  
F 1W+o?B  
D_D,t8_Y  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader ^$?qT60%d|  
Public sRECT As RECT aq>?vti1D  
C3;[e0.1b  
mV\$q@sII  
Public conn As ADODB.Connection {[#(w75R{  
Public rsTrain As ADODB.Recordset D!3{gV#  
Public rsOperater As ADODB.Recordset #6> 6S;Ib  
Public rsGoods As ADODB.Recordset 7Ua7A  
Public rsGood2 As ADODB.Recordset 5G*II_j  
Public rsSender As ADODB.Recordset f=:.BR{  
Public rsReceover As ADODB.Recordset /'&;Q7!)  
Public rsTrainTMP As ADODB.Recordset <e"J4gZf&  
C 7"HQQ  
MWwJzVL8  
'打开采集卡 w9&#~k]5  
'设置参数 :{}_|]>K  
'设置为实时单帧采集到缓存方式 )iE"Tl  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 N+Sq}hI  
|ng%PQq)  
EQ >t[ &  
Sub Main() R,0Oq5  
  Dim i As Integer, status As Long [? KIN_e#  
     "Ai6<:ml  
   InitBMPinfo Bq}x9C&<  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 vgG}d8MW37  
    BMPHeader.Tag = &H4D42 I 48VNX  
    BMPHeader.ImageWidth = FrameW F'W> 8  
    BMPHeader.ImageHeight = FrameH p8>%Mflf  
    BMPHeader.BMPHeaderSize = &H28 oK+Lzb\d{M  
    BMPHeader.PlaneNumber = 1 4br6 $  
    BMPHeader.bpp = 8 g`Md80*Zfk  
    BMPHeader.Compression = 0 wK5_t[[  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 lgD]{\O$ip  
    BMPHeader.vResolution = &H1274 >M4"|W U_  
    BMPHeader.ColorsinBMP = 256 NPU^) B  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP +<(a}6dt  
    BMPHeader.DataOffset = Len(BMPHeader) L]bVN)JU  
    For i = 0 To 255 \HSicV#i  
      BMPHeader.Pallate(i) = RGB(i, i, i) NB)t7/Us  
    Next i i57( $1.  
    BMPHeader.IMAGESIZE = FrameH * FrameW s zq+@2:  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE  kq/u,16@  
*8A6Q9YT  
YMB~[]$V<  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) 5w3Fqu>39?  
     BQrL7y  
    BMP1.ImageWidth = FrameW sBW3{uK  
    BMP1.ImageHeight = FrameH * 2 h8v>zNf'  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight -Zy)5NB-tZ  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE y:so L:(F  
zB)%lb  
  '确定标志位置,为pilarX, pilarY确定初始值 x-Z^Q C  
   PilarW = mkW 8 njuDl  
   PilarH = mkH  '此两项为固定值 >;lKLGJrd>  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) 4M`Xrfwm'[  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 B@cz ?%]  
   rxE&fjW  
   :t$A8+A+0  
  '连续采集记录文件 L,M+sN  
  ' 建立一个缓冲区为页对齐方式的文件 tbur$ 00  
  If Dir(TmpFile) <> "" Then zy)i1d  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ h_ ZX/k  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) {BOLP E-  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 W<'<'z5  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 PdE>@0X?M  
  Else qo;)X0 N  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ rK=6]j(K  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) `BT^a =5  
  End If I,P!@  
  If hFile = 0 Then fPQ|e"?  
    MsgBox TmpFile & ": File Open Error", vbOKOnly aqL<v94wX  
    Exit Sub #x)}29%e#  
  End If )/Y~6 A9>  
  '采集参数记录文件 KTmaglgp  
hBCFile = FreeFile() L3c*LL  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile &HF]\`RNr  
   z,Xk\@  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 u Qp_':\k  
If hMEM = 0 Then /tC9G@Hl  
    fStatus = GetLastError 7'.s7& '7  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ *\q8BZ  
     & "请向技术人员报告该错误代码。", vbOKOnly ixI:@#5wY  
    CloseHandle hFile g [L  
    Exit Sub [thboP.?  
End If .E<Dz  
r%-n*_?.s  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) $ KQ,}I  
If hMemWork = 0 Then #5{sglC"|F  
    fStatus = GetLastError uBeNXOre  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ 3M*Y= ?pI  
     & "请向技术人员报告该错误代码。", vbOKOnly j#igu#MB*  
     '释放已成功分配的内存 j jY{Uq  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) qi\n]I  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ^KH%mSX>  
     ]P3[.$z  
    CloseHandle hFile 'lQYJ0  
    Exit Sub fValSQc!U  
End If xrI}3T  
vInFo.e[4  
' Test writing eP|)SU  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& bXvbddu)}  
     $9H[3OZPVv  
   '初始化采集卡参数 S aNN;X0  
   iCurrentCard = -1 .TN2s\:]jw  
   hBoard = okOpenBoard(iCurrentCard) 0xP:9rm  
   Debug.Print hBoard *.8:'F  
   If hBoard = 0 Then jgRCs.6  
      ExitGrabber y4<+-  
      End otnV-7)@  
   End If =J3`@9;  
   okGetBufferSize hBoard, mBufferAddr, BufferSize (#u{ U=  
   If mBufferAddr = 0 Then P9yw&A  
     MsgBox "缓存不存在!" yQ-hnlzn~  
     ExitGrabber p7[(z  
   End If mQ,{=C=D  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) ~e^)q>Lb7(  
   Wem?{kx0  
   ptR  
   currentBr = 128: currentContr = 128 lU$X4JBzS  
   '设置视频输入参数 <!!nI%NC  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 !%62Phai  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input }su6izx   
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 BE4\U_]a3  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 4*8&[b  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 t-EV h~D1p  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 6Ct0hk 4  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) U.Hdbmix  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) -tP.S1D  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) )E~mJln  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 :uvc\|:s  
   lC{L6&T  
   '设置采集参数 `.8-cz  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 J|?[.h7tO  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 K+> V|zKuk  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 ;Jo*|pju  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 P# bm uCOS  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 Fwv\pJ}$  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 fLM.k CD?u  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 MPG+B/P&  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 BhkAQEsWTQ  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 Oga1u  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 gMay  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 *1,=qRjL  
   #M:B3C!ouY  
   Rp eBm#E2  
   okCloseBoard hBoard &#,v_B)a_E  
   Sleep 50 >w2f8tW`PP  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 BvJ\x)  
   S w "|iBZ@  
   '设置数据传送方式 enPYj.*/0  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 .+uVgSN  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 L8D m9}  
   %&1$~m0  
   sRECT.Right = -1   '用于获得当前设置值 Hn^sW LT  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) kA,4$ 2_o  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom F*!gzKZ"  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 JD-Becz  
   sRECT.Left = 0 Q'C 4pn@  
   sRECT.Top = 0 `.`FgaJ |  
   sRECT.Right = sRECT.Left + FrameW 2;}xN!8  
   sRECT.Bottom = sRECT.Top + FrameH * 2 Vy r] x  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) _KxX&THaj  
   !xH,y  
   sRECT.Right = -1   '检查新设置值 2D_6  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) !|(Ao"]  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom :SdIU36  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) C\/b~HU  
   ,i;9[4QMX  
   If TESTSignal = False Then .W-=x,`hY4  
      'ExitGrabber 8_Jj+  
   End If 4V>vg2 d  
   BArJ"t*/z  
   Tz2x9b\82  
   D/*vj|  
   '设为实时采集状态 K)N)IZ1q  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) ^@Y9!G=  
   8nf 4Jk8r  
   /O_0=MLp  
   '单帧采集 Y` q!V=  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 %cd ]xQpCp  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) w4aiI2KFq  
   okCaptureTo hBoard, BUFFER, 0, 1 'single d(\1 } l  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 Pgx+\;w"  
   '   Sleep 20 IY~ {)X  
   'Loop DbQBVy  
   okGetCaptureStatus hBoard, True `43vxcMg  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize H! #5!m&  
   '写入768*576测试图象 63SVIc~wT  
   ArrayToBMP TmpBMP % dYI5U89  
   Z{ %Uw;d  
   '打开数据库 uiuTv)pwF  
   Set conn = New ADODB.Connection Bd QQ9$@5  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ > `0| X  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ Ho>p ^p  
      "; Mode=Read|Write" pBvo M={2!  
   conn.Open VrudR#q  
   g\qX7nIH?  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) Ipg\9*c`  
   frmRecord.Visible = True O/nqNQ?<  
   frmQuery.Visible = True y]MWd#U  
   Load frmReceiveFromComm a0)vvo=bz  
   C~:b*X   
   '调试参数 j}"]s/= 6  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then cS5w +`,L  
     SignalBox.Visible = True t3 K>\ :  
   End If Px$'(eMj^3  
   If InStr(UCase(Command()), "/COMM") > 0 Then (+@faP   
     frmReceiveFromComm.Visible = True L#[HnsLp_  
   End If ItMl4P`|  
Od*v5qT;$  
End Sub Dn: Yi8=  
uH= Gt^_  
Sub ExitGrabber() VBhE{4J  
  '关闭数据库 M Ey1~h/  
  '关闭采集卡 Fr<Pe&dn  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) e5FCqNip'  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) s~/57S  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) ZIDFF  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) 0NVG"-Q  
  okStopCapture hBoard }@3$)L%n_u  
  okCloseBoard hBoard 1RURZoL  
  CloseHandle hFile E=A/4p6\$  
  Close #hBCFile %odw+PhO  
  conn.Close l(.7t'  
  End l#mtND3  
End Sub E8+8{ #f;  
ADTU{6UPS  
Function ArrayToBMP(ByVal File As String) fO0- N>W'P  
Dim BytesWrite As Long gp%tMT I1  
FU^Y{sbDg  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ C CC4(v  
  CREATE_ALWAYS, 0&, 0&) rnJS[o0  
VN?<[#ij  
If hTmpFile = 0 Then BzN/6VEw  
   ArrayToBMP = False  J&(  
   Exit Function h!ZZ2[  
End If z/pDOP Ku  
`Nkx7Z~w:  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 0H; "5  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& w"yK\OE  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN `Uu^I   
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& 9]"\"ka3>  
So0 `c,D  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN pn+D@x#IA  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& twAw01".  
}`#j;H$i  
If BytesWrite < pFrameSize Then 4 3}qaf[  
  ArrayToBMP = False "MW55OWYU  
End If u|(aS^H=q  
K@I+]5E%?  
CloseHandle hTmpFile "tpvENz2s  
cPx66Dh&  
End Function 4GEjW4E  
\%P ma8&d  
Function ArrayToBMP1(ByVal File As String) oC5gME"2  
o@Dk%LxP  
Dim BytesWrite As Long $hC~af6  
OX'/?B((  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ KwY`<t1lA;  
  CREATE_ALWAYS, 0&, 0&) 9Y;}JVS  
[ e$]pN%  
If hTmpFile = 0 Then Uy:@,DW  
   ArrayToBMP1 = False ~_ (!}V  
   Exit Function mI2|0RWI)l  
End If :Xb*m85y  
\?aOExG I  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN |L*6x S[  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& R/yPZO-U  
hLu &lY  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN w;@`Yi.WQ  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& R65;oJh  
Z?5,cI[6#  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN bDxPgb7 N=  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& .n?5}s+q  
M|5^ ':Y  
If BytesWrite < pBufferSize Then x*3@,GmZl  
  ArrayToBMP1 = False ~Ay  
End If mm3zQ!2j.  
F I80vV7  
CloseHandle hTmpFile :h3#1fko  
T]5U_AI@  
End Function I #Arr#%  
,q{lYX83S  
'使用该过程建立的文件要求在用后关闭 FA5k45w L  
Public Function ArrayToBMP2(File As String) As Boolean tW'qO:y+  
L2:oZ&:u`J  
Dim BytesWrite As Long 8Ng) )7g!  
,"4X&>_f  
ArrayToBMP2 = True %w;1*~bH  
|j\eBCnH3  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ PGC07U:B  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) r9U[-CX:"  
3 ATN?V@  
If hTmpFile = 0 Then C6Um6 X9/i  
   ArrayToBMP2 = False A{xSbbDk  
   Exit Function @Z"QA!OK~c  
End If g`y/ _  
4yJ01s  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN G:H(IA7Z  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& 89 _&X[X  
GA({r i  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN Ly@U\%.  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& Lqy|DJ%  
\Qe'?LRu{  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN Ut0qr kqF  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& qdg= Imx  
ZYpD8u6U  
If BytesWrite < pFrameSize Then &QiAM`MbC=  
  ArrayToBMP2 = False j(wY/Hl  
End If Ke'YM{  
:/I={)5  
CloseHandle hTmpFile Z3&XTsq  
H{p[Ghp  
End Function  _p3WE9T  
2d,wrC<'$  
Private Function TESTSignal() As Boolean D_L'x "  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long ,i1fv "  
(cbB %  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) c~Q`{2%+  
Py(wT%w  
If extsign = 1 Then  M}_M_  
   TESTSignal = True 2nOe^X!*  
Else b@UF PE5jy  
    If extsign = 0 Then C{lB/F/|!  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly KyVe0>{_u  
        TESTSignal = False 0~LnnD N  
        Exit Function w+:+r/!g  
    End If ^/4 {\3  
End If l%vhV&  
f?oI'5R41  
'测试视频输入类型 n=<q3}1Jej  
'video type ulJ+:zwq$  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 9}7oKlyk  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) @pyA;>U  
If videotype = 1 Then ZVCv(J  
        '"隔行信号(Interlaced)" Pj^k pjV  
Else ^;v.ytO*  
   If videotype = 0 Then #RsIxpc  
       '"逐行信号(Non-interlaced)" -M(58/y  
   Else 5cv, >{~5  
     If videotype = -1 Then pJ<)intcbE  
       ' "不支持" t/4/G']W  
     End If >QbI)if`1  
   End If 9 u6 g  
End If qX}dbuDE"P  
-0[>}!l=G  
'测试垂直扫描线数 TU^tW  
'video scanlines LS?` {E   
scanlines = -1 ^+.e5roBKj  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) #==[RNM%ap  
    If scanlines = -1 Then EV;;N  
        ' "不支持" IrVM|8vT3  
    Else [m@e^6F0U  
        'Trim(Str(ScanLines)) + " 行数/幅" `0-m`>1>  
    End If `pn-fk  
vCrWA-q#  
'测试帧频 {ILQ CvP*  
'video field frequency `K ~>!d_  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) Q'vIeG"o  
    If fieldfrq = -1 Then B%?|br  
        'lblSignal(8) = "不支持" c"jhbH!u4  
    Else 6r ?cpJV{  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" pD)/- Dgdm  
    End If D0"yZp}  
End Function 60SenHKles  
M\x7=*\  
)xXrs^  
Sub PicIdentify() Nc^b8& 2J  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 P- *R N   
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 *8(t y%5F0  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 0Mzc1dG:  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 \p_8YC  
FL*w(Br.  
  Dim fPTR As Long, cFrame As Long ~=aI2(b  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer p5D3J[?N  
     &Cn9 k3E\R  
blQzVp-  
cFrame = 0 A/W7 ;D  
EKI+Dq,  
mqfEs0~I  
Do While cFrame < tFrames ^Xz`hR   
   "!4>gg3r  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) =FC;d[U  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) ztt%l #  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize 2&G1Q'!  
   }<x!95  
  frmRecord.RText.Text = Str(cFrame) 0zk T8'v  
  frmRecord.RText.Refresh T[2f6[#[_  
       LKwUpu!  
  If CheckMark = True Then 4FP~+  
   ArrayToBMP TmpBMP rSFXchD/  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) 8aIq#v  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" ^?l-YnQqm?  
   Ny&Fjzl  
   DrawSlice L@x8hUG"  
   .$T:n[@  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) EIl$"^-  
   'If i = vbNo Then &B>uPZ]  
   '  Exit Do /A`zy  
   'End If w1/T>o  
   'cFrame = cFrame + 1 DqC}f#  
   #+5mpDh  
  End If Yi! >8  
  DoEvents E* DVQ3~  
  cFrame = cFrame + 1 D -\'P31  
Loop s Gm(Aax*0  
End Sub mk3e^,[A  
Hi 0df3t  
HZ`G)1&)  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 77[ ;J  
dzC&7 9$  
'如标志区模式反差存在则为TRUE,否则返回FALSE gpTF^.(  
@=| b$E  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long xWI 0s;k  
CheckMark = True }sN9QgE  
   M%dl?9pbq  
'复制标志区 F7PZV+\  
For i = 1 To mkH j7| \)x,  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW ,, -[P*@  
Next i '%r@D&*vp  
M5bj |tQ4  
For j = 1 To PilarW * PilarH / 2 %l$&_xV-  
   mTop = mTop + MKpilar(j) !B38! L  
Next j 1* Fvx-U'  
]> "/<"  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH r:\5/0(  
   mBot = mBot + MKpilar(j) ?;=Y1O7N(  
Next j ;ZW}47:BS6  
x;b+gIz*  
mTop = mTop / PilarW / PilarH * 2 q@!H^hd}  
mBot = mBot / PilarW / PilarH * 2 $5 p'+bE  
7)5$1  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 GeW$lA I  
@nW(KF  
'平均值极值化 U=<.P;+f9  
  For j = 1 To PilarH * PilarW z4%F2Czai&  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) uL{~(?U$  
  Next j x~Esu}x7  
   Bv|9{:1%X}  
mTop = 0: mBot = 0 1RO gUJ;  
For j = 1 To PilarH * PilarW / 2 _WkcJe`  
  mTop = mTop + MKpilar(j) UK9MWC5g9  
Next j ^T J   
>rX R;4%  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW Q)i`.mHfFI  
  mBot = mBot + MKpilar(j) *'S%gR=Aa+  
Next j 5 WNRo[`7  
b.u8w2(  
x@R A1&c  
  mTop = mTop / PilarH / PilarW * 3 &JQ@(w  
  mBot = mBot / PilarH / PilarW * 3 o_^d>Klb8  
   oL/^[TXjH  
ezy5Jqk5%  
If mBot > iWhite And mTop < iBlk Then aGkVC*T  
  CheckMark = True X;a{JjN  
Else 2dlV'U_g  
  CheckMark = False )jZ=/ xG  
End If |~vQ0D  
End Function 4oEq,o_  
hx;kEJ  
Sub Capture1Frame() ^T1-dw(  
   okCaptureTo hBoard, BUFFER, 0, 1 'single h[)aRo  
   okGetCaptureStatus hBoard, True |@9I5Eg)iE  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize 8@*|T?r  
End Sub .6A:t? .  
?01""Om   
VX@G}3Ck  
Sub CopyMark(iBlk As Integer, iWhite As Integer) Y8xnvK*  
'复制标志区并返回标志区暗区与亮区的亮度平均值 ~rfjQPbh9x  
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 B*?PB]  
   QZq9$;>dW  
'复制标志区 g.sV$.T2K  
For i = 1 To mkH OU5|m%CmO  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW = 8e8!8  
Next i .BB:7+  
.F$AmVTN  
For j = 1 To mkW * mkH / 2 "ddH7:(k<  
   mTotal = mTotal + MKpilar(j)  V# %spW  
Next j KO;61y:  
10C91/  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 CO+jB  
.*ovIU8  
mTotal = 0 $%"}N_M  
For j = mkW * mkH / 2 + 1 To mkW * mkH 1X}Tp\e  
   mTotal = mTotal + MKpilar(j) Y>m= cqR  
Next j 6&Ir0K/  
JBJ7k 19;  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度  lTd2~_  
2%yJo7f$[  
'背景亮度 g#2X'%&+  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW 7%FZXsD  
  For i = 1 To 4 * FrameW w+(wvNmNEK  
    bsTotal = bsTotal + BsLine(i) \@t5S  
  Next i HPH{{p  
  bsAV = bsTotal / FrameW / 4 <;Z3 5 {  
-ZON']|<}k  
End Sub 2cL )sP}  
@BW8`Ky1  
DyTk<L  
Sub AdjIMGbright(Optional bInit As Boolean = True) 1KR|i"  
~F6gF7]z  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) /'_ RI  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 .qPfi] ty  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 RL)3k8pk  
     ti2_kYq  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer ASU\O3%%  
   pNWp3+a'  
  '按标准亮度与对比度采集一帧,确定背景亮度 >o= p5#{  
  currentContr = 128   '初始对比度 {mitF  
  currentBr = 128   '初始亮度 YGmdiY:;1  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 =eLb"7C#0  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 TAoR6aE  
  DoEvents YYh_lAS>  
  Capture1Frame 9o'6es..@Z  
  '获得图像上缘4行象素 $NRb'   
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW JB_`lefW,'  
  CopyMark iBlack, iBright   '图像标志区亮度 .*7UT~o=CS  
  For i = 1 To 4 * FrameW 4N0nU  
    bsTotal = bsTotal + BsLine(i) ~8{3 Fc0  
  Next i kw}1CXD  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 !QspmCo+  
   /j@r~mt/pA  
  Select Case bsAV jch8d(`?d  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 -{%''(G  
       currentBr = 150 lM%fgyX  
       currentContr = 60 GK%ovK  
     Case 61 To 80   '有可见背景 ghj~r  
       currentBr = 140 >D#}B1(!  
       currentContr = 70 .u?$h0u5  
     Case 81 To 100  '有清晰背景 *?"{T;4u~O  
       currentBr = 128 PCfs6.*5Mf  
       currentContr = 80 iRtDZoiD'  
     Case 100 To 150  '有明亮背景 "uC*B4`  
       currentBr = 140                '5:30-6:00钟实测数据 qE:DJy <  
       currentContr = 50 :J-5Q]#  
     Case 151 To 180 dw!Eao47  
       currentBr = 130 y ]%,Y=%X  
       currentContr = 60 HwuPjc#  
     Case 181 To 220  '背景全为白色 r,KK%B  
       currentBr = 110 =Q/>g6  
       currentContr = 130 9r#{s Y  
     Case 221 To 255  '背景全为白色 9v2 ;  
       currentBr = 100 5/ju it  
       currentContr = 100 mnj A8@1  
  End Select !c($C   
   _q4m7C<  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 ]w_)Spo.  
        Case 100 To 150 x@}Fn:c!5  
          currentBr = currentBr - 10 R!qrb26k  
        Case 151 To 255 Rw 8o]  
          currentBr = currentBr - 20 N+75wtLy&  
  End Select I!O S&8:u  
   +eXfT*=u5  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 BAHx7x#(  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 !17Z\Ltqyj  
End Sub %/on\*Vh3  
R  |%  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) }O  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long {jf~?/<  
      RZ%X1$  
    For i = 1 To 8 74(J7  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& p2 (_YN;s  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& r/2:O92E  
    Next i 59]9-1" +  
     @/FX7O{n:  
    For j = 1 To 1024 uJ\Nga<?  
      L1 = L1 + LeftBK(j, 0) V,5}hQJ F  
      L2 = L2 + LeftBK(j, 1) *)I1gR~  
      R1 = R1 + RightBK(j, 0) N|S xAg  
      R2 = R2 + RightBK(j, 1) LL [>Uu?Y  
    Next j Q>yt O'v 1  
    diffL = Abs(L1 - L2) / 1024 wm71,R1  
    diffR = Abs(R1 - R2) / 1024 aB'@8[]z  
End Sub kc[["w&  
4pT|r6!<  
Function CheckSlice() As Boolean b{Ss+F  
  CopySlice avSL, avSLR, avSLL -P&e4sV{  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then s+- aHn  
    CheckSlice = True vDvGT<d  
  Else RkwY3 s"  
    CheckSlice = False <DS6-y  
  End If j }l8k@f  
End Function dR:iUw:V  
]SgeZ07  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) D0i30p`  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long eMzCAO  
  For i = 1 To FrameH %Ege^4PE  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize =rF8[Q0K  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize qT @IY)e  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize $(=1A>40  
  Next i V}-o): dI|  
  For i = 1 To FrameH >t(@?*ZFT  
    For j = 1 To sSize N kI:  
       total = total + Slice(j, i) #+k[[; 0  
       totalL = totalL + SliceL(j, i) ): C4}&l  
       totalR = totalR + SliceR(j, i) T%/w^27E  
    Next j pnJT ]?},  
  Next i -+_&#twU  
  avSL = total / FrameH / sSize o+TZUMm  
  avSLR = totalR / FrameH / sSize "|SE#k  
  avSLL = totalL / FrameH / sSize *, K \A  
End Sub n.RhA-O  
[email protected]5[q0:  
Sub DrawSlice() UUqj?'Nv  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B MNC!3d(D\R  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B SI5QdX  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B zK?[dO  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) m)}MkC-  
End Sub edx'p`%d5  
Sub DrawMark(pic As Control) *rT(dp!Y  
   Dim i As Long, j As Long Kf~+jYobO  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B Bn q\Gg  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B V0i$"|F+ E  
   For i = 1 To PilarH It-*CD9  
     For j = 1 To PilarW qV,j)b3M  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) p]=;t"  
     Next j !*6z=:J  
   Next i C|LQYz- {  
End Sub \ 6 a  
'bPo 5V|  
Function avIMG() As Integer IOl"Xgn5  
  Dim i As Long, j As Long, totalIMG As Long 8$Yf#;m[  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize =)8fE*[s   
  For i = 1 To pFrameSize ze N!*VG  
    totalIMG = totalIMG + pBuffer(i) 0+LloB  
  Next i KW^aARJ)  
  avIMG = totalIMG / pFrameSize ArK9E!`^  
End Function gQ#T7  
G.TX1  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer wP?q5r5  
  Dim i As Long, j As Long, totalIMG As Long \'*`te:{  
  For i = 1 To FrameH pr(\?\a  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth 12dW:#[  
  Next i [rU8 #4.  
  For i = 1 To FrameH * barWidth DU8LU*q'  
    totalIMG = totalIMG + pBuffer(i) yfQE8v+  
  Next i )n@3@NV  
  avRegion = totalIMG / pFrameSize i{qURP}.  
End Function 8 GN{*Hg  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 zAJUL  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 WEAXqDjM  
HYmXPpse  
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 W=]",<  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long u_=y,~s  
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 >nEnX  
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 uf] $@6)  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long v*'\w#  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 Qe.kN dT+_  
^?[<!VBI  
cLC7U?-  
Private Const GENERIC_READ = &H80000000 NI:N W-!  
Private Const GENERIC_WRITE = &H40000000 ^I?y\:.  
L-{r*ccIW  
Private Const FILE_SHARE_READ = &H1 olh3 R.M<  
Private Const FILE_SHARE_WRITE = &H2 #) }bUNc'  
Private Const OPEN_EXISTING = 3 |/s2AzDD  
{ ][7Np!y  
Private Const INVALID_HANDLE_VALUE = -1 RGI6W{\  
; @~*z4U  
'//file seek F*:NKT d  
Private Const FILE_BEGIN = 0 \ZZy`/~z*7  
Private Const FILE_CURRENT = 1 T?{9Z  
Private Const FILE_END = 2 5zna?(#}  
,8nZzVo  
Private Const ERROR_SUCCESS = 0& Qp&yS U8  
@rE )xco  
'//device io control FH`&C*/F0Y  
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long) As Long q.km>XRk~  
-wMW@:M_  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752  WPKTX,k  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 2!?z%s-S  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 u?Mu*r?  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 Nj&%xe>].  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C [:@?,?V\N  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 wQB{K3  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F } /3pC a  
6 <S& ~q  
'//type 6'! {0 5=m  
Private Type LARGE_INTEGER %v:h]TA  
    lowpart As Long Q9tE^d+%  
    highpart As Long ^ZWFj?`\UV  
End Type =c^=Yvc7U  
)0 MshgM  
Private Enum MEDIA_TYPE kA=~ 8N  
    Unknown l{m~d!w`a  
    F5_1Pt2_512 L b;vrh;A  
    F3_1Pt44_512 l0xFt ~l  
    F3_2Pt88_512 _rdj,F8  
    F3_20Pt8_512 rss.F3dK  
    F3_720_512 }(EOQ2TI  
    F5_360_512 <dPxy`_  
    F5_320_512 [iy;}5XK  
    F5_320_1024 ) '`AX\  
    F5_180_512 cY'To<v  
    F5_160_512 yUwgRj  
    RemovableMedia a;(zH*/XK  
    FixedMedia L#q9_-(#  
End Enum )Hm[j)YI  
\[I .  
Private Type DISK_GEOMETRY y$V)^-U>fw  
    Cylinders           As LARGE_INTEGER ?$4R <  
    MediaType           As MEDIA_TYPE U*"cf>dB(  
    TracksPerCylinder   As Long m>dcb 6B+g  
    SectorsPerTrack     As Long ]Ja8i%LjOG  
    BytesPerSector      As Long HKN"$(Q  
End Type fYM6wYJ  
Z 1&GtM  
'//private vars 7qK0!fk5  
Private hDisk           As Long             'disk handle aW-o=l@;  
Private lpGeometry      As DISK_GEOMETRY    'disk info s Xk?.A_D  
Private lBufferSize     As Long             'the buffer size of read/write G2{M#H  
q)xl$*g  
Public Function OpenDisk(ByVal FileName As String) As Boolean ai  _fN  
'// 打开磁盘 bRz^=  
    hDisk = CreateFile(FileName, _ m{dyVE  
                        GENERIC_READ Or GENERIC_WRITE, _ _D,f 4.R  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ h21(K}  
                        ByVal 0&, _ &dDI*v+  
                        OPEN_EXISTING, _ w[oQ}5?9'  
                        0, _ $_zkq@  
                        0) yXo0z_ G  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) dN/ "1%9)  
End Function mCNf]Yz  
C;:L~)C@t  
Public Function CloseDisk() As Boolean |aAWW d5  
'//关闭磁盘 aX'g9E  
    CloseDisk = CloseHandle(hDisk) i)PV{3v$J  
End Function zQ %z "tQ  
^H6d; n  
Public Function GetDiskGeometry() As Boolean |$?Ux,(6  
'//获取磁盘参数 #IGoz|m  
    Dim dwOutBytes      As Long O| 6\g>ew  
    Dim bResult         As Boolean ;Pqyu ?  
     >VUQTg  
    bResult = DeviceIoControl(hDisk, _ bNpIC/#0K  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ KSB_%OI1  
                                ByVal 0&, 0, _ j*~dFGl)  
                                lpGeometry, Len(lpGeometry), _ jl-Aos"/  
                                dwOutBytes, _ ^~<Rzq!  
                                ByVal 0&) /,N!g_"Z  
     [^}>AC*im  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack [aZ v?Z  
    GetDiskGeometry = bResult Bx : So6:  
End Function 8w8I:*  
bZay/ Zkj  
Public Sub GetDiskInfo(MediaType As Long, _ ^lc}FN  
                        Cylinders As Long, _ j[J@tM#  
                        TracksPerCylinder As Long, _  QXxLe*  
                        SectorsPerTrack As Long, _ ~73i^3yf  
                        BytesPerSector As Long) m|2]lb  
'//返回磁盘的参数 I<(.i!-x  
    MediaType = lpGeometry.MediaType 3 [)s;e  
    Cylinders = lpGeometry.Cylinders.lowpart hN:F8r+DG  
    TracksPerCylinder = lpGeometry.TracksPerCylinder ! eA dm  
    SectorsPerTrack = lpGeometry.SectorsPerTrack KD"&_PX  
    BytesPerSector = lpGeometry.BytesPerSector ENx@Ex  
2]aZe4H.  
End Sub nB@iQxcz  
io r [v  
Public Property Get BufferSize() As Long j YIV^o 0  
'//返回每次读/写的缓冲大小 _[vdY|_  
    BufferSize = lBufferSize H;*a:tbxO+  
End Property Tb0;Mbr  
tGO[A#9a  
q?-3^z%u  
Public Function LockVolume() As Boolean t-7[Mk9@  
'// 将卷锁定 K l0t yeT  
    Dim dwOutBytes  As Long {[t"O u  
    Dim bResult     As Boolean ^c0$pqZ}r  
     v;bP8)mI  
    bResult = DeviceIoControl(hDisk, _ =Q8H]F  
                                FSCTL_LOCK_VOLUME, _ VXc+Wm*W  
                                ByVal 0&, 0, _ [[0bhmG)  
                                ByVal 0&, 0, _ ,*nZf|  
                                dwOutBytes, _ &QOWW}  
                                ByVal 0&) [X">v aa  
    LockVolume = bResult i B!hEbz  
End Function ')u5l  
2~&hstd%  
]O7.ss/2  
Public Function UnlockVolume() As Boolean _95}ifSVm  
'// 将卷解锁 sE%<"h\_0  
    Dim dwOutBytes As Long <[y$D=n  
    Dim bResult As Boolean gAr`hXO  
     x !:9c<  
    bResult = DeviceIoControl(hDisk, _ Q f+ p0E;  
                                FSCTL_UNLOCK_VOLUME, _ {~p7*j^0  
                                ByVal 0&, 0, _ Q),3&4pM  
                                ByVal 0&, 0, _ &<w[4z\  
                                dwOutBytes, _ 2 ^ ,H_PS  
                                ByVal 0&) TcKvSdr'  
    UnlockVolume = bResult jq("D,  
End Function X=p3KzzX  
FSU%?PxO  
XHZ: mLf  
Public Function DismountVolume() As Boolean ^/DII`A  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 BU]WN7]D$  
    Dim dwOutBytes As Long k$-~_^4m  
    Dim bResult As Boolean Z ]aK'  
     }6CXJ+-UR  
    bResult = DeviceIoControl(hDisk, _ #mRFUA  
                                FSCTL_DISMOUNT_VOLUME, _ # NN"(I  
                                ByVal 0&, 0, _ I)XOAf$6  
                                ByVal 0&, 0, _ q1TW?\pjb:  
                                dwOutBytes, _ TXJY2J*24  
                                ByVal 0&) N$,/Q9h^  
    DismountVolume = bResult Z`oaaO  
End Function "0'*q<8  
&8Jg9#  
eN]>l  
Public Function ReadDisk(ByVal Cylinders As Long, _ 5@UC c  
                    ByVal Tracks As Long, _ b$goF }b'g  
                    db() As Byte) As Boolean (3N"oE.b]  
'//按柱面和磁道来读取磁盘数据 j FPU zB"  
    Dim iPos    As Long ||=[kjG~  
    Dim lRead   As Long x!C8?K =|  
     Q$fRi[/L  
    iPos = Cylinders * Tracks * lBufferSize 6@?aVM~  
     {7=WU4$  
    If SeekAbsolute(0, iPos) Then ksu}+i,a  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) 5i4V5N>3  
    End If $W/+nmb)@K  
End Function 4z9#M;q T  
i[2bmd!H  
Public Function WriteDisk(ByVal Cylinders As Long, _ xMNNXPz(  
                     ByVal Tracks As Long, _ b\?7?g  
                     db() As Byte) As Boolean p2Dh3)&  
'//按柱面和磁道来写磁盘数据 (aJP: ^  
    Dim iPos    As Long J+71FP`ZH  
    Dim lRead   As Long Tf#2"(!  
     8Q^6ibE  
    iPos = Cylinders * Tracks * lBufferSize H}sS4[z  
     ws>WA{]gq  
    If SeekAbsolute(0, iPos) Then \o:ELa HY  
        WriteDisk = WriteBytes(lBufferSize, db()) r:c@17  
    End If tM^; ?HL]  
End Function fou_/Nrue  
Qst \b8,  
<Qcex3  
'///////////////////////////////////////////////////////////////////////////////////// {K45~ha9!m  
'//file system :DdBn.  
F l_dzh,E  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean AV:Xg4UJv  
'//seek file k_D4'(V:b  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte 9;0V  /y  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) M5GY>3P$c  
    If LowPos = -1 Then 3Q'[Ee2-3  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) K\{b!Cfr^  
    Else eVw\v#gd  
        SeekAbsolute = True Mw"xm9(Q  
    End If N5 SLF4R1  
     nT.L}1@  
End Function -?< Ww{  
W.,% 0cZ  
w4e%-Ln  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean 1B)Y;hg6&  
'//read data to array ,4^9cFVo  
    Dim RetVal    As Long eyeNrk*2o  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) bQ-Gp;]  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF m~)Fr8Wh6  
    ReadBytes = Not (RetVal = 0) pk-yj~F}  
     &W=V%t>Z  
End Function $!YKZ0)B'0  
V_&GYXx(J  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean qQfqlD<  
'//write data from array vKNt$]pm=  
    Dim RetVal As Long jM5_8nS&d  
    Dim BytesToWrite As Long [3O^0-:6E  
    Dim BytesWritten As Long 4S,.R  
     r0\cc6  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) ?EI'^xg  
     op hH9D  
    WriteBytes = Not (RetVal = 0) f._l105.  
End Function yZYK wKG  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 QS3U)ZO$@  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ -1qZqU$h  
DWORD dwCB; 51I|0 ly  
LARGE_INTEGER  offset; ^)&Ly_xrU  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); %1Bn_  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); m7$8k@r  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ +>JdYV<?0  
DWORD error = GetLastError(); _& 8O~8tW  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); u~s Sk  
return FALSE; PX;Vo~6  
} $/u1chf  
return TRUE; ipG5l  
} `J72+RA  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : dd]?9  
{jjSJIV1  
介个真的看不懂。 *myG"@P4hW  
你说你老啦,喜欢怀旧了,才想起来填坑。 -K"4rz  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 q#MM  
OB(pIzSe  
d')-7C  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : GMW,*if8p  
佩服,玩也玩得这么专业! N L'R\R  
JqCc;Cbd  
?7jg(`Yh  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : ifK%6o6  
伍SIR,再次抱拳佩服 ~]'pY  
 U47}QDh  
e-5?p~>  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : iqreIMWz  
引用第19楼伍胥之于06-14-2010 12:33发表的  :  MX2]Q  
 _zvCc%  
P<ElH 3J`  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 ? %XTD39  
T~8==Z{[  
我连一级也没有考过。 -GCC  
.
>E;kM B  
Hk VnTC  
引用
xQ+UZc  
矬子里拔将军... DvB!- |ek  
你们那里的俗语是吧? c @7d4Jz  
eyUguA<lK\  
我们这里说"矮子里拔长脚"..应该是同一个意思... (~q.YJ'  
[uU"=H|  
有趣....各地有表达意思一样却方式不同的俗语.... Kkcb' aDR  
 :tBIo7  
$P&{DOiKS  
你的文章写的有脸皮,没屁眼的, #I8)|p?P  
让看客大为不满... )S@e&a|  
[ R  
你等着,,估计你以后接到的午夜凶铃就多了... &&T\PspM  
U6cpj  
1 j"G~TM  
我到现在也没有接到你的午夜凶铃呢! KSDz3qe  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : (A(j.[4a  
每个人的故事对其他人都是故事, La>fvm  
自己的故事也是其中之一. |\.:h":!0~  
跳出来看, TOT#l6yqdd  
不过是众人中的一个人的故事. tTEw"DL_-  
R7\T.;8+  
所以,接着听故事. ej91)3AO  
)[b\wrc   
女人们有兴趣的就等老伍开个新帖或者跟贴, r=6N ZoZ  
听他痛说恋爱革命历史.... W&~\@j]!D  
j(~e{HZ  
杂家接着听他自学程序员历史, mH.c`*  
高级程序员考了吗? eI,'7u4q  
|j}D2q=  
Mi~x(W@}3  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! =kzuU1s  
G&Fe2&5!w  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 <)$&V*\  
jOUM+QO  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 1.0:   
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : l*(L"]  
哦, 打倒忽悠大家的家伙.      D-D8La?0p  
G*=&yx."E  
2kOaKH[(q  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : xIV#}z0  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 ~]Av$S  
 z).&0K  
9xK#( M  
其实标题没有什么,卡总既然改了就不必再改回了。 ~OLyG$JJ  
,,1y0s0`  
主要是当初写的时候真是顶着锅盖写的。 (w+SmD  
0'Qvis[kt  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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