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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 2ryg3% +O  
3JF" O+@  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : `yRt?UQRS  
rPifiLl A>  
老五,I 服了U。 |Ur$H!oe?'  
]<_v;Q<t  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 {q);1Nnf  
W{]r_`=:6S  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean <M,=( p{  
+3R/g@n  
Dim regEX As New RegExp e{ZS"e`!  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 ^8g<>, $  
;![rwra  
Dim LastTitle0String As String, LastTitle0No As Long :*tFW~<*b  
Dim LastTitle1String As String, LastTitle1No As Long !WD^To  
Dim LastTitle2String As String, LastTitle2No As Long A=wh&X  
Dim LastTitle3String As String, LastTitle3No As Long msZ 3%L  
Dim LastTitle4String As String, LastTitle4No As Long 0T:U(5Y9  
Dim LastTitle5String As String, LastTitle5No As Long 5^{).fig  
Dim LastTabelString As String, LastTableNo As Long #\3X;{  
Dim LastFigureString As String, LastFigureNo As Long p$XvVzW#<  
0P4g6t}e  
Dim strSeperator As String N8{ 8 a  
)gxZ &n6  
Sub ConvertWidth(fTEXT As String, rText As String) 9u_D@A"aC`  
        Selection.Find.ClearFormatting LH q~`  
        Selection.Find.Replacement.ClearFormatting IG8I<+<o  
        Selection.Find.Wrap = wdFindContinue !z+'mF?V+X  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText =$< .:b  
        DoEvents ~<3J9\z1  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True ,Y0qGsV  
End Sub  :LTjV"f  
F<2qwP  
Sub ClearDomain() i#Z#(D `m  
        With Selection.Find f"G-',O<  
            .ClearFormatting %/%TR @/  
            .Replacement.ClearFormatting 3'tq`t:SQ  
            .Wrap = wdFindContinue ]/?$DNjCc  
            Me.txtStatus.Text = "清除所有域代码" xL!@$;J  
            DoEvents F%:o6mT  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False mFuHZ)iQG  
        End With i[ n3ILn  
End Sub }^*m0`H  
xyi4U(;  
Private Sub cmdCheck_Click() -N1X=4/f g  
    bContinue = True {6>:= ?7]R  
    Dim NoSeries1(1 To 16) As String Pt7yYl&n7^  
    Dim NoSeries2(1 To 16) As String _j\ 8u`^n  
    Dim NoSeries5(1 To 16) As String eOUEhpE  
    Dim NoSeriesRM(1 To 16) As String P ED5>90  
    Dim paraTotal As Long, ParaText As String /9 |BAQ:v;  
    Dim ttString As String, ttNo As String s[u*~A  
     7vB  6IF  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long f/^T:F6  
)bB Va^  
    Me.txtStatus.Visible = True V`"Cd?R0Z  
    Me.lbParaType.Visible = True d{c06(#_  
    Me.cmdCheck.Enabled = False #9]O92t2UV  
     ^-qz!ib  
     J L2g!n= K  
     2;ac&j1  
     ZtOv'nTD  
    Dim ParaType As String, rText As String mS &^xWPV  
     m/aA q8  
    Selection.WholeStory )C0 y<:</  
    Selection.NoProofing = True d' e\t O  
     )3)fq:[  
    tm1 = Now tjcG^m} _  
     X;yThb` iI  
        ActiveWindow.View.Type = wdNormalView SM[VHNr,-  
     .|2[! 7CXH  
    NoSeries1(1) = "一" Q6%Pp_$k  
    NoSeries1(2) = "二" d5lD!  
    NoSeries1(3) = "三" md /NMC \  
    NoSeries1(4) = "四" Z" dU$ ,n  
    NoSeries1(5) = "五" ~{{@m]P  
    NoSeries1(6) = "六" C9nCSbGMY{  
    NoSeries1(7) = "七" l +# FoN  
    NoSeries1(8) = "八" }ykc AK3U  
    NoSeries1(9) = "九" Y?JB%%WWI  
    NoSeries1(10) = "十" ST[E$XL6  
    NoSeries1(11) = "十一" ?2Sm f  
    NoSeries1(12) = "十二" c- "#  
    NoSeries1(13) = "十三" (6X{ &  
    NoSeries1(14) = "十四" .-.b:gdO(  
    NoSeries1(15) = "十五" CWS]821;  
    NoSeries1(16) = "十六" 8>!-|VSn  
     Kq}-)  
    NoSeries2(1) = "㈠" #c`/ f6z  
    NoSeries2(2) = "㈡" L?b;TjLe  
    NoSeries2(3) = "㈢" x{,W<oXg  
    NoSeries2(4) = "㈣" FtybF  
    NoSeries2(5) = "㈤" r5PZ=+F  
    NoSeries2(6) = "㈥" x{$/|_  
    NoSeries2(7) = "㈦" ffem7eQ  
    NoSeries2(8) = "㈧" [g$IN/o%  
    NoSeries2(9) = "㈨" BYb"[qPV  
    NoSeries2(10) = "㈩" \kC'y9k  
     iq3TP5%i  
    NoSeries5(1) = "①" \qB.>f"%p|  
    NoSeries5(1) = "②" +pbP;zu  
    NoSeries5(3) = "③" GT-ONwVDq  
    NoSeries5(4) = "④" VN]"[  
    NoSeries5(5) = "⑤" UMlvu?u2p1  
    NoSeries5(6) = "⑥" dRXrI  
    NoSeries5(7) = "⑦" LCok4N$o  
    NoSeries5(8) = "⑧" Ksvk5r&y  
    NoSeries5(9) = "⑨" c) _u^Dh  
    NoSeries5(10) = "⑩" 8l>YpS*S^  
     '$q3Ze  
     q 7hoI]  
    NoSeriesRM(1) = "I" uUh6/=y  
    NoSeriesRM(2) = "II" MUMB\K*$  
    NoSeriesRM(3) = "III"  F2dwT  
    NoSeriesRM(4) = "IV" Ej$oRo{ IG  
    NoSeriesRM(5) = "V" ^AR kjYt  
    NoSeriesRM(6) = "VI" @{@)gE  
    NoSeriesRM(7) = "VII" O]Q8&(  
    NoSeriesRM(8) = "VIII" M~g@y$  
    NoSeriesRM(9) = "IX" Bn*QT:SKC  
    NoSeriesRM(10) = "X" |uM(A~?  
    NoSeriesRM(11) = "XI" zz-X5PFn  
    NoSeriesRM(12) = "XII" qex::Qf  
    NoSeriesRM(13) = "XIII" Eg$Er*)h8  
    NoSeriesRM(14) = "XIV" 7}vx]p2  
    NoSeriesRM(15) = "XV" ;tfGhHpQn  
    NoSeriesRM(16) = "XVI" Q VWVZ >l  
     E{[>j'dwc  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) X92I==-w  
     {&pBy  
    If i = vbNo Then P$"s*otr  
        Exit Sub xm> y3WC  
    End If 3SI%>CO}  
     BJnysQ  
    If Me.chkSuper.Value Then qmq#(%Z <W  
        Me.txtStatus.Text = "检查修改所有的上标格式" U DHMNubB  
     8FQNeQr  
        CheckSuperScript BqDOo(%1)  
         +jj] tJ$[  
    End If [q(}~0{"-  
     z"V`8D  
    If Me.chkStyle.Value Then >,n K  
        Me.txtStatus.Text = "设置样式,请稍候...." >UV?n XP}  
        DoEvents 1c:/c|shQ_  
        CeateOrModifyStyle NtQ#su$  
    End If 2\G[U#~bi  
     |i - S}M  
     ^*WO*f>y  
     Q-| |A  
    ClearDomain fP{IW`t}]  
         3IQ-2 X--  
     cxnEcX\   
     $A>]lL o0  
    If Me.chkLIST.Value Then EP6@5PNZ  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" k j&hn  
     1b8}TG2  
        ConvertListToOrdinary ^- s`$lTp  
    End If h BzZJ/jn  
     &}FWpo!  
     3+V.9TL'a  
    Dim pType As String, trimpTEXT As String |6~ Kin  
    If Me.chkNum.Value = True Then {N@tJ,Fh{  
        Me.txtStatus.Text = "转换全角数字形式为半角" l/56;f\IA  
        ConvertWidth "1", "1" - 4B&{P  
        DoEvents ^1X 6D H`  
        ConvertWidth "2", "2" hu:x,;`9H  
        DoEvents FUZ`ST+OL  
        ConvertWidth "3", "3" Gvc/o$_  
        DoEvents M(W-\ L  
        ConvertWidth "4", "4" &M2fcw?  
        DoEvents G[Jz(/yNH  
        ConvertWidth "5", "5" k~qZ^9QB~  
        DoEvents sDyt3x N  
        ConvertWidth "6", "6" 29f4[V X  
        DoEvents x24&mWgU  
        ConvertWidth "7", "7" gr4JaV  
        DoEvents !FeNx*31i  
        ConvertWidth "8", "8" v|2+7N:[;  
        DoEvents l!%V&HJV  
        ConvertWidth "9", "9" _j|U>s   
        DoEvents / (Ryh6M  
        ConvertWidth "0", "0" &H?Vlx Ix  
        DoEvents )h/Qxf  
        ConvertWidth "a", "a" Qz([\Xx:  
        DoEvents 'PdUSv|lH  
        ConvertWidth "b", "b" DC*6=m_  
        DoEvents = '<*mT<  
        ConvertWidth "c", "c" BU=Ta$#BZ  
        DoEvents je=XZ's,i~  
        ConvertWidth "d", "d" kTo{W]9]  
        DoEvents NzbHg p  
        ConvertWidth "e", "e" N0UZ%,h\  
        DoEvents +$B#] ,  
        ConvertWidth "f", "f" 1yjP`N  
        DoEvents ~uEI}z  
        ConvertWidth "g", "g" 1K[y)q  
        DoEvents Ikgia:/-Z  
        ConvertWidth "h", "h" M/jdMfU  
        DoEvents wQ\bGBks  
        ConvertWidth "i", "i" (2r808^2  
        DoEvents u7bji>j  
        ConvertWidth "j", "j" ;>jOB>b{h  
        DoEvents 'BNZUuUl  
        ConvertWidth "k", "k" '#CYw=S+  
        DoEvents UsdUMt!u  
        ConvertWidth "l", "l" Z+Pp d=||,  
        DoEvents TU?$yNE  
        ConvertWidth "m", "m" uar[D|DcD"  
        DoEvents A7TV-eWG  
        ConvertWidth "n", "n" ~0 Mw\p%}  
        ConvertWidth "o", "o" poXT)2^)  
        ConvertWidth "p", "p" zCSLV>.F  
        ConvertWidth "q", "q" _c QhT  
        ConvertWidth "r", "r" {e83 A /{  
        ConvertWidth "s", "s" gdG#;T'  
        ConvertWidth "t", "t" jW]Fx:mQi  
        ConvertWidth "u", "u" ' y_2"  
        ConvertWidth "v", "v" !6`&0eY  
        ConvertWidth "w", "w" 0]l9x}  
        ConvertWidth "x", "x" @<44wMp  
        ConvertWidth "y", "y" t&rr;W]  
        ConvertWidth "z", "z" HkyN$1s  
        ConvertWidth "A", "A" GD#W=O  
        ConvertWidth "B", "B" _"- ,ia[D  
        ConvertWidth "C", "C" ` NWmwmWB"  
        ConvertWidth "D", "D" {0Ej *%  
        ConvertWidth "E", "E" !-q)9K?  
        ConvertWidth "F", "F" S?# 'Y*h  
        ConvertWidth "G", "G" tMr$N[@r  
        ConvertWidth "H", "H" WsR4)U/]v  
        ConvertWidth "I", "I" :47"c3J  
        ConvertWidth "J", "J" ^-7-jZ@jz  
        ConvertWidth "K", "K" N1X;&qZDd  
        ConvertWidth "L", "L" l7uEUMV  
        ConvertWidth "M", "M" }62 Q{>`  
        ConvertWidth "N", "N" AI3\eH+  
        ConvertWidth "O", "O" &_$xMM,X  
        ConvertWidth "P", "P" ex)U'.^  
        ConvertWidth "Q", "Q" !9EbG  
        ConvertWidth "R", "R" K2-nP2Go?  
        ConvertWidth "S", "S" !tuK.?q|l  
        ConvertWidth "T", "T" B{lL}"++0  
        ConvertWidth "U", "U" TXfG@4~kC  
        ConvertWidth "V", "V" A|BN >?.t  
        ConvertWidth "W", "W" 5z"[{ #/  
        ConvertWidth "X", "X"  QHe:  
        ConvertWidth "Y", "Y" *5R91@xt  
        ConvertWidth "Z", "Z" mH!\]fmR~  
        ConvertWidth "^l", "^p" CpC6vA.R  
        ConvertWidth "(", "(" ~JohcU}d  
        ConvertWidth ")", ")" 10$:^  
     k:CSH{s5{  
    End If \-I)dMm[  
qnf\K}   
    With ActiveDocument 'd9cCQ}  
        Dim tbl As Table /P/::$  
        For Each tbl In .Tables (.~'\@  
            tbl.Rows.Alignment = wdAlignRowCenter p&3~n: Fo  
            tbl.Range.Font.NameFarEast = "楷体" &%@>S.  
            tbl.Range.Font.NameAscii = "Times New Roman" c/`Rv{ *'o  
            tbl.Range.Font.Size = 10.5 A9M/n^61  
        Next txy'7t  
        Set tbl = Nothing Cj# ?Z7}z  
    End With jN2Xoh9  
     09Y:(2Qri  
     )iCg,?SSw=  
    With ActiveDocument <"x *ZT  
         @v n%  
        For i = 1 To .TablesOfContents.Count r8[Ywn <u  
            .TablesOfContents(i).Delete +!<{80w  
        Next EtA,ow  
         mp17d$R-  
         3E:+DF-Z\  
         @1)C3(=A  
        paraTotal = .Paragraphs.Count )-S;j)(+  
        paraCounter = 1 a,\GOy(q{  
         -|_io,eL;  
        LastTitle0No = 0 d4A3DTW  
        LastTitle1No = 0 KPI[{T\`ZM  
        LastTitle2No = 0 kud2O>>  
        LastTitle3No = 0 n_-k <3  
        LastTitle4No = 0 G>W:3y  
        LastTableNo = 0 -(| }:J  
        LastFigureNo = 0 =8x-+u5}rK  
         scR+F'M  
        Dim Sec As Long + )*aS+  
         .;NoKO7)  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) |sV@j_TX  
        If Sec = 0 Then SRc|9W5t*J  
            Exit Sub wm/>_  
        End If vz'<i. Yv4  
         1 xMD )V:  
        k = 0 u %&4[zb  
        Do While (paraCounter < paraTotal) And bContinue mW @Z1Plxs  
            k = k + 1 rOXh?r  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then 5C"A*Fg?;  
                Exit Do 2%t!3F:  
            End If Z%I9:(  
            paraCounter = paraCounter + 1 *mfPq"/  
            If k Mod 20 = 0 Then ,\E5et4  
                Me.lbCounter.Caption = paraCounter jp+#N pH  
                DoEvents IR<*OnKn  
            End If \t]aBT,  
        Loop W[.UM  
         rYk   
         RUlJP  
        Do While (paraCounter < paraTotal) And bContinue ]=m0@JTbG  
             8^"P'XQ  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) iuWw(dJk  
            ShapeHeight = 0 {m 5R=22^  
            ShapeWidth = 0 >s"kL^  
           b ;t b&o  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth ? p^':@=  
             ?=\_U  
            Select Case ParaType r;OE6}L>  
                Case "【】表格内容" @!s(Zkpev  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" u3_AZ2-;  
                Case "章" D[CEg2$y  
                    LastTitle0No = LastTitle0No + 1 Wx-rW  
                    '新一章开始,复位其下属标题编号 u^&,~n@n7  
                    LastTitle1No = 0 vKNxL^x  
                    LastTitle2No = 0 ~ aRcA|`  
                    LastTitle3No = 0 _CXXgF[OCA  
                    LastTitle4No = 0 Pna2IB+  
                     Rj {D#5  
                    k = Val(ttNo) SLI358]$<  
                    If k = 0 Then '非数字编号章节 `jH0FJQ  
                        If ttNo <> NoSeries1(LastTitle0No) Then k0!D9tk  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString wq`\p['Q,  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText ?[S{kMb2  
                        End If }J\KnaKo  
                    Else ED R*1!d  
                        If Val(ttNo) <> LastTitle0No Then g;<_GL  
                            rText = "第" & LastTitle0No & ttString 5 }F6s  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText S[o R q  
                        End If Ov8{ny  
                         / S)&dN`  
                    End If ^W<uc :L7  
                     j=TG&#e  
                    '章段落设置 y{1|@?ii  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 ^tKJ}}  
                    .Paragraphs(paraCounter).Style = "QLNU章节" /A/k13 J  
                    .Paragraphs(paraCounter).Range.Select HH,G3~EBF  
                    Selection.EndKey unit:=wdLine &\s>PvnquX  
                    tc = Replace(rText, vbCr, "") O,!4 W\s  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 5}_DyoV  
                Case "一级标题" &1,qC,:!  
                    LastTitle1No = LastTitle1No + 1 ^tFgkzXm  
                    '新一级标题开始,复位其下属标题编号 d#wK  
                    LastTitle2No = 0 z}*74lhF  
                    LastTitle3No = 0 vCtag]H2@  
                    LastTitle4No = 0 >l|dLyiae  
                     K>fY9`Whm  
                    If ttNo <> NoSeries1(LastTitle1No) Then e+>&? x  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString RBM4_L  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText `(?x@Y>.Ht  
                    End If OgB ZoTT  
                   t"Djh^=y  
                     |&a[@(N:zf  
                    '一级标题段落设置  格式:一、标题内容 .6#Y- iJqc  
                    .Paragraphs(paraCounter).Range.Text = rText _gi?GQj  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" pM'AhzS  
                    .Paragraphs(paraCounter).Range.Select E>6:59 +  
                    Selection.EndKey unit:=wdLine /-jk_8@a  
                    tc = Replace(rText, vbCr, "") t= oTU,<  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 5T;,wQ<  
                Case "二级标题" IEJp!P,E  
                    LastTitle2No = LastTitle2No + 1 \m;"KyP+  
                    '新二级标题开始,复位其下属标题编号 B$cx '_zF  
                    LastTitle3No = 0 WXC}Ie  
                    LastTitle4No = 0 _Vxk4KjP5  
                     *ocbV`  
                    If ttNo <> NoSeries1(LastTitle2No) Then 9Fm><,0'u  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString Gn%gSH/  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText nH]F$'rtA  
                    End If dsJHhsu6  
                     !t 92_y3  
                    '二级标题段落设置 格式:(一)、标题内容 _fQBXG2  
                    .Paragraphs(paraCounter).Range.Text = rText _w>9Z>PR  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" 1]j_4M14aA  
                     9oA.!4q  
                    .Paragraphs(paraCounter).Range.Select DV!) n 6  
                    Selection.EndKey unit:=wdLine S[W|=(f9  
                    tc = Replace(rText, vbCr, "") Oy/+uw^  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False d6hso  
                 _jCjq   
                Case "三级标题" u6(>?r-  
                    LastTitle3No = LastTitle3No + 1 kKg%[zXS  
                    '新三级标题开始,复位其下属标题编号 7lz"^  
                    LastTitle4No = 0 [{!5{k!  
                     $di 8#O*  
                    If Val(ttNo) <> LastTitle3No Then d>qxaX;  
                            rText = LastTitle3No & ". " & ttString /IN/SZx  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText xkzC+ _A  
                         x9!vtrM\Zr  
                    End If ^zr]#`@G  
                    '三级标题段落设置 格式:1. 标题内容  p%6j2;D  
                    .Paragraphs(paraCounter).Range.Text = rText d^.fB+)A3  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" Q.G6 y,KR  
                    .Paragraphs(paraCounter).Range.Select {|J'd+  
                    Selection.EndKey unit:=wdLine 7T3ub3\  
                    tc = Replace(rText, vbCr, "") _ s[v:c  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False ] 1<O [d  
                Case "四级标题" Qv @Z#  
                    LastTitle4No = LastTitle4No + 1 H:HJHd"W  
                     s8<)lO<SV.  
                    If Val(ttNo) <> LastTitle4No Then <e&*Tx<8  
                            rText = "(" & LastTitle4No & "). " & ttString i%)Nn^a;T  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText * F T )`  
                     "?Cx4<nsM  
                    End If enGjom  
                    '四级标题段落设置 格式:(1). 标题内容 H c{0O7  
                    .Paragraphs(paraCounter).Range.Text = rText #7A_p8  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" h .Iscr^~  
                    .Paragraphs(paraCounter).Range.Select X %._:st  
                    Selection.EndKey unit:=wdLine ]h$,=Qf hD  
                    tc = Replace(rText, vbCr, "") "*E%?MG  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False e-#!3j!'  
                 R_2JP C  
                Case "表格标题" icPg<>TQ  
                    LastTableNo = LastTableNo + 1 \k Gi5G]  
                     2!35Tj"RFE  
                    If ttNo <> CStr(LastTableNo) Then $lMEZt8A  
                            rText = "表" & LastTableNo & ". " & ttString } 6Uw4D61  
                            ErrMsg.AddItem "表格编号错误:" & ParaText 4W''j[Y/  
                   z2QZ;ZjvRS  
                    End If @gZ<!g/vza  
                     V5{^R+_)Ya  
                    '表格名称段落设置 格式:表1. 表格名称 C,xM) V^a  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" yS[Z%]bvU  
                    xe = Replace(rText, vbCr, "") ,??%["R  
                    .Paragraphs(paraCounter).Range.Select LGm>x  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 z@0*QZ.y 1  
                    Selection.Range.Text = xe DEw_dOJ(  
                    Selection.EndKey IJA WG  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False WwF4`kxT  
                 >9.xFiq<  
                Case "表格首行" Gq/f|43}@O  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" V3u[{^^f  
                Case "图片标题" 93npzpge  
                    LastFigureNo = LastFigureNo + 1 $3Ct@}=n  
                     MMfcY 3#%  
                    If ttNo <> CStr(LastFigureNo) Then i>C:C>~  
                            rText = "图" & LastFigureNo & ". " & ttString 3:h9cO/9  
                            ErrMsg.AddItem "表格编号错误:" & ParaText zU'\r~c  
                   hd2 X/"  
                    End If $(6 .K -D  
                    '图片名称段落设置 格式:图1. 图名称 )c#m<_^  
                    .Paragraphs(paraCounter).Range.Text = rText THM\-abz  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" |&t 2jD(  
                    .Paragraphs(paraCounter).Range.Select t zhkd G  
                    Selection.EndKey unit:=wdLine ''f07R  
                    xe = Replace(rText, vbCr, "") 0/."R ;  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False kgvB80$4  
                Case "正文" t-$R)vZ}M  
                     '正文名称段落设置 8@|rB3J  
                    .Paragraphs(paraCounter).Style = "QLNU正文" -/.Xf<y58  
               Case "文献条目" * |RQ )  
                    With .Paragraphs(paraCounter) R;_U BQ)  
                        '.Range.Select {<HL}m@kQ  
                        'Selection.ClearFormatting YolO -5  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” *kXSl73 k  
                        .Style = "QLNU参考文献" 0pS|t/h0  
                    End With 7lvUIc?krW  
               Case "图表注解" q1Si*?2W  
                    With .Paragraphs(paraCounter) ~iZMV ?w  
                        .Range.Font.NameFarEast = "楷体" ~_TmS9  
                        .Range.Font.NameAscii = "Times New Roman" <<da TQV  
                        .Range.Font.Size = 9 '小5号字 =x4:jas  
                         l*|^mx^Q  
                        .Alignment = wdAlignParagraphCenter jy] hP?QG  
                        .LeftIndent = 0 b&;1b<BwD  
                        .RightIndent = 0 i~dW)7  
                        .FirstLineIndent = 0 K`nI$l7hg  
                        .LineSpacing = 12 ,f4mFL0~N  
                        .LineSpacingRule = wdLineSpaceExactly :A,V<Es}I"  
                        .LineUnitAfter = 0 6N&S3<c4JO  
                        .LineUnitBefore = 0 -k p~p e*T  
                        .OutlineLevel = wdOutlineLevelBodyText D@i,dPz5Zl  
                        .PageBreakBefore = False lMX 2O2 o  
                        .RightIndent = 0 .Y%)&  
                        .WordWrap = True >69+e+|I  
                        .LineUnitAfter = 0.5 QJ`#&QRp  
                         lGI5  
                    End With :Gh* d)  
                Case Else '|b {  
                    '不作处理 6ZBg/_m  
            End Select a<%WFix  
             ,x?H]a )  
            '含有inlineshape的段落处理 U/2g N H  
            If ShapeHeight > 30 Then VJX{2$L  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 >o=3RB=Fh  
            End If g< cR/  
             -}m# uUqI  
            If (ShapeWidth + ShapeHeight) > 150 Then 5O Ob(  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" bUC-}  
            End If 6EhRCl  
             C^S?W=1=w  
            '段落计数器递 u:pdY'`"#  
            paraCounter = paraCounter + 1 -~A7o3k35  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter %:n1S]Vr  
            Me.txtStatus.Text = ParaText HM])m>KeT  
            DoEvents Y WSo:)LY  
        Loop _XtLO- D  
    End With R$&|*0  
     "msCiqF{z  
    msg = "" hv'~S  
     sD$ \!7:b  
    For i = 0 To Me.ErrMsg.ListCount - 1 h94SLj]  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) 3,bA&c3  
    Next O/wl";-  
     r3l}I 6  
     EdA_Hf  
     }ZEh^zdz8  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg BYEqTwhT&  
    Me.cmdCheck.Enabled = True ~(tZW  
    Me.txtStatus.Visible = True .$DB\jJXjV  
    Me.lbParaType.Visible = False 8 u$Kr q  
     U RDb  
    bContinue = False xa`&/W >  
End Sub oW-Tw@D  
O~g _rcG  
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) >eg& i(C+  
    Dim pTEXT As String )EYsqj  
     AC=cz!3iB  
    pTEXT = ChKRange.Text J'4{+Q_pa  
     j=)Cyg3_%  
    ParaType = "其它" GdavCwJ  
    TitleString = pTEXT >wjWX{&?  
    TitleNo = "N/A" ,9q=2V[GP  
     . *>LD  
    shpCounter = ChKRange.InlineShapes.Count f- pt8  
    If shpCounter <> 0 Then !ZbNW4rIP  
        MaxShpHeight = 0: TotalShpWidth = 0 X6 ~y+ R  
        For i = 1 To shpCounter .9Bimhc6K  
            k = ChKRange.InlineShapes(i).Height +(5H$O{h  
            l = ChKRange.InlineShapes(i).Width Y;je::"  
            If k > MaxShpHeight Then />XfK,c-  
                MaxShpHeight = k e_+`%A+-  
            End If &J_|P43  
            TotalShpWidth = TotalShpWidth + l BBw`8!  
        Next 36JVnW;  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then pr\yc  
            Exit Sub f)q\RJA)X  
        End If D>,]EE-  
    End If y UQ;tTI  
     ^>uzMR!q5  
    '空行 kwdmw_  
    If Len(pTEXT) <= 2 Then VuwBnQ.2k  
        Exit Sub h:(Jes2  
    End If .b]g# Du=  
     {nT !|S)$  
         l!\C"f1o,  
    '是否为表格中的文字 Phl't~k  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then 0k>NuIIP  
        ParaType = "表格内容" p 8BAan3  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) _Kx  /z  
        If k = 1 Then D5)qmu  
            ParaType = "表格首行" Z~ 8Xp  
        End If []0`>rVq  
        Exit Sub R:B-4  
    End If N~ljU;wo-9  
     2](R}  
    '例外情况:脚注 ?6B)Ek,'X?  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then TH/!z,( >  
        ParaType = "脚注" U KF/v  
        Exit Sub 3O<<XXar  
    End If 5oplV(<?*S  
     /a6\G.C5  
    '例外情况:尾注 h[3N/yP  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then .9> e r  
        ParaType = "尾注" jK\2y|&&c  
        Exit Sub x;LyR  
    End If it\{#rb=4  
     f3U#|(%(*  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then P"_x/C(]@J  
        ParaType = "页眉页脚" XZuJ<]}X,  
        Exit Sub ;u,%an<(  
    End If m^h"VH,   
     Z;XR%n8  
     g?UG6mFbE  
    With regEX -B$oq8)n*  
        .Global = True F8Y D:   
         <\?ySto  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" kR6rf_-[  
        If regEX.Test(pTEXT) Then SY["(vP%#  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") TQ" [2cY  
            TitleString = regEX.Replace(pTEXT, "$3") %,MCnu&Z  
            TitleNo = regEX.Replace(pTEXT, "$1") JiP]F J;  
            ParaType = "章" %p"x|e  
            Exit Sub [9a0J):w{  
        End If *%'4.He7V  
         SxC$EQ gL  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" oo3ZYA  
        If regEX.Test(pTEXT) Then ppVjFCv0<  
            ParaType = "一级标题" q^Lj)zmnK  
            regEX.Execute (pTEXT) a2UER1Yp"  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") h|dVVCsN  
            TitleString = regEX.Replace(pTEXT, "$3") z7MJxjH  
            TitleNo = regEX.Replace(pTEXT, "$1") &529.>  
            Exit Sub 7*OO k"9  
        End If y<k-dbr  
          *D F5sY  
        '全角或半角括号中的数字 ~*Ve>4  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" ][:6En}  
        If regEX.Test(pTEXT) Then oScHmGFv  
            ParaType = "二级标题" 6-gxba  
            regEX.Execute (pTEXT) `?rPs8+R  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") @fT*fv   
            TitleString = regEX.Replace(pTEXT, "$5") X.xp'/d  
            TitleNo = regEX.Replace(pTEXT, "$2") XcaY'k#  
            Exit Sub NaG1j+LN  
        End If TF|GGY i  
         R+gh 2 6e  
        '阿拉伯数字  1. 2. 0gHJ%m9s  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" G-Z_pGer^  
        If regEX.Test(pTEXT) Then  ~MyP4x/  
            ParaType = "三级标题" %B3E9<9>U  
            regEX.Execute (pTEXT) >9F,=63A  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 s>~!r.GC  
            TitleString = regEX.Replace(pTEXT, "$3") BkA>':bUr  
            TitleNo = regEX.Replace(pTEXT, "$1") Tx0/3^\>8A  
            Exit Sub B[C2uVEX:  
        End If jN 5Hku[?  
         1 @E<5rp o  
        '全角或半角括号中的阿拉伯数字 ,Zzh.z::D  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" {{f%w$r(  
        If regEX.Test(pTEXT) Then ;f[Ki$7  
            ParaType = "四级标题" =9y'6|>l  
            regEX.Execute (pTEXT) -n!.PsGO>  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") y .S0^  
            TitleString = regEX.Replace(pTEXT, "$5") <X j:c2@  
            TitleNo = regEX.Replace(pTEXT, "$2") 1]fqt[*)  
            Exit Sub XV)ej>A-V  
        End If sL~TV([6/  
         _+wou(1y  
        '表格名称 d4[M{LSl  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" FM0)/6I'x  
        If regEX.Test(pTEXT) Then O\XN/R3  
            ParaType = "表格标题" @pYAqX2  
            regEX.Execute (pTEXT) iYHD:cg)~  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) i+Px &9o<9  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) %H~q3|z  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) fV Ah</aZ  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 `BMg\2Ud*  
            Exit Sub ;_of'  
        End If k  5xzC&  
         ]X Jpy-U  
        '图片名称 HvK<>9  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" WUGPi'x  
        If regEX.Test(pTEXT) Then v/8K?$"q  
            ParaType = "图片标题" b L!NT}y`  
            regEX.Execute (pTEXT) ;QW6Tgt11  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") kxhvy,t  
            TitleString = regEX.Replace(pTEXT, "$3") wX#=l?,K  
            TitleNo = regEX.Replace(pTEXT, "$1") -&M9Yg|Se  
            Exit Sub m=PSC Ib  
        End If 7&:gvhw   
         :De}5BMy  
        '参考文献 wz9V)_V*  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 el.;T*Wn  
        If regEX.Test(pTEXT) Then iF{ eGi  
            ParaType = "文献条目" YQ 4;X8I`r  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") J@H9nw+Q  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") c3P  
            Exit Sub @;fdf3ian  
        End If 8G1Tpn  
         :bW}*0b-  
        prfx = Left(pTEXT, 2) XkCbdb  
        If prfx = "注:" Or prfx = "注:" Then _I&0HRi  
            ParaType = "图表注解" eq "a)QB3m  
            Exit Sub EHcqj;@m  
        End If \UGs_5OT  
         hqFK2 lR  
         %$Wt"~WE"O  
        ParaType = "正文" :!N 5daK  
         O%tlj@?  
    End With J Q%e'  
End Sub ^EjZ.#2l;  
(".`#909  
Sub ConvertListToOrdinary() CP|N2rb  
    Dim st As Paragraph MH'S,^J  
    With ActiveDocument r{#od 7;  
        For i = .Paragraphs.Count To 1 Step -1 G!8O*4+A  
            Set st = .Paragraphs(i) .O3i"X]  
            lst = st.Range.ListFormat.ListString gr4Hh/V  
            If lst <> "" Then |Ag~k? QC  
                st.Range.ListFormat.RemoveNumbers MH?|>6  
                st.Range.InsertBefore lst & " " P@lExF*D1:  
            End If ,@khV  
        Next MQD UJ^I$  
    End With `w@fxv   
    Set st = Nothing "|]'\4UdzQ  
End Sub L<J';#BD  
hp%|n :.G  
Private Sub UserForm_Activate() x{Gb4=?l  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" 9 vmH$  
    Me.lbTotal.Font.Bold = True dU3UCD+2y  
    Me.txtStatus.Visible = False %QVX1\>]  
    Me.cmdCheck.Enabled = True R6h(mPYA  
1V+a;-?  
End Sub +su>0'a  
Ol~sCr  
z\oq b) a  
Sub CheckSuperScript() ul?'kuYk  
    Selection.Find.ClearFormatting +Ys<V  
    Selection.Find.Replacement.ClearFormatting S@z$,}Yc`<  
    With Selection.Find ^%)'wDK  
        .Text = "[【\[[〖](*)[】\]〗]]" ]V<[W,*(5  
        .Replacement.Text = "[\1]" p;"pTGoW i  
        .Replacement.Font.Superscript = True ?< #6=  
        '.Replacement.Font.Color = wdColorBlue ya5;C"   
        .Forward = True <o3e0JCq  
        .Wrap = wdFindContinue dum! AO  
        .FORMAT = True ]N:SB  
        .MatchCase = False -F/"W  
        .MatchWholeWord = False  ?2 u_E "  
        .MatchByte = False 6s Rn_y  
        .MatchAllWordForms = False :tedtV ~  
        .MatchSoundsLike = False Cl6y:21]K  
        .MatchWildcards = True 4G;+ETp  
    End With { e<J} -/?  
    Selection.Find.Execute Replace:=wdReplaceAll Vu* yEF}  
