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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 DJr{;t$7~  
"15mOW(!+  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : qP- *  
@5K/z<p%  
老五,I 服了U。 BX;Z t9"*  
5K|1Y#X  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 Q7zg i  
x>m_ v  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean ^5x\cR  
d#cw`h<c~  
Dim regEX As New RegExp Wg9q_Ql  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 6|+I~zJ88  
+K,]#$k  
Dim LastTitle0String As String, LastTitle0No As Long xH#R_  
Dim LastTitle1String As String, LastTitle1No As Long U@yn%k9  
Dim LastTitle2String As String, LastTitle2No As Long uA dgR  
Dim LastTitle3String As String, LastTitle3No As Long !%>p;H%0  
Dim LastTitle4String As String, LastTitle4No As Long EH<r Uv63  
Dim LastTitle5String As String, LastTitle5No As Long & $ZJfHD@  
Dim LastTabelString As String, LastTableNo As Long `?{i dg  
Dim LastFigureString As String, LastFigureNo As Long CK eT%3  
DyIuM{Owj  
Dim strSeperator As String yPL1(i;  
m~mw1r  
Sub ConvertWidth(fTEXT As String, rText As String) JK34pm[s  
        Selection.Find.ClearFormatting eS{lr4-]  
        Selection.Find.Replacement.ClearFormatting #u`i4  
        Selection.Find.Wrap = wdFindContinue eD5.*O  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText 42kr&UY&  
        DoEvents >u? pq6;  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True oMk6ZzZ,>  