End Sub \d&j`UVY  
KCe =$  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) XGFU *g`kq  
    bContinue = False PnFU{N  
    Set regEX = Nothing zM|d9TS  
End Sub ]V6<h Psi  
(NFq/w%  
Sub CeateOrModifyStyle() `D>PU@s$nT  
' s!9.o_k  
' \"V7O'S)&  
Dim stl As Style aM9^V MOb  
     w[uK3Av  
    Options.Pagination = False go|/I&  
     KR^lmN  
    On Error Resume Next fk5!/>X  
    For Each stl In ActiveDocument.Styles a^~T-;_V  
        stl.Delete q^JJ5{36e  
    Next % rRYT8  
    On Error GoTo 0 bVQLj}%   
     n (C*LK  
    Set stl = Nothing o`+6E q0w  
     >O&(G0!N+}  
    DoEvents d?oupW}uu  
    On Error Resume Next yXh=~:1~  
     k*J}/HO  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph I .p26  
     ]N*q3y|)  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph z~L4BY@z  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph Z WL/AC  
     m[LIM}Gu  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph ;'`T  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph ua0`&,a3I  
     (Vf&,b@U_  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph )xiic3F  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph dFjB &#Tl  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph IU{~{(p"  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph )p~\lM}?d  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph I')URk[  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph E=Ah_zKU  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph 1U;je,)  
     ~x)Awdlu  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph 6m_Y%&   
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph |n \HxU3  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph `ihlKFX  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph A@Z&ZBDg  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph al F*L  
     K,&)\r kzD  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph czi$&(N0w$  
    On Error GoTo 0 6Hi3h{  
    DoEvents }9/30  
     L Bb&av  
    'BaseStyle "6[' !rq0  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False s_hf,QH  
    With ActiveDocument.Styles("BaseStyle").Font rqxoqcZ  
        .NameFarEast = "宋体" p Z/x,b#.  
        .NameAscii = "Times New Roman" Dq)V] Zx  
        .NameOther = "宋体" k_r12 Bu  
        .Size = 10.5 [D[s^<RJs  
        .Bold = wdUndefined .</d$FM JE  
        .Italic = wdUndefined MG*#-<OV.  
        .Subscript = wdUndefined fZ`b~ZBwIj  
        .Subscript = wdUndefined #|v\UJ:Pf/  
         <K=:_  
        .Underline = wdUnderlineNone |qH-^b.F  
        .UnderlineColor = wdColorAutomatic ~%qHJ4C  
        .StrikeThrough = False '\(Us^Ug  
        .DoubleStrikeThrough = False Lp 5LRw  
         R56:}<Y,  
        .Outline = False -N<s =  
        .Emboss = False Uq<c+4)5  
        .Shadow = False ?_%*{]mt(  
        .Hidden = False 3Nd&*QSV  
        .SmallCaps = False .>zXz%p  
        .AllCaps = False \L}Soe'  
        .Color = wdColorAutomatic R(74Px,/  
        .Engrave = False %C" wUAY  
        .Scaling = 100 k:Da+w_'1  
        .Kerning = 1 :@y!5[88!  
        .Animation = wdAnimationNone V k5}d[[l  
        .DisableCharacterSpaceGrid = False @.yp IE\  
        .EmphasisMark = wdEmphasisMarkNone 89v9BWF  
    End With MRxzOs  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat  "9!ln  
        .LeftIndent = 0 b2aPo M=  
        .RightIndent = 0 v,bes[Ik  
        .SpaceBefore = 0 Gw:8-bxS  
        .SpaceBeforeAuto = False X ~*1  
        .SpaceAfter = 0 q{ItTvL  
        .SpaceAfterAuto = False jmxjiJKP  
         a9j f7r1  
        .LineSpacingRule = wdLineSpaceSingle n[|&nv6x  
        .Alignment = wdAlignParagraphJustify #Q.A)5_  
         = 7d{lK  
        .WidowControl = False +;c)GNQ)6:  
        .KeepWithNext = False ( MWh|kp  
        .KeepTogether = False #(j'?|2o%  
        .PageBreakBefore = False !X$e;V"HX  
        .NoLineNumber = False w= |).qQ]  
         hk3}}jc  
        .FirstLineIndent = CentimetersToPoints(0) ]{jdar^  
        .OutlineLevel = wdOutlineLevelBodyText 8)s}>:}  
        .CharacterUnitLeftIndent = 0 7 <*sP%6bD  
        .CharacterUnitRightIndent = 0 6{B$_Usg  
        .CharacterUnitFirstLineIndent = 0 3lcd:=  
        .LineUnitBefore = 0 [w' Y3U\ i  
        .LineUnitAfter = 0 )[|TxXz d  
        .AutoAdjustRightIndent = True ts`c_hH,1'  
        .DisableLineHeightGrid = True ;+'x_'a  
         &W`."  
        .FarEastLineBreakControl = True =H%c/Jty  
        .WordWrap = True vR.=o*!%  
        .Hyphenation = False |Gx-c ,{{  
         '`p#%I@  
        .HangingPunctuation = True 'h53:?~  
        .HalfWidthPunctuationOnTopOfLine = True "-C.gqoB  
        .AddSpaceBetweenFarEastAndAlpha = True _<yGen-  
        .AddSpaceBetweenFarEastAndDigit = True bX6eNk-L  
        .BaseLineAlignment = wdBaselineAlignBaseline mHrt)0\_  
    End With a6wPkf7-H  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False *v 1hMk  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll }b)7gd=  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese F.i*'x0u  
    ActiveDocument.Styles("BaseStyle").NoProofing = False X`/8fag  
     eU&[^  
    '一级标题题样式 >B<jR$`6@  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") \b95CU  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" |k1(|)%G  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False J.W0F #?  
    With ActiveDocument.Styles("QLNU一级标题").Font m/O u $  
        .NameFarEast = "黑体" ~~!iDF \  
        .NameAscii = "Arial Black" H:Y?("k  
        .NameOther = "黑体" u|&"l  
        .Name = "黑体" i2j_=X-  
        .Size = 16              '三号 J,Du:|3o  
        .Bold = True rV*9=  
        .Italic = wdUndefined M>nplHq   
        .Subscript = wdUndefined v^1_'P AXu  
        .Superscript = wdUndefined 15U]/?jv8  
    End With KV0M^B|W  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat 4/vQ/>c2j  
         Aj((tMJNOw  
        .LeftIndent = CentimetersToPoints(0) ]&w8"q  
        .RightIndent = CentimetersToPoints(0) FBJw (.Jr  
        .FirstLineIndent = CentimetersToPoints(0) _LU]5$\b  
         Yj)H!Cp.xD  
        .LineSpacingRule = wdLineSpaceSingle pKJ0+mN #"  
        .Alignment = wdAlignParagraphCenter }K1v=k  
         `n7*6l<k~4  
        .WidowControl = True 7TD%vhbiwi  
        .KeepWithNext = True |l'BNuiU  
        .KeepTogether = True LfOXgn\  
        .OutlineLevel = wdOutlineLevelBodyText aMKi`EW  
         ;*>Y8^K&Q  
        .LineUnitBefore = 0.5 %"B+;{y(5  
        .LineUnitAfter = 0.5 OPOL-2<wiy  
    End With LI1OocY.]  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False )65 o  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll d#xi_L!  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese I!>pHF4  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True *WdnP.'Y  
    DoEvents J:LwO  
     M:K5r7Q!yv  
    '二级 g\^7Q  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Teh _  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" 3]"RaI4Q0  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False 0aj4.H*%  
    With ActiveDocument.Styles("QLNU二级标题").Font MWTzJGRT  
        .NameFarEast = "黑体" q ;a"M7  
        .NameAscii = "Arial Narrow" 1(t{)Z<  
        .NameOther = "黑体" ,'w9@A  
        .Name = "黑体" vncLB&@7  
        .Size = 15        '小三号 z/Z 0cM#  
        .Bold = False "I+71Ce  
        .Outline = False bwN>E+  
        .Italic = wdUndefined }GI8p* ]o=  
        .Subscript = wdUndefined  #~QkS_  
        .Superscript = wdUndefined ZmU7tK  
    End With 'qel3Fs"  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat KnK8\p88\  
        .LeftIndent = CentimetersToPoints(0) 9jW/"  
        .RightIndent = CentimetersToPoints(0) +)YU/41W  
        .FirstLineIndent = CentimetersToPoints(0) MG6taOO!  
         $fZVh%  
        .LineSpacingRule = wdLineSpaceSingle hDBVL"  
        .Alignment = wdAlignParagraphLeft *%'nlAX6%  
         ;U$Fz~rJ  
        .WidowControl = True Iow45R~]  
        .KeepWithNext = True 6?\X)qBI  
        .KeepTogether = True ZyAm:yO  
        .PageBreakBefore = False =E$Hq4I  
        .OutlineLevel = wdOutlineLevelBodyText $p? gai{o  
         C] H'z  
        .LineUnitBefore = 0.5 <4UF/G)  
        .LineUnitAfter = 0.5 1?+%*uoPX  
         zv/owK  
    End With 7HfA{.|m  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False 6WUP#c@{  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll PCKgdh},  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese <g9@iUOI  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True En-BT0o  
    DoEvents h2~b%|Pv  
     kD1[6cJ!=.  
    '三级标题样式 [HO=ii]Wb  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") K6 D3  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" /WqiGkHV*  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False kq +`.  
    With ActiveDocument.Styles("QLNU三级标题").Font <E/"v  
        .NameFarEast = "宋体" N;N,5rxV  
        .NameAscii = "Times New Roman" 6[wAX  
        .NameOther = "黑体" ^}Vx5[  
        .Name = "黑体" e+416 ~X v  
        .Size = 14               '四号 vu7F>{D  
        .Bold = False mtfEK3?2*  
        .Outline = False BhFyEY(  
        .Italic = wdUndefined a(cZ]`s]*  
        .Subscript = wdUndefined v:. `~h/b  
        .Superscript = wdUndefined KlOL5"3  
    End With (rFXzCI  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat o+-G@ 16  
        .LeftIndent = CentimetersToPoints(0) &\Kp_AR  
        .RightIndent = CentimetersToPoints(0) hHXT Sk2  
        .FirstLineIndent = CentimetersToPoints(0) =?9z6=  
         jiAKV0lX W  
        .LineSpacingRule = wdLineSpaceSingle lO)-QE+  
        .Alignment = wdAlignParagraphLeft L{)*evBL  
         y?Vsp<  
        .WidowControl = True .zDm{_'  
        .KeepWithNext = True ?mM6[\DFoT  
        .KeepTogether = True Y9^;TQ+#  
        .PageBreakBefore = False &.D#OnRh9  
        .OutlineLevel = wdOutlineLevelBodyText ? }t[  
         Xh'_Vx{.j`  
        .CharacterUnitLeftIndent = 0 _}G1/`09#  
        .CharacterUnitRightIndent = 0 #i6ZY^+ee  
        .CharacterUnitFirstLineIndent = 2 \M(#FS  
         yex4A)n9"'  
        .LineUnitBefore = 0.5 Owt|vceT  
        .LineUnitAfter = 0 oY;=$8y<q  
    End With )GgO=J:o  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False c ow]qe6K  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll [&_c.ti  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese jbrx)9Z+%  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True (Qf"|3R4  
    DoEvents %N.qu_,IZ  
     1uz7E  
    '四级标题样式 #21t8  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") UB5X2uBv  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" 4<c #3]  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False Fke_ms=I^  
    With ActiveDocument.Styles("QLNU四级标题").Font CEOD$nYc  
        .NameFarEast = "宋体" C{g Y*+  
        .NameAscii = "Times New Roman" 6,J:sm\  
        .NameOther = "宋体" *21foBfqh  
        .Name = "宋体" 22`N(_  
        .Size = 12               '小四号 w]-,X`  
        .Bold = True \~ACWF 7l  
        .Outline = False HzuB.B<  
        .Italic = wdUndefined h 7x_VO  
        .Subscript = wdUndefined Y#[Wv1hi  
        .Superscript = wdUndefined (A<'{J#5,  
    End With fwWE`BB  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat B`I9  
         ??MF8 uv  
        .LeftIndent = CentimetersToPoints(0) @)hrj2Jw  
        .RightIndent = CentimetersToPoints(0) P%%[_6<%M  
        .FirstLineIndent = CentimetersToPoints(0) +#$(>6Zu"{  
         4|yZA*Q^  
        .LineSpacingRule = wdLineSpaceSingle T][r'jWQ  
        .Alignment = wdAlignParagraphLeft sD_"  
         E 0k1yA  
        .WidowControl = True '5V#sq;Z  
        .KeepWithNext = True R\VM6>SN'S  
        .KeepTogether = True =A yDVWpE  
        .PageBreakBefore = False dF (m!P/R  
        .OutlineLevel = wdOutlineLevelBodyText uW@o,S0:  
         Zcq 4?-&  
        .CharacterUnitLeftIndent = 0 )'pc1I  
        .CharacterUnitRightIndent = 0 e 9p+  
        .CharacterUnitFirstLineIndent = 2 W'0(0;+G/j  
         }iu(-{Z  
        .LineUnitBefore = 0 0qdgt  
        .LineUnitAfter = 0 Vy+UOV&v-  
         4pkTOQq_tQ  
    End With ueimTXk  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False \@%sX24D  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll YY? }/r  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese /d/Q uro  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True (txr%Z0E  
    DoEvents d|~A>YZ  
     <;T$?J9  
    '正文校式 +|SvJ  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle")  fa=OeuI  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" hp:8e@  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False 0SJ7QRo|K  
    With ActiveDocument.Styles("QLNU正文").Font R3`Rrj Z  
         ga#Yd}G^~3  
        .NameFarEast = "宋体" 0nX.%2p#Je  
        .NameAscii = "Times New Roman" !Eof7LUE  
        .NameOther = "宋体" F| ib=_)3  
        .Name = "宋体" NEY b-#v  
         UN,y /V  
        .Size = 12               '小四号 wlY6h4c  
         $hCPmiI  
        .Bold = wdUndefined *CnrzrKtQ  
        .Italic = wdUndefined ,vN0Jpf}\8  
        .Subscript = wdUndefined !uno!wUIYd  
        .Superscript = wdUndefined IQ9jTkW l  
         Wd 0$t    
        .Outline = False q%^vx%aL\  
        .Emboss = False q/|WkV `m  
        .Shadow = False q1d'L *   
        .Hidden = False #c2InwZV  
         "-tTN  
        .DisableCharacterSpaceGrid = True Ku  W$  
    End With *, Mg  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat -4}I02  
         0'{`"QD\IW  
        .LeftIndent = CentimetersToPoints(0) %uVbI'n)  
        .RightIndent = CentimetersToPoints(0) 1zz.`.R2U  
        .FirstLineIndent = CentimetersToPoints(0) K9BoIHo  
         4h[S`;D0Vf  
        .LineSpacingRule = wdLineSpaceExactly Gkfc@[Z V  
        .LineSpacing = 20 fUJ\W"qya  
        .Alignment = wdAlignParagraphLeft K% Gbl#  
         JW`Kh*,~<  
        .WidowControl = False DJm/:td  
        .KeepWithNext = False I,0]> kx  
        .KeepTogether = False Q<e`0cu|p  
        .PageBreakBefore = False l:Y$A$W]>  
        .Hyphenation = False O8J:Tw}M*  
         .F*2]xj@"  
        .OutlineLevel = wdOutlineLevelBodyText $ZQ?E^> B  
         ' YONRha  
       Rlq6I?S+  
        .CharacterUnitLeftIndent = 0 guD?~-Q  
        .CharacterUnitRightIndent = 0 2k^dxk~$V;  
        .CharacterUnitFirstLineIndent = 2 INHN=KY{  
         4-YXXi}  
        .LineUnitBefore = 0 [H3~b=  
        .LineUnitAfter = 0 /G>reG,G  
        .SpaceBefore = 0 H=7z d|W  
        .SpaceAfter = 0 wu2AhMGmw  
         1f.xZgO/2  
        .DisableLineHeightGrid = True JMT?+/Qbu  
    End With te+5@k#t  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False E?& x5?  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll 4]\t6,Cz8  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese hVfiF  
    ActiveDocument.Styles("QLNU正文").NoProofing = True #=MQE  
    DoEvents fC$~3v  
     D(GAC!|/]  
    '图片段落样式 JKFV7{ %Gl  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") K%p*:P  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" CwV1~@{-  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False $B iG7,[#  
    With ActiveDocument.Styles("QLNU图片段落").Font SwDUg}M~  
        .Size = 12               '小四号 F[ Itq  
        .Italic = wdUndefined >v+ia%o  
        .Subscript = wdUndefined )~](qL Sl  
        .Superscript = wdUndefined ? }k~>. \  
    End With qwb`8o  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat I)-u)P?2x  
         oc2aE:>X  
        .LeftIndent = CentimetersToPoints(0) ,u,]ab  
        .RightIndent = CentimetersToPoints(0) ,8F?v~C  
        .FirstLineIndent = CentimetersToPoints(0) $=97M.E  
         <N{pMz  
        .LineSpacingRule = wdLineSpaceSingle 's]+.3">L1  
        .Alignment = wdAlignParagraphCenter kRk=8^."By  
        .KeepWithNext = True o6} +5  
        .OutlineLevel = wdOutlineLevelBodyText zn |=Q$81  
         I:~L!%  
        .CharacterUnitLeftIndent = 0 ;5*)kX  
        .CharacterUnitRightIndent = 0 J)l]<##  
        .CharacterUnitFirstLineIndent = 0 aE_)iE|  
         }/Wd9x  
        .LineUnitBefore = 0 WAj26";M(  
        .LineUnitAfter = 0 F7(~v2|  
    End With =](c7HEQf  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False kUJ\AK  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll !n`ogzOh  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese 9iQcK&D 2  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True \bh3&Z'.  
    DoEvents mX8A XWIa  
     Z {ntF  
     ,{C(<1  
    '第X章 c-INVA)  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") EO|r   
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" ,x+_/kqx  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False AJ;Y Nb  
    With ActiveDocument.Styles("QLNU章节标题").Font Q7y6</4f  
        .NameFarEast = "黑体" @"~Mglgw  
        .NameAscii = "Arial Black" y\ nR0m  
        .NameOther = "Arial Black" nI4xK  
        .Name = "黑体" ]` D(/l'  
        .Size = 16 HY]vaA`  
        .Bold = True n7vLw7  
        .UnderlineColor = wdColorAutomatic dkV%Pyj  
        .Outline = False F:/R'0  
        .Italic = wdUndefined "9[K  
        .Subscript = wdUndefined g~L1e5C]z  
        .Superscript = wdUndefined E(T6s^8  
        .Scaling = 100 ksxacRA7\  
        .DisableCharacterSpaceGrid = True p6V`b'*>  
    End With '_n{+eR74  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat ]|q\^k)JU  
        .LineSpacingRule = wdLineSpaceSingle {-rK:*yP'u  
        .Alignment = wdAlignParagraphCenter lQ%]](a6  
        .WidowControl = True P o[u6K2&  
        .KeepWithNext = True cJ&e^$:Er  
        .KeepTogether = True JH~ve  
        .PageBreakBefore = True 6(4o}Sv  
        .OutlineLevel = wdOutlineLevelBodyText (BC3[R@/l  
         yaf&SR@7k{  
        .LeftIndent = CentimetersToPoints(0) jl<rxO?-F  
        .RightIndent = CentimetersToPoints(0) ?lxI& h  
        .FirstLineIndent = CentimetersToPoints(0) b; SFnZa8  
         6e@ O88=  
        .CharacterUnitLeftIndent = 0  ?4 `K8  
        .CharacterUnitRightIndent = 0 Z`xz|:D+  
        .CharacterUnitFirstLineIndent = 0 (n-8p6x(  
         F<?e79},`  
        .LineUnitBefore = 1 dXh@E 7  
        .LineUnitAfter = 0.5 _"Q +G@@  
         -Uz xs5Zl  
        .AutoAdjustRightIndent = False ?ng?>!   
        .DisableLineHeightGrid = True TJ9,c2d+  
        .FarEastLineBreakControl = True +q ]  
        .WordWrap = True g<s[6yA  
    End With %r5&CUE5?  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False }6]V*Kn,  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll h2 Ifq!(:  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese Rg&6J#h  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True s,^?|Eo;0  
    DoEvents 9p!V?cH#8  
     laM0W5  
    '表格标题 W%09.bF  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") &7 }!U  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" ?lb1K'(  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False {6<7M  
    With ActiveDocument.Styles("QLNU表格标题").Font Jkt L|u:k  
        .NameFarEast = "楷体" k@5,6s:  
        .NameAscii = "Arial" G'( %8\  
        .Name = "楷体" qEE3 x>&T]  
        .Size = 10.5 E{r_CR+8  
        .Bold = True vi6EI wZG  
        .Underline = wdUnderlineNone q[]!V0Ek10  
        .Italic = wdUndefined v@k62@;  
        .Subscript = wdUndefined [;VNuF  
        .Superscript = wdUndefined (Jf i 3 m  
        .Color = wdColorAutomatic Do(7LidC5  
    End With RR:m <9l  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat w\Q3h`.  
         9`^VuC'  
        .LineSpacingRule = wdLineSpaceSingle J`O4]XRY  
        .Alignment = wdAlignParagraphCenter CF^7 {g(y_  
        .KeepWithNext = True h*hV  
        .KeepTogether = True gQ h0-Dnw  
        .OutlineLevel = wdOutlineLevelBodyText rsf A.o  
         GI$t8{M  
        .LeftIndent = CentimetersToPoints(0) nJ4h9`[>V  
        .RightIndent = CentimetersToPoints(0) hQBeM7$F_  
        .FirstLineIndent = CentimetersToPoints(0) UD*#!H  
         Cc]s 94  
        .CharacterUnitLeftIndent = 0 lN+N hPF  
        .CharacterUnitRightIndent = 0 o})4Jt1vj  
        .CharacterUnitFirstLineIndent = 0 @yaBtZUp3  
         iQ-;0<=G  
        .LineUnitBefore = 1 9B'l+nP  
        .LineUnitAfter = 0 o lNL|WJ`w  
         BzA(yCu$:  
    End With .jr1<LE  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False w;' F;j~  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll *|Re,cY  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese dv%gmUUf}k  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True n/s!S &  
    DoEvents j:|60hDz^  
6mEW*qp2F  
    '表格首行 2 < &-  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") O6;>]/`  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False ##u+[ !  
    With ActiveDocument.Styles("QLNU表格首行").Font |Xd[%W)  
        .NameFarEast = "楷体" Y[T;j p(k  
        .NameAscii = "Times New Roman" 8N6a=[fv<  
        .Name = "楷体" rK~362|mo  
        .Size = 9 n<CJx+U  
        .Bold = True #rV=!j||  
        .Underline = wdUnderlineNone 1 l\O9D +$  
        .Italic = wdUndefined vD) LRO Z  
        .Subscript = wdUndefined |.:O$/ Tt[  
        .Superscript = wdUndefined 9Pd~  
    End With ;sNyN#  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat  jjvm<;lv  
        .LineSpacingRule = wdLineSpaceSingle 5"y p|Yl  
        .Alignment = wdAlignParagraphCenter ,-c(D-&  
         D +)6#i Y  
        .LeftIndent = CentimetersToPoints(0) c0<Y017sG  
        .RightIndent = CentimetersToPoints(0) 5]; 8  
        .FirstLineIndent = CentimetersToPoints(0) $t 1]w]}d  
         * @G4i  
         N)  {  
        .CharacterUnitLeftIndent = -0.5 ER5Q` H  
        .CharacterUnitRightIndent = -0.5 ^V_acAuS^  
        .CharacterUnitFirstLineIndent = -0.5 v5w I?HE  
         $2>tfKhtA  
        .LineUnitBefore = 0 ~<v.WP<:  
        .LineUnitAfter = 0 X@9_ukdpu  
        .SpaceBefore = 0 )gR14a  
        .SpaceAfter = 0 j Xi<ZJ  
         lIzJO$8cM  
    End With ;y6Jo  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False z}C#+VhQ`  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll 8t}=?:B+{  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese Eg-b5Z);  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True 1y0.tdI(  
    DoEvents "MC&!AMv  
*&UVr  
    '表格内容 j#&sZ$HQ4  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") =]xNpX)  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False 9qXHdpb#g"  
    With ActiveDocument.Styles("QLNU表格内容").Font ~c?yHpZx%  
        .NameFarEast = "楷体" ]vQo^nOo  
        .NameAscii = "Times New Roman" }jiqUBn%  
        .Name = "楷体" yc]ni.Hz  
        .Size = 9 92Ar0 j]  
        .Bold = False Q(k$HP  
        .Underline = wdUnderlineNone ~JLqx/[|s  
        .Italic = wdUndefined < q; ]  
        .Subscript = wdUndefined $'9r=#EH  
        .Superscript = wdUndefined ,l; &Tb=k  
    End With <?qmB }Y  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat o;];ng  
        .LineSpacingRule = wdLineSpaceSingle f` A  
        .Alignment = wdAlignParagraphCenter _5 tw1 >  
         1V+1i)+  
        .LeftIndent = CentimetersToPoints(0) QJdSNkc6  
        .RightIndent = CentimetersToPoints(0) G:WMocyXI'  
        .FirstLineIndent = CentimetersToPoints(0) .&@|)u  
         )r?i^D&4  
        .CharacterUnitLeftIndent = -0.5 #4na>G|  
        .CharacterUnitRightIndent = -0.5 dN |w;|M  
        .CharacterUnitFirstLineIndent = -0.5 l`I]eTo)^  
        .LineUnitBefore = 0 $o]zNW;X  
        .LineUnitAfter = 0 P603P  
        .SpaceBefore = 0 GetUCb%1  
        .SpaceAfter = 0 -& ,NM  
    End With XN=<s;U  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False .[ 1A  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll ~g|e?$j  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese U%k e 5uwP  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True 9d[0i#`:q  
    DoEvents d'[aOH4}  
Q^MB%L;D  
    '图片标题 lBG* P >;  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") D4'XBXmb  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" K:y q^T7  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False [po+a@ %  
    With ActiveDocument.Styles("QLNU图片标题").Font ]; ^OY\,  
        .NameFarEast = "楷体" 0^ E!P>  
        .NameAscii = "Times New Roman" ~BS*x+M  
        .Name = "楷体" ` V^#Sb  
        .Size = 10.5 j {U-=[$'  
        .Bold = True ~d5"<`<^o  
        .Underline = wdUnderlineNone 87<y _P@{  
        .Italic = wdUndefined _"0n.JQg  
        .Subscript = wdUndefined 34;c00  
        .Superscript = wdUndefined >D:S)"  
        .Outline = False n;Iey[7_E`  
        .Shadow = False ljt1:@SN(  
        .Color = wdColorAutomatic iU%Gvf^?'5  
    End With p Hg8(ru|  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat > P0AGZ  
        .LineSpacingRule = wdLineSpaceSingle C4 Wdt  
        .Alignment = wdAlignParagraphCenter ?sS'T7r v  
         p*npY"}v  
        .KeepWithNext = wdUndefined M0]l!x#7  
        .KeepTogether = True "apv)xdW  
        .OutlineLevel = wdOutlineLevelBodyText Qgx~'9   
         W^=89I4]  
        .LeftIndent = CentimetersToPoints(0) er#we =h  
        .RightIndent = CentimetersToPoints(0) lZ) u4_  
        .FirstLineIndent = CentimetersToPoints(0) 2O T6*+D  
         t&P5Zw*B  
        .CharacterUnitLeftIndent = 0 ~:t2@z4p  
        .CharacterUnitRightIndent = 0 &PgdCijGq;  
        .CharacterUnitFirstLineIndent = 0 nr-mf]W&  
         TS[Z<m  
        .LineUnitBefore = 0 ~!&[;EM<bm  
        .LineUnitAfter = 0 B:mlBSH  
    End With ~36c0 =  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False KFfwZkj{  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll  gA[M  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese +] 5a(/m.~  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True ZcWl{e4  
    DoEvents xrX("ili  
CIaabn  
    '目录项 r?X^*o9  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") #[[p/nAy}A  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" R3@iN &  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False "V^jAPDXb  
    With ActiveDocument.Styles("QLNU目录项").Font =~0XdS/1  
        .NameFarEast = "黑体" =u'/\nxCF  
        .NameAscii = "Times New Roman" ~IqT >  
        .NameOther = "Times New Roman" GUp51*#XR  
        .Name = "黑体" u-K 5  
        .Size = 10.5  +;!w;t  
        .Bold = False rSJ}qRXwU  
        .Italic = wdUndefined wcL0#[ )  
        .Underline = wdUnderlineNone Z^~ 6pH\  
        .Color = wdColorAutomatic i x#  
        .Superscript = wdUndefined 8U(a&G6gn  
        .Subscript = wdUndefined =0f8W=d:Vr  
    End With f:UN~z'yr  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat unX^MPpw  
         C,<TAm  
        .LineSpacingRule = wdLineSpaceSingle [KE4wz+s{  
        .Alignment = wdAlignParagraphLeft @<6-uk3S  
         {(q U n  
        .WidowControl = False  ]_pL79y  
        .KeepWithNext = False 7>~iS@7GV  
        .KeepTogether = False  mPD'"  
        .PageBreakBefore = False (i?^g &  
        .NoLineNumber = False @'rO=(-b  
        .OutlineLevel = wdOutlineLevelBodyText Ucy9fM  
         3AL.UBj&}  
        .LeftIndent = CentimetersToPoints(0) y(S0 2v>l  
        .RightIndent = CentimetersToPoints(0) "Jwz.,Y\  
        .FirstLineIndent = CentimetersToPoints(0) tV,zz;* Oe  
         /<2_K4(-{4  
        .CharacterUnitLeftIndent = 0 B~ez>/H^  
        .CharacterUnitRightIndent = 0 gU%GM  
        .CharacterUnitFirstLineIndent = 0 dog,vUu  
         5;Z~+$1  
        .LineUnitBefore = 0 kL3=7t^ 1  
        .LineUnitAfter = 0 $_ i41f[  
    End With *&PgDAQ  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False .iYgRW=T  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll Sh*P^i.]+  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot -)Vj08aP  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese kj#yG"3+  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True %51pfuL  
    DoEvents i :$g1  
     POG5x  
    '参考文献 a;zcAeX  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") PaZYs~EO  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" $+);!?^|:  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False fE:2MW!)*  
    With ActiveDocument.Styles("QLNU参考文献").Font Tc*PDt0C  
        .NameFarEast = "宋体" <?g{Rn  
        .NameAscii = "Times New Roman" `^}9= Q'r  
        .NameOther = "Times New Roman" d{m0uX56  
        .Name = "Times New Roman" p4Y 9$(X  
        .Size = 12 z?aD Oh  
        .Bold = False M@K[i*e  
        .Italic = wdUndefined BxqCV%9o  
        .Subscript = wdUndefined cs5Xd  
        .Superscript = wdUndefined \wCL)t.cX  
        .Underline = wdUnderlineNone =e+go ]87x  
        .UnderlineColor = wdColorAutomatic `Qhh{  
        .Color = wdColorAutomatic @hvq,[   
        .Engrave = False :Rn9rdX  
    End With 7.t$#fzi  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat "osYw\unI  
         {HU48v"W  
        .LineSpacingRule = wdLineSpaceExactly gn%"dfm  
        .LineSpacing = 16 Ll`apKr  
        .Alignment = wdAlignParagraphLeft s^ a`=kO  
        .WidowControl = False |eqDT,4  
        .KeepWithNext = False RW)C<g  
        .KeepTogether = False AK!G#ug  
        .PageBreakBefore = False tc',c},h~,  
        .OutlineLevel = wdOutlineLevelBodyText !v`=EF.  
         O`=Uq0Vv  
        .LeftIndent = CentimetersToPoints(0) o (zg_!P  
        .RightIndent = CentimetersToPoints(0) !:8!\gE ^P  
        .FirstLineIndent = CentimetersToPoints(0) 8xX{y#  
         WDZi @9X_  
        .CharacterUnitLeftIndent = 0 IW#(ICeb  
        .CharacterUnitRightIndent = 0 E$wB bm  
        .CharacterUnitFirstLineIndent = -2 <*+ M BF  
         +x2xQ8#|~~  
        .LineUnitBefore = 0 6xe |L  
        .LineUnitAfter = 0 %'HUC>ChN  
        .SpaceBefore = 0 <b\urtoJ  
        .SpaceAfter = 0 t]ZSo-  
         3{l"E(qqZ  
    End With z)B=<4r  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False tFQFpbI  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll ZZ(@:F  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS Ame %:K!t  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True 4HJrR^  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese V_pBM  
    DoEvents fjFy$NX&>  
-*A'6%`  
    ' xpk|?/6  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") qrkT 7f  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" I}WJ0}R  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False Xy{+=UY  
    With ActiveDocument.Styles("QLNU论文题目").Font c>SeOnf  
        .NameFarEast = "黑体" j$^]WRt  
        .NameAscii = "Arial Black" On^# x]  
        .NameOther = "Arial Black" +\%z y=  
        .Name = "Arial Black" kYAvzuGRb  
        .Size = 16 &g!/@*[Nhh  
        .Bold = False {V8Pn2mlo  
        .Italic = wdUndefined TG9)x|!  
        .Superscript = wdUndefined AL0Rn e N  
        .Subscript = wdUndefined Z7^}G=*  
        .Underline = wdUnderlineNone OOCeZ3yF(  
        .UnderlineColor = wdColorAutomatic &}cie "\L  
        .Color = wdColorAutomatic 9?8`" v  
S(6ZX>wv:  
    End With UU;:x"4  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat d#\n)eGr  
        .LineSpacingRule = wdLineSpaceSingle 7E95"B&w  
        .Alignment = wdAlignParagraphCenter >`:+d'Jv0  
        .WidowControl = True NP8TF*5V  
        .KeepWithNext = True qHCs{ u  
        .KeepTogether = True L DsYr]  
        .PageBreakBefore = True kXr %73s  
        .NoLineNumber = False $#r(1 Ev  
        .OutlineLevel = wdOutlineLevelBodyText  Nt8(  
         wO#+8js  
        .LeftIndent = CentimetersToPoints(0) 1%,Z&@^j  
        .RightIndent = CentimetersToPoints(0) hqPn~Tq  
        .FirstLineIndent = CentimetersToPoints(0) Nz;;X\G I  
         @2gMtf?<  
        .CharacterUnitLeftIndent = 0 g&>Hy!v,  
        .CharacterUnitRightIndent = 0 iIFQRnpu;3  
        .CharacterUnitFirstLineIndent = 0 sfa'\6=O  
         (=j!P*  
        .LineUnitBefore = 1 Z-@}~#E  
        .LineUnitAfter = 1 ShpnFuH  
         Q6K)EwN  
        .BaseLineAlignment = wdBaselineAlignAuto MQ44uHJ  
    End With (zBQ^97]  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False umzYJ>2t  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll 8;8}Oq  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS eW0=m:6  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True tOw 0(-:iq  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese 7,TWCVap  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True ?=kswf  
    DoEvents +b+sQ<w?.  
     %j@FZ )a[  
    '中文摘要 nlW&(cH  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") u $#7W>R  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" .KN]a"]  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False dK: "  
    With ActiveDocument.Styles("QLNU中文摘要").Font }El_.@'T &  
        .NameFarEast = "宋体" <Xx\F56zp  
        .NameAscii = "Times New Roman" 9f\8oJQ  
        .NameOther = "Times New Roman" J~q+G  
        .Name = "Times New Roman" Pc'?p  
        .Size = 12 a"}#HvB+  
        .Bold = wdUndefined Bv8C_-lV/  
        .Superscript = wdUndefined YW<2:1A|  
        .Subscript = wdUndefined TeJ `sJ  
        .Italic = wdUndefined ~\ f^L?m  
        .Underline = wdUnderlineNone WFP\;(YV  
        .UnderlineColor = wdColorAutomatic i7V~LO:gq  
        .Color = wdColorAutomatic iC-ABOOu{l  
    End With 3;NRW+  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat aB^G  
        .LineSpacingRule = wdLineSpaceExactly {O) &5  
        .LineSpacing = 20 cqx1NWlY  
        .Alignment = wdAlignParagraphLeft \]xYV}(FO  
         W1 Qc1T8  
        .WidowControl = False "N]o5d   
        .KeepWithNext = False M;qL)vf  
        .KeepTogether = True s?k[_|)!  
        .PageBreakBefore = False E,7~kd~y`  
        .NoLineNumber = False T;@>O^  
        .OutlineLevel = wdOutlineLevelBodyText rzDJH:W{2  
         l,wN@Nk  
        .LeftIndent = CentimetersToPoints(0) $0T"YC%  
        .RightIndent = CentimetersToPoints(0) 2(Uz9!<V  
        .FirstLineIndent = CentimetersToPoints(0) Z@!W? Ed  
         : !3y>bP)  
        .CharacterUnitLeftIndent = 0 D}sGBsOW  
        .CharacterUnitRightIndent = 0 Cw $^w  
        .CharacterUnitFirstLineIndent = 2 K/`RZ!  
        .LineUnitBefore = 0 )1Nnn  
        .LineUnitAfter = 0  2p>SB/  
         1i:g /H  
    End With YS~t d+*  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False sG2 3[t8  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll Aw;vg/#~md  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS +E|ouFI  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True ?(yFwR,(  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese -P>=WZu  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True ~uadivli  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete % Au$E&sj  
    DoEvents acQN pT  
     RH]>>tJ^e  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ~aAJn IO  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" F|TMpH/  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False sdYj'e:N  
    With ActiveDocument.Styles("QLNU英文标题").Font mndl~/  
        .NameFarEast = "黑体" mthl?,I|  
        .NameAscii = "Arial Narrow" dM{~Ubb  
        .Name = "Arial Narrow" SzX~;pFM0  
        .Size = 16 I^(#\vRW  
        .Bold = True $?AA"Nz  
        .Bold = wdUndefined PMs_K"-K  
        .Superscript = wdUndefined yB%)D0  
        .Subscript = wdUndefined ?3TV:fx"X  
        .Italic = wdUndefined xc.D!Iav  
         Xe;(y "p R  
        .Underline = wdUnderlineNone ?i2Wst  
        .UnderlineColor = wdColorAutomatic g ypq`F  
        .StrikeThrough = False  ii y3  
        .DoubleStrikeThrough = False 8G&+  
    End With R2THL  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat ^85n9a?8  
        .LineSpacingRule = wdLineSpaceSingle (M,VwwN  
        .Alignment = wdAlignParagraphCenter ,$zlw\  
        .WidowControl = True J+jmSK%z  
        .KeepWithNext = False 6L9[U^`@  
        .KeepTogether = False s}9tK(4v  
        .PageBreakBefore = False Uy5!H1u  
        .NoLineNumber = False p''"E$B/(  
        .FirstLineIndent = CentimetersToPoints(0) ggc?J<Dv  
        .OutlineLevel = wdOutlineLevelBodyText KTjlWxD  
         L~y tAZ,  
        .LeftIndent = CentimetersToPoints(0) @B[Cc`IN"  
        .RightIndent = CentimetersToPoints(0) zK4 8vo  
        .FirstLineIndent = CentimetersToPoints(0) ^z}lGu  
         f&|A[i>g  
        .CharacterUnitLeftIndent = 0 NjN?RB/5  
        .CharacterUnitRightIndent = 0 W#I:j: p  
        .CharacterUnitFirstLineIndent = 0 'QojSq   
         V}fKV6 v9  
        .LineUnitBefore = 1 LG {inhbp  
        .LineUnitAfter = 1 k_>Fw>Y  
         nDB 2>J  
    End With UvJuOh+  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False cO+Xzd;838  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll A]Tcj^ #  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS ]/Yy-T#@  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True 8KwC wv  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese <W59mweW#5  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True nVn|$ "r  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete 68<Z\WP  
    DoEvents [Cj)@OC  
R{uJczu  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") ?4[Oh/]R  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" F4E3c4 81  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False RB7AI !'a?  
    With ActiveDocument.Styles("QLNU英文摘要").Font E\~ KVn  
        .NameFarEast = "宋体" a,*p_:~i  
        .NameAscii = "Arial" nIQ&gbfO  
        .NameOther = "Arial" L'XdX\5  
        .Name = "Arial" D`:d'ow~KQ  
        .Size = 12 [~c'|E8Q  
        .Bold = wdUndefined 76A>^Bs\/  
        .Italic = wdUndefined k\sM;bCv7  
        .Superscript = wdUndefined ()M@3={R  
        .Subscript = wdUndefined x2;i< |  
    End With M'zS7=F!:  
     o.3YM.B#  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat {{ *]bGko  
         2FIR]@MQd  
        .LineSpacingRule = wdLineSpaceExactly q7f;ZK=f  
        .LineSpacing = 20 @D~+D@i$TW  
         M&/aJRBS  
        .Alignment = wdAlignParagraphJustify w zqd g  
         }"?nU4q;S  
        .WidowControl = False BBR" HMa4  
        .KeepWithNext = False *Ht*)l?  
        .KeepTogether = False (e>Rot0  
        .PageBreakBefore = False J4v0O="  
        .NoLineNumber = False +6hl@F m(  
         $.Q>M]xH  
        .OutlineLevel = wdOutlineLevelBodyText r<X4ER  
         W .`Xm(y  
        .LeftIndent = CentimetersToPoints(0) 0vuKGjK  
        .RightIndent = CentimetersToPoints(0) dG-or  
        .FirstLineIndent = CentimetersToPoints(0) PN"8 Y  
         4s~HfxY T  
        .CharacterUnitLeftIndent = 0 G/z\ ^Q  
        .CharacterUnitRightIndent = 0 QhX C>)PW  
        .CharacterUnitFirstLineIndent = 2 X') Zm+  
         7e c0Xh1  
        .LineUnitBefore = 0 ]osx.  
        .LineUnitAfter = 1 =vr Y{5!>  
         / $9 :L  
    End With 6UW:l|}4#2  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False R'I_xjC  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll &^7uv0M<y  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS $HBT%g@UN  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False ]oeuIRyQ  
    DoEvents Q:kVCm/;  
@>G&7r:U  
    Options.Pagination = True l{6` k<J(  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." z_Wm HB  
    DoEvents UiR,^/8ED  
    ActiveDocument.Repaginate 2:iYYRrg  
p2x1xv  
End Sub 0SMQDs5j  
& &" 'dL  
i#RElH  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: \f/#<|Hm  
', sQ/#S  
用VBA控制WORD自己修订学生毕业文的格式。 AhvvuN$n%  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

lPY@{1W  
r\(v+cd  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 ;)?( 2 wP  
第6车皮 AH^e]<2-  

5G#$c'A{4  
,yICNtP  
第9车皮 AYcgi  
/ |GT\X4o  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 G}VDEC  
o@9+mM"B)  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 ^gOww6$<  
r<c #nD~K  
Main2.bas XE1$K_m  
qZ*f%L(  
Attribute VB_Name = "SubMain" fN)x#?  
Option Explicit q$gz_nVq,b  
v^SsoX>WMH  
'采集文件与临时文件 s\gp5MT  
Public Const TmpFile As String = "d:\30-0600.dat" *%\mZ,s"  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 oQT2S>cm^  
:g2  }C  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long *KJB>W%@uM  
Public hBCFile As Long  '记录采集参数的文件 NQX>Qh 2  
Public Const TmpBMP As String = "d:\1.bmp" X*F_<0RC1  
Public hTmpFile As Long bb;(gK;F  
W;zpt|kAH  
M-J<n>hl  
'采集窗口参数常量 S`m,S4-eD  
Public Const FrameH As Long = 280& XJgh>^R^  
Public Const FrameW As Long = 768& NvJV</l6 A  
Public Const pFrameSize As Long = FrameW * FrameH R>2IRvY(  
rkDi+D6`q  
'标志区范围,用于识别车辆 E  T:T7  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X |0sPka/u16  
Public Const mkW As Integer = 28  '识别标志立柱宽度 -\#lF?fzb  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) "3fBY\>a  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) L0Y0&;y|R  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 M0L&~p_F  
'车缝检测位置常数 ~$<UE}qp  
Public Const sSize As Long = 32& ;+U<bqL6  
Public Const sPos As Long = 310& |sIr?RL{C  
Public Const sPosL As Long = 200& pJBg?D  
Public Const sPosR As Long = 500& +q{[\#t5  
'车缝检测框位置 nPFwPk8=M  
Public Slice(1 To sSize, 1 To FrameH) As Byte ez\eOH6  
Public SliceL(1 To sSize, 1 To FrameH) As Byte khx.yRx  
Public SliceR(1 To sSize, 1 To FrameH) As Byte a460|w6  
Public avSL As Integer, avSLR As Integer, avSLL As Integer JoZ(_Jh%m  
~_>cM c  
Qz,|mo+  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 aD9q^EoEs  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 d'"r("w#  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 B=n[)"5fBO  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long * geN [ [  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte T\9~<"P^  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 q0&$7GH4  
5\ hd4  
&|9.}Z8U  
j1*f]va  
'一次连续采集的帧数 /_t|Dry015  
Public tFrames As Long 9b"MQ[B4#a  
W:`#% :C  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 qMP1k7uG)  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 y('k`>C  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize |3shc,7  
h3!$r~T!a:  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte eC! #CK  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte =\};it{u  
Public pWorkSpace(1 To FrameW * FrameH) As Long 'yY>as  
Public Const pBufferSize As Long = FrameW * FrameH * 2 wL}l`fRB  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 };,/0Fu  
jlqv2V7=/  
Public hBoard As Long   '采集卡标识 }Fa%%}  
Public mBufferAddr As Long  '缓存地址 *?t%0){  
Public BufferSize As Long  '缓存大小(字节) i"r!w|j  
Public iCurrentCard As Long MS3=~*+  
Public CapStatus As Long ,.tfWN%t\  
Public iFrames As Long G2:%g(  
Public currentBr As Byte, currentContr As Byte mi,&0xDe a  
9GU]l7C=z  
Public hMEM As Long, mStatus As Long =*Z5!W'd  
Public Const hMemSize As Long = pFrameSize * 4 4!.(|h@  
Public hMemWork As Long H8{ol6wc)6  
Public Const hMemWorkSize As Long = pFrameSize * 5 s?rBE.g@}  
iW%8/$  
$}GTG'*.  
!H@0MQ7  
'串口接收轨道衡数据 t2>fmQIQ  
Public WeightFromCom As String lg$zG a?  
Public bReceiveComplete As Boolean Hfym30  
h-#1U3d  
k; ZxY"^  
Public Type GrayBMPHeader P7.'kX9  
  Tag As Integer  ?K_ '@  
  FileLength As Long    '文件大小 |[$~\MU  
  Reserve1 As Long S( ^.?z  
  DataOffset As Long    '图像数据偏移量 X4|4QgY  
  BMPHeaderSize As Long  '文件头长 YA:nOvd@O  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… ;# uZhd  
                        'the following sizes are possible: ?r=jF)C<'  
                        '28h - windows 3.1x, 95, nt, … 1} %B%*N  
                        '0ch - os/2 1.x U_B(( Z(g  
                        'f0h - os/2 2.x T,%j\0  
%NHkDa!  
  ImageWidth As Long           '图像宽(像素数) pkgjTXR2b  
  ImageHeight As Long          '图像高(像素数) *L4`$@l8  
  PlaneNumber As Integer  '图像层数 Cbm\h/PXl  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap O+vS|  
                                        '4 - 16 color bitmap J h&~ToF !  
                                        '8 - 256 color bitmap 5PT5#[  
                                        '16 - 16bit (high color) bitmap uXjP`/R|  
                                        '24 - 24bit (true color) bitmap ntVS:F  
                                        '32 - 32bit (true color) bitmap a<~77~"4wn  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) r^Zg-|gr  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) yQNV@T<o  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) `=lc<T^  
                                    '3 - bitfields (also identified by bi_bitfields) vy9 w$ls  
  IMAGESIZE As Long  '图像数据字节数 ~;]W T  
  hResolution  As Long  '水平分辩率  像素数/米 8s{?v &p  
  vResolution  As Long  '垂直分辩率 (kv ?33  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 *Hz^K0:8(  
  ImportantColors As Long @p6<Lw_E  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 )wvHGecp*  
End Type N$>^g"6 o  
J aTp} #  
?a(L.3 E  
Gh.[dF?  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader 42J {aJVH  
Public sRECT As RECT p Z: F:  
/U&Opo {aO  
BZ!v%4^9  
Public conn As ADODB.Connection RTh`ENCKR  
Public rsTrain As ADODB.Recordset }7E^ZZ]f  
Public rsOperater As ADODB.Recordset \%]I{  
Public rsGoods As ADODB.Recordset h:Gu`+D>W  
Public rsGood2 As ADODB.Recordset "ZM4F?x  
Public rsSender As ADODB.Recordset kE9esC 3  
Public rsReceover As ADODB.Recordset G+UMBn  
Public rsTrainTMP As ADODB.Recordset ngohtB^]  
-h|B1*mt  
eqw0]U\pv  
'打开采集卡 R_XR4)(<  
'设置参数 )G^ KDj"  
'设置为实时单帧采集到缓存方式 l vMlL5t  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 o%9*B%HO/  
?']5dD  
#|&Sc_#4)  
Sub Main() aE;le{|!({  
  Dim i As Integer, status As Long 1 i[\T  
     }G4 z tiuG  
   InitBMPinfo Qx;\USv  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 }X*Riu7gk  
    BMPHeader.Tag = &H4D42 C CBfKp  
    BMPHeader.ImageWidth = FrameW SN7"7joP<  
    BMPHeader.ImageHeight = FrameH FCi U  
    BMPHeader.BMPHeaderSize = &H28 d)4 m6  
    BMPHeader.PlaneNumber = 1 J_x13EaV0  
    BMPHeader.bpp = 8 z|E EVNFd&  
    BMPHeader.Compression = 0 }J">}j]/  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 bef_rH@`  
    BMPHeader.vResolution = &H1274 p$O x'A4  
    BMPHeader.ColorsinBMP = 256 WmY``  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP 26&'X+n&  
    BMPHeader.DataOffset = Len(BMPHeader) AP77a*@8  
    For i = 0 To 255 S"wR%\NIp  
      BMPHeader.Pallate(i) = RGB(i, i, i) }by;F9&B  
    Next i n8*;lK8  
    BMPHeader.IMAGESIZE = FrameH * FrameW QnZcBXI8  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE [W %$qZlP  
q\m2EURco  
+ gtrt^:]l  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) V=:'SL*3|  
     -gSUjP  
    BMP1.ImageWidth = FrameW 1N7Kv4,  
    BMP1.ImageHeight = FrameH * 2 91 =OF*w  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight wiz$fj  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE \b%kf99  
X.hm s?]  
  '确定标志位置,为pilarX, pilarY确定初始值 F a'k0/_j  
   PilarW = mkW Oo"^%F~%  
   PilarH = mkH  '此两项为固定值 ):i&`}SY  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) ~0beuK&p  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 Llr>9(|  
   .pvi!NnL-  
   B2-V@06  
  '连续采集记录文件 bFe+m1Q_  
  ' 建立一个缓冲区为页对齐方式的文件 Zt.'K(]2h  
  If Dir(TmpFile) <> "" Then ?c[*:N(  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ oD<k MK  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) Jn{OWw2  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 \,u_7y2 c  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 ]]Cb$$Td  
  Else ~//fN}~R  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ =c/wplv*  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) ne 4Q#P  
  End If $5Xh,DOg  
  If hFile = 0 Then dZi"$ g  
    MsgBox TmpFile & ": File Open Error", vbOKOnly gw, UQbnu  
    Exit Sub Vx~,Uex0+  
  End If s2Mb[#:a"  
  '采集参数记录文件 1P~X8=9h  
hBCFile = FreeFile() UrqRx?#  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile cWoPB _  
   5$V_Hj  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 S H!   
If hMEM = 0 Then :yUEkm8  
    fStatus = GetLastError 0NS<?p~_S  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ .Fdgb4>BXX  
     & "请向技术人员报告该错误代码。", vbOKOnly bbrXgQ`s+w  
    CloseHandle hFile xuqv6b.  
    Exit Sub $GlWf  
End If 9 FB19  
.zi_[  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) {zMU#=EC  
If hMemWork = 0 Then ^J$2?!~  
    fStatus = GetLastError !o:f$6EA~C  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ |&RU/a  
     & "请向技术人员报告该错误代码。", vbOKOnly ;kY(<{2  
     '释放已成功分配的内存 KXx32 b,~  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) XUz3*rfs  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) Q_[ 3`j l  
     q@[Qj Gj@  
    CloseHandle hFile 5H*\t 7  
    Exit Sub ^s|6vd;PD=  
End If O8h%3&  
D9 g#F f6  
' Test writing xai*CY@cQ  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& 0u;4%}pD  
     ogyTO|V=  
   '初始化采集卡参数 _d5QbTe  
   iCurrentCard = -1 d3D] k,  
   hBoard = okOpenBoard(iCurrentCard) 19w*!FGX  
   Debug.Print hBoard +j< p \Kn>  
   If hBoard = 0 Then Zl^\Q=*s  
      ExitGrabber FoN|i"*l  
      End B}lvr-c#  
   End If 7@D@ucL  
   okGetBufferSize hBoard, mBufferAddr, BufferSize 0*f)=Q'  
   If mBufferAddr = 0 Then -[cTx[Z,  
     MsgBox "缓存不存在!" U4d :] z  
     ExitGrabber \WxukYH  
   End If P-?0zF/T$  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) 7pe\M/kl  
   03q 5e  
   gt@m?w(  
   currentBr = 128: currentContr = 128 MF5[lK9e  
   '设置视频输入参数 Tf'hc]`vS  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2  |y(Q  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input 9[<)WQe6M  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 k?+?v?I =  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 KrQ1GepJ  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 KV(Q;~8"X  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 A~)D[CV  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) s.$3j$vT 8  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) <J) ]mh dm  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) ?l9XAW t\  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 #d6)#:uss  
   4 o Fel.o  
   '设置采集参数 nAv#?1cjz  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 g:hjy@ w  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 \W~ N  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 k$blEa4  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 ,J+}rPe"sf  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 F(>Np2oi6  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 Zy`m!]G]80  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 N sXHO  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 'Gj3:-xqL  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 Q+[n91ey**  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 MN\HDKN  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 ]n6#VTz*  
   .(K)?r-g5  
   8Vr%n2M  
   okCloseBoard hBoard t'n pG}`tE  
   Sleep 50 6 (]Dh;gC  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 JRB9rSN^  
   \NPmym_ 6J  
   '设置数据传送方式 EV]1ml k$  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 ]'&LGA`  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 " &Y`+0S8  
   ;ub;l h3  
   sRECT.Right = -1   '用于获得当前设置值 ;r<^a6B  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) qLD ?juas  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom R!}H;[c  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 ZOh`(})hy  
   sRECT.Left = 0 d YJ(!V&  
   sRECT.Top = 0 r>>%2Z-P  
   sRECT.Right = sRECT.Left + FrameW c2l@6<Ww  
   sRECT.Bottom = sRECT.Top + FrameH * 2 ,o86}6Ag  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) F3On?x)  
   vS;RJg=  
   sRECT.Right = -1   '检查新设置值 MTuV^0%jD  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) k\5c|Wq|g  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom Tp/6,EE  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) bCRV\myd`  
   8\+uec]k  
   If TESTSignal = False Then ]Sf]J4eQ  
      'ExitGrabber G<65H+)M\  
   End If Cd#(X@n  
   (A9Fhun  
   O%Xf!4Z  
   *4\:8  
   '设为实时采集状态 +^60T$  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) ~vm%6CABM  
   LSL/ZvSP  
   ]cHgleHQ  
   '单帧采集 m*&]!mM"0G  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 o#3ly-ht  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) d,k!qjf=r  
   okCaptureTo hBoard, BUFFER, 0, 1 'single Q /U2^  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 cr7 }^s  
   '   Sleep 20 gb[5&> (#  
   'Loop NcBIg: V\c  
   okGetCaptureStatus hBoard, True M\uiq38  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize + %<(E  
   '写入768*576测试图象 DX#Nf""Pw  
   ArrayToBMP TmpBMP mE+*)gb:Rd  
   C0T;![/4A  
   '打开数据库 p|U?86 t  
   Set conn = New ADODB.Connection XO.jl"xu  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ <? q?Mn  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ xQ7l~O b  
      "; Mode=Read|Write" Cio 1E-4  
   conn.Open n(1l}TJy  
   -_=nDH  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) 0q()|y?}  
   frmRecord.Visible = True f,U.7E  
   frmQuery.Visible = True .s?L^Z^  
   Load frmReceiveFromComm <sb~ ^B  
   &* M!lxDN  
   '调试参数 P) Jgs  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then {'7B6  
     SignalBox.Visible = True  dm\F  
   End If kMIcK4.MH  
   If InStr(UCase(Command()), "/COMM") > 0 Then ha]VWt%}  
     frmReceiveFromComm.Visible = True G/)O@Ugp  
   End If V(H1q`ao9  
n@<YI  
End Sub BtkOnbz8X  
XWBA^|-N  
Sub ExitGrabber() Ua:}Vn&!  
  '关闭数据库 )1?y 8_B  
  '关闭采集卡 t% d Z-Ym  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) &GpRI(OB/+  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) LBw1g<&  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) |mZxfI  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) (nQ ^  
  okStopCapture hBoard p_RsU`[  
  okCloseBoard hBoard KI"#f$2&  
  CloseHandle hFile ;AG8C #_  
  Close #hBCFile `KZm0d{H  
  conn.Close ~[t[y~Hup  
  End d[iQ` YW5  
End Sub 3#LlDC_WC  
h79}qU  
Function ArrayToBMP(ByVal File As String) qU \w=  
Dim BytesWrite As Long /CrSu  
q }3`|'3  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ 5AFJC?   
  CREATE_ALWAYS, 0&, 0&) lU8l}Ndz"  
{&&z-^  
If hTmpFile = 0 Then pC#E_*49  
   ArrayToBMP = False 4>wP7`/+y  
   Exit Function ; 5*&xz  
End If ^ gdaa>L  
)*u8/U  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 'NWfBJm  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& =>m<GvQz  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN A @i  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& /T"+KU*  
_P!m%34|  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN t*p71U4+I  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& KYB`D.O   
y'3rNa]G1  
If BytesWrite < pFrameSize Then l[dK[4  
  ArrayToBMP = False =}~hWL  
End If *I B4[6  
K%t*8 4j  
CloseHandle hTmpFile KqHyG  
xB@ T|EP  
End Function j`EXlc~  
p/ ,=OaVU  
Function ArrayToBMP1(ByVal File As String) Sh/08+@+L:  
C"y(5U)d  
Dim BytesWrite As Long x'8x   
l|u>Tb|V  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ 8'[~2/  
  CREATE_ALWAYS, 0&, 0&) })'B<vq  
FUiRTRIYe  
If hTmpFile = 0 Then i}cRi&2[  
   ArrayToBMP1 = False 0 j^Kgx  
   Exit Function % aP!hy  
End If wi!?BCseq  
l5~os>  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 9=s<Ld  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& A[B<~  
><4< yj1  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN QFA8N  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& hqD*z6aH  
&j;wCvE4+  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN ___~D dq  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0&  \__i  
kpuz]a7pK  
If BytesWrite < pBufferSize Then ~?l | [  
  ArrayToBMP1 = False ~$c\JKH-  
End If \UA[  
%7hrk  
CloseHandle hTmpFile VMZMG$C  
]>!K 3kB  
End Function Z*F3G#A  
[:dY0r+  
'使用该过程建立的文件要求在用后关闭 )L? P}$+  
Public Function ArrayToBMP2(File As String) As Boolean %mW{n8W3{  
gM&{=WDG6  
Dim BytesWrite As Long ldf\;Qk  
8C40%q..  
ArrayToBMP2 = True 7 W5@TWM  
P1!qbFDv8  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ W"scV@HKu  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) { $oj.V 4  
1Yq!~8  
If hTmpFile = 0 Then vz&|J   
   ArrayToBMP2 = False h0EEpL|\  
   Exit Function _T60;ZI+^  
End If z'Hw  
a,,exi  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN ?d*z8w  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& u*eV@KK!  
_O?`@g?i  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN "MeVE#O  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& GblA9F7  
0S"mVZ*P  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN nkPh,X\N0  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& KR} ?H#%  
[+Iz@0q  
If BytesWrite < pFrameSize Then I{|O "8  
  ArrayToBMP2 = False Q3'llOx  
End If Cp\6W[2+B  
6bg ;q(*7  
CloseHandle hTmpFile Z{*\S0^ST  
~g91Pr   
End Function 10Q ]67  
XPc^Tq  
Private Function TESTSignal() As Boolean p%ki>p )E|  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long i$Ul(?  
PI {bmZ  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) ,~U>'&M ;  
Xg6Jh``  
If extsign = 1 Then -OV&Md:~  
   TESTSignal = True 4Z3su^XR  
Else G/E+L-N#`  
    If extsign = 0 Then 2Ah#<k-gC;  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly }J}-//[A  
        TESTSignal = False &C_j\7Dq  
        Exit Function l$KA)xbI  
    End If RH W]Z Pr<  
End If `bq<$e  
X0HZH?V+  
'测试视频输入类型 <sbu;dQ`  
'video type \  #F  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 70?\ugxA  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) hgG9m[?K  
If videotype = 1 Then hPkp;a #  
        '"隔行信号(Interlaced)" ic:zsuEm  
Else 8S TvCH"Z_  
   If videotype = 0 Then '@v\{ l  
       '"逐行信号(Non-interlaced)" 'ms-*c&  
   Else &A Nf!*<\E  
     If videotype = -1 Then &u ."A3(  
       ' "不支持" .^`{1%  
     End If zpn9,,~u  
   End If (MM]N=Tw4  
End If 9c bd~mM{  
WCZjXDiwJ  
'测试垂直扫描线数 qz_7%c]K[  
'video scanlines ]h`&&Bqt  
scanlines = -1 B`)BZ,#p  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) kt#fMd$  
    If scanlines = -1 Then bIDj[- CDG  
        ' "不支持" [>I<#_^~  
    Else NWESP U):w  
        'Trim(Str(ScanLines)) + " 行数/幅" (XTG8W sN  
    End If J3V= 46Yc  
K8|r&`X0  
'测试帧频 tAd%#:K  
'video field frequency ,Zx0%#6  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) LVM%"sd?  
    If fieldfrq = -1 Then P8:dU(nlW  
        'lblSignal(8) = "不支持" BKCiIfkZ  
    Else ,&A7iO  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" s[>,X#7 y  
    End If 8Al{+gx@?  
End Function Qp5VP@t  
n&4N[Qlv,  
-m zIT4  
Sub PicIdentify() :LQYo'@yB  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 N{!i=A  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息  tU5zF.%  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 P= BZ+6DS  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 gx/,)> E.  
KfEx"94  
  Dim fPTR As Long, cFrame As Long QE+g j8  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer 2QcOR4_V  
     &&8x%Pml  
5DU6rks%  
cFrame = 0 Pbn*_/H  
y-b%T|p9  
/{J4:N'B>  
Do While cFrame < tFrames 9.M4o[  
   z|J_b"u4  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) nF]W,@u"h  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) *8 A  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize ?=msH=N<l  
   tKuwpT1Qc  
  frmRecord.RText.Text = Str(cFrame) AR%4D3Dma  
  frmRecord.RText.Refresh df+l%9@  
       KZY}%il!`  
  If CheckMark = True Then *KF#'wi  
   ArrayToBMP TmpBMP `{h*/Q  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) D/gw .XYL  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" qBQ?HLK-  
   r|8d 4  
   DrawSlice hh%-(HaLX3  
   &m7]v,&  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) @i_FTN  
   'If i = vbNo Then ?zMHP#i  
   '  Exit Do ~vhE|f  
   'End If  7aRi5  
   'cFrame = cFrame + 1 H2 {+)  
   _.Nbt(mz  
  End If 2a)xTA#  
  DoEvents 05#1w#i  
  cFrame = cFrame + 1 Lg+Ac5y}`  
Loop |^I0dR/w:  
End Sub 1-uxC^u?|#  
H|<[YYk  
%wg -=;d4  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean :S83vE81WK  
2zA4vZkbcw  
'如标志区模式反差存在则为TRUE,否则返回FALSE J4C.+![!Ah  
?!:ha;n  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long 4Z=_,#h4.  
CheckMark = True NA`SyKtg_  
   {z5--TogJ  
'复制标志区  DPxM'7  
For i = 1 To mkH [S%_In   
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW Xl{P8L  
Next i H2 \;%K 2  
|s(FLF-  
For j = 1 To PilarW * PilarH / 2 |A~jsz6pI  
   mTop = mTop + MKpilar(j) :r,pqnH_  
Next j P1 8hxXE3  
ua$GNm  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH eK=xrk  
   mBot = mBot + MKpilar(j) ,-c6dS   
Next j {lDd.Fn  
<al( 7  
mTop = mTop / PilarW / PilarH * 2 =o(5_S.u;  
mBot = mBot / PilarW / PilarH * 2 `AtBtjs RV  
SM#]H-3  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 ^mDe08. %b  
U$.@]F4&  
'平均值极值化 Zn+.;o)E<  
  For j = 1 To PilarH * PilarW On:il$MU  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) 4[r0G+  
  Next j uBKgcpvTs  
   ~H_/zK6e  
mTop = 0: mBot = 0 /SR*W5#s  
For j = 1 To PilarH * PilarW / 2 #Y`~(K47  
  mTop = mTop + MKpilar(j) )9G[dDeC  
Next j $9#H04.x  
(`>+zT5aH  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW k Z .gO  
  mBot = mBot + MKpilar(j) sf qL|8  
Next j ^zmG0EH,  
kx{{_w  
Qj.#)R  
  mTop = mTop / PilarH / PilarW * 3 /4V#C-  
  mBot = mBot / PilarH / PilarW * 3 )[6U^j4  
   H5B:;g@  
IqHV)A  
If mBot > iWhite And mTop < iBlk Then .GXBc  
  CheckMark = True YUD`!C  
Else zkrM/ @p#  
  CheckMark = False Yui3+}Ms  
End If 6 7.+ .2  
End Function 85$m[+md  
8 +/rlHp  
Sub Capture1Frame() {X+3;&@  
   okCaptureTo hBoard, BUFFER, 0, 1 'single mHTXni<!  
   okGetCaptureStatus hBoard, True %D34/=(X  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize KeB"D!={;  
End Sub TDKki(o=~  
9 ';JXf$  
Tbih+# ?  
Sub CopyMark(iBlk As Integer, iWhite As Integer) l"T44CL;  
'复制标志区并返回标志区暗区与亮区的亮度平均值 }O5i/#.lR  
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 ".V$~n(  
   L(<*)No  
'复制标志区 -H@:*  
For i = 1 To mkH =l;ewlU  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW 81F/G5  
Next i (!aNq(   
29"'K.r  
For j = 1 To mkW * mkH / 2 yCR?UH;  
   mTotal = mTotal + MKpilar(j) Oh`69 k  
Next j O2E/jj  
@Zu5VpJ  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 ]L $\ #  
Jy:Qlx`  
mTotal = 0 ||= )d&  
For j = mkW * mkH / 2 + 1 To mkW * mkH A]0 St@  
   mTotal = mTotal + MKpilar(j) J.b9F:&}  
Next j ~s*)f.l  
AaOu L,l  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 ?0?#U0(;u  
5"@*?X K^  
'背景亮度 M61xPq8y5  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW e0zq1XcZ  
  For i = 1 To 4 * FrameW [< ?s?Ci  
    bsTotal = bsTotal + BsLine(i) jDfC=a])  
  Next i m|n%$$S&  
  bsAV = bsTotal / FrameW / 4 gIa+5\qYY  
]EBxl=C}D  
End Sub HxV=F66"  
ZR B)uA)5=  
nI-w}NQ  
Sub AdjIMGbright(Optional bInit As Boolean = True) Y|f[bw  
Qf+\;@  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) ["93~[[^  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 - t'jNR'  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 ?k&Vy  
     Gbr=+AT  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer cWsNr'MS*  
   @Z %ivR:  
  '按标准亮度与对比度采集一帧,确定背景亮度 ^z IW+:  
  currentContr = 128   '初始对比度 mbxZL<ua  
  currentBr = 128   '初始亮度 O)*+="Rg  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 2!m/  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 HGs $*  
  DoEvents +H-6eP  
  Capture1Frame T{.pM4Hd  
  '获得图像上缘4行象素 jyUjlYAAv`  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW f!uwzHA`?  
  CopyMark iBlack, iBright   '图像标志区亮度  :D6 ON"6  
  For i = 1 To 4 * FrameW Q800y??&J  
    bsTotal = bsTotal + BsLine(i) _Xc8Yg }`  
  Next i b9J_1Gl]  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 L-WT]&n_  
   jh%Eq+#S  
  Select Case bsAV m@2QnA[ 4  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 z6=Z\P+  
       currentBr = 150 <I\/n<*  
       currentContr = 60 gnOt+W8  
     Case 61 To 80   '有可见背景 kR-SE5`Jk  
       currentBr = 140 8,4"uuI  
       currentContr = 70 ]d0BN`*U.  
     Case 81 To 100  '有清晰背景 mb TEp*H  
       currentBr = 128 VU(v3^1"  
       currentContr = 80 rdP[<Y9  
     Case 100 To 150  '有明亮背景 %KhI >O<  
       currentBr = 140                '5:30-6:00钟实测数据 -`kW&I0  
       currentContr = 50 v5#j Z$<F  
     Case 151 To 180 ^e_hLX\SW  
       currentBr = 130 D9=KXo^  
       currentContr = 60 feDlH[$  
     Case 181 To 220  '背景全为白色 wr/"yQA]  
       currentBr = 110  EoR}Af  
       currentContr = 130 %K lrSo  
     Case 221 To 255  '背景全为白色 EzM ?Nft  
       currentBr = 100 3 *"WG O5  
       currentContr = 100 C=L>zOZ  
  End Select !Vn\u  
   Z, Y b&b  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 e "4 ''/  
        Case 100 To 150 4K#>f4(U`g  
          currentBr = currentBr - 10 {OkV%Q<  
        Case 151 To 255 zm5]J  
          currentBr = currentBr - 20 |`2RShu  
  End Select $aD VG})  
   |O\s|H  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 a`E#F] Z  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 qpP=K $  
End Sub -hGk?_Nqa/  
@sW24J1q+  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) (z {#Eq4  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long D rUO-  
     )9{0]u;9  
    For i = 1 To 8 RUnSCOdX  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& mZS >O_E  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& ;~ )5s'  
    Next i :841qCW  
     mI-]/:  
    For j = 1 To 1024 J s@hLP `  
      L1 = L1 + LeftBK(j, 0) #4Rx]zW^%  
      L2 = L2 + LeftBK(j, 1) ]___M  
      R1 = R1 + RightBK(j, 0) A@!qv#'  
      R2 = R2 + RightBK(j, 1) / |;RV"  
    Next j 8sWJcmVo  
    diffL = Abs(L1 - L2) / 1024 {Qf=G|Ah  
    diffR = Abs(R1 - R2) / 1024 r"g JX  
End Sub ]3],r?-tJ  
~zJbK. _  
Function CheckSlice() As Boolean z;,u}u}aI  
  CopySlice avSL, avSLR, avSLL \R9(x]nZ%  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then  lHY+}v0  
    CheckSlice = True ~rqCN,=d  
  Else qdJ=lhHM}  
    CheckSlice = False sQHv%]s 0  
  End If M>xK+q?O  
End Function J9--tJ?[>o  
F3[T.sf  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) Mlg0WrJ|2  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long rK6l8)o  
  For i = 1 To FrameH @s u^0 9n  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize hc(#{]].  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize -n~1C {<  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize I#Y22&G1  
  Next i ` xEx^P^7  
  For i = 1 To FrameH <SAzxo:I  
    For j = 1 To sSize mUAi4N  
       total = total + Slice(j, i) 6EoMt@7g  
       totalL = totalL + SliceL(j, i) [\98$BN  
       totalR = totalR + SliceR(j, i) ~]IOK$1F%  
    Next j #_ ;lf1x!  
  Next i 5FPM`hLT  
  avSL = total / FrameH / sSize t:x\kp  
  avSLR = totalR / FrameH / sSize `t>l:<@ %  
  avSLL = totalL / FrameH / sSize )5Q~I,dP  
End Sub iJI }TVep#  
PFlNo` iO  
Sub DrawSlice() >UTBO|95y  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B <y('hI'  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B #1A.?p  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B !7O+og L  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) lwxaMjaL4K  
End Sub 9rA0lqr]5  
Sub DrawMark(pic As Control) }z'8Bu  
   Dim i As Long, j As Long }^ ~F|  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B ~k-y &<UR  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B T[w]o}>cW  
   For i = 1 To PilarH aB2F C$z  
     For j = 1 To PilarW hn7# L   
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) 6m/r+?'  
     Next j !3c \NbU  
   Next i + /4 A  
End Sub xf\C|@i  
13$%,q)  
Function avIMG() As Integer }1L4 "}L.  
  Dim i As Long, j As Long, totalIMG As Long hE'-is@7  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize hlvK5Z   
  For i = 1 To pFrameSize gS!:+G%  
    totalIMG = totalIMG + pBuffer(i) +5g_KS  
  Next i Fj8z  
  avIMG = totalIMG / pFrameSize z3{G9Np  
End Function /Vx7mF:  
kr^P6}'  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer c)6m$5]  
  Dim i As Long, j As Long, totalIMG As Long htO +z7  
  For i = 1 To FrameH Gt8M&S-;  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth r..iko]T  
  Next i kUL' 1!j7  
  For i = 1 To FrameH * barWidth g{]0sn#  
    totalIMG = totalIMG + pBuffer(i) ;>U2|>5V  
  Next i _P#|IAq*  
  avRegion = totalIMG / pFrameSize > ym,{EHK  
End Function ]!W=^!  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 /wGM#sFH  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 '|6]_   
Ea=8}6`s  
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 ANAVn @ [  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long a Yg6H2Un  
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 h 6L&\~pf  
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 wyH[x!QX  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long nSDMOyj+  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 ih-#5M@  
1 fp?  
CCs%%U/=  
Private Const GENERIC_READ = &H80000000 ]\-A;}\e  
Private Const GENERIC_WRITE = &H40000000 Y Vt% 0  
].avItg  
Private Const FILE_SHARE_READ = &H1 Ko| d+  
Private Const FILE_SHARE_WRITE = &H2 5ORo3T%  
Private Const OPEN_EXISTING = 3 r5S[-`s;  
'0;l]/i.  
Private Const INVALID_HANDLE_VALUE = -1 2"v6 >b%  
?> 9/#Nv  
'//file seek v4!VrI  
Private Const FILE_BEGIN = 0 + )AG*  
Private Const FILE_CURRENT = 1 }`@vF|2L  
Private Const FILE_END = 2 <q58uuK  
F> Ah0U0  
Private Const ERROR_SUCCESS = 0& % :f&.@'r  
[Q~#82hBhY  
'//device io control :I]Mps<  
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 udK%>  
~p6 V,Q  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 i'<[DjMDlm  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 ~Py`P'+  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 dM.f]-g  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 B6+khuG(  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C  \{_q.;}  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 *xAqnk   
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F N@4w! HpJ  
d"1]4.c  
'//type w?PkO p  
Private Type LARGE_INTEGER mX"oW_EK  
    lowpart As Long J/`<!$<c  
    highpart As Long +uF>2b6'  
End Type RXMISt3+{y  
n1ZbRV  
Private Enum MEDIA_TYPE Gq)]s'r2  
    Unknown .fqN|[>  
    F5_1Pt2_512 dmtr*pM_  
    F3_1Pt44_512 wQl ,  
    F3_2Pt88_512 dA}-]  
    F3_20Pt8_512 x3=A:}t8  
    F3_720_512 [T4J{y64Y  
    F5_360_512 jxJ8(sr$  
    F5_320_512 T9|m7  
    F5_320_1024 {_"<1C  
    F5_180_512 H\"sgoJ  
    F5_160_512 sjHE/qmq-Z  
    RemovableMedia >0y'Rgfe  
    FixedMedia kOrZv,qFG[  
End Enum h]&GLb&<?  
ah$b [\#C  
Private Type DISK_GEOMETRY :wyno#8`-  
    Cylinders           As LARGE_INTEGER lWk>z; d  
    MediaType           As MEDIA_TYPE a#(?P.6  
    TracksPerCylinder   As Long bTNgjc  
    SectorsPerTrack     As Long UBU=9a5  
    BytesPerSector      As Long %bn jgy  
End Type BQHVQs   
!<8W {LT  
'//private vars  R Z?jJm$  
Private hDisk           As Long             'disk handle  #4NaL  
Private lpGeometry      As DISK_GEOMETRY    'disk info Xh"n]TK  
Private lBufferSize     As Long             'the buffer size of read/write  `,*3[  
Pl06:g2I  
Public Function OpenDisk(ByVal FileName As String) As Boolean F@j Z ho  
'// 打开磁盘 lN 4oW3QT  
    hDisk = CreateFile(FileName, _ PcMD])Z{G  
                        GENERIC_READ Or GENERIC_WRITE, _ V*;(kEqj  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ ;W )Y OT  
                        ByVal 0&, _ ha<[b ue  
                        OPEN_EXISTING, _ <]t%8GB2V  
                        0, _ ea2ayT  
                        0) z]y.W`i   
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) w$iX.2|9%u  
End Function k PG-hD  
=!A_^;NQf  
Public Function CloseDisk() As Boolean |Pax=oJ\M  
'//关闭磁盘 j?\Qh  
    CloseDisk = CloseHandle(hDisk) \A#41  
End Function ./Zk`-OBT  
uk:(pZ-uJ  
Public Function GetDiskGeometry() As Boolean LKB$,pR~1l  
'//获取磁盘参数 :K,i\  
    Dim dwOutBytes      As Long nsC3  
    Dim bResult         As Boolean ;u ({\K  
     U[-o> W#  
    bResult = DeviceIoControl(hDisk, _ k/_ 59@)  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ K:[F%e  
                                ByVal 0&, 0, _ zV37$Hb  
                                lpGeometry, Len(lpGeometry), _ ]L.O8  
                                dwOutBytes, _ l}|%5.5-  
                                ByVal 0&) 9!\B6=r y4  
     Ms#M+[a  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack q-2Bt,Y  
    GetDiskGeometry = bResult a$OE0zn`  
End Function X=&ET)8-Y  
h 0Q5-EA  
Public Sub GetDiskInfo(MediaType As Long, _ ',@3>T**  
                        Cylinders As Long, _ 3BJ0S.TF  
                        TracksPerCylinder As Long, _ 1W LXM^ 4  
                        SectorsPerTrack As Long, _ UYJZYP%r  
                        BytesPerSector As Long) ifQ*,+@fxR  
'//返回磁盘的参数 &-6Gc;f8  
    MediaType = lpGeometry.MediaType :6 R\OeH+  
    Cylinders = lpGeometry.Cylinders.lowpart 7M~K,E(7~  
    TracksPerCylinder = lpGeometry.TracksPerCylinder CNyIQ}NJ  
    SectorsPerTrack = lpGeometry.SectorsPerTrack `cUl7 'j  
    BytesPerSector = lpGeometry.BytesPerSector .f2bNnB~pP  
zrgk]n;Pq  
End Sub qS$Ox?Bw#u  
RWZ SQ~  
Public Property Get BufferSize() As Long )F>#*P  
'//返回每次读/写的缓冲大小 1N-\j0au  
    BufferSize = lBufferSize >uB# &Q  
End Property bl;1i@Z*M  
_4So{~Gf1  
=z69e%.  
Public Function LockVolume() As Boolean '@KEi%-^>  
'// 将卷锁定 $szqy?i 0?  
    Dim dwOutBytes  As Long %)W2H^  
    Dim bResult     As Boolean } 9Eg=%0v  
     s~g *@K>+  
    bResult = DeviceIoControl(hDisk, _ ~rKrpb]ow  
                                FSCTL_LOCK_VOLUME, _ Cctu| ^V  
                                ByVal 0&, 0, _ E7UU  
                                ByVal 0&, 0, _ g-bK|6?yz  
                                dwOutBytes, _ %/.b~|,-  
                                ByVal 0&) :U%W%  
    LockVolume = bResult lvz7#f L~  
End Function $k% 2J9O  
8qT ys8  
.@U@xRu7|  
Public Function UnlockVolume() As Boolean <{cQM$ #  
'// 将卷解锁 s};{ZAtE  
    Dim dwOutBytes As Long Om\vMd@!  
    Dim bResult As Boolean @o _}g !9=  
     cp7=epho  
    bResult = DeviceIoControl(hDisk, _ "?xHlYj@+  
                                FSCTL_UNLOCK_VOLUME, _ mxC;?s;~  
                                ByVal 0&, 0, _ b5vC'B-!  
                                ByVal 0&, 0, _  }q`S$P;  
                                dwOutBytes, _ ,m:.-iy?  
                                ByVal 0&) -;m0R  
    UnlockVolume = bResult )9`qG:b'  
End Function KL57# gV  
,T$U'&;  
& G4\2l9  
Public Function DismountVolume() As Boolean xF'EiX~  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 24*XL,  
    Dim dwOutBytes As Long pJ"qu,w  
    Dim bResult As Boolean .j0$J \:i  
     aP +X}r  
    bResult = DeviceIoControl(hDisk, _ [EX s  
                                FSCTL_DISMOUNT_VOLUME, _ [D4SW#  
                                ByVal 0&, 0, _ }rw8PZ9  
                                ByVal 0&, 0, _ B LiF 5  
                                dwOutBytes, _ x2\qXN/R  
                                ByVal 0&) k"iOB-@B+  
    DismountVolume = bResult kfY}S  
End Function _op}1   
w-MCZwCr)  
VU]`&`~J  
Public Function ReadDisk(ByVal Cylinders As Long, _ 9IfmW^0  
                    ByVal Tracks As Long, _ k"zv~`i'  
                    db() As Byte) As Boolean /]Md~=yNp  
'//按柱面和磁道来读取磁盘数据 c9u`!'g`i  
    Dim iPos    As Long &.Qrs :U  
    Dim lRead   As Long SsDmoEeB[  
     oIzj,v8$  
    iPos = Cylinders * Tracks * lBufferSize Vaw+.sG`AP  
     k2tF}  
    If SeekAbsolute(0, iPos) Then 9vc2VB$  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) :KP @RZm  
    End If {qJ1ko)$  
End Function k)=s>&hl  
ag[wdoj  
Public Function WriteDisk(ByVal Cylinders As Long, _ 051 E6-  
                     ByVal Tracks As Long, _ 9 -a0:bP  
                     db() As Byte) As Boolean f+)L#>Gl?  