End Sub NPF"_[RoeV  
Rqu_[M  
Sub ClearDomain() 8%q:lI  
        With Selection.Find *J,VvO 9  
            .ClearFormatting A J<Sa=  
            .Replacement.ClearFormatting 8`l bKV  
            .Wrap = wdFindContinue 60(j[d-$p  
            Me.txtStatus.Text = "清除所有域代码" :^]rjy/|+  
            DoEvents \tH^w@j47  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False 'F.Da#st!}  
        End With >J,Rx!fq3  
End Sub b7 %Z~  
{Hg.ctam  
Private Sub cmdCheck_Click() ' ^L|}e  
    bContinue = True MgkeD  
    Dim NoSeries1(1 To 16) As String M|nTO  
    Dim NoSeries2(1 To 16) As String Ze_4MwC W  
    Dim NoSeries5(1 To 16) As String KfD=3h=  
    Dim NoSeriesRM(1 To 16) As String 9}LcJ  
    Dim paraTotal As Long, ParaText As String C)66 ^l!x  
    Dim ttString As String, ttNo As String ".Z|zt6C  
     Ry9kGdqO  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long hF|N81T  
BU],,t\  
    Me.txtStatus.Visible = True L ldZ"%P  
    Me.lbParaType.Visible = True @."_XL74  
    Me.cmdCheck.Enabled = False 2 Z W {  
     y5gTd_-  
     [S;ceORx  
     ]/&qv6D*d  
     n?'I&0>M  
    Dim ParaType As String, rText As String VJquB8?H  
     r&6X|2@  
    Selection.WholeStory If[4]-dq  
    Selection.NoProofing = True %X)w$}WH  
     IJ >qs8  
    tm1 = Now "@uKe8r|y  
     "X<vgM^:  
        ActiveWindow.View.Type = wdNormalView D>neY9  
     ~.\CG'g  
    NoSeries1(1) = "一" *9Eep~ 6  
    NoSeries1(2) = "二" /Ilve U`E  
    NoSeries1(3) = "三" W !TnS/O_1  
    NoSeries1(4) = "四" `F-<P%k  
    NoSeries1(5) = "五" =UY)U-  
    NoSeries1(6) = "六" l12Pj02w  
    NoSeries1(7) = "七" ?Vg251-H  
    NoSeries1(8) = "八" }o^VEJc`O  
    NoSeries1(9) = "九" IL*Ghq{/  
    NoSeries1(10) = "十" H&0dc.n~.  
    NoSeries1(11) = "十一" ((OQs.  
    NoSeries1(12) = "十二" 5eS0 B{,c  
    NoSeries1(13) = "十三" IqEE.XhaK  
    NoSeries1(14) = "十四" Mkc   
    NoSeries1(15) = "十五" %@Mv-A6)  
    NoSeries1(16) = "十六" x~3N})T5  
     V?pqKQL0  
    NoSeries2(1) = "㈠" pK/r{/>r  
    NoSeries2(2) = "㈡" W%Jw\ z=  
    NoSeries2(3) = "㈢" mk*r^k`a  
    NoSeries2(4) = "㈣" %%d3M->C}  
    NoSeries2(5) = "㈤" ~^Ceru"<  
    NoSeries2(6) = "㈥" `b.KMOn  
    NoSeries2(7) = "㈦" E<6Fjy  
    NoSeries2(8) = "㈧" {"f4oK{ w  
    NoSeries2(9) = "㈨" "&!7wH ,A  
    NoSeries2(10) = "㈩" $aIq>vJO9  
     /Mq9~oC  
    NoSeries5(1) = "①" FO[x c;  
    NoSeries5(1) = "②" k2] fUP  
    NoSeries5(3) = "③" UYOveQ;  
    NoSeries5(4) = "④" WTWONO>  
    NoSeries5(5) = "⑤" ^!a4!DGVT  
    NoSeries5(6) = "⑥" ol^uM .k%_  
    NoSeries5(7) = "⑦" _"nzo4e0  
    NoSeries5(8) = "⑧" VS.~gHx  
    NoSeries5(9) = "⑨" rf@Cz%xDD  
    NoSeries5(10) = "⑩" ",&^ f  
     xLX2F   
     $wnK"k%G  
    NoSeriesRM(1) = "I" `X;'*E]e  
    NoSeriesRM(2) = "II" :'hc&wk`  
    NoSeriesRM(3) = "III" 5D9n>K4|  
    NoSeriesRM(4) = "IV" ,_+Gb  
    NoSeriesRM(5) = "V" s0EF{2<F  
    NoSeriesRM(6) = "VI" NA@ <v{z  
    NoSeriesRM(7) = "VII"  8kn> ?  
    NoSeriesRM(8) = "VIII" NJ%>|`FEi7  
    NoSeriesRM(9) = "IX" YF)uAJAk  
    NoSeriesRM(10) = "X" sn>2dRW{  
    NoSeriesRM(11) = "XI" }J_"/bB  
    NoSeriesRM(12) = "XII" .5?e)o)  
    NoSeriesRM(13) = "XIII" HRP  
    NoSeriesRM(14) = "XIV" (}!xO?NA(  
    NoSeriesRM(15) = "XV" 4\? z^^  
    NoSeriesRM(16) = "XVI" S=f:-?N|  
     *yX5g,52-|  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) `LroH>_  
     ohLM9mc9  
    If i = vbNo Then 8/i];/,v*M  
        Exit Sub z?Hi u6c-  
    End If %X|fp{C  
     R%%Uw %`  
    If Me.chkSuper.Value Then c\P,ct }>  
        Me.txtStatus.Text = "检查修改所有的上标格式" @la/sd4`  
     1:Sq?=&  
        CheckSuperScript oh^/)2W  
         p"'knZ G  
    End If &|]GTN `E  
     x`3F?[#l  
    If Me.chkStyle.Value Then ^$>Q6.x?*)  
        Me.txtStatus.Text = "设置样式,请稍候...." 5)@U pcjUA  
        DoEvents Qk5pRoL_  
        CeateOrModifyStyle Fq WW[Bgd  
    End If r$Gz  
     VWLqJd>tr1  
     P0 4Q_A  
     NUN~T (  
    ClearDomain -!bfxbP  
         r(qw zUI  
     ?R!?}7  
     PH1jN?OEwZ  
    If Me.chkLIST.Value Then T<a/GE/  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" LdH23\  
     ":I@>t{H*  
        ConvertListToOrdinary s* ;rt  
    End If jV 'u *2&9  
     6x*$/1'M3;  
     :abpht  
    Dim pType As String, trimpTEXT As String 2h;#BJ))  
    If Me.chkNum.Value = True Then 7M.TLV!f]  
        Me.txtStatus.Text = "转换全角数字形式为半角" xU6rZ CqE  
        ConvertWidth "1", "1" r*F^8_YMK  
        DoEvents qpEK36Js  
        ConvertWidth "2", "2" )/:j$aq  
        DoEvents @A.7`*i_  
        ConvertWidth "3", "3" uUIjntSF(  
        DoEvents  gl$}t H  
        ConvertWidth "4", "4" O-3R#sZ0  
        DoEvents XI5TVxo(q  
        ConvertWidth "5", "5" p~A6:"8s`=  
        DoEvents {9c_T!c  
        ConvertWidth "6", "6" D!g \-y  
        DoEvents >LAhc7I  
        ConvertWidth "7", "7" Zws[C  
        DoEvents /:=,mWoO  
        ConvertWidth "8", "8" S%Bm4jY  
        DoEvents cVYPPal  
        ConvertWidth "9", "9" {SRv=g  
        DoEvents 8V?*Bz-4`  
        ConvertWidth "0", "0" -J& b~t@  
        DoEvents ~@ H9h<T  
        ConvertWidth "a", "a" S%6V(L|  
        DoEvents O$*\JL  
        ConvertWidth "b", "b" j6&q6C X  
        DoEvents hy}n&h  
        ConvertWidth "c", "c" Ny" "lcy  
        DoEvents h 7/wkv\y9  
        ConvertWidth "d", "d" :OKU@l|  
        DoEvents [G<SAWFg7  
        ConvertWidth "e", "e" ^1\[hyZ!  
        DoEvents zcE` .)y  
        ConvertWidth "f", "f" i6-&$<  
        DoEvents $/)0iL{0  
        ConvertWidth "g", "g" uS|f|)U&  
        DoEvents ~a ]R7X7  
        ConvertWidth "h", "h" J|uSj/8  
        DoEvents S=zW wo$  
        ConvertWidth "i", "i" Qd"R@+i  
        DoEvents Ly~s84k_po  
        ConvertWidth "j", "j" ).i :C(|  
        DoEvents .  g8WMm  
        ConvertWidth "k", "k" sUl _W"aQ  
        DoEvents p!o+8Xz5  
        ConvertWidth "l", "l" df R?O#JPU  
        DoEvents  m1#,B<6  
        ConvertWidth "m", "m" na`8ulN_  
        DoEvents CubBD+h l*  
        ConvertWidth "n", "n" EmYu]"${1  
        ConvertWidth "o", "o" :c3'U_H^  
        ConvertWidth "p", "p" 4 yDWVd;  
        ConvertWidth "q", "q" m`!Vryf  
        ConvertWidth "r", "r" 6DxT(VU}  
        ConvertWidth "s", "s" b8O }XB  
        ConvertWidth "t", "t" TjWMdoU$J  
        ConvertWidth "u", "u" Cj10?BNV)  
        ConvertWidth "v", "v" rx\f:-3g  
        ConvertWidth "w", "w" 2tMa4L%@C  
        ConvertWidth "x", "x" ;kLp}CqV  
        ConvertWidth "y", "y" &eIwlynm  
        ConvertWidth "z", "z" /I@`B2  
        ConvertWidth "A", "A" X B[C&3I  
        ConvertWidth "B", "B" V }wh  
        ConvertWidth "C", "C" # n\|Q\W  
        ConvertWidth "D", "D" ~E3"s  
        ConvertWidth "E", "E" +rOfQ'lQ  
        ConvertWidth "F", "F" oFDJwOJ'Bj  
        ConvertWidth "G", "G" b|-7EI>l9  
        ConvertWidth "H", "H" _h1:{hF  
        ConvertWidth "I", "I" {SJnPr3R  
        ConvertWidth "J", "J" A5 <T7~U  
        ConvertWidth "K", "K" ~|R/w%*C  
        ConvertWidth "L", "L" #+SdX[ N  
        ConvertWidth "M", "M" Wg[ThaZ  
        ConvertWidth "N", "N" Lv<)Dur0K  
        ConvertWidth "O", "O" ]%<0V,G q  
        ConvertWidth "P", "P" ;yDXo\g m  
        ConvertWidth "Q", "Q" lj+}5ySG/  
        ConvertWidth "R", "R" 3F\UEpQ  
        ConvertWidth "S", "S" e)Pm{:E  
        ConvertWidth "T", "T" qYbPF|Y=Z  
        ConvertWidth "U", "U" FZ@8&T   
        ConvertWidth "V", "V" ^!x}e+ o  
        ConvertWidth "W", "W" [h@MA|  
        ConvertWidth "X", "X" 2`cVi"U  
        ConvertWidth "Y", "Y" NVG`XL  
        ConvertWidth "Z", "Z" lFc4| _c g  
        ConvertWidth "^l", "^p" gVpp9VB  
        ConvertWidth "(", "(" qy,X#y'FuE  
        ConvertWidth ")", ")" K/D,sH!  
     dY$jg  
    End If 1g1gu=|Q  
39 Zs  
    With ActiveDocument W}.p,d  
        Dim tbl As Table Jo9!:2?  
        For Each tbl In .Tables tg%C>O  
            tbl.Rows.Alignment = wdAlignRowCenter mP+rPDGp  
            tbl.Range.Font.NameFarEast = "楷体" kOLS<>.  
            tbl.Range.Font.NameAscii = "Times New Roman" n||!/u)*  
            tbl.Range.Font.Size = 10.5 QMBV"E_aY  
        Next 1+NmiGKg  
        Set tbl = Nothing &4V"FHy2  
    End With a^MR"i >@G  
     hZDv5]V:0  
     E?^A+)<"  
    With ActiveDocument  j.vBld  
         ]M.)N.T  
        For i = 1 To .TablesOfContents.Count yL%k5cO$N  
            .TablesOfContents(i).Delete pNzpT!}H>  
        Next QP[`*X  
         ba"a!#wA  
         1`@rAA>h'  
         #7dM %   
        paraTotal = .Paragraphs.Count MnT+p[.  
        paraCounter = 1 Oo`b#!L  
         >a5avSn  
        LastTitle0No = 0  0ZpWfL  
        LastTitle1No = 0 ^J7g)j3  
        LastTitle2No = 0 ko<VB#pOMr  
        LastTitle3No = 0 :rX/I LAr  
        LastTitle4No = 0 iT"H%{+~  
        LastTableNo = 0 zP;1mN  
        LastFigureNo = 0 x|IG'R1:Y  
         sAKQ.8$h*  
        Dim Sec As Long n+;PfQ|  
         #^;^_  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) 9KLhAYaq  
        If Sec = 0 Then _<P~'IN+n  
            Exit Sub MESPfS+  
        End If ;WpPdR2  
         _=oNQ  
        k = 0 Mb[4G>-v=  
        Do While (paraCounter < paraTotal) And bContinue  zFk@Y  
            k = k + 1 YcJ2Arml  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then hR3Pa'/i  
                Exit Do ?$\y0lHw/7  
            End If dL!K''24{  
            paraCounter = paraCounter + 1 G9uWn% 5r  
            If k Mod 20 = 0 Then ) bPF@'rF2  
                Me.lbCounter.Caption = paraCounter 7 LdNE|IP  
                DoEvents #$(w fb9  
            End If k%v/&ojI  
        Loop /DQcM.3  
         g+iV0bbT  
         L7&|  
        Do While (paraCounter < paraTotal) And bContinue 4!r> ^a  
             w=H4#a?fc  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) !WReThq  
            ShapeHeight = 0 j[o5fr)L  
            ShapeWidth = 0 R WU,v{I9  
           -hP-w>  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth # pz{,  
             -!p -nk@9|  
            Select Case ParaType *tZ#^YG{(  
                Case "【】表格内容" ds9`AiCW>  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" w_ po47S4  
                Case "章" /@\3#2;  
                    LastTitle0No = LastTitle0No + 1 7OOod1  
                    '新一章开始,复位其下属标题编号 S.Fip _  
                    LastTitle1No = 0 `[J(a u$z  
                    LastTitle2No = 0 r ,,A%  
                    LastTitle3No = 0 4D\+_Ic3  
                    LastTitle4No = 0 |uE _aFQs  
                     lt&30nf=  
                    k = Val(ttNo) P$ |DiiH  
                    If k = 0 Then '非数字编号章节 jn;b{*Lf  
                        If ttNo <> NoSeries1(LastTitle0No) Then "UY.; P  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString o ) FjWf;  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText 6}6ky9  
                        End If ^2PQ75V@.  
                    Else ,-XJ@@2gM  
                        If Val(ttNo) <> LastTitle0No Then @9rmm)TZ  
                            rText = "第" & LastTitle0No & ttString "@[xo7T  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText xR, ;^R|C  
                        End If ~-w  
                         K{00 V#  
                    End If !OJSQB,  
                     YMx zj  
                    '章段落设置 {@u}-6:wAT  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 I({ 7a i  
                    .Paragraphs(paraCounter).Style = "QLNU章节" IJnr^S8  
                    .Paragraphs(paraCounter).Range.Select &sx|sLw)  
                    Selection.EndKey unit:=wdLine _(\\>'1q!  
                    tc = Replace(rText, vbCr, "") ptmPO4f  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False sE8.,\  
                Case "一级标题" T7.u7@V2  
                    LastTitle1No = LastTitle1No + 1 g loo].z  
                    '新一级标题开始,复位其下属标题编号 #dGg !D  
                    LastTitle2No = 0 ]41G!'E=  
                    LastTitle3No = 0 )LYj,do  
                    LastTitle4No = 0 s `r  tr  
                     ka&-tGg  
                    If ttNo <> NoSeries1(LastTitle1No) Then ,b@0Qa"  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString xIo7f  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText Hvq< _&2  
                    End If cF[[_  
                   32IN;X|  
                     | We @p  
                    '一级标题段落设置  格式:一、标题内容 [vaG{4m  
                    .Paragraphs(paraCounter).Range.Text = rText u[jdYWQa  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" 9e Dji,  
                    .Paragraphs(paraCounter).Range.Select CW=-@W7  
                    Selection.EndKey unit:=wdLine ~QsQ7SAs  
                    tc = Replace(rText, vbCr, "")  1Nk}W!v  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False vN7ihe[C  
                Case "二级标题" [VPqI~u5)  
                    LastTitle2No = LastTitle2No + 1 /j' We-C  
                    '新二级标题开始,复位其下属标题编号 LE Y Y{G?  
                    LastTitle3No = 0 -7" >A~c  
                    LastTitle4No = 0 [<sBnHbvQ.  
                     lm&C!{K  
                    If ttNo <> NoSeries1(LastTitle2No) Then !+M H?A  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString EVj48  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText J 6 S  
                    End If 5Wi5`8m  
                     S@7A)  
                    '二级标题段落设置 格式:(一)、标题内容 7 9%${ajSI  
                    .Paragraphs(paraCounter).Range.Text = rText {Pg7IYjH  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" fXw%2wg  
                     )vS## -[_  
                    .Paragraphs(paraCounter).Range.Select nu$LWC-  
                    Selection.EndKey unit:=wdLine |"P5%k#6^>  
                    tc = Replace(rText, vbCr, "") &fj&UBA  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False Y#6@0Nn[G  
                 kkrQ;i)Z  
                Case "三级标题" jq["z<V )x  
                    LastTitle3No = LastTitle3No + 1 N_VAdNJ^:  
                    '新三级标题开始,复位其下属标题编号 ZF ;S }1  
                    LastTitle4No = 0 ?XGZp?6  
                     F,O+axO ja  
                    If Val(ttNo) <> LastTitle3No Then ;8g#"p*&  
                            rText = LastTitle3No & ". " & ttString S&]:=He  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText hP,1;`[1  
                         d<6L&8 )<  
                    End If &/\0_CoTR\  
                    '三级标题段落设置 格式:1. 标题内容 RkLH}`#  
                    .Paragraphs(paraCounter).Range.Text = rText Q$,8yTM  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" zPV/{)S  
                    .Paragraphs(paraCounter).Range.Select 2.& v{gq  
                    Selection.EndKey unit:=wdLine ~9oS~fP?I  
                    tc = Replace(rText, vbCr, "") %4L|#^7:  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False (7ew&u\Li  
                Case "四级标题" eS@RA2  
                    LastTitle4No = LastTitle4No + 1 !4jS=Lhe>  
                     TL7-uH  
                    If Val(ttNo) <> LastTitle4No Then `s:| 4;.  
                            rText = "(" & LastTitle4No & "). " & ttString u(ZS sftat  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText o D* '  
                     317Buk  
                    End If z4-AOTo2y  
                    '四级标题段落设置 格式:(1). 标题内容 ~:)$~g7>b  
                    .Paragraphs(paraCounter).Range.Text = rText MO#%w  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" 4kg9R^0  
                    .Paragraphs(paraCounter).Range.Select +d6E)~qKL  
                    Selection.EndKey unit:=wdLine [1nI%/</>  
                    tc = Replace(rText, vbCr, "") l.BSZhO$  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False z7PPwTBa  
                 wKY6[vvF  
                Case "表格标题" GN1cnM>`  
                    LastTableNo = LastTableNo + 1 2z[Pw0#V  
                     2 yP#:T/z  
                    If ttNo <> CStr(LastTableNo) Then 5Ll[vBW  
                            rText = "表" & LastTableNo & ". " & ttString t41cl  
                            ErrMsg.AddItem "表格编号错误:" & ParaText X Y4s  
                   TTE#7\K~B  
                    End If q] Qgg  
                     +Kq>r|;  
                    '表格名称段落设置 格式:表1. 表格名称  74Q?%X  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" ?$n<vF>  
                    xe = Replace(rText, vbCr, "") 1C$^S]v%a  
                    .Paragraphs(paraCounter).Range.Select ;#~ !`>n?  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 )edM@beY_  
                    Selection.Range.Text = xe m'qMcCE  
                    Selection.EndKey e-}PJ%!,T  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False DR0W)K ^  
                 *h =7:*n  
                Case "表格首行" ZTmdS  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" 2CxdNj  
                Case "图片标题" +&?VA!}.  
                    LastFigureNo = LastFigureNo + 1 Pm?6]] 7  
                     mG@Q}Y(  
                    If ttNo <> CStr(LastFigureNo) Then *Nt6 Ufq6  
                            rText = "图" & LastFigureNo & ". " & ttString QHs]~Ja  
                            ErrMsg.AddItem "表格编号错误:" & ParaText 7GP?;P  
                   x:2[E-  
                    End If p[uwG31IL`  
                    '图片名称段落设置 格式:图1. 图名称 OC>" +  
                    .Paragraphs(paraCounter).Range.Text = rText a|7V{pp=M  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" e2*^;&|%  
                    .Paragraphs(paraCounter).Range.Select XPEjMm'*b3  
                    Selection.EndKey unit:=wdLine g(5s{njL  
                    xe = Replace(rText, vbCr, "") huTJ  a2  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False v}_$9&|S  
                Case "正文" +Zr03B  
                     '正文名称段落设置 s{q2C}=$?D  
                    .Paragraphs(paraCounter).Style = "QLNU正文" [#Yyw8V#<  
               Case "文献条目" &erNVD5o  
                    With .Paragraphs(paraCounter) 4_"ZSVq]#  
                        '.Range.Select gN]`$==c[  
                        'Selection.ClearFormatting 7k$8i9#  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” @s IZ  
                        .Style = "QLNU参考文献" P! O#"(r2]  
                    End With QHM39Eu]  
               Case "图表注解" _?r+SRFn  
                    With .Paragraphs(paraCounter) ,DE%p +q  
                        .Range.Font.NameFarEast = "楷体" by06!-P0[  
                        .Range.Font.NameAscii = "Times New Roman" *TXq / 3g  
                        .Range.Font.Size = 9 '小5号字 Qp=uiXs  
                         16 Xwtn72  
                        .Alignment = wdAlignParagraphCenter []2GN{m  
                        .LeftIndent = 0 Zwt!nh   
                        .RightIndent = 0 B\=&v8  
                        .FirstLineIndent = 0 8D n]`}ok  
                        .LineSpacing = 12 FFQF0.@EBi  
                        .LineSpacingRule = wdLineSpaceExactly p~mB;pZ%;  
                        .LineUnitAfter = 0 '  qM3.U  
                        .LineUnitBefore = 0 nK|";  
                        .OutlineLevel = wdOutlineLevelBodyText V+Tj[: ok  
                        .PageBreakBefore = False YT:1=Nf}  
                        .RightIndent = 0 Z0'3.D,l  
                        .WordWrap = True Yr31GJ}K  
                        .LineUnitAfter = 0.5 qe$K6A%Yd  
                         X! ]~]%K$y  
                    End With pj )I4C)  
                Case Else _N]yI0 k(  
                    '不作处理 !.J~`Y'd_  
            End Select ,f1wN{ P  
             7Ow7|  
            '含有inlineshape的段落处理 /d=$,q1  
            If ShapeHeight > 30 Then 53T2w,?  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 QAJ>93  
            End If ;I7Z*'5!  
             k Z3tz?Du  
            If (ShapeWidth + ShapeHeight) > 150 Then )3 r1; ^W  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" aH$~':[93  
            End If wd]Yjr#%Ii  
             ?SAi t Q3  
            '段落计数器递 zR .MXr  
            paraCounter = paraCounter + 1 dG rA18  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter {e@1,19  
            Me.txtStatus.Text = ParaText cn c$^[c  
            DoEvents ~8X' p6  
        Loop lxd<^R3i#^  
    End With 4Oy c D  
      A:!{+  
    msg = "" bCrB'&^t  
     OiOL 4}5(  
    For i = 0 To Me.ErrMsg.ListCount - 1 a@a1/ 3  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) Z kS* CG   
    Next Lf-8G5G  
     ?~K2&eo  
     }n=NHHtJ  
     5a`}DTB[Co  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg q38; w~H  
    Me.cmdCheck.Enabled = True Qh[t##I/  
    Me.txtStatus.Visible = True %qQ(@TG  
    Me.lbParaType.Visible = False 3edAI&a5  
     9C.cz\E  
    bContinue = False Xm4wuX"e=  
End Sub l>iU Q&V  
Vg+SXq6G  
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) pE< ' '`  
    Dim pTEXT As String 9j"\Lr*o "  
     4[r a  
    pTEXT = ChKRange.Text vuZ<'?Nm  
     ^ UzF nW@a  
    ParaType = "其它" |l|]Tw  
    TitleString = pTEXT  ;E&XFTdO  
    TitleNo = "N/A" .3&m:P8zV  
     mOB\ `&h5  
    shpCounter = ChKRange.InlineShapes.Count 9VByFQgM  
    If shpCounter <> 0 Then NLpD,q{  
        MaxShpHeight = 0: TotalShpWidth = 0 +{I\r|  
        For i = 1 To shpCounter OS 6 )`  
            k = ChKRange.InlineShapes(i).Height d5\1-d_uz  
            l = ChKRange.InlineShapes(i).Width Jc)1}  
            If k > MaxShpHeight Then } :mI6zsNj  
                MaxShpHeight = k [GuDMl3hC  
            End If ws=TR  
            TotalShpWidth = TotalShpWidth + l qcot T\rq  
        Next >guQY I@4,  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then T 82_`u  
            Exit Sub GEA;9TU|V  
        End If o7+/v70D  
    End If Y '5ck(  
     ,54<U~Lg:  
    '空行 ;x#>J +QlG  
    If Len(pTEXT) <= 2 Then ' 7A7HDJ  
        Exit Sub {<2Zb N?  
    End If hF~B&^dd.  
     54{"ni 2a  
         =<05PB  
    '是否为表格中的文字 ,2`d3u^CW  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then H1[aNwLr  
        ParaType = "表格内容" O2G+ '  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) %awS*  
        If k = 1 Then JdHc'WtS!|  
            ParaType = "表格首行" {dwV-qz  
        End If a}K+w7VY\  
        Exit Sub MUrY>FYgx  
    End If 9zyN8v2  
     3$8}%?i  
    '例外情况:脚注 .%rR  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then [UH5D~Yx  
        ParaType = "脚注" L@Z &v'A  
        Exit Sub  M9K).P=  
    End If 7N"Bbl  
     ; ]Aa  
    '例外情况:尾注 WI6E3,ejB1  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then oc(bcU  
        ParaType = "尾注" h 3&:"*A2  
        Exit Sub [f0HUbPX  
    End If v#|c.<].  
     mTfMuPPs[  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then o FLrSmY)E  
        ParaType = "页眉页脚"  o,yvi  
        Exit Sub =oME~oB~  
    End If 1Tq$E[  
     4m*(D5Y=|  
     pqSE|3*l  
    With regEX dX*>?a  
        .Global = True 6dL>Rzl$Dk  
         IJ8DN@w9  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" SDIeq  
        If regEX.Test(pTEXT) Then kA4ei  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") m_2P{  
            TitleString = regEX.Replace(pTEXT, "$3") C]fTV{  
            TitleNo = regEX.Replace(pTEXT, "$1") lt4jnV2"a  
            ParaType = "章" kPH^X}O$  
            Exit Sub |S{P`)z%f  
        End If / aG>we  
         [,^dM:E/  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" wIF ":'  
        If regEX.Test(pTEXT) Then 3kCbD=yF  
            ParaType = "一级标题" i =N\[&  
            regEX.Execute (pTEXT) -y?Z}5-rs  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") shT[|@" C  
            TitleString = regEX.Replace(pTEXT, "$3") !yX<v%>_0  
            TitleNo = regEX.Replace(pTEXT, "$1") lrhAO"/1  
            Exit Sub ~8(X@~Tn*  
        End If " yTh +=  
         )6&\WNL-x  
        '全角或半角括号中的数字 :dN35Y]a  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" #sU~fq  
        If regEX.Test(pTEXT) Then 1H =wl =K  
            ParaType = "二级标题" aT#{t {gkA  
            regEX.Execute (pTEXT) CLEG'bZa,  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") Vb^s 'k  
            TitleString = regEX.Replace(pTEXT, "$5") =h::VB}Lv  
            TitleNo = regEX.Replace(pTEXT, "$2") Iv72;ZCh?6  
            Exit Sub 'w[d^L   
        End If ~8t}*oV   
         *\KMkx  
        '阿拉伯数字  1. 2. zm+4Rl(  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" VaSNFl1_M  
        If regEX.Test(pTEXT) Then tR* W-%  
            ParaType = "三级标题" t`T\d\  
            regEX.Execute (pTEXT) 8(5E<&JP  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 15 o.j!S  
            TitleString = regEX.Replace(pTEXT, "$3") &&1Y"dFs  
            TitleNo = regEX.Replace(pTEXT, "$1") O'-Zn]@.]  
            Exit Sub yH%+cmp7  
        End If 4AOS}@~W  
         )8 :RiG2B  
        '全角或半角括号中的阿拉伯数字 Cz r4 -#2  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" Y@H,Lk  
        If regEX.Test(pTEXT) Then LGROEn<*d  
            ParaType = "四级标题" mN{ajf)@  
            regEX.Execute (pTEXT) x7Rq|NQ  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") z<6P3x|  
            TitleString = regEX.Replace(pTEXT, "$5") 0DB<hpC:5  
            TitleNo = regEX.Replace(pTEXT, "$2") \'+{X(]  
            Exit Sub "42$AaS  
        End If _MbVF>JOx  
         ; axa ZV  
        '表格名称 n>:c}QAJH  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" P}9Y8$Y>U  
        If regEX.Test(pTEXT) Then ]ZGvRA&  
            ParaType = "表格标题" Kn#xY3W6  
            regEX.Execute (pTEXT) fslk7RlSKg  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) tH,K\v`f  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) @ P"`=BU&  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) rtL9c w5  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 HwW[M[qA  
            Exit Sub LnTe_Q7_  
        End If |M<.O~|D6}  
         fsJTwSI["  
        '图片名称 1LE^dS^V  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" 5u)^FIBj  
        If regEX.Test(pTEXT) Then 2${,%8"0s  
            ParaType = "图片标题" C}= _8N  
            regEX.Execute (pTEXT) l8xd73D)8  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") /P!X4~sTM  
            TitleString = regEX.Replace(pTEXT, "$3") ( ssH=a  
            TitleNo = regEX.Replace(pTEXT, "$1") "gN*J)!x  
            Exit Sub ;Nf hKu%K  
        End If J )8pqa   
         |369@un6  
        '参考文献 B N*,!fx  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 ]2\2/~l  
        If regEX.Test(pTEXT) Then }'V'Y[  
            ParaType = "文献条目" qa$[L@h>  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") +z(,A  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") !| <f%UO  
            Exit Sub ~I\r1Wj;  
        End If k[ffs}  
         [> &+*c  
        prfx = Left(pTEXT, 2) j+13H+dN  
        If prfx = "注:" Or prfx = "注:" Then M,\|V3s  
            ParaType = "图表注解" L2>?m`wp  
            Exit Sub B`Or#G3ph  
        End If ;/";d]j  
         ay:\P.`5)  
         t66f 7AR  
        ParaType = "正文" F*4Qa  
         Tt<-<oyU.  
    End With ;h-G3>Il  
End Sub 0^!,[oh6*  
iTug vb  
Sub ConvertListToOrdinary() <[3lV)~t  
    Dim st As Paragraph ;sL6#Go?V  
    With ActiveDocument XuFm4DEJ  
        For i = .Paragraphs.Count To 1 Step -1 KSgQ:_u4}  
            Set st = .Paragraphs(i) j |'# 5H`  
            lst = st.Range.ListFormat.ListString [2QY  
            If lst <> "" Then }G N kB  
                st.Range.ListFormat.RemoveNumbers >^T,U0T])  
                st.Range.InsertBefore lst & " " G{:af:5Fo  
            End If yToT7 X7F7  
        Next LTYu xZ  
    End With D)*_{   
    Set st = Nothing U/3e,`c  
End Sub `FYtiv?G  
U-~* 5Dd  
Private Sub UserForm_Activate() 1FD7~S|  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" J"D&q  
    Me.lbTotal.Font.Bold = True 0K$WSGB?6j  
    Me.txtStatus.Visible = False 1(:b{Bl  
    Me.cmdCheck.Enabled = True  g`)/x\  
]m/@wW9  
End Sub \2gvp6  
c;b[u:>~-  
[al(>Wr9  
Sub CheckSuperScript() KMpDlit  
    Selection.Find.ClearFormatting [L*[j.r7[  
    Selection.Find.Replacement.ClearFormatting >uyeI&z  
    With Selection.Find 2pxWv )0  
        .Text = "[【\[[〖](*)[】\]〗]]"  u]1-h6  
        .Replacement.Text = "[\1]" ui.QYAYaV  
        .Replacement.Font.Superscript = True 4uO @`0:x  
        '.Replacement.Font.Color = wdColorBlue c ?p0#3%L#  
        .Forward = True ~51kiQW  
        .Wrap = wdFindContinue  EbBv}9g  
        .FORMAT = True K4?t' dd]  
        .MatchCase = False x;ERRK  
        .MatchWholeWord = False 9{9#AI.G  
        .MatchByte = False iJCY /*C}  
        .MatchAllWordForms = False =#.8$oa^  
        .MatchSoundsLike = False 9LqMQv"xW  
        .MatchWildcards = True |i} + t  
    End With {p#l!P/  
    Selection.Find.Execute Replace:=wdReplaceAll T.R>xd`9 "  
End Sub )I Y 5Y  
I5TQ>WJbf  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) GG@I!2,_  
    bContinue = False qXP1Q3  
    Set regEX = Nothing m0%iw1OsH%  
End Sub B7Ki @)  
lnS\5J  
Sub CeateOrModifyStyle() k lP{yxU'n  
' ' FPcAW^8  
' dr,B\.|jC  
Dim stl As Style vu_>U({. T  
     B c,"12  
    Options.Pagination = False _q$0lqq~u  
     E !Oz|q  
    On Error Resume Next Yn IM-  
    For Each stl In ActiveDocument.Styles u n?j  
        stl.Delete &# vk4C_8m  
    Next Q8;x9o@ p  
    On Error GoTo 0 5bF9I H  
     [0%yJH  
    Set stl = Nothing .^[fG59  
     B%%.@[o,  
    DoEvents L;.VEz!  
    On Error Resume Next abTDa6 /`v  
     PSP1>-7)w  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph nu469  
     z`86-Ov  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph O:`GL1{ve?  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph 7~!I2DV_  
     0%h [0jGj  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph R\9>2*w  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph ;uM34^  
     */%$6s~  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph YiIddQ  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph Xmf  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph \yJZvhUk  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph <O,'5+zG%  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph EFa{O`_@U  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph h"VpQhi  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph ;_?zB NW  
     vKU]80T  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph S 0R8'Y  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph D_l/Gxdpr  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph Eonq'Re$  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph 26\HV  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph LKK{j,g7  
     M(;y~ | e  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph AI^AK0.L  
    On Error GoTo 0 l]a^"4L4`o  
    DoEvents RJtix uvh@  
     5}-)vsa`  
    'BaseStyle tl{]gz  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False T8,k7 7  
    With ActiveDocument.Styles("BaseStyle").Font 1?D8|<  
        .NameFarEast = "宋体" ,GdxUld  
        .NameAscii = "Times New Roman" ZfFIX5Qd\  
        .NameOther = "宋体" \S=XIf  
        .Size = 10.5 -vv   
        .Bold = wdUndefined t/v@vJ`vSH  
        .Italic = wdUndefined O tXw/  
        .Subscript = wdUndefined !7:EE,W~  
        .Subscript = wdUndefined =gMaaGg p,  
         ^Ei*M0fF  
        .Underline = wdUnderlineNone ) >>u|#@z  
        .UnderlineColor = wdColorAutomatic NDB*BmG  
        .StrikeThrough = False VRtbHam  
        .DoubleStrikeThrough = False ?dp -}3/G  
         (,- 5(fW  
        .Outline = False 2k.S[?)  
        .Emboss = False k9*J*7l-m  
        .Shadow = False g)=V#Bglv  
        .Hidden = False t Y:G54d=_  
        .SmallCaps = False &q ," !:L]  
        .AllCaps = False x><zGXvvp|  
        .Color = wdColorAutomatic S2koXg(  
        .Engrave = False  4 "pS  
        .Scaling = 100 iyA*J CD  
        .Kerning = 1 q Axf5  
        .Animation = wdAnimationNone w;N{>)hv  
        .DisableCharacterSpaceGrid = False G*)s%2c>h  
        .EmphasisMark = wdEmphasisMarkNone zrLhQ3V#>  
    End With M*g2VyZ  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat ~fyF&+ibp'  
        .LeftIndent = 0 i: l80 GK  
        .RightIndent = 0 v t^r1j  
        .SpaceBefore = 0 EHH|4;P6  
        .SpaceBeforeAuto = False ^z[_U}N\}  
        .SpaceAfter = 0  ox(*  
        .SpaceAfterAuto = False 2. StG(Y!  
         H/cs_i  
        .LineSpacingRule = wdLineSpaceSingle |x1$b 7  
        .Alignment = wdAlignParagraphJustify N; rXl8  
         2"T8^r|U  
        .WidowControl = False /-DKV~  
        .KeepWithNext = False L\QQjI{  
        .KeepTogether = False <h'8w  
        .PageBreakBefore = False G[|3^O>P  
        .NoLineNumber = False 2B6^ ]pSk  
         +<)tql*  
        .FirstLineIndent = CentimetersToPoints(0) fs wZM\@  
        .OutlineLevel = wdOutlineLevelBodyText 1zdYBb 6;j  
        .CharacterUnitLeftIndent = 0 1P5*wNF  
        .CharacterUnitRightIndent = 0 +V2C}NQ5R  
        .CharacterUnitFirstLineIndent = 0 tH-gaDj_  
        .LineUnitBefore = 0 -0A@38, }  
        .LineUnitAfter = 0 Hm.X}HO0L  
        .AutoAdjustRightIndent = True b cC\  
        .DisableLineHeightGrid = True zSEr4^Dk4  
         <2n'}&F  
        .FarEastLineBreakControl = True <$"7~i /X  
        .WordWrap = True &(lMm)  
        .Hyphenation = False 5/Ydv RB67  
         9U!JK3d  
        .HangingPunctuation = True * zd.  
        .HalfWidthPunctuationOnTopOfLine = True qv.[k<~a>  
        .AddSpaceBetweenFarEastAndAlpha = True \z2vV +f  
        .AddSpaceBetweenFarEastAndDigit = True M#=Y~PU  
        .BaseLineAlignment = wdBaselineAlignBaseline c}YJqhk0J  
    End With t@X M /=d  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False =ft9T&ciD  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll %0NLRfp  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese PqTYAN&F  
    ActiveDocument.Styles("BaseStyle").NoProofing = False OZ eiH X!  
     "\NF  
    '一级标题题样式 0Wa#lkn$I  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 5k K= S  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" P1dN32H o  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False 8&i;hZm  
    With ActiveDocument.Styles("QLNU一级标题").Font |c<XSX?ir  
        .NameFarEast = "黑体" -s{R/6 :  
        .NameAscii = "Arial Black" jjxIS  
        .NameOther = "黑体" g+:$X- r  
        .Name = "黑体" Sq?,C&LsA  
        .Size = 16              '三号 1UC2zM"  
        .Bold = True w(aUEWYL  
        .Italic = wdUndefined t$aVe"uM  
        .Subscript = wdUndefined }%_qx|(P|t  
        .Superscript = wdUndefined <MRC%!.  
    End With |p;4dL  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat rU],J!LF  
         ! &Z*yH  
        .LeftIndent = CentimetersToPoints(0) ,x Yg  
        .RightIndent = CentimetersToPoints(0) C,[ L/!  
        .FirstLineIndent = CentimetersToPoints(0) ;F|jG}M"  
         x<8 \-  
        .LineSpacingRule = wdLineSpaceSingle baqn7 k"  
        .Alignment = wdAlignParagraphCenter Lt>?y& CcQ  
         4\v~HFsv  
        .WidowControl = True x]H3Y3  
        .KeepWithNext = True &Y 'z?N  
        .KeepTogether = True cvxIp#FbW  
        .OutlineLevel = wdOutlineLevelBodyText wtlB  
         STv(kQs  
        .LineUnitBefore = 0.5 5@K\c6   
        .LineUnitAfter = 0.5 6KVV z/  
    End With TV? ^c?{5  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False <|otZJ'2r  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll ldP3n:7FS  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese 2%bhW,?I  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True nZe\5`  
    DoEvents RTA%hCr!  
     6s'[{Ov  
    '二级 6!@0VI&P  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") SF0Jb"kS  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" cnbo +U  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False M\I_{Q?_  
    With ActiveDocument.Styles("QLNU二级标题").Font 6{L F-`S%  
        .NameFarEast = "黑体" bS,etd  
        .NameAscii = "Arial Narrow" D4d]3|/T  
        .NameOther = "黑体" Ec+22X  
        .Name = "黑体" O!o <P5X^  
        .Size = 15        '小三号 #sL/y  
        .Bold = False $\+ "qs)  
        .Outline = False -P2 @mx%  
        .Italic = wdUndefined (WJV.GcP1  
        .Subscript = wdUndefined .a {QA  
        .Superscript = wdUndefined #&k8TY  
    End With "= FIFf  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat .-J`d=Krp  
        .LeftIndent = CentimetersToPoints(0) se!g4XEWD  
        .RightIndent = CentimetersToPoints(0)  2mQOj$Lv  
        .FirstLineIndent = CentimetersToPoints(0) /=bSt  
         *}7U`Aa  
        .LineSpacingRule = wdLineSpaceSingle nz>K{(  
        .Alignment = wdAlignParagraphLeft q Z#!CPHS  
         CK=ARh#|  
        .WidowControl = True r9<V%PH v  
        .KeepWithNext = True Kf|0*c  
        .KeepTogether = True P7'M],!9w  
        .PageBreakBefore = False ^[0" vtb  
        .OutlineLevel = wdOutlineLevelBodyText So?m?,!W  
         O!/ekU|,r  
        .LineUnitBefore = 0.5 B+|IZoR  
        .LineUnitAfter = 0.5 @#A!w;bz  
         t~q?lT  
    End With TWtC-wI;  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False 7$K}qsr<  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll ci;&CHa  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese >cTjA):  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True 5|5=Y/   
    DoEvents h:_NA  
     a"k'm}hVY$  
    '三级标题样式 %Sc=_%6  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Rw/Ciw2@?  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" !1("(Eb  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False % ^e@`0L  
    With ActiveDocument.Styles("QLNU三级标题").Font ,|A{!j`  
        .NameFarEast = "宋体" CNq[4T'~A  
        .NameAscii = "Times New Roman" c+H)ed>  
        .NameOther = "黑体" Jlz9E|*qV  
        .Name = "黑体" G<|:605  
        .Size = 14               '四号 ;e2Ij  
        .Bold = False Q~8y4=|#CY  
        .Outline = False Y4`QK+~fH  
        .Italic = wdUndefined %Or2iuO%-,  
        .Subscript = wdUndefined 'g2vX&=$A  
        .Superscript = wdUndefined 2g0K76=Co:  
    End With `6UtxJSx  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat ~C0 Pu.{o  
        .LeftIndent = CentimetersToPoints(0) |ebvx ?\  
        .RightIndent = CentimetersToPoints(0) ghX:"vV{n  
        .FirstLineIndent = CentimetersToPoints(0) ve6x/ PD  
         2HSb.&7-G  
        .LineSpacingRule = wdLineSpaceSingle 3Qa?\C&4  
        .Alignment = wdAlignParagraphLeft mLQUcYfR  
         M= atls  
        .WidowControl = True Nvhy3  
        .KeepWithNext = True sx:Hv1d  
        .KeepTogether = True A4}#U=3tI  
        .PageBreakBefore = False 7pz\ScSe  
        .OutlineLevel = wdOutlineLevelBodyText %iX/y  
         (V8?,G>  
        .CharacterUnitLeftIndent = 0 +3)[> {~1Z  
        .CharacterUnitRightIndent = 0 kwO eHdV^  
        .CharacterUnitFirstLineIndent = 2 2?*||c==*  
         jK e.gA  
        .LineUnitBefore = 0.5 1b8c67j[  
        .LineUnitAfter = 0 *l:&f_ngV  
    End With Wy8,< K{  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False V +.Q0$~F5  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll *CzCUu:%t  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese 9Eu #lV  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True qZ&a76t  
    DoEvents Hl/7(FJqc>  
     D@:"f?K>  
    '四级标题样式 >r=6A   
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") v"/TmiZ  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" [1Uz_HY["3  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False i_NJ -K  
    With ActiveDocument.Styles("QLNU四级标题").Font ?3Pazc]+|  
        .NameFarEast = "宋体" *Er? C;  
        .NameAscii = "Times New Roman" IKo;9|2U  
        .NameOther = "宋体" aTG[=)x L  
        .Name = "宋体" p0Z:Wkz]  
        .Size = 12               '小四号 +O4(a.  
        .Bold = True r,Ds[s)B  
        .Outline = False LZ4xfB (  
        .Italic = wdUndefined qrpb[)Ll  
        .Subscript = wdUndefined `/0u{[  
        .Superscript = wdUndefined viJJ e'\2  
    End With 4QO/ff[ o  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat 8ZW?|-i  
         5tMh/]IeS  
        .LeftIndent = CentimetersToPoints(0) "9%q bM B  
        .RightIndent = CentimetersToPoints(0) Hg aZbb>'  
        .FirstLineIndent = CentimetersToPoints(0) >gnF]<  
         :pb67Al29  
        .LineSpacingRule = wdLineSpaceSingle KXq_K:r?  
        .Alignment = wdAlignParagraphLeft Hv8H.^D>  
         P2t_T'R}  
        .WidowControl = True j3{HkcjJG  
        .KeepWithNext = True =},{8fZ4  
        .KeepTogether = True &kiF/F 1  
        .PageBreakBefore = False KxX[ S.C  
        .OutlineLevel = wdOutlineLevelBodyText p&\K9hfi  
         (![t_r0  
        .CharacterUnitLeftIndent = 0 Fe5jdV<  
        .CharacterUnitRightIndent = 0  cLAe sj  
        .CharacterUnitFirstLineIndent = 2 6{8/P'@/Zz  
         vlu $!4I  
        .LineUnitBefore = 0 VVFV8T4  
        .LineUnitAfter = 0 %E  aE,  
         |Q5+l.%  
    End With ^4 8\>-Q\  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False S+iP^*L,c  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll E23w *']  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese @iRO7 6m  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True 2kVp_=c  
    DoEvents ,z[(k"  
     rw]yKH  
    '正文校式 ewym 1}o  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") v&r=-}z2!  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" ||XIWKF<n2  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False KJdz v!l=  
    With ActiveDocument.Styles("QLNU正文").Font 0E1=W 6UZ  
         QLn+R(r  
        .NameFarEast = "宋体" p/3BD&6  
        .NameAscii = "Times New Roman" ik IzhUWE  
        .NameOther = "宋体" Y1WHy *s?  
        .Name = "宋体" {"jd_b&  
         |(RZ/d<X\a  
        .Size = 12               '小四号 UGCox-W"  
         5uttv:@=  
        .Bold = wdUndefined k2.G%]j  
        .Italic = wdUndefined H]]c9`ayt  
        .Subscript = wdUndefined @mNJ=mEV  
        .Superscript = wdUndefined fnWsm4  
         +9C;<f  
        .Outline = False m!:.>y  
        .Emboss = False T/NjNEd#  
        .Shadow = False ;NP[_2|-,  
        .Hidden = False 2 uL9.q  
         Fg4@On[,i  
        .DisableCharacterSpaceGrid = True 'W(xgOP1  
    End With vd(dNu&,<  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat 8%-%AWF]  
         hiN/S|JN8y  
        .LeftIndent = CentimetersToPoints(0) ).Gd1pE  
        .RightIndent = CentimetersToPoints(0) [;Fofu Z  
        .FirstLineIndent = CentimetersToPoints(0) 7*;^UqGjz  
         ,Bf(r  
        .LineSpacingRule = wdLineSpaceExactly nP;;MX:B  
        .LineSpacing = 20 A="fj  
        .Alignment = wdAlignParagraphLeft JhJLqb@q  
         qv uxhzF  
        .WidowControl = False wV:C<Mg7q  
        .KeepWithNext = False > H~6NBd5D  
        .KeepTogether = False . ,R4WA,  
        .PageBreakBefore = False s/h7G }Mu  
        .Hyphenation = False \K}aQKB/j  
         ;ctU&`  
        .OutlineLevel = wdOutlineLevelBodyText :u-.T.zZl  
         $rB6<  
       ]F+K|X9-  
        .CharacterUnitLeftIndent = 0 1`QsW&9=b  
        .CharacterUnitRightIndent = 0 s7"i.A  
        .CharacterUnitFirstLineIndent = 2 akCIa'>t  
         +Vy_9I(4Z  
        .LineUnitBefore = 0 |xeE3,8  
        .LineUnitAfter = 0 d;44;*D  
        .SpaceBefore = 0 dyO E6Ex  
        .SpaceAfter = 0 K:_($X]  
         e9:P9Di(b  
        .DisableLineHeightGrid = True ;UpJ=?W  
    End With :Eo8v$W\RB  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False />F.Nsujy  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll 02pplDFsM  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese T>F9Hs  W  
    ActiveDocument.Styles("QLNU正文").NoProofing = True VMF|i B  
    DoEvents W>/UBN3  
     ,E9d\+j  
    '图片段落样式 >)3VbO  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") eO[c lB  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" 8^vArS;  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False H;y}-=J+  
    With ActiveDocument.Styles("QLNU图片段落").Font Up|f=@=  
        .Size = 12               '小四号 DEtf(lW_  
        .Italic = wdUndefined RHI&j~  
        .Subscript = wdUndefined "lrA%~3%[P  
        .Superscript = wdUndefined " '[hr$h3  
    End With w~LU\Ct  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat 7=3O^=Q ^Q  
         O,irpQ  
        .LeftIndent = CentimetersToPoints(0) zmbZ  
        .RightIndent = CentimetersToPoints(0) @c]Xh:I  
        .FirstLineIndent = CentimetersToPoints(0) agT7=hX].  
         TY6 rwU  
        .LineSpacingRule = wdLineSpaceSingle |[LE9Lq/  
        .Alignment = wdAlignParagraphCenter Y&GuDLUF  
        .KeepWithNext = True z 6cYC,  
        .OutlineLevel = wdOutlineLevelBodyText mp:m`sh*i  
         'HB~Dbq`V  
        .CharacterUnitLeftIndent = 0 O] ZC+]}/  
        .CharacterUnitRightIndent = 0 ]nc2/S%  
        .CharacterUnitFirstLineIndent = 0 t 7^D-l  
         $"fzBM?5  
        .LineUnitBefore = 0 SH=:p^J  
        .LineUnitAfter = 0 C0(sAF@  
    End With 8W,*eke?  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False (}jL_ E  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll 9I kUZW  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese L[]BzsIv  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True }"4roJ  
    DoEvents ? d5h9}B  
     L$hc,  
     7P*Z0%Q  
    '第X章 3]`mQm E  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") s.rT]  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" ;"@:}_t  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False Ay%:@j(E  
    With ActiveDocument.Styles("QLNU章节标题").Font PpFsp( )x  
        .NameFarEast = "黑体" ^1VbH3M  
        .NameAscii = "Arial Black" DqlK.  
        .NameOther = "Arial Black" [gZDQcU  
        .Name = "黑体" Abf1"#YImy  
        .Size = 16 WHk/$7_"i  
        .Bold = True  i6 L  
        .UnderlineColor = wdColorAutomatic TPK@*9rI  
        .Outline = False `x Ih\q  
        .Italic = wdUndefined a( |x w  
        .Subscript = wdUndefined GoD ?KC  
        .Superscript = wdUndefined ! TDD^  
        .Scaling = 100 [#Fg\2bq_y  
        .DisableCharacterSpaceGrid = True )Mi'(C;  
    End With pl\b-  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat r<|nwFJ  
        .LineSpacingRule = wdLineSpaceSingle U`1l8'W}:#  
        .Alignment = wdAlignParagraphCenter ev"M;"y  
        .WidowControl = True " 5|\X<f  
        .KeepWithNext = True (: OHyeNt  
        .KeepTogether = True 1ktHN: ta  
        .PageBreakBefore = True )&z4_l8`=  
        .OutlineLevel = wdOutlineLevelBodyText v.b5iv5  
         Azn:_4O  
        .LeftIndent = CentimetersToPoints(0) xFwXW )  
        .RightIndent = CentimetersToPoints(0) )!a$#"'  
        .FirstLineIndent = CentimetersToPoints(0) ,CKvTxz0  
         _+n;A46  
        .CharacterUnitLeftIndent = 0 zX~}]?|9  
        .CharacterUnitRightIndent = 0 WgPgG0VJE  
        .CharacterUnitFirstLineIndent = 0 : H\&2/j  
         7E(%9W6P  
        .LineUnitBefore = 1 (#z;(EN0t  
        .LineUnitAfter = 0.5 Pgev)rh[  
         Qi:j)uDW  
        .AutoAdjustRightIndent = False Mj'lASI  
        .DisableLineHeightGrid = True ttj2b$M,  
        .FarEastLineBreakControl = True $?$9y ^\  
        .WordWrap = True 4#h ?Wga  
    End With 5 0,Y  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False @H+~2;B,  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll SSQT;>  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese `p1DaV  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True ZqP7@fO_%  
    DoEvents {82rne `[  
     <I 1y  
    '表格标题 +c r  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 7}o6_i  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" ymkR!  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False ^ $wJi9D6  
    With ActiveDocument.Styles("QLNU表格标题").Font Pw  xIz  
        .NameFarEast = "楷体" 0[9I0YBJ  
        .NameAscii = "Arial" `j:M)2:*y  
        .Name = "楷体" Z(UD9wY5m  
        .Size = 10.5 $m8leuo)  
        .Bold = True A$<>JVv  
        .Underline = wdUnderlineNone 8f-:d]  
        .Italic = wdUndefined lR}%)3_k  
        .Subscript = wdUndefined 9v$qrM`8  
        .Superscript = wdUndefined Mciq-c)  
        .Color = wdColorAutomatic ns26$bU  
    End With PI63RH8e  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat gVA; `<  
         9FNwpL'C  
        .LineSpacingRule = wdLineSpaceSingle )UP8#|$#T  
        .Alignment = wdAlignParagraphCenter IfB/O.;Kz  
        .KeepWithNext = True 5m`[MBt2g  
        .KeepTogether = True N5KEa]k1nw  
        .OutlineLevel = wdOutlineLevelBodyText x< S\D&  
         9 `INC~h  
        .LeftIndent = CentimetersToPoints(0) ,ey0:.!;  
        .RightIndent = CentimetersToPoints(0) y;:]F|%<  
        .FirstLineIndent = CentimetersToPoints(0) "& Mou  
         1MV@5j  
        .CharacterUnitLeftIndent = 0 -ek1$y9)  
        .CharacterUnitRightIndent = 0 >b43%^yii  
        .CharacterUnitFirstLineIndent = 0 (H1lqlVWV#  
         e`AUYli"  
        .LineUnitBefore = 1 7V 'Le2T'  
        .LineUnitAfter = 0 iD`k"\>9  
         4,zvFH*AH  
    End With ZOn_dYjC  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False 5H*>  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll H!. ZH(asY  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese L;Vq j]_  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True @?d?e+B  
    DoEvents >fbo r'|  
gY%&IHQ'  
    '表格首行 (Y)!"_|  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") ]?&H^"=  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False <tW:LU(!  
    With ActiveDocument.Styles("QLNU表格首行").Font j8c6[ih  
        .NameFarEast = "楷体" ~lk@6{`l|1  
        .NameAscii = "Times New Roman" s ^3[W0hL  
        .Name = "楷体" [?I/ Uo8  
        .Size = 9 ]?# #))RUS  
        .Bold = True 3G.r-  
        .Underline = wdUnderlineNone kXEtuO5FUM  
        .Italic = wdUndefined - `4Ty*K  
        .Subscript = wdUndefined /Zx8nx'{V  
        .Superscript = wdUndefined esteFLm`6  
    End With 8 ?" Ze(  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat O4N-_Kfp/  
        .LineSpacingRule = wdLineSpaceSingle CpSK(2j  
        .Alignment = wdAlignParagraphCenter 0[i}rC9&  
         Wxs>osq  
        .LeftIndent = CentimetersToPoints(0) uOFnCy 4  
        .RightIndent = CentimetersToPoints(0) ~$*`cO  
        .FirstLineIndent = CentimetersToPoints(0) 6}STp_ x  
         x5PPu/  
         E\iJP^n  
        .CharacterUnitLeftIndent = -0.5 yl]UUBcQ  
        .CharacterUnitRightIndent = -0.5 ]<+3Vw  
        .CharacterUnitFirstLineIndent = -0.5 u?Z <n:  
         wI>h%y-%!  
        .LineUnitBefore = 0 %Zu Ll(  
        .LineUnitAfter = 0 ?UJSxL  
        .SpaceBefore = 0 ZMe}M!V  
        .SpaceAfter = 0 .<dOED{v  
         ssT@<Tk^4  
    End With &D)2KD"N  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False @`Wt4<  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll b"&E,=L  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese |i u2&p >  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True , 02w@we5  
    DoEvents T g{UK  
6+)x7g1PL  
    '表格内容 W]@6=OpH  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") qPUA!-'  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False k{{hZ/om  
    With ActiveDocument.Styles("QLNU表格内容").Font kXMP=j8  
        .NameFarEast = "楷体" f,JX"  
        .NameAscii = "Times New Roman" 5Edo%Hd6  
        .Name = "楷体" tO`?{?W7  
        .Size = 9 ke^d8Z.  
        .Bold = False "8?TSm8  
        .Underline = wdUnderlineNone }\VX^{K j  
        .Italic = wdUndefined (:l(_-O  
        .Subscript = wdUndefined ,m3":{G:t.  
        .Superscript = wdUndefined }U i_ynZ!  
    End With c(E,&{+E  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat w#<p^CS  
        .LineSpacingRule = wdLineSpaceSingle . v\PilF  
        .Alignment = wdAlignParagraphCenter ?CFoe$M  
         }>,CUz  
        .LeftIndent = CentimetersToPoints(0) I8Kb{[?q  
        .RightIndent = CentimetersToPoints(0) L&'l3|  
        .FirstLineIndent = CentimetersToPoints(0) D!/0c]"  
         KD=bkZ&  
        .CharacterUnitLeftIndent = -0.5 gZ*hkKN6  
        .CharacterUnitRightIndent = -0.5 ?^F5(B[+Y  
        .CharacterUnitFirstLineIndent = -0.5 >+SZd7p  
        .LineUnitBefore = 0 'QnW9EHLF  
        .LineUnitAfter = 0 $N dH*  
        .SpaceBefore = 0 KDBY9`08  
        .SpaceAfter = 0 Y!it!9  
    End With  ^ `je  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False N2% :h;tf  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll . wmkj  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese Y .X4*B  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True mV%h[~-  
    DoEvents /L$NE$D} "  
<uC<GDO  
    '图片标题 ~hzEKvs  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 8 #Fh>  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" @C07k^j=U  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False IW mHp]  
    With ActiveDocument.Styles("QLNU图片标题").Font p&uCp7]U  
        .NameFarEast = "楷体" >HX)MwAP  
        .NameAscii = "Times New Roman" {Y^c*Iqn  
        .Name = "楷体" 716hpj#*  
        .Size = 10.5 1EuK, :x  
        .Bold = True $Ba`VGP>)3  
        .Underline = wdUnderlineNone e lay =%)  
        .Italic = wdUndefined POY=zUQ '/  
        .Subscript = wdUndefined j=\Mx6os  
        .Superscript = wdUndefined T1bFxim#b  
        .Outline = False d{3I.$ThH  
        .Shadow = False I^@.Aw t  
        .Color = wdColorAutomatic G\):2Qz!|  
    End With P|8e%P  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat YLigP"*~^  
        .LineSpacingRule = wdLineSpaceSingle Z7oaQ\fR  
        .Alignment = wdAlignParagraphCenter W%WC(/hor  
         &<@%{h@ =  
        .KeepWithNext = wdUndefined wM0E%6 P  
        .KeepTogether = True ]Cr]Pvab{  
        .OutlineLevel = wdOutlineLevelBodyText {<r`5  
         Bqp&2zg)@  
        .LeftIndent = CentimetersToPoints(0) NU(^6  
        .RightIndent = CentimetersToPoints(0) `;e^2  
        .FirstLineIndent = CentimetersToPoints(0) *.xZf i_|  
         5c)<'EP  
        .CharacterUnitLeftIndent = 0 LjCykk  
        .CharacterUnitRightIndent = 0 7G2vYKC'  
        .CharacterUnitFirstLineIndent = 0 w~n kNqm  
         UFL0 K  
        .LineUnitBefore = 0 n{ 3| E3  
        .LineUnitAfter = 0 YY\Rua/nG  
    End With ~n8F7  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False (<n>EF#  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll  'cYQ ?;  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese |w4(rs-  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True @| P3  
    DoEvents tbY  SK  
$M-NR||k  
    '目录项 [{?;c+[  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") h>.9RX &  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" 8| Sba<d  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False K: 4P ;ApI  
    With ActiveDocument.Styles("QLNU目录项").Font \"t`W:  
        .NameFarEast = "黑体" M",];h(I6(  
        .NameAscii = "Times New Roman" r.9 $y/5  
        .NameOther = "Times New Roman" l=,.iv=W  
        .Name = "黑体" T6;>O`B.r  
        .Size = 10.5 )#Y|ngZ_>  
        .Bold = False \3M1.Q4$Gr  
        .Italic = wdUndefined FJW`$5?  
        .Underline = wdUnderlineNone O8iu+}]/6  
        .Color = wdColorAutomatic kv/(rKLp*  
        .Superscript = wdUndefined 6Z$b?A3zM  
        .Subscript = wdUndefined dbg|V oNf  
    End With (%.</|u  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat unpfA#&!"  
         Ty.drM  
        .LineSpacingRule = wdLineSpaceSingle [1mIdwS  
        .Alignment = wdAlignParagraphLeft ]2P/G5C3tU  
         BJ"Ay@D*  
        .WidowControl = False <jg8y'm@0  
        .KeepWithNext = False b6]e4DL:R  
        .KeepTogether = False ~yd%~|  
        .PageBreakBefore = False |KTpK(6p  
        .NoLineNumber = False +H[Q~P8'[  
        .OutlineLevel = wdOutlineLevelBodyText <e[!3,%L  
         Y5Ft96o))x  
        .LeftIndent = CentimetersToPoints(0) y. T ct.  
        .RightIndent = CentimetersToPoints(0) C9GU6Ao  
        .FirstLineIndent = CentimetersToPoints(0) V!\n3i ?i  
         UUD\bWfn  
        .CharacterUnitLeftIndent = 0 ]yw_ n^@  
        .CharacterUnitRightIndent = 0 FDl,Ey^r/  
        .CharacterUnitFirstLineIndent = 0 [O [FCn  
         ^971<B(v  
        .LineUnitBefore = 0 rpx 0|{m  
        .LineUnitAfter = 0 !\3 }R25  
    End With UQSX<6"  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False 'aNahz b  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll s !NisF  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot +A&EKk%$ |  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese 9*f2b.Aj  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True cj`#Tg.  
    DoEvents MwN1]d|6  
     Gi;9  S  
    '参考文献 r,QJG$ Jo  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") #DrZ`Aq  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" GCZu<,  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False dy'X<o^?W  
    With ActiveDocument.Styles("QLNU参考文献").Font .HQVj'g  
        .NameFarEast = "宋体" Y7*'QKz2  
        .NameAscii = "Times New Roman" Z"4VH rA  
        .NameOther = "Times New Roman" \l>q Y(gu  
        .Name = "Times New Roman" m)(SG  
        .Size = 12 |3aS17yL>  
        .Bold = False K90D1sD  
        .Italic = wdUndefined 'T6B_9GQ8  
        .Subscript = wdUndefined 1k*n1t):  
        .Superscript = wdUndefined :jl u  
        .Underline = wdUnderlineNone ~>.awu+o|  
        .UnderlineColor = wdColorAutomatic _T_PX$B  
        .Color = wdColorAutomatic ,.J<.#D3 J  
        .Engrave = False 5c*p2:]  
    End With C:WtCAm(  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat (R,NV3m?w  
         9UB??049z  
        .LineSpacingRule = wdLineSpaceExactly 3KDu!w@  
        .LineSpacing = 16 Z3Bo @`&?  
        .Alignment = wdAlignParagraphLeft {_": / A  
        .WidowControl = False #/\pUK~km  
        .KeepWithNext = False wVlSjk  
        .KeepTogether = False u=1B^V,6V  
        .PageBreakBefore = False PXOq#  
        .OutlineLevel = wdOutlineLevelBodyText 4V!1/w  
         S$ Ns8=  
        .LeftIndent = CentimetersToPoints(0) |zK!+fu  
        .RightIndent = CentimetersToPoints(0) S83]O!w0  
        .FirstLineIndent = CentimetersToPoints(0) ](]*]a4ss  
         WNCM|VUl  
        .CharacterUnitLeftIndent = 0 ;jp6 }zfI  
        .CharacterUnitRightIndent = 0 zojuH8  
        .CharacterUnitFirstLineIndent = -2 ScM} m  
         ;b{pzIe=F  
        .LineUnitBefore = 0 Ym3 "   
        .LineUnitAfter = 0 sj#{TTW  
        .SpaceBefore = 0 e?_c[`sg  
        .SpaceAfter = 0 D >psh- ,1  
         +#^sy>  
    End With TJeou# =/  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False | TC3*Y  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll vcaBL<io  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS D!81(}p  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True ?3.(Vqwog  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese A/ox#(!v  
    DoEvents bM*Pcxv  
[_B+DD=}  
    ' v+|@}9|Z  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") }G"r3*  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" ;a#}fX  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False ?v0A/68s#  
    With ActiveDocument.Styles("QLNU论文题目").Font eTLI/?|+N  
        .NameFarEast = "黑体" e5]&1^+  
        .NameAscii = "Arial Black" p_D on3  
        .NameOther = "Arial Black" _%AJmt}  
        .Name = "Arial Black" 4`?sE*P@`  
        .Size = 16 $71i+h]_  
        .Bold = False 5d)'`hACe  
        .Italic = wdUndefined fRZUY <t  
        .Superscript = wdUndefined !"Z."fm*  
        .Subscript = wdUndefined ?{y:s!!  
        .Underline = wdUnderlineNone cq+nWHqF{J  
        .UnderlineColor = wdColorAutomatic IwZZewb-a  
        .Color = wdColorAutomatic olUqBQ&ol  
aNuZ/9O  
    End With &':UlzG  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat uzat."`d'  
        .LineSpacingRule = wdLineSpaceSingle # |[`1  
        .Alignment = wdAlignParagraphCenter t;Fbt("]:  
        .WidowControl = True j+z'  
        .KeepWithNext = True 'iMHAP;N  
        .KeepTogether = True Q1P,=T@  
        .PageBreakBefore = True Dx p>  
        .NoLineNumber = False '8]|E  
        .OutlineLevel = wdOutlineLevelBodyText GapX$Jb,p  
         Qi(e`(,'  
        .LeftIndent = CentimetersToPoints(0) g~b f!  
        .RightIndent = CentimetersToPoints(0) PPuXas?i  
        .FirstLineIndent = CentimetersToPoints(0) @5<]W+jk4  
         yfRUTG  
        .CharacterUnitLeftIndent = 0 >$#*`6R  
        .CharacterUnitRightIndent = 0 ;m2"cL>{l  
        .CharacterUnitFirstLineIndent = 0 }I` ku.@5  
         n"K {uj))  
        .LineUnitBefore = 1 FZe N,  
        .LineUnitAfter = 1 xfbK eS8  
         +9 =@E  
        .BaseLineAlignment = wdBaselineAlignAuto 0KWy?6 X  
    End With 6qz!M  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False 9Bbm7Gd  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll F^/~@^{P  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS zLJ:U`uh\  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True CuV=C Ay>  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese [R@q]S/  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True ~;!i)[-  
    DoEvents Ww a41z  
     ,qBnqi[  
    '中文摘要 $9j>VGf=  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") muqfSF  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" *il]$i  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False /j=DC9_  
    With ActiveDocument.Styles("QLNU中文摘要").Font  tH<9  
        .NameFarEast = "宋体" n $D}0wSM/  
        .NameAscii = "Times New Roman" f4 Sw,A  
        .NameOther = "Times New Roman" PVQ#>_~5  
        .Name = "Times New Roman" es*_Oo1  
        .Size = 12 te!]9rR  
        .Bold = wdUndefined e+d6R[`M  
        .Superscript = wdUndefined IPr*pQ{;c  
        .Subscript = wdUndefined 7cOg(6N  
        .Italic = wdUndefined ` $QzTv   
        .Underline = wdUnderlineNone Zu [?'  
        .UnderlineColor = wdColorAutomatic :N+K^gI)  
        .Color = wdColorAutomatic 7(nz<z p  
    End With pw(U< )  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat Up1$xLSl  
        .LineSpacingRule = wdLineSpaceExactly 3cV+A]i  
        .LineSpacing = 20 A{{q'zb!  
        .Alignment = wdAlignParagraphLeft N9>'/jgZX  
         mcP{-oJ0W  
        .WidowControl = False v4Fnh`{  
        .KeepWithNext = False softfjl&l  
        .KeepTogether = True #J<`p  
        .PageBreakBefore = False (e bBH  
        .NoLineNumber = False yNb#Ia  
        .OutlineLevel = wdOutlineLevelBodyText &cn%4Er  
         :yFTaniJ'.  
        .LeftIndent = CentimetersToPoints(0) J*^,l`C/  
        .RightIndent = CentimetersToPoints(0) *`QdkVER  
        .FirstLineIndent = CentimetersToPoints(0) 32)&;  
         ]HZa:aPY  
        .CharacterUnitLeftIndent = 0 Wq[=}qh~  
        .CharacterUnitRightIndent = 0 Uy_}@50"l  
        .CharacterUnitFirstLineIndent = 2 f:JYG]E&  
        .LineUnitBefore = 0 0k] ju  
        .LineUnitAfter = 0 3; -@<9  
         vV&AG1_Mv  
    End With qxecp2>U  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False rSc,\upz  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll 7E\K!v_  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS s[{:>~{iq  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True UG^?a  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese  q~:'R  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True "p6:ekw  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete K{r1&O>W  
    DoEvents y(wqcDok|n  
     =iho VA:|  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") !4b; >y=m  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" CHdet(_=v  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False l/y Kc8^<  
    With ActiveDocument.Styles("QLNU英文标题").Font 709Uv5  
        .NameFarEast = "黑体" J?qcRg `1E  
        .NameAscii = "Arial Narrow" sg9x?Bx9  
        .Name = "Arial Narrow" ]Gi+Z1q  
        .Size = 16 yv#c =v|  
        .Bold = True ^8f|clw"  
        .Bold = wdUndefined X&FuqB  
        .Superscript = wdUndefined R"\u b"]  
        .Subscript = wdUndefined 5qeS|]^`  
        .Italic = wdUndefined bdsHA2r`s  
         >X\s[d&(  
        .Underline = wdUnderlineNone 7zJh;f/  
        .UnderlineColor = wdColorAutomatic kp<}  
        .StrikeThrough = False #%=vy\r  
        .DoubleStrikeThrough = False ;?HZ,"^I  
    End With X'3`Q S:!  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat }77=<N br  
        .LineSpacingRule = wdLineSpaceSingle E=tx.h4xG~  
        .Alignment = wdAlignParagraphCenter C^8)IN=$  
        .WidowControl = True 4LB9w 21  
        .KeepWithNext = False \4`saM /x  
        .KeepTogether = False "k_n+cH%  
        .PageBreakBefore = False JK^B+.  
        .NoLineNumber = False Ep,0Z*j  
        .FirstLineIndent = CentimetersToPoints(0) J}Z_.:JO(w  
        .OutlineLevel = wdOutlineLevelBodyText M#8Ao4 T  
         x" :Bw;~  
        .LeftIndent = CentimetersToPoints(0) :vgh KI  
        .RightIndent = CentimetersToPoints(0) !Sy'Z6%f  
        .FirstLineIndent = CentimetersToPoints(0) w7*b}D@65\  
         O>"r. sR  
        .CharacterUnitLeftIndent = 0 1X!f!0=g+  
        .CharacterUnitRightIndent = 0 |<+|Du1  
        .CharacterUnitFirstLineIndent = 0 v[3hnLN%  
         Dry;$C}P  
        .LineUnitBefore = 1 \aJ-q?=  
        .LineUnitAfter = 1 r{6B+3J  
         &:e}4/G  
    End With O( 5L2G  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False #QyK?i*  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll t$PnQ@xu  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS ]`i@~Z h\  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True ;]#4p8lh+  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese ~jRk10T(B  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True n\8[G [M  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete .KwuhmR  
    DoEvents P20]>Hg  
^hYR5SX  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") lo]B 5_en  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" %]:vT&M  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False Ow .)h(y/  
    With ActiveDocument.Styles("QLNU英文摘要").Font luxKgcU  
        .NameFarEast = "宋体" -R8!"~ o  
        .NameAscii = "Arial" }9+1<mT9a/  
        .NameOther = "Arial" )(|0KarF  
        .Name = "Arial" j5VRv$P  
        .Size = 12 *l'$pJ X  
        .Bold = wdUndefined fE7a]R EK  
        .Italic = wdUndefined @)ju P- o%  
        .Superscript = wdUndefined $e t :  
        .Subscript = wdUndefined lh(+X-}D  
    End With dc@wf; o  
     pTV@nP  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat T~ q'y~9o  
         Rp%\`'+Xz  
        .LineSpacingRule = wdLineSpaceExactly R82Zr@_  
        .LineSpacing = 20 Qig!NgOM  
         as\K(c9  
        .Alignment = wdAlignParagraphJustify zHum&V8=H  
         C[<\ufclD  
        .WidowControl = False *a0I  Z  
        .KeepWithNext = False m 'H  
        .KeepTogether = False _%p9 B#X<>  
        .PageBreakBefore = False c:,{ O 0 #  
        .NoLineNumber = False JjTzq2'%  
         c7TWAG_+  
        .OutlineLevel = wdOutlineLevelBodyText B+q+)O+  
         h C`p<jp/  
        .LeftIndent = CentimetersToPoints(0) [, szx1  
        .RightIndent = CentimetersToPoints(0) (+Nmio  
        .FirstLineIndent = CentimetersToPoints(0) j C1^>D  
         __zu- !v  
        .CharacterUnitLeftIndent = 0 4Uy>#IL  
        .CharacterUnitRightIndent = 0 YT%SCaU  
        .CharacterUnitFirstLineIndent = 2 [ sO<6?LY  
         t=pkYq5t8  
        .LineUnitBefore = 0 l<MC mKuYp  
        .LineUnitAfter = 1 7J!d3j2TR  
         F>_lp,G   
    End With F~@1n ,[  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False !L.z4n,n+  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll WSB|-Qj}W  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS \g6 # MNW  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False fz?Wr: I  
    DoEvents MzW$Sl&:  
Vx4pP$S  
    Options.Pagination = True JjO/u>A3;7  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." Jm1AJ4mw  
    DoEvents A`U2HC   
    ActiveDocument.Repaginate $O</akn;  
#uw*8&%0  
End Sub Ckl]fy@D}  
HgBEV  
g:e8i~  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: :Y?08/V  
1bAp{u&  
用VBA控制WORD自己修订学生毕业文的格式。 *l8vCa9Y  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

L}pFb@  
*)SgdC/f  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 nxRrmR}F  
第6车皮 c?Qg :yU  

Jxp'.oo[  
Om~C0  
第9车皮 A| -\C$  
73`UTXvWU  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 vt,X:3  
\I]'6N=  
Main2.bas eu;^h3u;b  
S3f BZIPp  
Attribute VB_Name = "SubMain" (*tJCz`Sj  
Option Explicit t|lv6-Hy9  
JN!YRcj  
'采集文件与临时文件 WG n1pW  
Public Const TmpFile As String = "d:\30-0600.dat" ^j7pF.j  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 R4;6Oi)  
8uiQm;W  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long D bJ(N h  
Public hBCFile As Long  '记录采集参数的文件 zYsGI<4  
Public Const TmpBMP As String = "d:\1.bmp" JTJ4a8DE  
Public hTmpFile As Long 7h~M&\M  
 ovO^uWz`  
hSH-Ck@Qy  
'采集窗口参数常量 2XpGgG`2`C  
Public Const FrameH As Long = 280& Hua8/:![+  
Public Const FrameW As Long = 768& ".4^?d_^VF  
Public Const pFrameSize As Long = FrameW * FrameH 3 Gkw.  
g!uhy}  
'标志区范围,用于识别车辆 Ek0.r)Nw  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X ]CYe=m1<2Q  
Public Const mkW As Integer = 28  '识别标志立柱宽度 z_TK (;j  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) M}u2aW2]X  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) /2q %'"x(  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 -9EbU7>!  
'车缝检测位置常数 N~(}?'y9S  
Public Const sSize As Long = 32& ?`$4ZDM  
Public Const sPos As Long = 310& |/$#G0X;H  
Public Const sPosL As Long = 200& fM{Vy])J  
Public Const sPosR As Long = 500& 7;{F"/A  
'车缝检测框位置 ZW"J]"A  
Public Slice(1 To sSize, 1 To FrameH) As Byte jF8ld5|_|  
Public SliceL(1 To sSize, 1 To FrameH) As Byte 7Jk.U=vY  
Public SliceR(1 To sSize, 1 To FrameH) As Byte #'P&L>6 ;  
Public avSL As Integer, avSLR As Integer, avSLL As Integer %94"e7Hy  
=JkSq J)?  
G39t'^ZK*#  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 '%N p9Iqt  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 i%2K%5{)$D  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 I%Z &i-33y  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long =Ju}{ bX  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte Pmb`05\  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 XJ+sm^`vOf  
_QY "#  
teb(\% ,  
RB2u1]l  
'一次连续采集的帧数 8:MYeE5  
Public tFrames As Long dXhV]xK  
 o~B=[  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 b3H;Ea?^^<  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 f?QD##~;  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize 3@PVUJ 0B|  
0OXd*  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte kQ+5p Fo3  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte QPn c "!  
Public pWorkSpace(1 To FrameW * FrameH) As Long E J1:N*BA  
Public Const pBufferSize As Long = FrameW * FrameH * 2 <:w7^m  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 UpbzH(?#  
-}s?!Pg>  
Public hBoard As Long   '采集卡标识 (WC<XKf  
Public mBufferAddr As Long  '缓存地址 QHK$  
Public BufferSize As Long  '缓存大小(字节) "P~>AXcq  
Public iCurrentCard As Long -_+0[Nb.  
Public CapStatus As Long y5I7pbe  
Public iFrames As Long % |V:F.f  
Public currentBr As Byte, currentContr As Byte tp"\  
p-Ju&4fS  
Public hMEM As Long, mStatus As Long R.@GLx_zpQ  
Public Const hMemSize As Long = pFrameSize * 4 1mqFnVkf&+  
Public hMemWork As Long _4+1c5Q!  
Public Const hMemWorkSize As Long = pFrameSize * 5 )XFMlSx)  
[ B A l  
5:wf"3%%  
+7w>ujeeJA  
'串口接收轨道衡数据 :>=,sLfJ  
Public WeightFromCom As String = j -  
Public bReceiveComplete As Boolean O?_ '6T  
_>.%X45xi  
cP,jC(<N  
Public Type GrayBMPHeader FB""^IC?W  
  Tag As Integer p%BO:%v  
  FileLength As Long    '文件大小 H;8(y4;  
  Reserve1 As Long #,sJd^uI  
  DataOffset As Long    '图像数据偏移量 SWt"QqBU  
  BMPHeaderSize As Long  '文件头长 4p]Y`];U  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… jp| wc,]!  
                        'the following sizes are possible: Z:}^fZP  
                        '28h - windows 3.1x, 95, nt, … |j;`;"+B  
                        '0ch - os/2 1.x i~4Kek6,I  
                        'f0h - os/2 2.x Q5ux**(Wr  
<[Vr(.A  
  ImageWidth As Long           '图像宽(像素数) ocvBKsfhE`  
  ImageHeight As Long          '图像高(像素数) 8}&cE#@  
  PlaneNumber As Integer  '图像层数 HhO$`YZ%>  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap Rp#SqRy`  
                                        '4 - 16 color bitmap ETtR*5Y 5  
                                        '8 - 256 color bitmap 1EN5ZN,  
                                        '16 - 16bit (high color) bitmap m(Oup=\%b}  
                                        '24 - 24bit (true color) bitmap -Ac^#/[0  
                                        '32 - 32bit (true color) bitmap b\?`721BG  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) N{'k ]&  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) \hz)oC   
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) r?$\`,;  
                                    '3 - bitfields (also identified by bi_bitfields) 8cHZBM7'  
  IMAGESIZE As Long  '图像数据字节数 T!n<ya!  
  hResolution  As Long  '水平分辩率  像素数/米 ^,3 >}PU  
  vResolution  As Long  '垂直分辩率 I('l )^m%  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 Q]\x O/  
  ImportantColors As Long 1{*x+GC^/  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 LxbVRw  
End Type h W-[omr0  
R9HRbVBJf  
G} p~VLf  
2 Ug jH  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader <"-s N  
Public sRECT As RECT pT <H&  
|R4](  
*m7e>]-  
Public conn As ADODB.Connection cWi2Sls  
Public rsTrain As ADODB.Recordset xucV$[f  
Public rsOperater As ADODB.Recordset ;-3M  
Public rsGoods As ADODB.Recordset uQDu<@5^[  
Public rsGood2 As ADODB.Recordset `JC!uc  
Public rsSender As ADODB.Recordset "H({kmR  
Public rsReceover As ADODB.Recordset uBM1;9h  
Public rsTrainTMP As ADODB.Recordset |laq y`D  
N 4Ym[l  
WrV|<%EQh  
'打开采集卡 @[^H*^1|g  
'设置参数 Rj8l]m6U9  
'设置为实时单帧采集到缓存方式 XH/|jE.9^|  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 0 [s1!Cm!i  
Y\rKw!u_!  
|D\ ukml  
Sub Main() |:AjQ&PM)  
  Dim i As Integer, status As Long '{|87kI  
     :c\NBKHv*  
   InitBMPinfo ?h5Y^}8Qg  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 t6tqv  
    BMPHeader.Tag = &H4D42 `bi5#xR  
    BMPHeader.ImageWidth = FrameW _ &T$0SZco  
    BMPHeader.ImageHeight = FrameH ]b[ 3 th*  
    BMPHeader.BMPHeaderSize = &H28 =<<\Uo  
    BMPHeader.PlaneNumber = 1 `hbM 2cM  
    BMPHeader.bpp = 8 o,d:{tt  
    BMPHeader.Compression = 0 U|>Js!$  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 &CS=*)>$  
    BMPHeader.vResolution = &H1274 [wEx jLW  
    BMPHeader.ColorsinBMP = 256 te`4*t  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP P?I"y,_ p  
    BMPHeader.DataOffset = Len(BMPHeader) pG (8VteH  
    For i = 0 To 255 {uw]s< 6  
      BMPHeader.Pallate(i) = RGB(i, i, i) - na]P3 s  
    Next i FIuKX"XR  
    BMPHeader.IMAGESIZE = FrameH * FrameW 5\pizD/17  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE N7NK1<vw2  
ow&R~_  
3TJNlS  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) (Lc%G~{  
     d"V^^I)yx&  
    BMP1.ImageWidth = FrameW  d00r&Mc  
    BMP1.ImageHeight = FrameH * 2 _C##U;e!  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight V3UEuA  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE @? t)UE  
4:K9FqU  
  '确定标志位置,为pilarX, pilarY确定初始值 qRr;&M &t_  
   PilarW = mkW I?1^\s#L  
   PilarH = mkH  '此两项为固定值 {5,CW  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) qU}[( 9~Ru  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 !l}es4~.a  
   B%,0zb+-L  
   wBr0s *1I  
  '连续采集记录文件 se?nx7~  
  ' 建立一个缓冲区为页对齐方式的文件 4|~o<t8  
  If Dir(TmpFile) <> "" Then Mqna0"IYx*  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ :5dq<>~  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) %rf<YZ.\  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 F:n7yey  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 ~ >6(@~6  
  Else CkOd>Kn  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ (h E^<jNR  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 6(eyUgnb  
  End If RW3&]l=  
  If hFile = 0 Then [[Z*n/tr  
    MsgBox TmpFile & ": File Open Error", vbOKOnly H7uW |'XWz  
    Exit Sub B${Q Y)t  
  End If 9Gy1T3y5"  
  '采集参数记录文件 KjhOz%Yt[o  
hBCFile = FreeFile() M;V2O;  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile cc@y  
   H:CwUFL  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 7{p,<Uz<"U  
If hMEM = 0 Then n|8fdiK#}  
    fStatus = GetLastError ?O28Q DUI  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ G-Y8<mEh  
     & "请向技术人员报告该错误代码。", vbOKOnly Qml<JF  
    CloseHandle hFile V%"aU}   
    Exit Sub rx%lL  
End If VlK WWQj  
(*#S%4(YX  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) N^O.P  
If hMemWork = 0 Then Z/%>/  
    fStatus = GetLastError 0Rj_l: d=  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ ]":PO4M$*  
     & "请向技术人员报告该错误代码。", vbOKOnly rK"x92P0  
     '释放已成功分配的内存 1%>/%eyn5  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) }4$UlTA'  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) Ygg+*z  
     VLRW,lR9O  
    CloseHandle hFile w'}b 8m(L  
    Exit Sub /: B!hv pw  
End If `CRW2^g  
$[H3O(B0*  
' Test writing R@;kY S  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& R+P1 +5  
     d}Q;CF3 m:  
   '初始化采集卡参数 0PZpE "$X  
   iCurrentCard = -1 t1D6#JP(a  
   hBoard = okOpenBoard(iCurrentCard) t)5bHVx  
   Debug.Print hBoard b8Y-!] F  
   If hBoard = 0 Then xgfK0-T|[  
      ExitGrabber Qax=_[r  
      End 59GS:  
   End If 9OX&;O+ 5  
   okGetBufferSize hBoard, mBufferAddr, BufferSize *S7<QyVh  
   If mBufferAddr = 0 Then v&|o5om  
     MsgBox "缓存不存在!" UZqr6A(/H  
     ExitGrabber aCQAh[T  
   End If g$uj<"^  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) oh|Q&R  
   V4_ZBeWA  
   o4U9jU4<"  
   currentBr = 128: currentContr = 128 tX)^$3A  
   '设置视频输入参数 wPyfne?~,  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 gd2cwnP  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input Y\s@'UoVN  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 |'.\}xt7  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 xse8fGs  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 '};pu;GA7  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 Zhf+u r  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) dtJ?J<m}  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) L_Z>*s&  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) yH irm|o  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 g%Eb{~v  
   ]5wc8Kh"  
   '设置采集参数 rxt)l  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 y%f'7YZ4  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 H|5\c=  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 uq'T:d  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 d7A vx  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 VTS8IXz  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集  2>p>AvcK  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 ]e!9{\X,*  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 qEE V&  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 rQCj^=cf;~  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 dxsPX =\:  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 }qxw Nmx  
   ht)J#Di  
   Ubv<3syR'  
   okCloseBoard hBoard +hGr2%*0f  
   Sleep 50 n{aD4&  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 z]K:Amp;Z  
   kyMWO*>|  
   '设置数据传送方式 8do-z"-  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 p4[cPt~C  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 b{_J%p  
   Zh,(/-XN;  
   sRECT.Right = -1   '用于获得当前设置值 5*C#~gd& F  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) YB*I'm3q  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom RAPR-I;{  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 ("?V|  
   sRECT.Left = 0 4 +Wti!s  
   sRECT.Top = 0 (/JiOg^cw  
   sRECT.Right = sRECT.Left + FrameW @w?hX K=  
   sRECT.Bottom = sRECT.Top + FrameH * 2 }Dp/K4  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) M $ CnaH  
   ^i:%0"[*^i  
   sRECT.Right = -1   '检查新设置值 741Sd8  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) jhg0H2C8  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom 5NH NnDhuL  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) ,Tjc\;~%  
   ^O}`i  
   If TESTSignal = False Then OF-$*  
      'ExitGrabber Q3T@=z2j%  
   End If ^z)p@sk#  
   >We4F 2?  
   ^-Bx zOp  
   22$M6Qof]n  
   '设为实时采集状态 _e:c 22T'  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) g\:(1oY  
   z&Cz!HrS  
   &]tZ6  
   '单帧采集 vL}e 1V:  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 ]2Zl\}GwY  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) ' >4 H#tu  
   okCaptureTo hBoard, BUFFER, 0, 1 'single >8PGyc*9  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 H85J MPZ7  
   '   Sleep 20 \xR1|M  
   'Loop EZypqe):/C  
   okGetCaptureStatus hBoard, True E+)3n [G  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize XcL jUz?  
   '写入768*576测试图象 MfQ 9d9  
   ArrayToBMP TmpBMP ir !/{IQx  
   ](-zt9, N;  
   '打开数据库 6fY-D qF!  
   Set conn = New ADODB.Connection vnc-  W3N  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 0o7*5| T4  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ MfNsor  
      "; Mode=Read|Write" F!ZE4S_  
   conn.Open  >cw%ckE  
   ~Z-o2+xA  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) ebfT%_N  
   frmRecord.Visible = True wl7G6Y2  
   frmQuery.Visible = True Ht pZ5  
   Load frmReceiveFromComm ZMEU4?F  
   m9M#)<@*  
   '调试参数 n<3qr}ZG^  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then :Y>FuE  
     SignalBox.Visible = True 4MUN1/DId`  
   End If KDxqz$14 -  
   If InStr(UCase(Command()), "/COMM") > 0 Then 9X/]O<i,Es  
     frmReceiveFromComm.Visible = True #p$iWY>e~  
   End If t\S=u y  
PUcxlD/a}  
End Sub =Z}$X: $  
kn %i#Fz  
Sub ExitGrabber() i24t$7q  
  '关闭数据库 (X zy~l<  
  '关闭采集卡 x,L<{A`z  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) RqB 8g  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) /0CS2mLC  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) zi%Ql|zI~  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) 17la/7l<  
  okStopCapture hBoard TMJq-u51  
  okCloseBoard hBoard $Y`oqw?g+^  
  CloseHandle hFile e|> 5 R  
  Close #hBCFile gv\WI4"n  
  conn.Close Gu@n1/m@o  
  End #|8Ia:=s  
End Sub m55|&Ux|  
%>Q[j`9y  
Function ArrayToBMP(ByVal File As String) z* k(` '  
Dim BytesWrite As Long \w#)uYK{i_  
[3D*DyQt  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ < #FxI  
  CREATE_ALWAYS, 0&, 0&) M47t(9krV  
z;iNfs0i$  
If hTmpFile = 0 Then 4]G J+a  
   ArrayToBMP = False Gn&=<q :H  
   Exit Function .7BJq?K.  
End If Uhs/F:E[A  
w#}[=jy  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN _59f.FsVR  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& ,i)wS1@  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN #;D@`.#\  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& '9u(9S  
]}4JT  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN 0#Ae<  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& ;-kC&GZf  
4g+Dp&U  
If BytesWrite < pFrameSize Then O#Ma Z.=  
  ArrayToBMP = False ` {/"?s|  
End If "o)jB~ :L  
)5Wt(p:T6_  
CloseHandle hTmpFile Y#[xX2z9  
u4x>gRz)  
End Function Zz/ z7~{  
FRhHp(0}5  
Function ArrayToBMP1(ByVal File As String) {: ] u 6l  
g~p43sVV  
Dim BytesWrite As Long 0uL*-/|  
45Hbg  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ 9$f%  
  CREATE_ALWAYS, 0&, 0&) owviIZFe  
g286 P_a`*  
If hTmpFile = 0 Then $:|?z_@  
   ArrayToBMP1 = False 0hg4y  
   Exit Function t#d{hEr  