'//按柱面和磁道来写磁盘数据 R"t,xM  
    Dim iPos    As Long L48_96  
    Dim lRead   As Long H3=qe I  
     rcG"o\ g@+  
    iPos = Cylinders * Tracks * lBufferSize A[{yCn`tM  
     C XMLt  
    If SeekAbsolute(0, iPos) Then u^I|T.w<r6  
        WriteDisk = WriteBytes(lBufferSize, db()) c]o'xd,T8\  
    End If ZG8DIV\D7  
End Function 29] G^f>  
YZ8>OwQz2  
mL{6L?  
'///////////////////////////////////////////////////////////////////////////////////// eJX9_6m-  
'//file system O;jrCB  
>jLY"  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean `e&Suyf4B  
'//seek file $Sip$\+*  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte @:vwb\azVD  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) >tV{Pd1  
    If LowPos = -1 Then |3"KK  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) y/7\?qfTk  
    Else %pL''R9VF  
        SeekAbsolute = True 21l;\W  
    End If )}Kf=  
     -zeG1gr3  
End Function z,p~z*4  
.|fH y  
A]oV"`f  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean 16(QR-  
'//read data to array ={&j07,*a  
    Dim RetVal    As Long >@_^fw)  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) wc4{)qDE  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF *P=VFP  
    ReadBytes = Not (RetVal = 0) flbd0NB  
     ;$wVu|&  
End Function  ItrDJ'  
N5 6g+,w%)  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean ^k">A:E2  
'//write data from array iz PDd{[  
    Dim RetVal As Long 3bH'H*2  
    Dim BytesToWrite As Long d^ 8ZeC#  
    Dim BytesWritten As Long K Z91-  
     O m2d .7S  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) y??XIsF  
     /7F:T[  
    WriteBytes = Not (RetVal = 0) =X:Y,?  
End Function &n:.k}/P  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 $uVHSH5l  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ ENs&RZ;  
DWORD dwCB; v PG},m~-  
LARGE_INTEGER  offset; ( ^Nz9{  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); A$0fKko  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); 7~.9=I'A  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ 7ZWgf"1j  
DWORD error = GetLastError(); `+:`_4  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); Dp-z[]})1  
return FALSE; 3;]H1 1  
} K1yzD6[eW  
return TRUE; Hf2_0wA3  
} uz jU2  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : Y\g3h M  
tJ$_lk ~6q  
介个真的看不懂。 LsU9 .  
你说你老啦,喜欢怀旧了,才想起来填坑。 kVLS  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 N6i Q8P -  
5 #E`=C%  
5">Z'+8  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : T1=fNF  
佩服,玩也玩得这么专业! Z4 =GMXj  
'm kLCS  
Z"fJ`--  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : C]A.i2o8  
伍SIR,再次抱拳佩服 DN:EB @  
l!u_"I8j5  
[`7ThHX  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : bW(0Ng  
引用第19楼伍胥之于06-14-2010 12:33发表的  : j^RmrOg ,  
NC6&x=!3  
dioGAai'  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 PXNuL&   
?(_08O  
我连一级也没有考过。 'PW5ux@`<  
.
NL+N%2XG7  
ysnx3(+|  
引用
iuul7VR-%  
矬子里拔将军... J\=*#*rJ1  
你们那里的俗语是吧? > uEzw4w  
yyTnL 2Y9  
我们这里说"矮子里拔长脚"..应该是同一个意思... R[]Mdt<  
nKj7.,>;:<  
有趣....各地有表达意思一样却方式不同的俗语.... )MT}+ai  
) Hr`M B  
g2Z`zQA7  
你的文章写的有脸皮,没屁眼的, W: z;|FF  
让看客大为不满... ~WF\  
Ar#(p sU  
你等着,,估计你以后接到的午夜凶铃就多了... ]\HvKCN}  
+^F Zq$NP  
vo{--+{ky!  
我到现在也没有接到你的午夜凶铃呢! !&@615Vtw  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : E ' uZA  
每个人的故事对其他人都是故事, P[fq8lDA  
自己的故事也是其中之一. kD"{g#c  
跳出来看, G=bCNn<  
不过是众人中的一个人的故事. [()koU#w.  
I)HPO,7  
所以,接着听故事. <(!:$  
|k00Z+O(  
女人们有兴趣的就等老伍开个新帖或者跟贴, ;-Aa|aT!  
听他痛说恋爱革命历史.... u_Z+;{]Pj  
7 _[L o4_  
杂家接着听他自学程序员历史, o^wqFX(Y  
高级程序员考了吗? f* wx<  
3o/[t  
dlnX_+((KC  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! .x&%HA  
bW+:C5'  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 |JsZJ9W+J  
WTiD[u  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 V0Hj8}l;M  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : +qdEq_ m  
哦, 打倒忽悠大家的家伙.      Uoix  
28u_!f[  
f`66h M[  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : Pk)1WK7E  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 [email protected]"  
VVOd]2{  
c~ V*:$F  
其实标题没有什么,卡总既然改了就不必再改回了。 U4B( #2'  
'!$Rw"K.  
主要是当初写的时候真是顶着锅盖写的。 ^y%T~dLkp'  
TRq6NB  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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