End If 8B! MgNKV  
A3^_ 'K  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN Uz =OTM  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& zt;aB>jz#  
^|%u%UR  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN LIE5of  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& "*< )pnJ  
;W{2\ Es  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN w~4T.l#1  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& G ,e!!J  
#(7^V y&  
If BytesWrite < pBufferSize Then [,L>5:T  
  ArrayToBMP1 = False O!se-h5mW8  
End If >t#5eT`_ w  
zb3,2D+P  
CloseHandle hTmpFile fU<_bg  
F1*xY%Jv^M  
End Function Yz)+UF,  
/Bq4! n+  
'使用该过程建立的文件要求在用后关闭 +\-cf,WkI  
Public Function ArrayToBMP2(File As String) As Boolean v` h n9O  
AZ>F+@d  
Dim BytesWrite As Long R =kXf/y  
%0Ibi  
ArrayToBMP2 = True (T!#7  
# Rhtaq9  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ @.)WS\Cv#E  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) W#&BU-|2  
]w0_!Z&  
If hTmpFile = 0 Then ',Y`\X  
   ArrayToBMP2 = False smKp3_r  
   Exit Function Gv&%cq1  
End If 8 qlQC.VA[  
dWTc3@xd  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN A01PEVd@A  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& J4%"38l  
f|6 Y  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN `ztp u ~?  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& pz=/A   
^P|Zze zwU  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN RiG]-K:  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& _1G;!eO  
NY?pvb  
If BytesWrite < pFrameSize Then tH=jaFJ   
  ArrayToBMP2 = False 4s9q Q8?  
End If &'k :?@J[  
% 6\L^RP  
CloseHandle hTmpFile < &kl:|  
O1Ynl` }  
End Function >  -,$  
 s2`}~  
Private Function TESTSignal() As Boolean h0] bIT{  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long vM?,#:5  
U1Y0G[i)  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) cs9"0&JX  
"[ieOFI  
If extsign = 1 Then kho$At)V  
   TESTSignal = True uuQsK. S  
Else RdB,;Um9f  
    If extsign = 0 Then MU4BAN   
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly j-d542"  
        TESTSignal = False WMS~Bk+!  
        Exit Function #+H3b!8=  
    End If 5 qMP u|A  
End If !?" pnKb}  
v}\Fbe  
'测试视频输入类型 H#M;TjR  
'video type A p~6Vu  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 [HhaBy9  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) l{QlJ>%~{;  
If videotype = 1 Then WDI3*  
        '"隔行信号(Interlaced)" #y'p4Xf  
Else dVMLn4[,MA  
   If videotype = 0 Then v6H!.0  
       '"逐行信号(Non-interlaced)" $9h^tP'CV  
   Else (coaGQ@d  
     If videotype = -1 Then P{HR='2  
       ' "不支持" ymn@1BA8J  
     End If Gd`s0 1GKQ  
   End If hcpe~spz9|  
End If &14xYpD<  
nub!*)q  
'测试垂直扫描线数 558!?kx$  
'video scanlines ,#bT  
scanlines = -1 wlQ @3RN>  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) ]E.\ |I(  
    If scanlines = -1 Then \E 6 0  
        ' "不支持"  ;{Yr |  
    Else kZ;Y/DH  
        'Trim(Str(ScanLines)) + " 行数/幅" -Un"z6*  
    End If I+QM":2  
7pN&fAtj/  
'测试帧频 Gzp*Vr  
'video field frequency "pO** z$Z  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) g'Wr+( A_  
    If fieldfrq = -1 Then {mY=LaS<  
        'lblSignal(8) = "不支持" V/xjI<,  
    Else 3e>U(ES  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" <kJ`qbOU  
    End If vR (nd  
End Function r)B55;*Fh  
hY/qMK5  
W6RjQ1  
Sub PicIdentify() w4FYd  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 9VMk?   
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 vXZ )  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 MAp#1+k  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 9rIv-& 7'm  
^9]g5.z:  
  Dim fPTR As Long, cFrame As Long |tC=  j.  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer nt@uVwfQ  
     ?4#  
]x66/O\0u  
cFrame = 0 21my9Ui]  
A@;{ #.O  
*to#ZMR;!  
Do While cFrame < tFrames e0]#vqdO  
   ltyhYPS  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) +Ht(_+To1  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) ]z]=?;ty%  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize g][n1$%  
   vsPIvW!V  
  frmRecord.RText.Text = Str(cFrame) a]J>2A@-I  
  frmRecord.RText.Refresh pq%inSY  
        4&%E?_M  
  If CheckMark = True Then h7 mk<  
   ArrayToBMP TmpBMP oN)I3wO$  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) W.59Al'  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" ;I6C`N  
   d6ifJ  
   DrawSlice cG(%P$  
   vs>Pd |p;  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) #=72 /[  
   'If i = vbNo Then Ff d4c  
   '  Exit Do 0>"y)T3   
   'End If r?|(t?  
   'cFrame = cFrame + 1 %.wx]:o  
   pU<GI@gU  
  End If QVah4wFL*.  
  DoEvents P`S'F_IN  
  cFrame = cFrame + 1 t~ $8sG\  
Loop C`uL 4r  
End Sub P~V ^Efz{  
@V&HE:P  
{suQ"iv  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 5=fS^]- F  
)NTpb  
'如标志区模式反差存在则为TRUE,否则返回FALSE p&\DG   
^Nt^.xi7  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long Nrq/Pkmy  
CheckMark = True 8bf@<VTO_  
   ti3S'K0t  
'复制标志区 (=j/"Mb  
For i = 1 To mkH fl4 0jo]  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW %L$ ?Mey  
Next i O|+$ 9#,  
a p(PI?]X  
For j = 1 To PilarW * PilarH / 2 7#N ?{3i  
   mTop = mTop + MKpilar(j) e(FT4KD~  
Next j [x- 9m\ h  
rHqP[[4B'  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH \=$G94%  
   mBot = mBot + MKpilar(j) ftQ;$@  
Next j 1r5Z$3t\  
7+Nl)d:C J  
mTop = mTop / PilarW / PilarH * 2 (!?% "e  
mBot = mBot / PilarW / PilarH * 2 =BbXSwv'(  
wKoar  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 =iB$4d2  
7jr+jNsowj  
'平均值极值化 6W~JM^F  
  For j = 1 To PilarH * PilarW qxcTY|&  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) 2@Q5Ta #h  
  Next j 9?^0pR p  
   "Z~@"JLb%  
mTop = 0: mBot = 0 .krEfY&  
For j = 1 To PilarH * PilarW / 2 \w&R`;b8w  
  mTop = mTop + MKpilar(j) }2^qM^,0  
Next j  z@~mu  
ZXf& pqmG  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW $@w ,9J\  
  mBot = mBot + MKpilar(j) C' WX$!$d  
Next j mRt/ d  
Galh _;=  
/>uE)R$  
  mTop = mTop / PilarH / PilarW * 3 U lCw{:#F  
  mBot = mBot / PilarH / PilarW * 3 m8eoD{  
   F& Rr&m  
xZ* B}O{{H  
If mBot > iWhite And mTop < iBlk Then +Y2D @K?)  
  CheckMark = True o5YL_=7m  
Else 9!0-~,o  
  CheckMark = False I]42R;Sc  
End If ?T,a(m<i {  
End Function Xc&J.Tw#4*  
D( y c  
Sub Capture1Frame() B,` `2\B  
   okCaptureTo hBoard, BUFFER, 0, 1 'single LoSrXK~0~J  
   okGetCaptureStatus hBoard, True o=PW)37>  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize Hd TB[(  
End Sub YRv}w3yQ  
1;!dTh  
sxdDI?W4  
Sub CopyMark(iBlk As Integer, iWhite As Integer) crx%;R   
'复制标志区并返回标志区暗区与亮区的亮度平均值 o)Px d  
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 r=xec@R]*  
   mR|']^!SE  
'复制标志区 K,+z^{Hvh  
For i = 1 To mkH )`2ncb   
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW &x4*YM h  
Next i {DE4PE`  
:G= ol2Q  
For j = 1 To mkW * mkH / 2 - /cf3  
   mTotal = mTotal + MKpilar(j) ) r"7"i  
Next j r1z+yx  
n?S)H=  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 Hq&MePl[  
:.f( }sCS  
mTotal = 0 p9!jM\(  
For j = mkW * mkH / 2 + 1 To mkW * mkH G @]n(\7Y  
   mTotal = mTotal + MKpilar(j) |x=(}g  
Next j ?;Da%VS3  
]ki) (Bb  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 +i }uRO  
[#AI!-  
'背景亮度 xa 967Ki9"  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW ,Ww.W'#P  
  For i = 1 To 4 * FrameW 1c*:" k  
    bsTotal = bsTotal + BsLine(i) P,7R/-u5D  
  Next i &'/bnN +R  
  bsAV = bsTotal / FrameW / 4 WpMm%G~'4t  
zQ+ %^DT1  
End Sub QtcYFf g  
$O fZp<M  
!Q}Bz*Y  
Sub AdjIMGbright(Optional bInit As Boolean = True) j'Gezx^.<e  
iAeq%N1(0  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) + (`.pa z@  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 tVNFulcz$  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 AmUH]+5KT  
     vrh2}biCR  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer @wVDe\% ,  
   M+)ENv e  
  '按标准亮度与对比度采集一帧,确定背景亮度 U} Pr1  
  currentContr = 128   '初始对比度 .3SP# mI  
  currentBr = 128   '初始亮度 I9nm$,i]7  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 g6$\i m  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 -I z,vd  
  DoEvents ^rGuyW#  
  Capture1Frame ) bd`U  
  '获得图像上缘4行象素 *ozXilO  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW d" a\`#  
  CopyMark iBlack, iBright   '图像标志区亮度 =tX"aCW~  
  For i = 1 To 4 * FrameW .eCUvX`$  
    bsTotal = bsTotal + BsLine(i) QVmJ_WT  
  Next i D+w ?  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 tiR i_  
   [(vV45(E  
  Select Case bsAV {@'#|]4y.  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 <"S`ZOn  
       currentBr = 150 cnDF`7xrT  
       currentContr = 60 g3!<A*<  
     Case 61 To 80   '有可见背景 A6xN6{R!  
       currentBr = 140 DD6K[\  
       currentContr = 70 DZ:$p.  
     Case 81 To 100  '有清晰背景 B"`86qc  
       currentBr = 128 Dwe F8c  
       currentContr = 80 !G<gp4Js+N  
     Case 100 To 150  '有明亮背景 p77=~s   
       currentBr = 140                '5:30-6:00钟实测数据 ;g?o~ev 8  
       currentContr = 50 1l^ `  
     Case 151 To 180 zQB1C  
       currentBr = 130 k`\L-*:Ji  
       currentContr = 60 O7J V{'?  
     Case 181 To 220  '背景全为白色 4F!%mMq  
       currentBr = 110 7c<_j55(  
       currentContr = 130 Y$fF"p G?  
     Case 221 To 255  '背景全为白色 hn$jI5*`  
       currentBr = 100 K]^Jl0  
       currentContr = 100 ) /z+W[t  
  End Select II\}84U2 .  
   7{VN27Fa_  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 <! *O[0s  
        Case 100 To 150 B9`_~~^U5  
          currentBr = currentBr - 10 R-2Aby ts2  
        Case 151 To 255 +JB*1dz>8  
          currentBr = currentBr - 20 &O5&pet  
  End Select I] Z"?T  
   RGBntp%  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 }{[p<pU$C  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 a!&m\+?  
End Sub 51;Bc[)%  
sD6vHX%  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) COxJ,v(  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long ,0?3k  
     ,8DjQz0ZPo  
    For i = 1 To 8 b8 6c[2  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& \=(U tro  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& J6nH |s8  
    Next i xo(>nFjo  
     bOr6"nn  
    For j = 1 To 1024 X1Kze  
      L1 = L1 + LeftBK(j, 0) Hx9lQ8  
      L2 = L2 + LeftBK(j, 1) I@1VX5  
      R1 = R1 + RightBK(j, 0) $SzuUI  
      R2 = R2 + RightBK(j, 1) " "CNw-^t  
    Next j "msPH<D  
    diffL = Abs(L1 - L2) / 1024 >/.Ae8I)  
    diffR = Abs(R1 - R2) / 1024 L f;Uv[^c  
End Sub R78P](1\>  
B"t4{1/  
Function CheckSlice() As Boolean _1jeaV9@  
  CopySlice avSL, avSLR, avSLL /~g.j1g  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then !1 <>][F  
    CheckSlice = True C2L=i3R  
  Else +('=Ryo T  
    CheckSlice = False 8vj]S5  
  End If g&/r =U  
End Function JK'tdvs~  
l 1BAW$  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) .G/RQn]x}  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long Zj)A%WTD,  
  For i = 1 To FrameH ;F/s!bupCM  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize oCK n  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize Gd|jE  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize iH-(_$f;  
  Next i `Tr !Gj_  
  For i = 1 To FrameH cejD(!MKe  
    For j = 1 To sSize .]; `  
       total = total + Slice(j, i) {y<E_y x1  
       totalL = totalL + SliceL(j, i) p(yHB([8  
       totalR = totalR + SliceR(j, i) yp pZ@  
    Next j )<T2J0*  
  Next i T1RICIf 1F  
  avSL = total / FrameH / sSize QQ99sy  
  avSLR = totalR / FrameH / sSize hgdr\ F  
  avSLL = totalL / FrameH / sSize OV-#8RXJ  
End Sub )r XUJ29.  
LEAU3doK;  
Sub DrawSlice() h 3p~\%^  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B 3\|PwA9fN8  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B 1R#1Fy%  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B rWp+kV[Ec>  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) u TmT'u:}  
End Sub O5JG!bGE_F  
Sub DrawMark(pic As Control) 7[M@;$  
   Dim i As Long, j As Long |W SvAM3  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B :eSwXDy&  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B &qm:36Y7Xg  
   For i = 1 To PilarH Pj7MR/AH  
     For j = 1 To PilarW F&OcI.OTXF  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) )!sjXiC!h  
     Next j k[1w] l8  
   Next i &Z+.FTo  
End Sub %kk~qvW  
?cD_\~  
Function avIMG() As Integer (>-(~7PR  
  Dim i As Long, j As Long, totalIMG As Long [t]q#+Zs  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize sv#/78~|  
  For i = 1 To pFrameSize D Z=OZ.v  
    totalIMG = totalIMG + pBuffer(i) *#B"%;Ln  
  Next i gv,%5r0YOw  
  avIMG = totalIMG / pFrameSize ahw0}S  
End Function D ~NWP%H  
?T>NvKF  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer 3e|,Z'4}4  
  Dim i As Long, j As Long, totalIMG As Long M:%Ll3  
  For i = 1 To FrameH N&W7g#F  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth @Z@S;RWSU  
  Next i '~pZj"uy  
  For i = 1 To FrameH * barWidth _D1)_?`a@-  
    totalIMG = totalIMG + pBuffer(i) /$UWTq/C7  
  Next i eS2VLVxu  
  avRegion = totalIMG / pFrameSize f/i[? gw  
End Function 1tH#QZIT  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 dg;E,'e_ p  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 m8&XW2S  
{G _|gs  
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 9<*<-x{A17  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long P1 "g62R  
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 K(}<L-cv  
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 w M#q [m;  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long mtNB09E(  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 \3cg\Q+~  
9`DY6qfly  
cqb]LC  
Private Const GENERIC_READ = &H80000000 Y= ^o {C6  
Private Const GENERIC_WRITE = &H40000000 Q8bn|#`  
2Zi&=Zj"  
Private Const FILE_SHARE_READ = &H1 2spK#0n.HV  
Private Const FILE_SHARE_WRITE = &H2 T!Uf PfEI  
Private Const OPEN_EXISTING = 3 w%f51Ex  
g)iw.M2  
Private Const INVALID_HANDLE_VALUE = -1 Wu693<  
6X$iTJ[\x  
'//file seek xf8.PqVNo  
Private Const FILE_BEGIN = 0 eRIdN(pP  
Private Const FILE_CURRENT = 1 '59l.  
Private Const FILE_END = 2 cONfHl{  
4\2~wSr  
Private Const ERROR_SUCCESS = 0& bt?)ryu  
suZ`  
'//device io control Nv\<>gA:  
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 "'6R|<u=:  
DZX4c2J  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 +Z%8X!Q  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 _2Fa .gi  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 E=~Ahkg  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 b/eo]Id]  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C Td ![Id  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 ^r~R]stE^  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F J i:0J},m  
uszMzO~  
'//type '8f h(`  
Private Type LARGE_INTEGER 8?k.4{?  
    lowpart As Long A;Uw b  
    highpart As Long K?mly$  
End Type 5>M@ F0  
IV$2`)[A&X  
Private Enum MEDIA_TYPE "4i_}  
    Unknown :n(!,  
    F5_1Pt2_512 CV6W)B%Se  
    F3_1Pt44_512 n`7n5M*  
    F3_2Pt88_512 )jN fQ!?/  
    F3_20Pt8_512 Re'Ek  
    F3_720_512 Mer\W6e"e  
    F5_360_512 '5n=tRx  
    F5_320_512 c# WIB 4  
    F5_320_1024 0mR  
    F5_180_512 NKw}VW'|  
    F5_160_512 vX}mwK8  
    RemovableMedia LY(h>`  
    FixedMedia p:8]jD@}%  
End Enum WFpR@53Db  
ij1g2^],4  
Private Type DISK_GEOMETRY wGA%h.[M|  
    Cylinders           As LARGE_INTEGER Z!qF0UDj  
    MediaType           As MEDIA_TYPE `H\NJ,  
    TracksPerCylinder   As Long }ilX 2s?>  
    SectorsPerTrack     As Long =v/x&,Uj@6  
    BytesPerSector      As Long ~7&O[  
End Type " qrL:,   
m{sch`bP  
'//private vars .(z ZTyZr  
Private hDisk           As Long             'disk handle 4$b9<:M_  
Private lpGeometry      As DISK_GEOMETRY    'disk info $6\W8v  
Private lBufferSize     As Long             'the buffer size of read/write @EcY& mP)  
7j%sM&  
Public Function OpenDisk(ByVal FileName As String) As Boolean ] mvVX31T  
'// 打开磁盘 w^QqYUL${  
    hDisk = CreateFile(FileName, _ [0hZg  
                        GENERIC_READ Or GENERIC_WRITE, _ ? 8)$N  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ lpeo^Y}N  
                        ByVal 0&, _ W[j7Vi8v  
                        OPEN_EXISTING, _ cOEzS  
                        0, _ CI,xp  
                        0) q"pnFK9/L  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) U>_#,j  
End Function 2E}^'o  
t8FgQ)tk  
Public Function CloseDisk() As Boolean *gXm&/2*  
'//关闭磁盘 +v'n[xa1v  
    CloseDisk = CloseHandle(hDisk) w'Q2Czso  
End Function Zu%oIk  
TVFxEV7Fx  
Public Function GetDiskGeometry() As Boolean J*O$)K%Hx  
'//获取磁盘参数 Y{ 2xokJ N  
    Dim dwOutBytes      As Long 9 !qVYU42(  
    Dim bResult         As Boolean b1qli5  
     ?GKm_b]JC  
    bResult = DeviceIoControl(hDisk, _ zs@[!?A,  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ q9"~sCH  
                                ByVal 0&, 0, _ Z'z~40Bda  
                                lpGeometry, Len(lpGeometry), _ y2Z1B2E%f  
                                dwOutBytes, _ $Uxg$pqO  
                                ByVal 0&) _i{4 4zE  
     J'y*>d W  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack Gu9x4p  
    GetDiskGeometry = bResult quw:4W>  
End Function f7QX"p&P  
-2Azpeh  
Public Sub GetDiskInfo(MediaType As Long, _ 1_.#'U>  
                        Cylinders As Long, _ pGGx.&5#82  
                        TracksPerCylinder As Long, _ T?E[LzZg  
                        SectorsPerTrack As Long, _ YJ^TO\4WM  
                        BytesPerSector As Long) W4(O2RU  
'//返回磁盘的参数 a'ODm6#  
    MediaType = lpGeometry.MediaType 4lfJc9J  
    Cylinders = lpGeometry.Cylinders.lowpart {01wW1  
    TracksPerCylinder = lpGeometry.TracksPerCylinder 6WnGP>tc.  
    SectorsPerTrack = lpGeometry.SectorsPerTrack A'X, zw^}  
    BytesPerSector = lpGeometry.BytesPerSector k|T0Bly3P  
*npe]cC  
End Sub |1(9_=i'  
7%4@*  
Public Property Get BufferSize() As Long -d6*M*{|  
'//返回每次读/写的缓冲大小 LlG~aGhel  
    BufferSize = lBufferSize bwAL:  
End Property ? /Z hu  
iP~dH/B|v  
;F<)BEXC<  
Public Function LockVolume() As Boolean 1)m&6 :!b  
'// 将卷锁定 7'xds  
    Dim dwOutBytes  As Long mg^\"GC*8  
    Dim bResult     As Boolean %S<( z5  
     >xE{& ):  
    bResult = DeviceIoControl(hDisk, _ wh;E\^',n  
                                FSCTL_LOCK_VOLUME, _ c F (]`49(  
                                ByVal 0&, 0, _ &vp0zYd+v  
                                ByVal 0&, 0, _ kpN'H_ .  
                                dwOutBytes, _ > ak53Ij$  
                                ByVal 0&) $R<eXDW6:  
    LockVolume = bResult )o zN{&B6  
End Function v{2 Vg  
(&u)F B*  
#i GRi!$h  
Public Function UnlockVolume() As Boolean +(<}`!9M*  
'// 将卷解锁 XL7jUi_4:L  
    Dim dwOutBytes As Long oxPb; %  
    Dim bResult As Boolean ZVek`Cc2  
     s~6irf/  
    bResult = DeviceIoControl(hDisk, _ 8;s$?*G i  
                                FSCTL_UNLOCK_VOLUME, _ lC i_G3C  
                                ByVal 0&, 0, _ 9jwo f}OU  
                                ByVal 0&, 0, _ QP e}rQnm  
                                dwOutBytes, _ /aB9pD+%  
                                ByVal 0&) QYL ';  
    UnlockVolume = bResult RFkJ^=}  
End Function "V`MNZ  
P&Q 5ZQb  
E qva] 4  
Public Function DismountVolume() As Boolean vv,(ta@t2  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 jTx,5s-  
    Dim dwOutBytes As Long RFu]vFff  
    Dim bResult As Boolean TGz5t$]I  
     V-w[\u  
    bResult = DeviceIoControl(hDisk, _ 'HV}Tr  
                                FSCTL_DISMOUNT_VOLUME, _ X7]vXo*  
                                ByVal 0&, 0, _ :I}_  
                                ByVal 0&, 0, _ c};Qr@vpo  
                                dwOutBytes, _ uv[e0,@  
                                ByVal 0&) f(E  'i>  
    DismountVolume = bResult J ZQ$ *K  
End Function /vB%gqJvX  
Ucnit^,  
Do|`wpR  
Public Function ReadDisk(ByVal Cylinders As Long, _ HiG&`:P>q  
                    ByVal Tracks As Long, _ YtrMJ"  
                    db() As Byte) As Boolean P( W8XC  
'//按柱面和磁道来读取磁盘数据 d0 tN73(  
    Dim iPos    As Long rkl/5z??  
    Dim lRead   As Long I -obfyije  
     _dEf@==  
    iPos = Cylinders * Tracks * lBufferSize Bv |Z)G%RR  
     u[oYVpe)IG  
    If SeekAbsolute(0, iPos) Then #+eV5%S i  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) ]eq3cwR[|  
    End If JPk3T.qp  
End Function O"mU#3?  
WiL~b =fT  
Public Function WriteDisk(ByVal Cylinders As Long, _ LV 94i  
                     ByVal Tracks As Long, _ O!uB|*  
                     db() As Byte) As Boolean ;.h5 ; `&  
'//按柱面和磁道来写磁盘数据 T`=N^Ca1!`  
    Dim iPos    As Long yXw xq(32  
    Dim lRead   As Long QE5 85s 5  
     y o[!q|z  
    iPos = Cylinders * Tracks * lBufferSize mlgdw M  
     gGU3e(!Uc  
    If SeekAbsolute(0, iPos) Then sh?Dxodp9  
        WriteDisk = WriteBytes(lBufferSize, db()) F77[f p  
    End If *R>I%?]V3  
End Function >}/"g x  
qD4e] 5  
um&e.V)N  
'///////////////////////////////////////////////////////////////////////////////////// Q_#X*I  
'//file system bct&ge7YX  
:OBggb#?!  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean E4[\lX$J  
'//seek file p$@=N6)I.k  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte qD#-q vn  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) <96ih$5D1  
    If LowPos = -1 Then /kVy#sT|  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) q#PGcCtu  
    Else ,9"</\]`  
        SeekAbsolute = True nx,67u/Pb  
    End If ASaG }h  
     k>n^QHM  
End Function ki^[~JS>'  
,Ql3RO,  
bah5 f  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean Xb3vvHdI  
'//read data to array (w% hz']  
    Dim RetVal    As Long 7w{`f)~  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) u6jJf@!ws  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF a(8]y.`Tv  
    ReadBytes = Not (RetVal = 0) {\ziy4<II  
     Af0E_  
End Function m= fmf(  
wR/i+,K  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean J\   
'//write data from array AJ:@c7:eS  
    Dim RetVal As Long L i=l/  
    Dim BytesToWrite As Long K"b vUH  
    Dim BytesWritten As Long $X~=M_ W  
     =fi.*d?$7  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) ce=6EYl  
     lLtC9:  
    WriteBytes = Not (RetVal = 0) b THa;* `  
End Function 4[.- a&!}  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 7qXgHrr0|U  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ B?Y%y@.  
DWORD dwCB; S_2I8G^A  
LARGE_INTEGER  offset; n3b@ 6V1_  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); %v~j10e  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); w6Tb<ja  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ WM=kr$/3  
DWORD error = GetLastError(); o <l4}~a  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); .#WF'  
return FALSE; o ohf))  
} 2 >xV&  
return TRUE; W {dx\+  
} #0Oqw=F  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : (c[h,>`@:  
ki+9 Ln;  
介个真的看不懂。 & vLX  
你说你老啦,喜欢怀旧了,才想起来填坑。 @MB;Ez v  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 {&h&:  
3UN Jj&-`  
":-)mfgGU  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : O5=ggG  
佩服,玩也玩得这么专业! <hK$ Cf_  
M3t_!HP}!  
*UyV@  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : 2 Lam vf  
引用第19楼伍胥之于06-14-2010 12:33发表的  : .3U[@*b(  
(k5DbP[  
(wlsn6h  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 y[zA [H:  
<bx9;1C>zd  
我连一级也没有考过。 :HE]P)wz-  
.
_$'Mx'IC=  
@\D D|o67  
引用
9V],X=y~  
矬子里拔将军... _ <;Q=?'*  
你们那里的俗语是吧? 9kF#*  
9V66~Bf 5  
我们这里说"矮子里拔长脚"..应该是同一个意思...  `JE>GZ Y  
ommKf[h%i  
有趣....各地有表达意思一样却方式不同的俗语.... 38m%ifh)  
L@z !,r,  
\i,cL)HM  
你的文章写的有脸皮,没屁眼的, r~}}o o4K  
让看客大为不满... Gtg)%`  
E?XCL8NC  
你等着,,估计你以后接到的午夜凶铃就多了... *3/7wSV:  
 q%k+x)  
gZjOlp  
我到现在也没有接到你的午夜凶铃呢! y\_S11{v  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : u!uDu,y  
每个人的故事对其他人都是故事, Y(y 9l{'  
自己的故事也是其中之一. ^@Qi&g`lr?  
跳出来看, U  R@BSK'  
不过是众人中的一个人的故事. m"G N^V7  
vs1Sh?O  
所以,接着听故事. ;1.>"zX(  
IMGqJc,7  
女人们有兴趣的就等老伍开个新帖或者跟贴, z}1 xy+  
听他痛说恋爱革命历史.... }iSakq'  
Uxemlp%%*  
杂家接着听他自学程序员历史, m I zBK]@^  
高级程序员考了吗? %;Z bQ9  
V./w06;0  
 j/9QV  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! s1vrzze  
~RXpz-Ye  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 w"v'dU^  
Ys $YI{  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 e_=pspnZ  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : -\kXH"%  
哦, 打倒忽悠大家的家伙.      8?7kIin  
O4EIE)c  
$J"%I$%X=  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : Di*]ab  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 bD35JG^&i  
~G>jw"r  
ljPq2v ]  
其实标题没有什么,卡总既然改了就不必再改回了。 4'SaEsA~  
qy_%~c87  
主要是当初写的时候真是顶着锅盖写的。 *hVb5CS  
/_V'DJV  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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