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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 RZ GD5`n  
6[SE*/E@L  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : CvB)+>oa  
dBM> ;S;v  
老五,I 服了U。 X}R Q&k  
oV=~ Q#v  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 .|x" '3#  
)R5=GHmL  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean 8V(-S,  
Az4a| .  
Dim regEX As New RegExp bZ_vb? n  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 E !}~j  
xYl ScM_~  
Dim LastTitle0String As String, LastTitle0No As Long d;WXlE;  
Dim LastTitle1String As String, LastTitle1No As Long a+#Aitd  
Dim LastTitle2String As String, LastTitle2No As Long /IyCvo  
Dim LastTitle3String As String, LastTitle3No As Long >4x~US[VB  
Dim LastTitle4String As String, LastTitle4No As Long DqbU$jt`  
Dim LastTitle5String As String, LastTitle5No As Long ra>jVE0 `  
Dim LastTabelString As String, LastTableNo As Long GK\`8xWE  
Dim LastFigureString As String, LastFigureNo As Long Y. }8lh eH  
3 V{&o,6  
Dim strSeperator As String +VdC g_  
3tAX4DnYrq  
Sub ConvertWidth(fTEXT As String, rText As String) t?6_^ 08  
        Selection.Find.ClearFormatting 6gN>P%n  
        Selection.Find.Replacement.ClearFormatting i.Jk(%c  
        Selection.Find.Wrap = wdFindContinue ("5Eed  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText z3 Ro*yJU  
        DoEvents kNDN<L  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True fkW TO"f-  
End Sub OF/DI)j3  
v dR6y  
Sub ClearDomain() &<\ i37y  
        With Selection.Find iqh"sx{5bp  
            .ClearFormatting z*BGaSX %  
            .Replacement.ClearFormatting pG0Ca](  
            .Wrap = wdFindContinue "j] r   
            Me.txtStatus.Text = "清除所有域代码" O0cKmh6=  
            DoEvents  %3A~&  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False Ub9p&=]h  
        End With `zBQ:_3J_  
End Sub > cM}M=4s  
ewD=(yr  
Private Sub cmdCheck_Click() Md(h-wYr  
    bContinue = True ;"j>k>tg  
    Dim NoSeries1(1 To 16) As String _7qGo7bpN  
    Dim NoSeries2(1 To 16) As String DP<[Uz&  
    Dim NoSeries5(1 To 16) As String ts=KAdcJ  
    Dim NoSeriesRM(1 To 16) As String A57e]2_  
    Dim paraTotal As Long, ParaText As String vhot-rBN  
    Dim ttString As String, ttNo As String /By`FW Y  
     fx `o e  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long ed6eC8@  
b am*&E%0K  
    Me.txtStatus.Visible = True }!n90 9 L  
    Me.lbParaType.Visible = True /\C5`>x  
    Me.cmdCheck.Enabled = False 1Z| {3W  
     5U5)$K'OA  
     R<AT}!mkR  
     t!JD]j>q  
     u&\QZW?  
    Dim ParaType As String, rText As String Y[WL}:"93  
     (HD=m, }  
    Selection.WholeStory 3D*vNVI  
    Selection.NoProofing = True @ - _lw  
     Tyk\l>S  
    tm1 = Now _hbTxyj  
     #mvOhu  
        ActiveWindow.View.Type = wdNormalView * M,'F^E2  
     b i 8Qbo4  
    NoSeries1(1) = "一" v#WD$9QWs  
    NoSeries1(2) = "二" e~iPN.'1  
    NoSeries1(3) = "三" .6xIg+  
    NoSeries1(4) = "四" bX*c-r:  
    NoSeries1(5) = "五" oA'LQ  
    NoSeries1(6) = "六" wS%aN@ay3  
    NoSeries1(7) = "七" !3 j@gi2  
    NoSeries1(8) = "八" XEvDtDR  
    NoSeries1(9) = "九" U9:w^t[Pp  
    NoSeries1(10) = "十" r"aJ&~8::W  
    NoSeries1(11) = "十一" p@Ng .HE  
    NoSeries1(12) = "十二" 4kqgZtg.  
    NoSeries1(13) = "十三" Y,;$RV@g  
    NoSeries1(14) = "十四" D^jyG6Ch  
    NoSeries1(15) = "十五" U{%N.4:   
    NoSeries1(16) = "十六" xY,W[?3CY  
     )Fw{|7@N  
    NoSeries2(1) = "㈠" Y]-7T-*+t  
    NoSeries2(2) = "㈡" 'hn=X7  
    NoSeries2(3) = "㈢" 5^+QTQ  
    NoSeries2(4) = "㈣" +kN/-UsB  
    NoSeries2(5) = "㈤" +M %zOX/  
    NoSeries2(6) = "㈥" g (:%E  
    NoSeries2(7) = "㈦" ->29Tns  
    NoSeries2(8) = "㈧" x8q3 Njr  
    NoSeries2(9) = "㈨" g Xi& S  
    NoSeries2(10) = "㈩" A(dWA e,  
     xHo iu$i6  
    NoSeries5(1) = "①" Jkq?wpYp  
    NoSeries5(1) = "②" _}Rz JKl@  
    NoSeries5(3) = "③" VvJ]*D+e  
    NoSeries5(4) = "④" 5(V'<  
    NoSeries5(5) = "⑤"  J0Ik@  
    NoSeries5(6) = "⑥" tH\ aHU[  
    NoSeries5(7) = "⑦" Ja(>!8H>@  
    NoSeries5(8) = "⑧" f~{@(g&Gl  
    NoSeries5(9) = "⑨" k~+(X|!5w  
    NoSeries5(10) = "⑩" oiL^$y/:;z  
     1p|}=R  
     pcl '!8&7  
    NoSeriesRM(1) = "I" 5Dv ;-G;  
    NoSeriesRM(2) = "II" ^:F |2  
    NoSeriesRM(3) = "III" ]pi8%.d  
    NoSeriesRM(4) = "IV" {:m%n-  
    NoSeriesRM(5) = "V" yQ{xRtNO  
    NoSeriesRM(6) = "VI" 5o P 3 1  
    NoSeriesRM(7) = "VII" n 0*a.  
    NoSeriesRM(8) = "VIII" qJ8@A}}8  
    NoSeriesRM(9) = "IX" d|?'yX  
    NoSeriesRM(10) = "X" Pk 6l*+"r<  
    NoSeriesRM(11) = "XI" uv$t>_^  
    NoSeriesRM(12) = "XII" u{SJ#3C5  
    NoSeriesRM(13) = "XIII" knU=#  
    NoSeriesRM(14) = "XIV" c5f8pa *  
    NoSeriesRM(15) = "XV" X 'W8 mqk  
    NoSeriesRM(16) = "XVI" FsdxLMwk1  
     7g a|4j3%  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) 5C&]YT3 )  
     \R ff3$  
    If i = vbNo Then Sgy_?Y  
        Exit Sub aO'lk  
    End If asQXl#4r  
     Pm* N!:u  
    If Me.chkSuper.Value Then 8p)*;Y  
        Me.txtStatus.Text = "检查修改所有的上标格式" ; M%n=+[O  
     B}y`E <  
        CheckSuperScript RCvf@[y 4  
         '.8E_Jd0E  
    End If / 18VQ  
     KNZN2N)wR  
    If Me.chkStyle.Value Then AO "pm  
        Me.txtStatus.Text = "设置样式,请稍候...." (g>>   
        DoEvents $Z8=QlG>  
        CeateOrModifyStyle f3u^:6U~  
    End If _ Ux t9 X  
     @=kDaPme92  
     Ous_269cM  
     (" ,(@nS  
    ClearDomain ]IZn#gnM  
         NrrnG]#p1  
     @C34^\aH+  
     +zz\*  
    If Me.chkLIST.Value Then ?'L3B4  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" ci~pM<+  
     w?LDaSz\t  
        ConvertListToOrdinary TDtS^(2A7K  
    End If DL:wiQ  
     6)B6c. 5o  
     28N v'  
    Dim pType As String, trimpTEXT As String q\fZ Q  
    If Me.chkNum.Value = True Then I8RPW:B;B  
        Me.txtStatus.Text = "转换全角数字形式为半角" "\]NOA*  
        ConvertWidth "1", "1" ARt+"[.*p  
        DoEvents !qjIhZi  
        ConvertWidth "2", "2" |re>YQ!zd  
        DoEvents B]xZ 4 Y  
        ConvertWidth "3", "3" Hi{1C"%  
        DoEvents zYW+Goz/C  
        ConvertWidth "4", "4" ;jEDGKLq  
        DoEvents OE4hG xG  
        ConvertWidth "5", "5" 6AW{qU6  
        DoEvents ;[ag|YU$Y  
        ConvertWidth "6", "6" 7@@,4_q E  
        DoEvents ~VqDh*0  
        ConvertWidth "7", "7" (4WAoye|  
        DoEvents X$<s@_#1  
        ConvertWidth "8", "8" qek[p_7  
        DoEvents hCcAAF*I;5  
        ConvertWidth "9", "9" x\r[Zp|  
        DoEvents & 1:_+  
        ConvertWidth "0", "0" |*w}bT(PfR  
        DoEvents H]XY  
        ConvertWidth "a", "a" >%o\Ue  
        DoEvents ygA~d9"  
        ConvertWidth "b", "b" r- :u*  
        DoEvents Qq.ht  
        ConvertWidth "c", "c" N7b+GqYpF>  
        DoEvents vA r fsgk  
        ConvertWidth "d", "d" NLz[ F`I  
        DoEvents +v7mw<6s  
        ConvertWidth "e", "e" 9 Z 5!3  
        DoEvents 9O.okU  
        ConvertWidth "f", "f" H(~:Ajj+zQ  
        DoEvents 2zz7/]?Q   
        ConvertWidth "g", "g" YgN:$+g5  
        DoEvents c[I4'x  
        ConvertWidth "h", "h" mEUdJvSG(  
        DoEvents eA$wJ$*   
        ConvertWidth "i", "i" <+tSTc4>r  
        DoEvents os3jpFeG'  
        ConvertWidth "j", "j" 5/ee&sJR  
        DoEvents T|{1,wP  
        ConvertWidth "k", "k" rv\yS:2  
        DoEvents uV@#;c4  
        ConvertWidth "l", "l" 2qF ?%  
        DoEvents wePhH*nQ>  
        ConvertWidth "m", "m" TI9]v(  
        DoEvents <Xsy{7  
        ConvertWidth "n", "n" 88GS Bg:YH  
        ConvertWidth "o", "o" Id/-u[-yo  
        ConvertWidth "p", "p" ~_ 8X%ut y  
        ConvertWidth "q", "q" #Pf?.NrTn  
        ConvertWidth "r", "r" ky^p\dMh  
        ConvertWidth "s", "s" 2 ;z~xR  
        ConvertWidth "t", "t" _8f? H#&  
        ConvertWidth "u", "u" D[NJ{E.{  
        ConvertWidth "v", "v" :=iP_*#  
        ConvertWidth "w", "w" gC+PpY#2h  
        ConvertWidth "x", "x" a->;K+  
        ConvertWidth "y", "y" Y$%z]i5   
        ConvertWidth "z", "z" b85r=tm   
        ConvertWidth "A", "A" /ehmy (zL  
        ConvertWidth "B", "B" :&{:$-h!  
        ConvertWidth "C", "C" 122%KS  
        ConvertWidth "D", "D" ey~5DY7  
        ConvertWidth "E", "E" B`)gXqBt  
        ConvertWidth "F", "F" $@[`v0y*  
        ConvertWidth "G", "G" j<HBzqP%6  
        ConvertWidth "H", "H" _shoh  
        ConvertWidth "I", "I" '>wr _ f  
        ConvertWidth "J", "J" _Prh&Q1zs  
        ConvertWidth "K", "K" );]9M~$  
        ConvertWidth "L", "L" Hj>(kL9H  
        ConvertWidth "M", "M" DhVF^=x$  
        ConvertWidth "N", "N" d3nMeAI AO  
        ConvertWidth "O", "O" / X #4  
        ConvertWidth "P", "P" X &z|im'd  
        ConvertWidth "Q", "Q" m!qbQMXn  
        ConvertWidth "R", "R" vIL'&~C\y  
        ConvertWidth "S", "S" ;9+[t8Y)D  
        ConvertWidth "T", "T" +p%!G1Yz  
        ConvertWidth "U", "U" Qrnc ;H9)  
        ConvertWidth "V", "V" !m* YPY31  
        ConvertWidth "W", "W" J*nQ(*e  
        ConvertWidth "X", "X" |A'y|/)#Z  
        ConvertWidth "Y", "Y" Fbpe`pS+V  
        ConvertWidth "Z", "Z" i1OF @~?  
        ConvertWidth "^l", "^p" j`'9;7h M6  
        ConvertWidth "(", "(" ?51Y&gOEZ  
        ConvertWidth ")", ")" cQ?eL,z  
     3($cBC  
    End If "zn<\z$l  
O)$rC  
    With ActiveDocument $mV1K)ege  
        Dim tbl As Table 0I`)<o-  
        For Each tbl In .Tables C[Ap&S  
            tbl.Rows.Alignment = wdAlignRowCenter VDyQv^=#  
            tbl.Range.Font.NameFarEast = "楷体" us ,!U  
            tbl.Range.Font.NameAscii = "Times New Roman" #}8l9[Q|M  
            tbl.Range.Font.Size = 10.5 mO6rj=L^  
        Next v*.[O/,EBR  
        Set tbl = Nothing bI_6';hq !  
    End With ~`uEZ  
     3u)NkS=  
     S^Lu RF]F  
    With ActiveDocument (SEE(G35  
         ,#u"$Hz8p  
        For i = 1 To .TablesOfContents.Count ?nLlZpZ2v  
            .TablesOfContents(i).Delete |[RoR  
        Next _:B/XZ  
         W7_j;7'  
         /Vg=+FEO  
         ,u:J"epM  
        paraTotal = .Paragraphs.Count ZCT\4Llv#  
        paraCounter = 1 n7J6YtUwP  
         !>,\KxnM  
        LastTitle0No = 0 zmw <y2`  
        LastTitle1No = 0 g?e$B}%  
        LastTitle2No = 0 4Pbuv6`RK  
        LastTitle3No = 0 xksd&X:  
        LastTitle4No = 0 &^v5 x"  
        LastTableNo = 0 Xiy9Oeq2uh  
        LastFigureNo = 0 kkyi`_ZKn  
         X{ZcJ8K  
        Dim Sec As Long  ?)_?YLi  
         E=H>|FgS  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) YT*_ vmJV  
        If Sec = 0 Then `Mh 3v@K:  
            Exit Sub 5Hli@:B2s  
        End If s#8mD !T|  
         ko2T9NI:S  
        k = 0 &y7<h>z  
        Do While (paraCounter < paraTotal) And bContinue d3m!34ml  
            k = k + 1 al<;*n{/  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then ,v#F6xv8  
                Exit Do 6/%dD DU  
            End If OzVCqq"]  
            paraCounter = paraCounter + 1 , m`>  
            If k Mod 20 = 0 Then VIXY?Ua  
                Me.lbCounter.Caption = paraCounter /e2CB"c   
                DoEvents }f~:>N#  
            End If - kGwbV}  
        Loop nE 2w ?  
         ,[} X K9  
         pQ_EJX)  
        Do While (paraCounter < paraTotal) And bContinue @d+NeS  
             0gLl>tF[H  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) L[|($vQ"  
            ShapeHeight = 0 YR 5C`o  
            ShapeWidth = 0 IzuYkl}  
           StuQ}  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth -KuC31s_W  
             <WHu</  
            Select Case ParaType  4 Wb^$i!  
                Case "【】表格内容" DFk0"+Ky  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" 3 >~W_c9@  
                Case "章" s9Tp(Yr,k  
                    LastTitle0No = LastTitle0No + 1 wX!q dII)  
                    '新一章开始,复位其下属标题编号 2ncD,@ij  
                    LastTitle1No = 0 xF#'+Y  
                    LastTitle2No = 0 ]#7{ x  
                    LastTitle3No = 0 .+@;gVZx1  
                    LastTitle4No = 0 *&=sL  
                     z(8:7 G  
                    k = Val(ttNo) R/_bk7o]H  
                    If k = 0 Then '非数字编号章节 t-gLh(-.  
                        If ttNo <> NoSeries1(LastTitle0No) Then ;*H@E(g  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString : aIS>6  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText x %hV5KW  
                        End If DR%16y<h  
                    Else i-<1M|f  
                        If Val(ttNo) <> LastTitle0No Then V1P]mUs{1  
                            rText = "第" & LastTitle0No & ttString fj7\MTy  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText vj_[LFE  
                        End If pZ@)9c  
                         ?g6x y[  
                    End If ~$WBcqo  
                     uIvAmc4  
                    '章段落设置 ]FQO@ y  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 1 +0-VRl  
                    .Paragraphs(paraCounter).Style = "QLNU章节" i40'U?eG~6  
                    .Paragraphs(paraCounter).Range.Select KF%tF4^+|  
                    Selection.EndKey unit:=wdLine 3tt3:`g  
                    tc = Replace(rText, vbCr, "") nT;Rwz$3  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False '4"9f]:  
                Case "一级标题" YQH=]5r  
                    LastTitle1No = LastTitle1No + 1 7gk}f%,3P  
                    '新一级标题开始,复位其下属标题编号 K1gZ>FEY|N  
                    LastTitle2No = 0 b%-S'@ew  
                    LastTitle3No = 0 8JFns-5  
                    LastTitle4No = 0 __3s3YG  
                     b-`=^ny)K  
                    If ttNo <> NoSeries1(LastTitle1No) Then E .'v,GYe  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString InAx;2'A:  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText ~l^Q~W-+  
                    End If 7K5D,"D;1  
                   g5YDRL!Wh  
                     y^*o%2/  
                    '一级标题段落设置  格式:一、标题内容 $ #*";b)QY  
                    .Paragraphs(paraCounter).Range.Text = rText _K4E6c_  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" tF/)DZ.to  
                    .Paragraphs(paraCounter).Range.Select MR?5p8S#g  
                    Selection.EndKey unit:=wdLine Mur)'  
                    tc = Replace(rText, vbCr, "") lWR".  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False #Ns]l<  
                Case "二级标题" *%nV<}e^_=  
                    LastTitle2No = LastTitle2No + 1 *\n-yx]  
                    '新二级标题开始,复位其下属标题编号 6H#4iMeh  
                    LastTitle3No = 0 YUGEGXw  
                    LastTitle4No = 0 Fu z'!  
                     6w"_sK?  
                    If ttNo <> NoSeries1(LastTitle2No) Then M3 TsalF  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString k6}M7 &nY  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText R [[ #r5q  
                    End If @{X<|,W9w  
                      v< _wf  
                    '二级标题段落设置 格式:(一)、标题内容 z AZ+'9LB  
                    .Paragraphs(paraCounter).Range.Text = rText MyJ\/`8  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" ~OE1Sd:2  
                     xsO "H8  
                    .Paragraphs(paraCounter).Range.Select S. I3m-  
                    Selection.EndKey unit:=wdLine z>6hK:27  
                    tc = Replace(rText, vbCr, "") $M0F~x  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False pz hPEp;  
                 y37c&XYq  
                Case "三级标题" - K@mjN  
                    LastTitle3No = LastTitle3No + 1 j@Ta\a-,x  
                    '新三级标题开始,复位其下属标题编号 >iKbn  
                    LastTitle4No = 0 gfW_S&&q  
                     #B^ A"?*S  
                    If Val(ttNo) <> LastTitle3No Then -5 Q gJ  
                            rText = LastTitle3No & ". " & ttString )Z"  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText DO^ J=e  
                         7eR%zNDa  
                    End If xpU7ZY  
                    '三级标题段落设置 格式:1. 标题内容 F?Fs x)2k  
                    .Paragraphs(paraCounter).Range.Text = rText !bq3c(d  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" YAc~,N   
                    .Paragraphs(paraCounter).Range.Select &>xd6-  
                    Selection.EndKey unit:=wdLine sU=7)*$  
                    tc = Replace(rText, vbCr, "") L,+m5wKj[  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False t|5T,YFG  
                Case "四级标题" HkL:3 E.  
                    LastTitle4No = LastTitle4No + 1 :kU- ol$  
                     \{@n >Mh  
                    If Val(ttNo) <> LastTitle4No Then v|7=IJ  
                            rText = "(" & LastTitle4No & "). " & ttString Y 6Mp[=  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText . XVW2ISv  
                     nj (\+l5  
                    End If +NT8dd  
                    '四级标题段落设置 格式:(1). 标题内容 MB!_G[R  
                    .Paragraphs(paraCounter).Range.Text = rText Rt9S  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" 9K6G%  
                    .Paragraphs(paraCounter).Range.Select `q$a p$?  
                    Selection.EndKey unit:=wdLine PsMp &~^  
                    tc = Replace(rText, vbCr, "") n | M~C\*  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False :f/T $fa*  
                 SJJ[y"GvD  
                Case "表格标题" D^30R*gV  
                    LastTableNo = LastTableNo + 1 S=@bb$4-T  
                     &Rp/y%9  
                    If ttNo <> CStr(LastTableNo) Then ,O'#7Dj  
                            rText = "表" & LastTableNo & ". " & ttString %FhUjHm  
                            ErrMsg.AddItem "表格编号错误:" & ParaText C]bre^q  
                   0XWhSrHM  
                    End If "G[yV>pxv  
                     zgnZ72%  
                    '表格名称段落设置 格式:表1. 表格名称 B*3<(eI  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" =>LQW;Sjz  
                    xe = Replace(rText, vbCr, "") 6/=0RTd  
                    .Paragraphs(paraCounter).Range.Select uE]Z,`e  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 ,8`CsY^1  
                    Selection.Range.Text = xe |b+ZKRW  
                    Selection.EndKey TS Ev^ u)3  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False Dga;GYx  
                 Gpb<,v_3  
                Case "表格首行" "8#EA<lsS  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" }ZKG-~  
                Case "图片标题" H5)8TR3La  
                    LastFigureNo = LastFigureNo + 1 b;5&V_  
                     #1z/rUh`Cr  
                    If ttNo <> CStr(LastFigureNo) Then "T4buTXJ  
                            rText = "图" & LastFigureNo & ". " & ttString {@7xOOAw  
                            ErrMsg.AddItem "表格编号错误:" & ParaText 0|= ,!sY  
                   I)AbH<G{  
                    End If /7CV7=^d,  
                    '图片名称段落设置 格式:图1. 图名称 @4]} J-3  
                    .Paragraphs(paraCounter).Range.Text = rText JGRL &MG4  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" tZL {;@  
                    .Paragraphs(paraCounter).Range.Select Oj,v88=  
                    Selection.EndKey unit:=wdLine iU/v; T(  
                    xe = Replace(rText, vbCr, "") 9{cpxJ  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False gy*c$[NS$  
                Case "正文" %jErLg  
                     '正文名称段落设置 .ED8b5t|  
                    .Paragraphs(paraCounter).Style = "QLNU正文" _wp_y-"  
               Case "文献条目" ;xQNa}"V  
                    With .Paragraphs(paraCounter) Re<@ .d  
                        '.Range.Select UID0|+%Y  
                        'Selection.ClearFormatting 2CY4nS KW  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” <C<z#M'`  
                        .Style = "QLNU参考文献" qGXY  
                    End With MfU0*nVF~  
               Case "图表注解" 8:sQB% BB  
                    With .Paragraphs(paraCounter) 8-&c%h 1  
                        .Range.Font.NameFarEast = "楷体" $l =&  
                        .Range.Font.NameAscii = "Times New Roman" G&z^AV  
                        .Range.Font.Size = 9 '小5号字 N!~5S`  
                         "sUjJ|  
                        .Alignment = wdAlignParagraphCenter Kk\TW1w3  
                        .LeftIndent = 0  AeR*79x  
                        .RightIndent = 0 5XzN%<_h9  
                        .FirstLineIndent = 0 U0ZPY )7k  
                        .LineSpacing = 12 [lz#+~rOS  
                        .LineSpacingRule = wdLineSpaceExactly =3dR-3  
                        .LineUnitAfter = 0 F.cKg~E|e  
                        .LineUnitBefore = 0 fW z=bJ"V  
                        .OutlineLevel = wdOutlineLevelBodyText /iw$\F |8  
                        .PageBreakBefore = False 9-"!v0['  
                        .RightIndent = 0 eD,'M  
                        .WordWrap = True rT"3^,,  
                        .LineUnitAfter = 0.5 I R|[&}z  
                         $}8@?>-w  
                    End With A:4?Jd>  
                Case Else >n"4M~I  
                    '不作处理 :%4N4| Q  
            End Select 9q]n &5  
             ^iqy|zNtn  
            '含有inlineshape的段落处理 X8\UTHT& 0  
            If ShapeHeight > 30 Then ;W?mQUo:P8  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 V)Sw\tS6g  
            End If bamQ]>0|>!  
             EpCF/i?9:  
            If (ShapeWidth + ShapeHeight) > 150 Then fda)t1u\8  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" C7=N`s}  
            End If {%+UQ!]d8  
             ?D_^8\R  
            '段落计数器递 r]=Z :  
            paraCounter = paraCounter + 1 ]R*h3U@5#K  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter 2Bz\Tsp  
            Me.txtStatus.Text = ParaText ufn% sA  
            DoEvents ;wa#m1  
        Loop ' +f(9/  
    End With \OW.?1d  
     "8iIOeY-\  
    msg = "" V.-cm51I  
     {` ByZB  
    For i = 0 To Me.ErrMsg.ListCount - 1 Gq]/6igzX  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) w'6sJ#ba(  
    Next U62Z ?nge%  
     .(%]RSBY  
     0t(2^*I?>  
     4Ifz-t/  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg D%*Ryg  
    Me.cmdCheck.Enabled = True Nil nS!BM  
    Me.txtStatus.Visible = True jR2^n`D  
    Me.lbParaType.Visible = False u10;qYfL8o  
     nt_FqUJ  
    bContinue = False .G-L/*&%  
End Sub +yI2G! $T9  
bk|?>yd  
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) x8o/m$[,=u  
    Dim pTEXT As String L]* 5cH  
     /d*[za'0  
    pTEXT = ChKRange.Text ]NyN@9u@(  
     gx.\&W b  
    ParaType = "其它" $U4[a:  
    TitleString = pTEXT #+Y%Bxf  
    TitleNo = "N/A" lFN|)(X  
     Gzc`5n{"  
    shpCounter = ChKRange.InlineShapes.Count &Lbh?C  
    If shpCounter <> 0 Then %z6_,|%  
        MaxShpHeight = 0: TotalShpWidth = 0 ^6QzaC3  
        For i = 1 To shpCounter RpwDOG  
            k = ChKRange.InlineShapes(i).Height O >eg_K,c  
            l = ChKRange.InlineShapes(i).Width m(w9s;<  
            If k > MaxShpHeight Then ~X(2F#{<{  
                MaxShpHeight = k &,tj.?NCn  
            End If 69S*\'L  
            TotalShpWidth = TotalShpWidth + l ~5o2jTNy`p  
        Next b#( X+I  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then :?j]W2+kR  
            Exit Sub &fW'_,-  
        End If UCo`l~K)qg  
    End If w v  
     M=54xTh0Y  
    '空行 ~7w LnB  
    If Len(pTEXT) <= 2 Then zSagsH |W  
        Exit Sub N$.=1Q$F6  
    End If W1JvLU5L*r  
     '<U 4D  
         !n<SpW;  
    '是否为表格中的文字 ?=,7'@e  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then *RmD%[f  
        ParaType = "表格内容" "0Z5cQjg  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) X#o<))  
        If k = 1 Then uhU'm@JZ  
            ParaType = "表格首行" I23"DBR3  
        End If =9;b|Y"aQ  
        Exit Sub c t@3]  
    End If NQcNY=  
     +E']&v$  
    '例外情况:脚注 #sE: xIR  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then vDIsawbHD  
        ParaType = "脚注" wpD}#LRfm  
        Exit Sub &ZL4/e  
    End If 88VI _ <  
     x^Zm:Jrw~  
    '例外情况:尾注 }yaM.+8.  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then OHv4Yy]$B  
        ParaType = "尾注" }.D adV  
        Exit Sub i3cMRcS;  
    End If r72zWpF!Ss  
     E BSjU8  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then pf&U$oR4  
        ParaType = "页眉页脚" Gi\Z"MiBZ  
        Exit Sub )4RSo&9p`  
    End If 8~sC$sIlE  
     Y,?kS dS  
     >*EJ6FPO  
    With regEX aF[#(PF  
        .Global = True (6i4N2   
         j8+>E ?nm  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" Te`MIR  
        If regEX.Test(pTEXT) Then q2U?EP{8~  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") dKY#Tl]  
            TitleString = regEX.Replace(pTEXT, "$3") ?DE{4Ti/[  
            TitleNo = regEX.Replace(pTEXT, "$1") !p Q*m`Xo  
            ParaType = "章" ]:}7-;$V  
            Exit Sub n}C0gt-  
        End If sJMpF8   
         %@8#+#@J0  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" IEe;ygL#  
        If regEX.Test(pTEXT) Then IdCE<Oj\  
            ParaType = "一级标题" q| UO]V  
            regEX.Execute (pTEXT) a@-bw4S D  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") TQykXZ2Yb)  
            TitleString = regEX.Replace(pTEXT, "$3") CIVV"p`}  
            TitleNo = regEX.Replace(pTEXT, "$1") IP^1ca#<  
            Exit Sub &7 9F Uac  
        End If yQ !keGj  
         <Y"HC a{  
        '全角或半角括号中的数字 ]GDjR'[z  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" +R_s(2vz  
        If regEX.Test(pTEXT) Then c`/kx  
            ParaType = "二级标题" p!EG:B 4  
            regEX.Execute (pTEXT) Rm}G4Pq  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") w~3z) ;  
            TitleString = regEX.Replace(pTEXT, "$5") MkWbPm)  
            TitleNo = regEX.Replace(pTEXT, "$2") 3 bT?4  
            Exit Sub !+DhH2;)F  
        End If :jJ0 +Q  
         o1k+dJUd  
        '阿拉伯数字  1. 2. jW{bP_,"  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" ( j:eky  
        If regEX.Test(pTEXT) Then K1w:JA6(  
            ParaType = "三级标题" OVE?;x>n/1  
            regEX.Execute (pTEXT) dM-~Qo  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 = toU?:.  
            TitleString = regEX.Replace(pTEXT, "$3") ?7"v~d]>  
            TitleNo = regEX.Replace(pTEXT, "$1") xyHv7u%*  
            Exit Sub 8Y_lQfJa  
        End If _p?s[r*  
         (+}44Ldt  
        '全角或半角括号中的阿拉伯数字 g>g*1oS  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" 4]ko  
        If regEX.Test(pTEXT) Then UgD)O:xaU  
            ParaType = "四级标题" -"I9`  
            regEX.Execute (pTEXT) k\RS L  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") ^\r{72!y  
            TitleString = regEX.Replace(pTEXT, "$5") owwWm1@  
            TitleNo = regEX.Replace(pTEXT, "$2") y,K> Wb9e  
            Exit Sub R[rOzoNp0  
        End If  pLM? m  
         *J{E1])<a  
        '表格名称 Lj/  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" l5D4 ?`|  
        If regEX.Test(pTEXT) Then u $B24Cy.  
            ParaType = "表格标题" Fzt7@VNxc  
            regEX.Execute (pTEXT) 8T8]gM  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) !$#5E1:\  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) L\R(//V  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1"))  yyGn <  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 j=c< Lo`  
            Exit Sub 2cwJ);Eg2  
        End If 6n;? :./  
         tBETNt7  
        '图片名称 5=b6B=\*~  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" 4y!GFhMh  
        If regEX.Test(pTEXT) Then h+S]C#X,}  
            ParaType = "图片标题" |E;+j\   
            regEX.Execute (pTEXT) ND/oKM+?  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") 8U n 0<+b  
            TitleString = regEX.Replace(pTEXT, "$3") cqT%6Si  
            TitleNo = regEX.Replace(pTEXT, "$1") Gzwb<e y  
            Exit Sub wxN&k$`a  
        End If 4O:HT m  
         ~%h&ELSw  
        '参考文献 DQ&\k'"\  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 m}f{o  
        If regEX.Test(pTEXT) Then v5&W)F  
            ParaType = "文献条目" ],{M``]q  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") E,fbIyX  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") Y~w1_>b  
            Exit Sub ce*?crOV  
        End If E= .clA  
         $LG.rJ/*  
        prfx = Left(pTEXT, 2) `6BQ6)7  
        If prfx = "注:" Or prfx = "注:" Then t>x!CNb'C  
            ParaType = "图表注解" ~S$ex,~  
            Exit Sub g`~;"%u7cn  
        End If Htfq?\ FD  
         b}*q* Bq  
         Io t c>!  
        ParaType = "正文" %-B wK  
         E(&zH;?_  
    End With ..w$p-1  
End Sub Qwp2h"t`  
Tm K8z  
Sub ConvertListToOrdinary() Hz=s)6$ey  
    Dim st As Paragraph xe9 \5Gb}  
    With ActiveDocument [ua[A;K  
        For i = .Paragraphs.Count To 1 Step -1 ~6+Um_A_L  
            Set st = .Paragraphs(i) ,c 0]r;u!  
            lst = st.Range.ListFormat.ListString c7R&/JV  
            If lst <> "" Then or bz`IQc  
                st.Range.ListFormat.RemoveNumbers VV sE]7P ]  
                st.Range.InsertBefore lst & " " u68ic1  
            End If 93ggCOaYA  
        Next FEX67A8 /;  
    End With BqM[{Kv  
    Set st = Nothing )|#ExyRO  
End Sub /O`R9+;  
O-box?  
Private Sub UserForm_Activate() ]:m4~0^#-(  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" @jq H8  
    Me.lbTotal.Font.Bold = True 1bHQB$%z  
    Me.txtStatus.Visible = False Kjpsz];  
    Me.cmdCheck.Enabled = True l<'}`  
x![ G 'I  
End Sub D_G]W W8  
U[:=7UABU?  
L0w2qF  
Sub CheckSuperScript() 0.c9 6&  
    Selection.Find.ClearFormatting [&l+Ve(  
    Selection.Find.Replacement.ClearFormatting L">m2/ HG  
    With Selection.Find "ZA`Lp;%w  
        .Text = "[【\[[〖](*)[】\]〗]]" K92M9=>  
        .Replacement.Text = "[\1]" eu?P6>urA  
        .Replacement.Font.Superscript = True ~f( #S*Ic  
        '.Replacement.Font.Color = wdColorBlue rv<qze;?|  
        .Forward = True ,b?G]WQrHs  
        .Wrap = wdFindContinue # %'%LY=  
        .FORMAT = True tK `A_hC  
        .MatchCase = False +n)bWB%  
        .MatchWholeWord = False t~.^92]s|  
        .MatchByte = False $"k1^&&E  
        .MatchAllWordForms = False WI.+9$1:P  
        .MatchSoundsLike = False y<#Hq1  
        .MatchWildcards = True 02)Ybp6y  
    End With (`u+(M!^  
    Selection.Find.Execute Replace:=wdReplaceAll Ga V OMT  
End Sub vl?fCO  
ylDfr){  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Yv2L0bUo:  
    bContinue = False j^eM i  
    Set regEX = Nothing ywB0 D`s'  
End Sub {hm-0Q  
|tz{Es<`B  
Sub CeateOrModifyStyle() NRk^Z)  
' OAEa+V  
' P7REE_<1  
Dim stl As Style EW3--33s  
     b,'rz04^  
    Options.Pagination = False 9;rZ)QD  
     y)TBg8Q  
    On Error Resume Next Hl*#iUq  
    For Each stl In ActiveDocument.Styles O2fFh_\  
        stl.Delete ,d F Y]  
    Next "{d[V(lE"  
    On Error GoTo 0 aC<fzUD;  
     dj}P|v/;z  
    Set stl = Nothing vV*/"'>  
     $$*0bRfd4=  
    DoEvents `6LV XDR  
    On Error Resume Next wRq f'  
     \`%#SmQF  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph >S S^qjh/  
     XhN?E-WywQ  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph 2z1r|? l  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph J7 ~Kjl  
     < y"lL>JR  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph 1F+nWc2b  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph =/\l=*  
     Q5IN1 ^=HF  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph ?,C'\8'  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph ~q}]/0-m  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph }.=@^-JBA5  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph T+FlN-iy)  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph :5jor Vu  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph ha9 d z  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph VTi; y{  
     Q8h=2YL  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph t+jdV  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph 84s:cO  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph ]eX(K5 A  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph 2uMSeSx$  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph \lyHQ-gWhc  
     A2I qn5  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph |HPb$#i  
    On Error GoTo 0 4 XGEw9`3  
    DoEvents  ZS@R?  
     `8TL*.9  
    'BaseStyle fSGaUBiq}  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False yA`,ns&n  
    With ActiveDocument.Styles("BaseStyle").Font z5sKV7&\[n  
        .NameFarEast = "宋体" r4iT 9 D  
        .NameAscii = "Times New Roman" RER93:(  
        .NameOther = "宋体" zE7)4!  
        .Size = 10.5 z^y -A ?  
        .Bold = wdUndefined A-eCc#I  
        .Italic = wdUndefined . ywVGBvJ  
        .Subscript = wdUndefined FY]Et= p  
        .Subscript = wdUndefined B74]hgK  
         G {a;s-OA3  
        .Underline = wdUnderlineNone N ]GF>kf:  
        .UnderlineColor = wdColorAutomatic kq(]7jU$[  
        .StrikeThrough = False u!b0 <E  
        .DoubleStrikeThrough = False +!G)N~o  
         7]hRAhJ8I  
        .Outline = False v{8r46Y~Z)  
        .Emboss = False E.^u:0:P  
        .Shadow = False "L9pFz</  
        .Hidden = False .e}`n)z  
        .SmallCaps = False SL_JA  
        .AllCaps = False HD z"i  
        .Color = wdColorAutomatic "\M3||.!  
        .Engrave = False #rp)Gc  
        .Scaling = 100 5 L-6@@/  
        .Kerning = 1 [.;8G MW  
        .Animation = wdAnimationNone q\~D:z$+CO  
        .DisableCharacterSpaceGrid = False nQn=zbZ3  
        .EmphasisMark = wdEmphasisMarkNone : %U lNk  
    End With K n2W{*wD  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat )Rj?\ZUR  
        .LeftIndent = 0 ytV4qU82G  
        .RightIndent = 0 $us7fuKE  
        .SpaceBefore = 0 0_t9;;y :  
        .SpaceBeforeAuto = False t~Ic{%bdA  
        .SpaceAfter = 0 59?$9}ob  
        .SpaceAfterAuto = False 18y'#<X!  
         t,kai6UM  
        .LineSpacingRule = wdLineSpaceSingle wqyF"^It"  
        .Alignment = wdAlignParagraphJustify '2{60t_A  
         W=,]#Z+M;  
        .WidowControl = False '47E8PIJ|  
        .KeepWithNext = False C4|79UG>s  
        .KeepTogether = False 4*UKR!sr  
        .PageBreakBefore = False `|:` yl  
        .NoLineNumber = False V~t; J  
         8{Vt8>4  
        .FirstLineIndent = CentimetersToPoints(0) Ihl]"76q/  
        .OutlineLevel = wdOutlineLevelBodyText "2T* w~V&y  
        .CharacterUnitLeftIndent = 0 Tcq@Q$H  
        .CharacterUnitRightIndent = 0 Owh:(E J"d  
        .CharacterUnitFirstLineIndent = 0 Cn>t"#zs!~  
        .LineUnitBefore = 0 _G%kEt_4  
        .LineUnitAfter = 0 :r&4/sN} <  
        .AutoAdjustRightIndent = True \JNWL yw  
        .DisableLineHeightGrid = True 1NK,:m  
         NF7+Gp6?q  
        .FarEastLineBreakControl = True @j%7tfW  
        .WordWrap = True kQrby\F(<  
        .Hyphenation = False 5L\Im ^  
         / 6DW+!  
        .HangingPunctuation = True ,@Elw>^  
        .HalfWidthPunctuationOnTopOfLine = True }IKU^0M9<T  
        .AddSpaceBetweenFarEastAndAlpha = True gNh4c{Al9  
        .AddSpaceBetweenFarEastAndDigit = True ,LL=b-Es  
        .BaseLineAlignment = wdBaselineAlignBaseline tpP68)<ns  
    End With \r &(l1R  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False G52z5-=v  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll S^~ lQ|D  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese }jg,[jw_"X  
    ActiveDocument.Styles("BaseStyle").NoProofing = False XZ/cRE z^s  
     \u6/nvZ]N  
    '一级标题题样式 @~IZ%lEQsD  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") =z}M(<G  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" (T",6xBSG  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False Nh6!h%  
    With ActiveDocument.Styles("QLNU一级标题").Font YO;@Tj2)x  
        .NameFarEast = "黑体" #jw%0H;l]  
        .NameAscii = "Arial Black" i"{znKz vD  
        .NameOther = "黑体" a%wa3N=v  
        .Name = "黑体" WX $AOnEv  
        .Size = 16              '三号 lK#uya g  
        .Bold = True 5"Y:^_8  
        .Italic = wdUndefined z~;@Mo"*f  
        .Subscript = wdUndefined ?6:e%YT  
        .Superscript = wdUndefined Angt=q  
    End With 3[%n@i4H|  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat ~vfPsaRh  
         &=lh Kt  
        .LeftIndent = CentimetersToPoints(0) {%X[Snv  
        .RightIndent = CentimetersToPoints(0) ,6wGdaMR  
        .FirstLineIndent = CentimetersToPoints(0) u/5)Yx+5_  
         <ol? 9tm  
        .LineSpacingRule = wdLineSpaceSingle :A,7D(H|  
        .Alignment = wdAlignParagraphCenter DWU(ld:_  
         $u,`bX  
        .WidowControl = True IpVtbDW  
        .KeepWithNext = True Lx3`.F\mG  
        .KeepTogether = True .L_ Hk  
        .OutlineLevel = wdOutlineLevelBodyText H7 Pw>Ta ;  
         VQpwHzh  
        .LineUnitBefore = 0.5 M+L0 X$}NZ  
        .LineUnitAfter = 0.5 0Rh*SoYrC  
    End With RNX>I,2sh  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False Bo/i =/7%  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll -nB. .q  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese i6E~]&~.v  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True qnw8#!%I  
    DoEvents bWMb@zm  
     :) T#.(mR  
    '二级 !:1BuiL  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") p$6L_ *$  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" qn` \g  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False ^]$rh.7&  
    With ActiveDocument.Styles("QLNU二级标题").Font ^i17MvT'  
        .NameFarEast = "黑体" B)Dsen  
        .NameAscii = "Arial Narrow" 4TaHS!9  
        .NameOther = "黑体" A)kdY!}  
        .Name = "黑体" =n M Aw&`  
        .Size = 15        '小三号 cUU"*bA#  
        .Bold = False ymA8`k5>@  
        .Outline = False KocNJ TB  
        .Italic = wdUndefined qkq^oHI  
        .Subscript = wdUndefined N\ zUQ J  
        .Superscript = wdUndefined byJ[1UK  
    End With ='HLA-uT  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat Oi~.z@@  
        .LeftIndent = CentimetersToPoints(0) 8|rlP  
        .RightIndent = CentimetersToPoints(0) gq)uv`3  
        .FirstLineIndent = CentimetersToPoints(0) ~gOdK-SV*  
         wPpe rn05  
        .LineSpacingRule = wdLineSpaceSingle zB+zw\ncN  
        .Alignment = wdAlignParagraphLeft ZZW%6-B  
         05;J7T<  
        .WidowControl = True l/bZE.GJ  
        .KeepWithNext = True Bv}nG|  
        .KeepTogether = True BNbz{tbX"  
        .PageBreakBefore = False ^~m}(6  
        .OutlineLevel = wdOutlineLevelBodyText 5K$d4KT  
         (vbI4&r  
        .LineUnitBefore = 0.5 .c_qMTm"  
        .LineUnitAfter = 0.5 kJ B u7  
         +< c(;Ucl?  
    End With .vpx@_;]9  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False e]smnf  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll R "e533  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese e41r!od  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True  C0j`H(  
    DoEvents \B8[UZA.&  
      v$R7"  
    '三级标题样式 |f+fG=a67V  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") tnw6[U!rh=  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" \p J<@  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False +\MGlsMK@.  
    With ActiveDocument.Styles("QLNU三级标题").Font t` zPx#])  
        .NameFarEast = "宋体" p 4lB#  
        .NameAscii = "Times New Roman" _Ns_$_  
        .NameOther = "黑体" AXpyia7nU  
        .Name = "黑体" $eh>.c'&]  
        .Size = 14               '四号 O4,? C)  
        .Bold = False \xOv9(  
        .Outline = False ?/Z5%?6  
        .Italic = wdUndefined NKRH>2,  
        .Subscript = wdUndefined :"Kr-Hm`  
        .Superscript = wdUndefined ImI, q:[67  
    End With Br"K{g?  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat Gv 6#LcF#  
        .LeftIndent = CentimetersToPoints(0) ,}$[;$ye  
        .RightIndent = CentimetersToPoints(0) /U"3LX  
        .FirstLineIndent = CentimetersToPoints(0) [L>AU; :  
         FJ O- p  
        .LineSpacingRule = wdLineSpaceSingle DbK-3F_  
        .Alignment = wdAlignParagraphLeft @86I|cY  
         2r#W#z%vS  
        .WidowControl = True B%KfB VC  
        .KeepWithNext = True 6 kAXE\T  
        .KeepTogether = True fb|lWEw5h.  
        .PageBreakBefore = False ?rgtbiSW-  
        .OutlineLevel = wdOutlineLevelBodyText P64< O 5l/  
         W/<C$T4  
        .CharacterUnitLeftIndent = 0 w0fFm"A|W  
        .CharacterUnitRightIndent = 0 7gT^ZL  
        .CharacterUnitFirstLineIndent = 2 o,=dm@j  
         IL<@UWs6  
        .LineUnitBefore = 0.5 p}-B>v  
        .LineUnitAfter = 0 5=P*<Dnj  
    End With +rOd0?  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False CrEC@5 j  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll {8J+ Y}  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese  76EMS?e  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True 6 Y} Bza  
    DoEvents g}*F"k4j  
     }<G#bh6;Q  
    '四级标题样式 |&rxDf}W  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Uj> bWa`  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" l%MIna/Tp  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False IVSd,AR7yY  
    With ActiveDocument.Styles("QLNU四级标题").Font Bl v @u?  
        .NameFarEast = "宋体" u/X1v-2  
        .NameAscii = "Times New Roman" |(rTz!!-  
        .NameOther = "宋体" x=VLRh%Gvl  
        .Name = "宋体" lNqF@eCT9  
        .Size = 12               '小四号 EY[J;H_b  
        .Bold = True + Scw;gO  
        .Outline = False 3[iHe+U(  
        .Italic = wdUndefined ~ ^) 4*@i6  
        .Subscript = wdUndefined R}\n @X*  
        .Superscript = wdUndefined |ea }+N  
    End With 0-zIohSJdQ  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat & 13#/  
         J, vEZT<Mt  
        .LeftIndent = CentimetersToPoints(0) n Sh}1Arp/  
        .RightIndent = CentimetersToPoints(0) 5U%a$.yr  
        .FirstLineIndent = CentimetersToPoints(0) =^gZJ@  
         X?q,m4+  
        .LineSpacingRule = wdLineSpaceSingle A\~tr   
        .Alignment = wdAlignParagraphLeft "TePO7^m  
         0o-KjX?kP  
        .WidowControl = True @# &y  
        .KeepWithNext = True kV+O|9  
        .KeepTogether = True UU]a).rz  
        .PageBreakBefore = False r7n-Xe  
        .OutlineLevel = wdOutlineLevelBodyText %n>*jFC  
         %jmL #IN)  
        .CharacterUnitLeftIndent = 0 _0qp!-l }  
        .CharacterUnitRightIndent = 0 M\dZxhQ-l  
        .CharacterUnitFirstLineIndent = 2 [V.#w|n  
         % PxJnMb?  
        .LineUnitBefore = 0 f hr QJ  
        .LineUnitAfter = 0 m}?(c)ST  
         _9b;8%? Yf  
    End With  .'^ Pg  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False ?DKwKt  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll  #Up X  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese aak[U;rx  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True e'1}5Ky  
    DoEvents c~iAjq+c  
     [78^:q-/0  
    '正文校式 nn6&`$(Q~  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") Ce_E S.  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" I]Jz[{~1  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False Kv-4VWh  
    With ActiveDocument.Styles("QLNU正文").Font p>GxSE)  
         R(N5K4J  
        .NameFarEast = "宋体" 2 1] 8 7$  
        .NameAscii = "Times New Roman" g:CMIe4  
        .NameOther = "宋体" RS[>7-9  
        .Name = "宋体" m8<l2O=m  
         /l$>W<}@  
        .Size = 12               '小四号 ^%k[YJtB=i  
         N?krlR  
        .Bold = wdUndefined NU$?BiB?R  
        .Italic = wdUndefined x9VR>ux&  
        .Subscript = wdUndefined $&[}+??  
        .Superscript = wdUndefined B]|"ePj-  
          a 9f%p  
        .Outline = False )%]`uj>*[  
        .Emboss = False *S=zJyAO  
        .Shadow = False P|4qbm4%O,  
        .Hidden = False IJV1=/ NJW  
         ) v^;"q"  
        .DisableCharacterSpaceGrid = True T_*R^Ukb5  
    End With uGH>|V9'c  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat [DO UIR9  
         W=@] YI  
        .LeftIndent = CentimetersToPoints(0) W4o$J4IX{  
        .RightIndent = CentimetersToPoints(0) dUL3UY3  
        .FirstLineIndent = CentimetersToPoints(0) r__Y{&IO  
         !L_\6;aP,x  
        .LineSpacingRule = wdLineSpaceExactly Id;YIycXe  
        .LineSpacing = 20 gl~>MasV&  
        .Alignment = wdAlignParagraphLeft .3yxg}E>{  
         [agp06 $D?  
        .WidowControl = False {%Q &CQG_  
        .KeepWithNext = False JVeb$_0k  
        .KeepTogether = False .YcI .  
        .PageBreakBefore = False o&b1-=MC2  
        .Hyphenation = False ^+zhzf J  
         U<H< !NV  
        .OutlineLevel = wdOutlineLevelBodyText 6Cd% @Q2cr  
         |] 8Hh>  
       maR5hgWCHe  
        .CharacterUnitLeftIndent = 0 0413K_  
        .CharacterUnitRightIndent = 0 i?1g{JW  
        .CharacterUnitFirstLineIndent = 2 /K<.$B8  
         O+Qt8,  
        .LineUnitBefore = 0 l d4#jV ei  
        .LineUnitAfter = 0 iN+Tig?c  
        .SpaceBefore = 0 sX$EdIq  
        .SpaceAfter = 0 .,5N/p"aV  
         ]Uee!-dZ  
        .DisableLineHeightGrid = True \5s #9  
    End With Y>i?nC%*  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False fd} U l  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll j[<}l&  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese O4i5 fVy{  
    ActiveDocument.Styles("QLNU正文").NoProofing = True 7BDRA},o  
    DoEvents {(MC]]'?  
     TwZASn]o  
    '图片段落样式 *iVCHQ~  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") J}UG{RttI  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" vkQkU,q  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False Ot#O];3  
    With ActiveDocument.Styles("QLNU图片段落").Font WYklS<B[  
        .Size = 12               '小四号 k9pOY]_Y  
        .Italic = wdUndefined {@8TGHKv  
        .Subscript = wdUndefined :RE .md  
        .Superscript = wdUndefined x O~t  
    End With $Q cr  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat NWq>Z!x`  
         1hn4YcHb  
        .LeftIndent = CentimetersToPoints(0) 7$&3(#!N  
        .RightIndent = CentimetersToPoints(0) /?wH1 ,  
        .FirstLineIndent = CentimetersToPoints(0) }+4^ZbX+:  
         <_~> YJ  
        .LineSpacingRule = wdLineSpaceSingle r|>a;n Y  
        .Alignment = wdAlignParagraphCenter PA(XdT{  
        .KeepWithNext = True J` J^C  
        .OutlineLevel = wdOutlineLevelBodyText N-4k 9l1  
         N1O.U"L;  
        .CharacterUnitLeftIndent = 0 {2Jn#&Z29  
        .CharacterUnitRightIndent = 0 1IRlFC  
        .CharacterUnitFirstLineIndent = 0 ToWtltCD  
         U*s QYt<?g  
        .LineUnitBefore = 0 8Vb.%f &I  
        .LineUnitAfter = 0 CZL:&~l1  
    End With %8a886;2  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False ZH<:YOQ  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll SsE8;IGH  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese <p74U( V  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True 6*n<emP  
    DoEvents E1uyMh-dy  
     }+fMYgw  
     bEJz>oyW"  
    '第X章 H=j&uv8  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") [j]3='2}G  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" <cn{S`  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False \Gk4J<  
    With ActiveDocument.Styles("QLNU章节标题").Font 5 UQbd8  
        .NameFarEast = "黑体" =6sL}$  
        .NameAscii = "Arial Black" 0[qU k(=}[  
        .NameOther = "Arial Black" Y]SX2kk(2  
        .Name = "黑体" DcQ[zdEz+  
        .Size = 16 MWxv\o   
        .Bold = True 2HemPth  
        .UnderlineColor = wdColorAutomatic D+ )R_  
        .Outline = False ] 3@.)  
        .Italic = wdUndefined B8'e,9   
        .Subscript = wdUndefined W+C@(}pt  
        .Superscript = wdUndefined 4G4[IA u_  
        .Scaling = 100 L-T3{I,3  
        .DisableCharacterSpaceGrid = True }I1SC7gY  
    End With VdZmrq;?/  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat 3 0fsVwE2  
        .LineSpacingRule = wdLineSpaceSingle &(] @L\A  
        .Alignment = wdAlignParagraphCenter !F_BLHig  
        .WidowControl = True q{?ku!cL  
        .KeepWithNext = True [?vn>  
        .KeepTogether = True _*I@ J/  
        .PageBreakBefore = True K9YD)351t  
        .OutlineLevel = wdOutlineLevelBodyText ,r -l^I3<  
         9svnB@  
        .LeftIndent = CentimetersToPoints(0) Gw/imXL  
        .RightIndent = CentimetersToPoints(0) {{WA=\N8C  
        .FirstLineIndent = CentimetersToPoints(0) g{}{gBplnl  
         ^}gQh#  
        .CharacterUnitLeftIndent = 0 ^g K8 u]>  
        .CharacterUnitRightIndent = 0 K5fL{2V?  
        .CharacterUnitFirstLineIndent = 0 kt ILKpHt"  
         t'@qb~sf  
        .LineUnitBefore = 1 UE[5Bw?4X  
        .LineUnitAfter = 0.5 d }" Dp  
         F(w  
        .AutoAdjustRightIndent = False k9ThWo/#u  
        .DisableLineHeightGrid = True 8RfFP\AP  
        .FarEastLineBreakControl = True w,t>M_( N  
        .WordWrap = True ;%j1'VI  
    End With v&NC` dVR  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False !e}LB% zf  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll pS3TD"p  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese ;%_fQNFb  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True _'yN4>=6u  
    DoEvents #=G[ ~m\  
     _ZnVQ,zY  
    '表格标题 ;;9W/m~]  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") "AzA|zk')"  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" b`=\<u8  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False cnUYhxE+s  
    With ActiveDocument.Styles("QLNU表格标题").Font 8d90B9  
        .NameFarEast = "楷体" H|1owmbD  
        .NameAscii = "Arial" 1,tM  
        .Name = "楷体" -Tw96 dv  
        .Size = 10.5 9bL`0L  
        .Bold = True f<`is+"  
        .Underline = wdUnderlineNone %)Pn<! L  
        .Italic = wdUndefined Z*}5M4  
        .Subscript = wdUndefined LvsNU0x  
        .Superscript = wdUndefined ]+SVQ|v0  
        .Color = wdColorAutomatic S-^RZ"  
    End With }CiB+  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat >>ncq$  
         >0W:snNK  
        .LineSpacingRule = wdLineSpaceSingle y3]7^+k  
        .Alignment = wdAlignParagraphCenter Tq r]5  
        .KeepWithNext = True a19yw]hF5  
        .KeepTogether = True 2&f] v`|M|  
        .OutlineLevel = wdOutlineLevelBodyText X_}2xo|T  
         hf/6VlZ  
        .LeftIndent = CentimetersToPoints(0) Y R2Q6}xR  
        .RightIndent = CentimetersToPoints(0) c3X'Sv  
        .FirstLineIndent = CentimetersToPoints(0) G/2| *H  
         F3a OKV^  
        .CharacterUnitLeftIndent = 0 Q!%4Iq%jr  
        .CharacterUnitRightIndent = 0 ZZ<uiN$  
        .CharacterUnitFirstLineIndent = 0 {g:I5 A#  
         E0miX)AG  
        .LineUnitBefore = 1 bF#*cH  
        .LineUnitAfter = 0 fI5]ed eS  
         | Vtd !9  
    End With vakAl;  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False c Bl F  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll &: i|;^^2  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese SA| AS<  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True '8Q:}{  
    DoEvents ~JJuM  
{c'2{`px 5  
    '表格首行 |6%B2I&c  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") v[r5!,F  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False cH&-/|N  
    With ActiveDocument.Styles("QLNU表格首行").Font FJ|6R(T_  
        .NameFarEast = "楷体" 0wx lsny?  
        .NameAscii = "Times New Roman" P,2FH2Eyj  
        .Name = "楷体" ],lrT0_cT  
        .Size = 9 BrdHTk= Vy  
        .Bold = True ?Mb 'l4  
        .Underline = wdUnderlineNone bOt6q/f  
        .Italic = wdUndefined u* I=.  
        .Subscript = wdUndefined .#M'  
        .Superscript = wdUndefined : "|M  
    End With s)=fs#%  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat { *"I4  
        .LineSpacingRule = wdLineSpaceSingle y|BRAk&n  
        .Alignment = wdAlignParagraphCenter Vt {uG  
         [7Yfv Xp  
        .LeftIndent = CentimetersToPoints(0) ]}3AP!:  
        .RightIndent = CentimetersToPoints(0) yEnurq%J  
        .FirstLineIndent = CentimetersToPoints(0) 9!u=q5+E  
         u}eqU%  
         9 a ED6  
        .CharacterUnitLeftIndent = -0.5 6^vMJ82U  
        .CharacterUnitRightIndent = -0.5 mG? g  
        .CharacterUnitFirstLineIndent = -0.5 IA\CBwiLj  
         I.[2-~yf  
        .LineUnitBefore = 0 ,X[l C\1a  
        .LineUnitAfter = 0 \ 2$nFr?0  
        .SpaceBefore = 0 ^^u{W|'CaH  
        .SpaceAfter = 0 v&hQ;v  
         -'j_JJ  
    End With ZeUA  e  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False /AJ#ngXz  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll R. sRH/6  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese }=1#ANM1  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True nN=o/zd  
    DoEvents 03F%!Rm/j  
v o9DmW  
    '表格内容 y<Hka'(%  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") Osb#<9{}  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False Xndgs}zz  
    With ActiveDocument.Styles("QLNU表格内容").Font xQ[~ c1  
        .NameFarEast = "楷体" p[Pa(a,B7  
        .NameAscii = "Times New Roman" ^ |k 7g  
        .Name = "楷体" Sn I-dXNF  
        .Size = 9 =l  %  
        .Bold = False MeXzWLH  
        .Underline = wdUnderlineNone I Xm}WTgF!  
        .Italic = wdUndefined +1Qa7 \  
        .Subscript = wdUndefined PdUlwT? 8C  
        .Superscript = wdUndefined _vQtV]  
    End With uQwKnD?F+e  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat *} pl  
        .LineSpacingRule = wdLineSpaceSingle r#ISIgJXG  
        .Alignment = wdAlignParagraphCenter XYJ7k7zc+Y  
         "f/Su(6{0  
        .LeftIndent = CentimetersToPoints(0) i8F^ N=  
        .RightIndent = CentimetersToPoints(0) -6URM`y'j  
        .FirstLineIndent = CentimetersToPoints(0) VJK?"mX  
         sD|P*ir  
        .CharacterUnitLeftIndent = -0.5 u&q RK>wLa  
        .CharacterUnitRightIndent = -0.5 ~i)m(65:  
        .CharacterUnitFirstLineIndent = -0.5 aZ[ aZU  
        .LineUnitBefore = 0 HN/ %(y  
        .LineUnitAfter = 0 BT|5"b}  
        .SpaceBefore = 0 *hhPCYOm  
        .SpaceAfter = 0 82S?@%}#J  
    End With ~uF%*  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False [Yo3=(7J  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll 8 JOfx  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese ,]1oG=`3v  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True pvCf4pf~  
    DoEvents 8oM]gW;J~  
-^C't_Q o  
    '图片标题 cR/-FR  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") K%Dksx7ow  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" hJr cy!P<a  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False k 8C[fRev  
    With ActiveDocument.Styles("QLNU图片标题").Font 1o&] =(  
        .NameFarEast = "楷体" %^e~;i=2  
        .NameAscii = "Times New Roman" RoV^sbWFt  
        .Name = "楷体" ]bjXbbHd  
        .Size = 10.5 v8 Q/DJ~  
        .Bold = True 334UMH__  
        .Underline = wdUnderlineNone k<1BE^[V  
        .Italic = wdUndefined gnW]5#c@  
        .Subscript = wdUndefined ' }G ! D  
        .Superscript = wdUndefined Mw=sW5Z  
        .Outline = False "pP5;*^f  
        .Shadow = False &d"c6il[  
        .Color = wdColorAutomatic !H,_*u.  
    End With >k:BG{$Kae  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat 5H (CP  
        .LineSpacingRule = wdLineSpaceSingle av-l_iE  
        .Alignment = wdAlignParagraphCenter ^ :%"Z&  
         |T!^&t  
        .KeepWithNext = wdUndefined rTBrl[&,q'  
        .KeepTogether = True (zW;&A  
        .OutlineLevel = wdOutlineLevelBodyText 5Ocd2T'  
         Rgb1B3gu  
        .LeftIndent = CentimetersToPoints(0) 4NY00d/R  
        .RightIndent = CentimetersToPoints(0) _/@VV5Mq  
        .FirstLineIndent = CentimetersToPoints(0) .T*K4m{b0  
         c4]/{!4 Q  
        .CharacterUnitLeftIndent = 0 K+9oV[DMs  
        .CharacterUnitRightIndent = 0 4 1w*<{Lk  
        .CharacterUnitFirstLineIndent = 0 (8M^|z}q  
         jwm2ZJW  
        .LineUnitBefore = 0 z:RclDm  
        .LineUnitAfter = 0 t7A '  
    End With XS$5TNI  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False wv.FL$f[@  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll /i$-ws-  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese K"p$ga{  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True tVSURYA8  
    DoEvents aNZJs<3;'D  
1`t4wD$/  
    '目录项 BXNt@%  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") `t0?PpUo  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" eBZa 9X$  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False [@SLt$9"  
    With ActiveDocument.Styles("QLNU目录项").Font ls5s}X  
        .NameFarEast = "黑体" 5|&:l8=  
        .NameAscii = "Times New Roman" W/z\j/Rgc  
        .NameOther = "Times New Roman" <ej Wl%4  
        .Name = "黑体" X bF;  
        .Size = 10.5 ?vHow $  
        .Bold = False t tEQgkd`  
        .Italic = wdUndefined tc go 'V  
        .Underline = wdUnderlineNone KmuE#Ia  
        .Color = wdColorAutomatic ,XD'f  
        .Superscript = wdUndefined 2_^{Vez@I  
        .Subscript = wdUndefined h8IjTd]z{$  
    End With s[ {L.9Y  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat bjgf8427I  
         .rfufx9Sw  
        .LineSpacingRule = wdLineSpaceSingle 5hNjJqu  
        .Alignment = wdAlignParagraphLeft r"yA=d'c  
         Q o}&2m  
        .WidowControl = False t;[L-|^  
        .KeepWithNext = False v&BKl  
        .KeepTogether = False q3+G  
        .PageBreakBefore = False 1-_op !N  
        .NoLineNumber = False +&LzLF.bK  
        .OutlineLevel = wdOutlineLevelBodyText jy=dB-&  
         68m (%%E@  
        .LeftIndent = CentimetersToPoints(0) Yzr RnVr  
        .RightIndent = CentimetersToPoints(0) JNQiCK,)}M  
        .FirstLineIndent = CentimetersToPoints(0) tB DaFB  
         |K},f ,  
        .CharacterUnitLeftIndent = 0 I y?_2m  
        .CharacterUnitRightIndent = 0 #St=%!  
        .CharacterUnitFirstLineIndent = 0 $"P9I-\m  
         z tS P4lW  
        .LineUnitBefore = 0 w28!Yj1Q  
        .LineUnitAfter = 0 R5`"~qP-  
    End With 5O.dRp7d J  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False h @{U>U7  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll }*WNrS">S  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot zzf;3S?  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese "AN2 K  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True ;DMv?-H  
    DoEvents g.AMCM?z  
     em^|E73  
    '参考文献 GCN(  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") ]B;GU  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" l,FK\  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False txF)R[dZK  
    With ActiveDocument.Styles("QLNU参考文献").Font 2ckAJcpEb/  
        .NameFarEast = "宋体" \Y)pm9!  
        .NameAscii = "Times New Roman" BMw_F)hTO  
        .NameOther = "Times New Roman" v 4@=>L  
        .Name = "Times New Roman" @Y/PvS 8!  
        .Size = 12 PJC[#>}  
        .Bold = False . &dh7` l  
        .Italic = wdUndefined V^ O dTM  
        .Subscript = wdUndefined a );>  
        .Superscript = wdUndefined 1WGcv O)<  
        .Underline = wdUnderlineNone GF6c6TXF@  
        .UnderlineColor = wdColorAutomatic EJ$-  
        .Color = wdColorAutomatic +Eil:Jz  
        .Engrave = False HGuY-f  
    End With y`"b%P)+T  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat DNsDEU  
         zCrDbGvqF`  
        .LineSpacingRule = wdLineSpaceExactly bM]\mo>z<  
        .LineSpacing = 16 [ vU$zZ<  
        .Alignment = wdAlignParagraphLeft }-3| v<d  
        .WidowControl = False [4)q6N5`f  
        .KeepWithNext = False %9z N U  
        .KeepTogether = False g8 (zvG;Y  
        .PageBreakBefore = False iI_ad7,u  
        .OutlineLevel = wdOutlineLevelBodyText ->DfT*)  
         \3P.GS{l  
        .LeftIndent = CentimetersToPoints(0) L2s)B  
        .RightIndent = CentimetersToPoints(0) {}Y QB'}  
        .FirstLineIndent = CentimetersToPoints(0) V K/;ohTTP  
         "=l<%em  
        .CharacterUnitLeftIndent = 0 7%p[n;-o&  
        .CharacterUnitRightIndent = 0 cswX?MN  
        .CharacterUnitFirstLineIndent = -2 19)fN-0Z  
         #qk}e4u  
        .LineUnitBefore = 0 EleK*l  
        .LineUnitAfter = 0 ~z)diF<  
        .SpaceBefore = 0 GarPnb  
        .SpaceAfter = 0 #"}Z'|X*  
         l O482l_t  
    End With LOY+^  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False x:TBZh?@$  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll I!(.tu6u6c  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS TNs0^h)  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True [@Hv,  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese {^TVZdw  
    DoEvents Pb0+ z=L  
n\v\<mVTb7  
    ' iz'#K?PF_  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") rbP" n)0=  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" "y R56`=  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False #(o 'G4T  
    With ActiveDocument.Styles("QLNU论文题目").Font 5t6!K?}  
        .NameFarEast = "黑体" 0- GA,I_  
        .NameAscii = "Arial Black" $y !k)"k  
        .NameOther = "Arial Black" (bfHxkR.  
        .Name = "Arial Black" )^+v*=Dc-i  
        .Size = 16 ],ow@}  
        .Bold = False pg3B^  
        .Italic = wdUndefined m?;aTSa  
        .Superscript = wdUndefined Nrl&"IK|J  
        .Subscript = wdUndefined /1X0h  
        .Underline = wdUnderlineNone 3c5=>'^F  
        .UnderlineColor = wdColorAutomatic ".&x`C  
        .Color = wdColorAutomatic q7}$F]UM"  
8Z;wF  
    End With S5eQHef  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat 8i!~w 7z  
        .LineSpacingRule = wdLineSpaceSingle 6&(gp(F  
        .Alignment = wdAlignParagraphCenter *u Ynu|UQH  
        .WidowControl = True =>ooB/  
        .KeepWithNext = True . e2qa  
        .KeepTogether = True rvT7 5dV0  
        .PageBreakBefore = True ,|?-\?I  
        .NoLineNumber = False n7~!klF-  
        .OutlineLevel = wdOutlineLevelBodyText |CME:;{T  
         MF>1u%  
        .LeftIndent = CentimetersToPoints(0) ^H'zS3S  
        .RightIndent = CentimetersToPoints(0) iqecm]Z0  
        .FirstLineIndent = CentimetersToPoints(0) Wc4K?3 ZM  
         Y21,!$4gb  
        .CharacterUnitLeftIndent = 0 HR'r~ #j  
        .CharacterUnitRightIndent = 0 :0BaEqX  
        .CharacterUnitFirstLineIndent = 0 6 x\+j  
         846j<fE  
        .LineUnitBefore = 1 WeGT}  
        .LineUnitAfter = 1 F^ kH"u[  
         g`KVF"8  
        .BaseLineAlignment = wdBaselineAlignAuto yb BLBJb  
    End With 8" Z!: =A  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False ~8'4/wh+8  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll EK:!.Fl  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS `Q!|/B  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True wyO@oi Vn  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese wAE ,mw  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True EUdu"'=4a  
    DoEvents k[oU}~*U+  
     /ZAS%_as  
    '中文摘要 \m!swYy  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") ;EP]A3  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" azMrY<  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False t0Q/vp*/  
    With ActiveDocument.Styles("QLNU中文摘要").Font M 7j0&>NTG  
        .NameFarEast = "宋体" n50XGv  
        .NameAscii = "Times New Roman" jREj]V>  
        .NameOther = "Times New Roman" 4kO[|~#  
        .Name = "Times New Roman" 5q[0;`J  
        .Size = 12 9OB[ig  
        .Bold = wdUndefined t?^C9(;6  
        .Superscript = wdUndefined M70Xdn  
        .Subscript = wdUndefined Ou IoO  
        .Italic = wdUndefined h tbN7B(  
        .Underline = wdUnderlineNone *JXiOs  
        .UnderlineColor = wdColorAutomatic |xaJv:96%  
        .Color = wdColorAutomatic )I<p<HQD  
    End With 84[T!cDk  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat T:Dp+m!\{  
        .LineSpacingRule = wdLineSpaceExactly Ww*='lz  
        .LineSpacing = 20 ['pk/h  
        .Alignment = wdAlignParagraphLeft >V:g'[b  
         4VE7%.z+  
        .WidowControl = False kvh}{@|-  
        .KeepWithNext = False C)> ])'S  
        .KeepTogether = True hx$-d}W{  
        .PageBreakBefore = False YIA}F1:  
        .NoLineNumber = False jnFCt CB  
        .OutlineLevel = wdOutlineLevelBodyText 4ew|5Zex.~  
         }'{39vc .  
        .LeftIndent = CentimetersToPoints(0) 't=\YFQ*v  
        .RightIndent = CentimetersToPoints(0) Yo:l@(  
        .FirstLineIndent = CentimetersToPoints(0)  N7j  
         .fxI)  
        .CharacterUnitLeftIndent = 0 gP.Q_/V  
        .CharacterUnitRightIndent = 0  "m3:HS  
        .CharacterUnitFirstLineIndent = 2 }fw;{&s{z  
        .LineUnitBefore = 0 0;'kv |  
        .LineUnitAfter = 0 &F" Mkyf  
         b?h9G3J_a  
    End With \ief [  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False m`UNdFS  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll  =%AFn9q  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS -X(%K6{  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True 'UO,DFq[Fl  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese jh.W$.Oq  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True &)L2a)  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete  D/hQ{T  
    DoEvents }~dXz?{p8  
     07-S%L7Z  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") WAiEINQ^)  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" ug!DL=ZW  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False q4vu r>m6  
    With ActiveDocument.Styles("QLNU英文标题").Font j(G}4dib  
        .NameFarEast = "黑体" '01H 8er  
        .NameAscii = "Arial Narrow" 1E!0N`E  
        .Name = "Arial Narrow" UM%[UyYQ  
        .Size = 16 Sv.z9@S  
        .Bold = True <by}/lF0  
        .Bold = wdUndefined T{u!4Yu  
        .Superscript = wdUndefined XtfO;`   
        .Subscript = wdUndefined *zX*k 7LnV  
        .Italic = wdUndefined LH.. 8nfl  
         ^GdU $%aa  
        .Underline = wdUnderlineNone WlP #L`  
        .UnderlineColor = wdColorAutomatic s}A)sBsaP3  
        .StrikeThrough = False NUBzmnA>8  
        .DoubleStrikeThrough = False \s Fdp!M}2  
    End With v=?U {{xQ  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat VY8 p[`  
        .LineSpacingRule = wdLineSpaceSingle 8Dpf{9Y-E  
        .Alignment = wdAlignParagraphCenter +]Of f^s  
        .WidowControl = True ?}%Gr,tj2  
        .KeepWithNext = False ITh1|yP  
        .KeepTogether = False pRmnS;*z&  
        .PageBreakBefore = False ^z3-$98=A  
        .NoLineNumber = False N!DAn \g  
        .FirstLineIndent = CentimetersToPoints(0) w[PWJ! <  
        .OutlineLevel = wdOutlineLevelBodyText ~T<#HSR`  
         xd8UdQ, lt  
        .LeftIndent = CentimetersToPoints(0) UwY<3ul  
        .RightIndent = CentimetersToPoints(0) p8y_uN QE  
        .FirstLineIndent = CentimetersToPoints(0) B M{GSX  
         ws5 x53K  
        .CharacterUnitLeftIndent = 0 fXMVl\ <  
        .CharacterUnitRightIndent = 0 eSXt"t  
        .CharacterUnitFirstLineIndent = 0 E!'H,#"P  
         CtVY;eG  
        .LineUnitBefore = 1 /h%<e  
        .LineUnitAfter = 1 cH6ie?KvAo  
         #"d.D7nA  
    End With vBsd.2t~  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False 6\4n y0  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll KC o<%  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS xI'<4lo7Z  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True !_s|h@  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese {s|rk  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True 4*OL^ \%  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete 13Ga #  
    DoEvents (+>~6SE  
Ojp)OeF\  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") X hFa9RC  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" .z+?b8Q\  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False ~u1ox_v`%(  
    With ActiveDocument.Styles("QLNU英文摘要").Font R3F>"(P@tS  
        .NameFarEast = "宋体" o#E 3{zM  
        .NameAscii = "Arial" 8WV1OIL  
        .NameOther = "Arial" YKLh$  
        .Name = "Arial" e;pVoRI  
        .Size = 12 -yeQQ4b  
        .Bold = wdUndefined &V1N a1`  
        .Italic = wdUndefined ,.tT9? m  
        .Superscript = wdUndefined "!XeK|Wi  
        .Subscript = wdUndefined a&)0_i:r  
    End With PEZElB ;  
     2}]6~i  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat i ^sK+v  
         "|`8mNC  
        .LineSpacingRule = wdLineSpaceExactly 8 f%@:}H  
        .LineSpacing = 20 'nI2RX  
         PaV[{ CD  
        .Alignment = wdAlignParagraphJustify Ld? tVi  
         zfL$z,zgf  
        .WidowControl = False @Fqh]1t  
        .KeepWithNext = False ?*E Y~'I  
        .KeepTogether = False  }5bh,'  
        .PageBreakBefore = False v vlfL*f  
        .NoLineNumber = False : N ^1T6v  
         1Nw&Z0MI  
        .OutlineLevel = wdOutlineLevelBodyText noe1*2*TE  
         +V1EqC*  
        .LeftIndent = CentimetersToPoints(0)  bv0B  
        .RightIndent = CentimetersToPoints(0) -h*Yd)  
        .FirstLineIndent = CentimetersToPoints(0) sj2v*tFb  
         XEV-D9n  
        .CharacterUnitLeftIndent = 0 ([UuO}m-  
        .CharacterUnitRightIndent = 0 C. s{ &  
        .CharacterUnitFirstLineIndent = 2 )gV+BHK  
         Y+<C[Fiq  
        .LineUnitBefore = 0 wNDLN`,^H  
        .LineUnitAfter = 1 Y5=~>*e  
         G ;V@oT  
    End With aGNVqS%y  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False OYC4iI   
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll +] B  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS *wP8)yv7  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False +FQ:Q+  
    DoEvents #})Oz| c  
" e g`3v  
    Options.Pagination = True _3tHzDSG #  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." (.P;VH9R\  
    DoEvents 8+ eZU<\B(  
    ActiveDocument.Repaginate ]R}#3(]1  
*103  
End Sub l9 )iLOj  
j>eL&.d  
QL}5vSl  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: P~ _CDh.N  
H#k"[eZ  
用VBA控制WORD自己修订学生毕业文的格式。 = I i@-C  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
98楼  发表于: 2021-01-02   
继续填 BotNET 或Pynthon? 有没有XDJMs接龙啊 ? yt>Pf <AI  
3k;U#H  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

#H O\I7m  
*Vfas|3hZI  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 u:HKmP;  
第6车皮  Xid>8  

}S#.Pw%  
{)b`fq  
第9车皮 q{U -kuui  
Vaha--QB  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 ]m4LY.SQ  
]G1j\wnF  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 Ix(4<s  
[w{ZP4d>  
Main2.bas Fn[~5/  
wSAm[.1i  
Attribute VB_Name = "SubMain" s &.Z;X  
Option Explicit |HG%o 3E]  
qL'3MY.!  
'采集文件与临时文件 e<p$Op  
Public Const TmpFile As String = "d:\30-0600.dat" ux =a9  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 I?fE=2}9  
PN.6BJvu  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long 8vT:icl  
Public hBCFile As Long  '记录采集参数的文件 & 1Y+ q]  
Public Const TmpBMP As String = "d:\1.bmp" A%GJ|h,i  
Public hTmpFile As Long BKD Wd]KEf  
#5H@/o8!s=  
Z(<ul<?r  
'采集窗口参数常量 RtIc:ym  
Public Const FrameH As Long = 280& vaQ,l6z .h  
Public Const FrameW As Long = 768& ze 4/XR  
Public Const pFrameSize As Long = FrameW * FrameH {>+$u"*  
+?.,pqn<=  
'标志区范围,用于识别车辆 26Yg?:kP  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X PN'8"8`{  
Public Const mkW As Integer = 28  '识别标志立柱宽度 mdZELRu  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) }2\"(_  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) "q(&<+D@  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 B "qG-ci  
'车缝检测位置常数 <=zGaU,  
Public Const sSize As Long = 32& {'b8;x8h  
Public Const sPos As Long = 310& ?DRC! 9o^  
Public Const sPosL As Long = 200& 0)P18n"$  
Public Const sPosR As Long = 500& t&&OhHK  
'车缝检测框位置 >N,G@{FR  
Public Slice(1 To sSize, 1 To FrameH) As Byte ':>B %k  
Public SliceL(1 To sSize, 1 To FrameH) As Byte %]R#}amW  
Public SliceR(1 To sSize, 1 To FrameH) As Byte #ERn 8k  
Public avSL As Integer, avSLR As Integer, avSLL As Integer xJ"KR:CD>  
P\M+Z A ;  
Ja (/ym^  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 cYp}$  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 ALw uw^+  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 .H>Rqikj  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long )`Fr*H3{  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte ~'U;).C   
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 q6ikJ8E8b  
JNu- z:J  
<]9MgfAe  
5sE^MS1  
'一次连续采集的帧数 Gg!))I+  
Public tFrames As Long !e7vc[N  
fg1y@Dj/&  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 sbs"26IE  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 )F~_KD)7jJ  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize c8'8DM  
3jI.!xD`  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte jqLyX  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte NRl"!FSD;"  
Public pWorkSpace(1 To FrameW * FrameH) As Long }UO,R~q~  
Public Const pBufferSize As Long = FrameW * FrameH * 2 +p[~hM6?  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 ^s? wnEo;j  
<N*>9S,}  
Public hBoard As Long   '采集卡标识 ko:I.6-K  
Public mBufferAddr As Long  '缓存地址 tS9m8(Hr%Q  
Public BufferSize As Long  '缓存大小(字节) s{IoL_PJP  
Public iCurrentCard As Long n;=A'g|Q  
Public CapStatus As Long H,I}R  
Public iFrames As Long bo*q{@Ue  
Public currentBr As Byte, currentContr As Byte x:bYd\ EJ[  
kN^)6  
Public hMEM As Long, mStatus As Long 9F-k:hD |  
Public Const hMemSize As Long = pFrameSize * 4 : 1{j&$  
Public hMemWork As Long h49Q2`  
Public Const hMemWorkSize As Long = pFrameSize * 5 ;?[~]"  
$e_ps~{7$  
Q?tV:jogY  
5{5ABV  
'串口接收轨道衡数据 g|zK%tR_P  
Public WeightFromCom As String %*gO<U4L]  
Public bReceiveComplete As Boolean e56#Qb@$\  
#<~f~{x  
j~{2fd<>  
Public Type GrayBMPHeader XgbGC*dQ  
  Tag As Integer U=t'>;(g  
  FileLength As Long    '文件大小 \%C[l  
  Reserve1 As Long RasoO j$  
  DataOffset As Long    '图像数据偏移量 5^Y/RS i  
  BMPHeaderSize As Long  '文件头长 4tC_W!?$t  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… MCCZh{uo  
                        'the following sizes are possible: NV gLq@F  
                        '28h - windows 3.1x, 95, nt, … x3P@AC$\  
                        '0ch - os/2 1.x };j&)M  
                        'f0h - os/2 2.x g\l;>  
L!p|RKz9X  
  ImageWidth As Long           '图像宽(像素数) *Q>:|F[vM  
  ImageHeight As Long          '图像高(像素数) |-mazvA  
  PlaneNumber As Integer  '图像层数 joA+  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap LBE".+  
                                        '4 - 16 color bitmap  #.><A8J  
                                        '8 - 256 color bitmap <2 Q@^  
                                        '16 - 16bit (high color) bitmap Om^/tp\  
                                        '24 - 24bit (true color) bitmap <oO, CXF  
                                        '32 - 32bit (true color) bitmap "h2Ny#  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) S?{5DxilO  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) 7X|r';"?i  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) ;FmSL #]I  
                                    '3 - bitfields (also identified by bi_bitfields) H94.E|Q\+  
  IMAGESIZE As Long  '图像数据字节数 n~ql]Ln  
  hResolution  As Long  '水平分辩率  像素数/米 5;{Bdvcv  
  vResolution  As Long  '垂直分辩率 >ob/@  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 &8pXkD#A  
  ImportantColors As Long Z~uKT n  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 J v#^GNm  
End Type @( t:E`8  
/OP*ARoC21  
8F * WT|]  
yRYWx` G  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader J4vKfxEg  
Public sRECT As RECT 4yA`);r62  
j[fQs,efK  
c|R/, /  
Public conn As ADODB.Connection V!P3CNK  
Public rsTrain As ADODB.Recordset e !yw"Cf*  
Public rsOperater As ADODB.Recordset 9PJDT]  
Public rsGoods As ADODB.Recordset =l(JJ  
Public rsGood2 As ADODB.Recordset |z'?3 ?,~  
Public rsSender As ADODB.Recordset /kz&9FM  
Public rsReceover As ADODB.Recordset 6ZR0_v;TD  
Public rsTrainTMP As ADODB.Recordset R]Oy4U,f  
_E;Y ~I,i  
Ig<p(G.;}  
'打开采集卡 v2{O67j} o  
'设置参数 !7 oy%{L  
'设置为实时单帧采集到缓存方式  @NIypi$T  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 [FL I+;gY  
s V<4^n7  
8x" d/D  
Sub Main() Fjzk;o  
  Dim i As Integer, status As Long W,~1KUTc  
     FT;JYkO  
   InitBMPinfo gp HwiFc  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 b8>9mKs  
    BMPHeader.Tag = &H4D42 dO[4}FZ$  
    BMPHeader.ImageWidth = FrameW Dkb&/k:)  
    BMPHeader.ImageHeight = FrameH u\xm8}A  
    BMPHeader.BMPHeaderSize = &H28 @QG1\W'  
    BMPHeader.PlaneNumber = 1 w#T,g9  
    BMPHeader.bpp = 8 S:YL<_oI|  
    BMPHeader.Compression = 0 j 7 URg>i0  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 nrIL_  
    BMPHeader.vResolution = &H1274 _);Kb/  
    BMPHeader.ColorsinBMP = 256 F4Uk+|]Bu  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP 50&F#v%YB  
    BMPHeader.DataOffset = Len(BMPHeader) J7GsNFL  
    For i = 0 To 255 GU3 /s&9  
      BMPHeader.Pallate(i) = RGB(i, i, i) $at|1+bQ  
    Next i 5B 7*Z  
    BMPHeader.IMAGESIZE = FrameH * FrameW 'EV  *-_k  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE \DqxS=o;  
,7P^]V1  
CiI: uU  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) lc-|Q#$3$  
     \2pFFVT  
    BMP1.ImageWidth = FrameW .@Uz/j?>  
    BMP1.ImageHeight = FrameH * 2 E<uOk  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight _|ib@Xbin  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE 2-0cB$W+  
kDq%Y[6Z  
  '确定标志位置,为pilarX, pilarY确定初始值 8~E)gV+v  
   PilarW = mkW Aa>gN  
   PilarH = mkH  '此两项为固定值 c0&'rxi( B  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) Hz8`)cv`  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 $0}bi:7  
   m;f?}z_\$  
   n*~   
  '连续采集记录文件 14!J\`rI  
  ' 建立一个缓冲区为页对齐方式的文件 qJU)d  
  If Dir(TmpFile) <> "" Then "6yiQ\`J  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ + nS/jW  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) #&83;uys  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项  ~C/KA6H  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 Q ~JKKq  
  Else 4P!DrOB  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ gi'agB^  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) Fz&i lB  
  End If .4> s2  
  If hFile = 0 Then <UJJ],)^1A  
    MsgBox TmpFile & ": File Open Error", vbOKOnly o2d~  
    Exit Sub |"qB2.[  
  End If JF%=Bc$C  
  '采集参数记录文件 #@^w>D6W  
hBCFile = FreeFile() (Fzh1#  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile ,,@`l\Pgd  
   )V3(nZY  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 Xp6*Y1Y  
If hMEM = 0 Then cl{W]4* $  
    fStatus = GetLastError ':D&c  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ oh~ vo!  
     & "请向技术人员报告该错误代码。", vbOKOnly ==1/N{{R  
    CloseHandle hFile /dt!J `:  
    Exit Sub I&8SP$S>J  
End If VtiqAh}4  
|o zoc"'  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) ;J-Ogt@d7  
If hMemWork = 0 Then WG !t!1p  
    fStatus = GetLastError WgJAr73 l  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ `?^w   
     & "请向技术人员报告该错误代码。", vbOKOnly @ z)tC@  
     '释放已成功分配的内存 8 QF?W{NK  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) jHlOP,kc  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) Treh{s  
     "jO3Y/>S  
    CloseHandle hFile qYZ7Zt;  
    Exit Sub ,'CWt]OS'  
End If sLdUrD%  
w"agn}CK  
' Test writing |.O!zRm  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& M#]|$\v(  
     ~e77w\Q0  
   '初始化采集卡参数 n/oipiYx  
   iCurrentCard = -1 !u4Z0!Ll  
   hBoard = okOpenBoard(iCurrentCard) ll\^9 4]Q  
   Debug.Print hBoard |$w={N^4  
   If hBoard = 0 Then z-G7Y#  
      ExitGrabber xeM':hD.o  
      End ?vn 0%e868  
   End If ]H#Rm#q  
   okGetBufferSize hBoard, mBufferAddr, BufferSize |4. o$*0Y  
   If mBufferAddr = 0 Then |vN@2h(|"  
     MsgBox "缓存不存在!" Q\#{2!I  
     ExitGrabber t"/"Ge#a  
   End If ef}E.Bl  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) b+].Uc  
   <ytKf<a%e  
   eM=)>zl  
   currentBr = 128: currentContr = 128 >Y-TwD aE  
   '设置视频输入参数 =+}}Sv2  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 #r.` V!=  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input D4Y!,7WEVt  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 8V|jL?a~  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 k> &s( b  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 _:X|R#d  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 DJYXC,r  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) 8;g.3Qv  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) (1AA;)`Kp  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) I4 9l2>  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 $dTfvd  
   9LO.8Jy  
   '设置采集参数 ;%7XU~<a  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 o1X/<.0+  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 xSDE6]  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 &1E~ \8U  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 _8b]o~[Z+  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 zLw h6^?Y  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 NQ!N"C3u  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 uxC   
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 j(6$7+2qN  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 ccn`f]5w  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 e*2&s5 #RT  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 ;5Vk01R  
   m>+,^`0  
   B_"OA3d_  
   okCloseBoard hBoard M&djw`B  
   Sleep 50 \W`}L  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 4ZJT[zi  
   2Cd --W+=  
   '设置数据传送方式 9MB\z"b?A  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 >}DjHLTW\  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 ?FV7|)f  
   rw8J:?0x  
   sRECT.Right = -1   '用于获得当前设置值 N _~KZQ11^  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) R_>TEYZ  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom  pO/SV6N  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 0^y@p&;/.  
   sRECT.Left = 0 cxD}t'T  
   sRECT.Top = 0 x1:Pj  
   sRECT.Right = sRECT.Left + FrameW L);||]B  
   sRECT.Bottom = sRECT.Top + FrameH * 2 `}9 1S  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) r($_>TS&"  
   o%+A<Ri  
   sRECT.Right = -1   '检查新设置值 w <#*O:  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) hGA!1a4 c  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom sO6gIPU^  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) K\KO5A  
   }.MoDR3\  
   If TESTSignal = False Then M eI2i  
      'ExitGrabber @ojg`!,  
   End If P10p<@?  
   2&gVZz  
   %kZ~xbY  
   tC?A so  
   '设为实时采集状态 p_5>?[TW:  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) sh !~T<yy  
   I#S~  
   ! [|vx!p  
   '单帧采集 O~#uQm  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 762o~vY6$  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) iVKbGgA  
   okCaptureTo hBoard, BUFFER, 0, 1 'single ~w 1{zxs  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 %<wQ  
   '   Sleep 20 *{.&R9#7U'  
   'Loop ^%oG8z,L  
   okGetCaptureStatus hBoard, True ^\ vfos  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize W7*_T]  
   '写入768*576测试图象 +f\pk \Ith  
   ArrayToBMP TmpBMP BK(pJNBh  
   %on9C`/  
   '打开数据库 DO1 JPeIi  
   Set conn = New ADODB.Connection /m Q2;*|  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ HTDyuqs  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ yL ;o{ G  
      "; Mode=Read|Write" jA-5X?!In  
   conn.Open 6)#- 5m  
   iM/*&O}  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) \za5:?[xB  
   frmRecord.Visible = True q: Bt]2x  
   frmQuery.Visible = True g]Xzio&w  
   Load frmReceiveFromComm MJ>Qq[0  
   E+m]aYu"  
   '调试参数 P34LV+e  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then I|F~HUzA"  
     SignalBox.Visible = True ^p"4)6p-W  
   End If _b!;(~ @p  
   If InStr(UCase(Command()), "/COMM") > 0 Then q!hy;K`Jd  
     frmReceiveFromComm.Visible = True uP%axys  
   End If nb0 Py>4  
v?YdLR  
End Sub y\)G7 (  
+q #Xy0u  
Sub ExitGrabber() eg$5z Z  
  '关闭数据库 Bbl)3$`,  
  '关闭采集卡 "rjv5*z^&  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) 6+Wr6'kuH  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) m~Y'$3w  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) ol?z<53X]  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) R0Ax$Cv{  
  okStopCapture hBoard l&6U|q`  
  okCloseBoard hBoard Sv7>IVC?@  
  CloseHandle hFile .#=j <&  
  Close #hBCFile { DEzuU  
  conn.Close iHE0N6%q  
  End FVsu8z u  
End Sub *R_'$+  
BrNG%%n  
Function ArrayToBMP(ByVal File As String) *Z]5!$UpC  
Dim BytesWrite As Long z"6ZDC6  
FXOT+9bg  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ nr<WO~Xw~  
  CREATE_ALWAYS, 0&, 0&) Gut J_2f^9  
W(uP`M%][0  
If hTmpFile = 0 Then Y7*(_P3/  
   ArrayToBMP = False _.d}lK3$2  
   Exit Function $[M} K  
End If O)R7t3t  
(30<oE{  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 4 Vu'r?  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& >/TB_ykb  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN ,bZ"8Z"lss  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& L.09\1?.n  
=2RhPD  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN |D;_:x9  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& zG-_!FIn  
).0V%}>  
If BytesWrite < pFrameSize Then $6:XsrV\a  
  ArrayToBMP = False ="3a%\  
End If /S7+B ]  
WFU?o[k-O  
CloseHandle hTmpFile |5 oKq'(b  
gd oJ4b  
End Function z:Xj_ `p  
QL)>/%yU  
Function ArrayToBMP1(ByVal File As String) #&^ZQs<  
Z?~gQ $  
Dim BytesWrite As Long F=oHl@  
|8&-66pX  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ ~vW)1XnK  
  CREATE_ALWAYS, 0&, 0&) M1AZ}b c0]  
Lnh':7FQJx  
If hTmpFile = 0 Then >]Mq)V9  
   ArrayToBMP1 = False -`zG_]=-  
   Exit Function S2J#b"Y  
End If $ZQl IJZ  
Tjnt(5 g  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN OW+e_im}  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& 8- dRdQu ]  
./"mn3U  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN P]pmt1a  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& Bii6Z@kS  
D^66p8t  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN E$]a?uA:  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& /]ku$.mr \  
Sk8%(JD7  
If BytesWrite < pBufferSize Then b@=z rhQ  
  ArrayToBMP1 = False y#]}5gJ  
End If u^`eKak"l  
V/aQ*V{  
CloseHandle hTmpFile Xtci0eS#V  
R&6n?g6@/V  
End Function y#b;uDY  
Ms.PO{wb  
'使用该过程建立的文件要求在用后关闭 wzD\8_;6N  
Public Function ArrayToBMP2(File As String) As Boolean b%Wd<N2  
zc6H o  
Dim BytesWrite As Long 9 '2=  
5a=nF9/  
ArrayToBMP2 = True VDB$"T9#  
jA4PDHf+  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ wXc,FD$  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) OOCQsoN  
f!5F]qP>-  
If hTmpFile = 0 Then )-0[ra]  
   ArrayToBMP2 = False Q,zC_  
   Exit Function 7d3 'CQQ4  
End If ' 2>l  
y._'K+nl  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN >?S\~Y  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& yJnPD/i  
rs[?v*R74  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN = y?#^  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& :&Qb>PH[  
_F L<egK  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN &g*klt'B  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& |if'_x1V  
.D+RLO z  
If BytesWrite < pFrameSize Then V-[2j C{  
  ArrayToBMP2 = False WI,40&<  
End If Jz k!K@  
;LHDh_.pX  
CloseHandle hTmpFile uVN.=  
?V#Gx>\  
End Function VVs{l\$=ZV  
4Z*|Dsw  
Private Function TESTSignal() As Boolean Hab!qWK`  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long 48wDf_<f5=  
)yHJ[   
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) 66oK3% [  
j. _G7z/LJ  
If extsign = 1 Then M[A-1]'  
   TESTSignal = True {J{1`@  
Else |}Q( F+cL  
    If extsign = 0 Then 3"5.eZSOW  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly :FnOS<_B  
        TESTSignal = False W&<g} N+  
        Exit Function 6H0W`S0a  
    End If 2bWUa~%B  
End If Gu2_dT  
ppEJs  
'测试视频输入类型 T'hml   
'video type V?=TVI*k  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 5!<o-{J[(=  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) 8|w-XR  
If videotype = 1 Then K6E}";;  
        '"隔行信号(Interlaced)" %>i@F=O2<  
Else hQJo ~'W=  
   If videotype = 0 Then rqF"QU=l  
       '"逐行信号(Non-interlaced)" /v5qyR7an  
   Else (G#}*  
     If videotype = -1 Then d&hD[v  
       ' "不支持" ICk(z~D~  
     End If f7Yz>To  
   End If . =&Jo9  
End If -<6v:Z  
pP3U,n   
'测试垂直扫描线数 !&W|myN ^  
'video scanlines ,NDh@VYe  
scanlines = -1 3a'q`.L  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) |Z d]= tue  
    If scanlines = -1 Then >b'w'"  
        ' "不支持" ~u! gUJ:  
    Else m)r]F#@/  
        'Trim(Str(ScanLines)) + " 行数/幅" @\ }sb]  
    End If Z)NrhJC  
QW2?n`Fa9-  
'测试帧频 X&s7% ]n +  
'video field frequency P2On k l  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) ; VBpp<  
    If fieldfrq = -1 Then 4KE)g  
        'lblSignal(8) = "不支持" Te+^J8  
    Else U M@naU  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" ?gLAWz  
    End If }f0u5:;Zth  
End Function zyDZ$Dhka  
[G\o+D?2  
q'.;W@m  
Sub PicIdentify() G[#.mD{k  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 jA,|JgN|n  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 ;J'OakeVO  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 sv' Gt1&"Z  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 )Lb72;!?  
?!H)zz6y  
  Dim fPTR As Long, cFrame As Long .?f:Nb.O  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer w$b~x4y%  
     J2'K?|,m  
}S,-uggz  
cFrame = 0 a RX  
NS Np  
~^x-ym5  
Do While cFrame < tFrames )6G " *  
   b7!UZu]IEv  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) B3Mx,uXT\  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) y5_XHi@u~o  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize Z9xR  
   [g+y_@9s  
  frmRecord.RText.Text = Str(cFrame) 7gm:ZS   
  frmRecord.RText.Refresh P])L8zK  
       x:qr\Rz  
  If CheckMark = True Then ' X}7]y  
   ArrayToBMP TmpBMP +lKrj\Xj  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) AQe!Sqg'  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" qp\BV#E  
   XoJgs$3B  
   DrawSlice %lV@:"G  
   /tP7uVL R  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) rhIGOk1k  
   'If i = vbNo Then gGmxx,i  
   '  Exit Do WV2~(/hX&  
   'End If Wk}D]o0^@  
   'cFrame = cFrame + 1 C%]."R cMC  
   _#FIay\ahB  
  End If p'80d:  
  DoEvents d5:tSO  
  cFrame = cFrame + 1 dhW<p 5  
Loop !_dR'  
End Sub (`pNXQ0n  
Ra0=q4vdk  
*2=W5LaK.  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean Jh?z=JY  
|YRY!V_w  
'如标志区模式反差存在则为TRUE,否则返回FALSE izf~w^/  
fe';b[q)#  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long 3%2jwR  
CheckMark = True SF^x=[ir  
   .EG* +,  
'复制标志区 /$Z m~Mp  
For i = 1 To mkH HUkerV  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW 2h<U  
Next i pqeL%="p;  
{y b D  
For j = 1 To PilarW * PilarH / 2 U. (Tl>K|0  
   mTop = mTop + MKpilar(j) <5I1DF[  
Next j Mn@$;\:  
UWw}!1  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH tOM(U-7Z&  
   mBot = mBot + MKpilar(j) <BPRV> 0X  
Next j H} 6CKP}  
(f~gEKcB2u  
mTop = mTop / PilarW / PilarH * 2 Oqmg;\pm  
mBot = mBot / PilarW / PilarH * 2 /W`$yM3  
/[iG5~G  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 d&u 7]<yDA  
E=k w)<X2  
'平均值极值化 G'9{a'  
  For j = 1 To PilarH * PilarW -w~(3(  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) (z2Z)_6L*L  
  Next j (]XbP W  
   {i>Jfl]G}  
mTop = 0: mBot = 0 +zsZNJ(U  
For j = 1 To PilarH * PilarW / 2 87<9V.s 2  
  mTop = mTop + MKpilar(j) _88QgThb  
Next j Gqt-_gga  
+#s ;yc#=2  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW !} 5*?k g  
  mBot = mBot + MKpilar(j) 1ef'7a7e8  
Next j 4uUs7T  
5B{k\H;  
f05=Mc&)  
  mTop = mTop / PilarH / PilarW * 3 3Z1OX]R  
  mBot = mBot / PilarH / PilarW * 3 /EU ; ?O  
   -`Q}tg>cT  
J$QBI&D  
If mBot > iWhite And mTop < iBlk Then 7)J6/('  
  CheckMark = True HIGNRm  
Else vbp-`M(  
  CheckMark = False 9 mPIykAj8  
End If 'gDe3@ci!  
End Function l E^*t`+  
j{;|g%5t  
Sub Capture1Frame() <0 uOq  
   okCaptureTo hBoard, BUFFER, 0, 1 'single U^rm: *f  
   okGetCaptureStatus hBoard, True 9U^$.Lb  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize vCb]%sd-U  
End Sub ax_YKJ5#P  
$KX[Zu%  
c 0-w6  
Sub CopyMark(iBlk As Integer, iWhite As Integer) 8;#AO8+U7)  
'复制标志区并返回标志区暗区与亮区的亮度平均值 ?'sXgo.}  
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 XsUUJuCG  
    rN"Xz  
'复制标志区 mM5|K@0|  
For i = 1 To mkH 9!}q{2j  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW *d>vR1  
Next i Z>2]Xx% \  
ErDL^M-`  
For j = 1 To mkW * mkH / 2 ]*;F. pZ  
   mTotal = mTotal + MKpilar(j) @Tr&`Hi  
Next j @]=f?+y[ 2  
[N:BM% FQ  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 T4 r5s  
ZXt?[L l  
mTotal = 0 iCrxV{   
For j = mkW * mkH / 2 + 1 To mkW * mkH ~+HoSXu@E  
   mTotal = mTotal + MKpilar(j) @o#+5P  
Next j ~;unpym'  
Jq .L:>x  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 kXwi{P3D$  
`c(\i$1JY)  
'背景亮度 :<GfETIs  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW %8w9E=  
  For i = 1 To 4 * FrameW AIh*1>2Xn  
    bsTotal = bsTotal + BsLine(i) WeC(w+}p  
  Next i M&y5AB0  
  bsAV = bsTotal / FrameW / 4 1,`H:%z%  
:#$F)]y'\  
End Sub hD q2-X}  
k)":v3 ^  
<MdGe1n  
Sub AdjIMGbright(Optional bInit As Boolean = True) :c7CiP  
`f)(Y1%.  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) ((|IS[  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 ntGq" o  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 3taa^e.  
     ZJ(rG((!  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer F P@qh  
   tg85:  
  '按标准亮度与对比度采集一帧,确定背景亮度 O?ktWHUx  
  currentContr = 128   '初始对比度 .X `C^z]+  
  currentBr = 128   '初始亮度 ~HmxEk9  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 m<:IFx#  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 YH\j @ ^n  
  DoEvents [U.v:tR   
  Capture1Frame PZ,z15PG]  
  '获得图像上缘4行象素 jPk c3dG +  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW  9?EVQ  
  CopyMark iBlack, iBright   '图像标志区亮度 P`TIaP9%E  
  For i = 1 To 4 * FrameW _]|Qec)  
    bsTotal = bsTotal + BsLine(i) J :S'uxM  
  Next i =_PvrB2'  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 -(IC~   
   PAZ$_eSK6  
  Select Case bsAV =g~j=v ,e  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 S&?7K-F>_o  
       currentBr = 150 XP?*= Z]  
       currentContr = 60 |0 !I5|<k  
     Case 61 To 80   '有可见背景 l6 7KJ  
       currentBr = 140 v <Hb-~  
       currentContr = 70 |RhM| i  
     Case 81 To 100  '有清晰背景 S LGW:  
       currentBr = 128 6E| S   
       currentContr = 80 \[#t<dD  
     Case 100 To 150  '有明亮背景 ."mlSW "Wm  
       currentBr = 140                '5:30-6:00钟实测数据 _%ZP{5D>  
       currentContr = 50 fbC~WV#  
     Case 151 To 180 vM4<d>  
       currentBr = 130 q*8lnk  
       currentContr = 60 .Yx_:h=u  
     Case 181 To 220  '背景全为白色 f=aIXhiYU  
       currentBr = 110 kNPDm6m  
       currentContr = 130 6y  Wc1  
     Case 221 To 255  '背景全为白色 ;%zC@a~{  
       currentBr = 100 n &}s-`D  
       currentContr = 100 {TAw)!R ~  
  End Select gyu6YD8L  
   1R*=.i%W  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 r]LCvsVa  
        Case 100 To 150 'jvpNn  
          currentBr = currentBr - 10 Hk;-5A|9  
        Case 151 To 255 2o5;Uz1{  
          currentBr = currentBr - 20 #w>~u2W  
  End Select n?E}b$6  
   )q3"t2-  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 CWlW/>yF B  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 $|a;~m>  
End Sub |LmSWy*7  
L"vj0@n'0  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) G7-!`-Nk  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long S " pI  
     P`"mM? u  
    For i = 1 To 8 "C74  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& 9y~"|t  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& ]ii+S"U3  
    Next i v0@)t&O  
     z%:&#1)  
    For j = 1 To 1024 WRpyr  
      L1 = L1 + LeftBK(j, 0) [uR/M  
      L2 = L2 + LeftBK(j, 1) '4u v3)P  
      R1 = R1 + RightBK(j, 0) ?CY1]d  
      R2 = R2 + RightBK(j, 1) pn\V+Rg'  
    Next j 8eyl,W=dn  
    diffL = Abs(L1 - L2) / 1024 G/{ ~_&t  
    diffR = Abs(R1 - R2) / 1024 u^4h&fL  
End Sub kMxjS^fr  
V'StvU  
Function CheckSlice() As Boolean 'M/ ([|@  
  CopySlice avSL, avSLR, avSLL ^Mytp>7  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then M"wue*&  
    CheckSlice = True lf$Ve  
  Else  >eS$  
    CheckSlice = False n vyB/  
  End If 9lspo~M  
End Function MFwO9"<A  
6E^~n  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) i@zY9,b  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long y=H@6$2EQ  
  For i = 1 To FrameH [,g~m9  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize Q"VMNvKYB  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize &mkpJF/  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize _H\<[-l  
  Next i Z8&' f,  
  For i = 1 To FrameH Cs1>bpY*R6  
    For j = 1 To sSize ctJ&URCi#  
       total = total + Slice(j, i) YYUe)j{T  
       totalL = totalL + SliceL(j, i) ai^|N.!  
       totalR = totalR + SliceR(j, i) <z)E (J\  
    Next j 213\ehhG<  
  Next i g}Q x`65:  
  avSL = total / FrameH / sSize Gr)-5qh  
  avSLR = totalR / FrameH / sSize \Tm}mAvK/o  
  avSLL = totalL / FrameH / sSize {THqz$KN  
End Sub m{(+6-8|m  
&s VadOBQ  
Sub DrawSlice() GAl+Zg##  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B K ,isjh2  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B rK|*hcy  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B .\)A@ua^  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) :6Pad  
End Sub 7NF/]y4w  
Sub DrawMark(pic As Control) 9UD @MA  
   Dim i As Long, j As Long ~&g a1r2v?  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B L`3n2DEBf  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B C1fyV]  
   For i = 1 To PilarH )2.)3w1_4  
     For j = 1 To PilarW O#_x)13  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) ^^}Hs-{T  
     Next j Kf.T\V4%  
   Next i EUcKN1  
End Sub -[]';f4]M  
{9'M0=  
Function avIMG() As Integer Jqfm@Y  
  Dim i As Long, j As Long, totalIMG As Long qnIew?-*  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize ]P1YHw9  
  For i = 1 To pFrameSize &u8z5pls8  
    totalIMG = totalIMG + pBuffer(i) oNYZIk:  
  Next i 'uC59X4l  
  avIMG = totalIMG / pFrameSize o4Q3<T7nI  
End Function `s /?b|,  
>i~^TY-&  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer 9l !S9d  
  Dim i As Long, j As Long, totalIMG As Long K=\&+at1  
  For i = 1 To FrameH (:sZ b?*  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth .j?kEN?w  
  Next i }5n  
  For i = 1 To FrameH * barWidth m#H_*L0  
    totalIMG = totalIMG + pBuffer(i) QK <\kVZ8  
  Next i AHd-  
  avRegion = totalIMG / pFrameSize tZ8e`r*  
End Function I>n g`  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 o`?zF+M0  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 Y(VO.fVJK  
0k[2jh  
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 kb #^lO  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Iti0qnBN5  
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 GozPvR^/  
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 ?R 'Y?b  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long ct n, ]ld  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 m 7 LUrU  
^T079=$5  
I%;Jpe  
Private Const GENERIC_READ = &H80000000 4 I@p%g&  
Private Const GENERIC_WRITE = &H40000000 K&_Uk548  
5%i:4sMx *  
Private Const FILE_SHARE_READ = &H1 Q5n`F5   
Private Const FILE_SHARE_WRITE = &H2 )K0i@hM(n  
Private Const OPEN_EXISTING = 3 4JMiyiW&  
t;O1IMF  
Private Const INVALID_HANDLE_VALUE = -1 gH7z  
{j SmoA  
'//file seek iRw&49  
Private Const FILE_BEGIN = 0 {eHAg<+  
Private Const FILE_CURRENT = 1 I1=(. *B}  
Private Const FILE_END = 2 P&=lV}f  
;YH[G;aJ  
Private Const ERROR_SUCCESS = 0& 1}g:|Q  
&Lj@9\Dh  
'//device io control p 2 !FcFi  
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 Z4q~@|+%  
@*O?6>  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 |jG~,{  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 mTf<  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 pIO4,VL;W  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 PCE4W^ns  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C A Y9 9!p  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 !Q %P %P<$  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F (! KG)!  
+%#8k9Y  
'//type 0(\+-<  
Private Type LARGE_INTEGER ]<trA$ 0  
    lowpart As Long l]!B#{  
    highpart As Long JUt7En;XE  
End Type q=5l4|1  
qVgd(?hJ#  
Private Enum MEDIA_TYPE %1}6q`:w  
    Unknown j]5WK_~M  
    F5_1Pt2_512 2qU&l|>  
    F3_1Pt44_512 ; O=h$8]  
    F3_2Pt88_512 63&^BW  
    F3_20Pt8_512 K1q+~4>\|  
    F3_720_512 WES#ZYtT  
    F5_360_512 MXZ>"G  
    F5_320_512 IVjU`ij  
    F5_320_1024 8q ^o.+9  
    F5_180_512 b"CAKl  
    F5_160_512 ^mPPyT,(  
    RemovableMedia w{,4rk;Hr  
    FixedMedia Poy^RpnX  
End Enum cxP&^,~  
&m'kI  
Private Type DISK_GEOMETRY p EusTP  
    Cylinders           As LARGE_INTEGER =/9^, 6Q(  
    MediaType           As MEDIA_TYPE #h'@5 l  
    TracksPerCylinder   As Long 9 [Y-M  
    SectorsPerTrack     As Long ALT^8c&K  
    BytesPerSector      As Long P LR0#).n  
End Type ]z ==   
)D@~|j:  
'//private vars h*l&RR:i  
Private hDisk           As Long             'disk handle Pq p *  
Private lpGeometry      As DISK_GEOMETRY    'disk info wij,N(,H  
Private lBufferSize     As Long             'the buffer size of read/write m $dV<  
07_oP(;jT  
Public Function OpenDisk(ByVal FileName As String) As Boolean rT6?!$"%.  
'// 打开磁盘 !xK=#pa  
    hDisk = CreateFile(FileName, _ U@-2Q=  
                        GENERIC_READ Or GENERIC_WRITE, _ uzU{z;  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ }DjYGMrTB  
                        ByVal 0&, _ 4na8  
                        OPEN_EXISTING, _ jai|/"HSXw  
                        0, _ p2O~>97t1  
                        0) pGGmA;TC1  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) FxW&8 9G  
End Function %s=Dj2+  
QU5Sy oL[  
Public Function CloseDisk() As Boolean {{{#?~3$7  
'//关闭磁盘 jAhP> t:  
    CloseDisk = CloseHandle(hDisk) #1/}3+=5B  
End Function dE(tFZx  
@wN G  
Public Function GetDiskGeometry() As Boolean 7+,vTsCd  
'//获取磁盘参数 lj[, |[X7`  
    Dim dwOutBytes      As Long < n?=|g  
    Dim bResult         As Boolean yfj(Q s  
     f`$Gz  
    bResult = DeviceIoControl(hDisk, _ dt,3"J  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ dl|gG9u4Q  
                                ByVal 0&, 0, _ a)s;dp}T%  
                                lpGeometry, Len(lpGeometry), _ VLvS$0(}Z  
                                dwOutBytes, _ gPX a>C  
                                ByVal 0&) (?i[jO||B  
     1|| nR4yK  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack Akk 3 Qx  
    GetDiskGeometry = bResult veh 5 }2  
End Function M0'v&g  
^twivNB  
Public Sub GetDiskInfo(MediaType As Long, _ 1=)r@X/6d  
                        Cylinders As Long, _ -,# +`>w  
                        TracksPerCylinder As Long, _ lP _db&  
                        SectorsPerTrack As Long, _ "IjI'c  
                        BytesPerSector As Long) r@}bDkx  
'//返回磁盘的参数 ;)hw%Z]Jj$  
    MediaType = lpGeometry.MediaType wS XVyg{  
    Cylinders = lpGeometry.Cylinders.lowpart Jfhk@27T  
    TracksPerCylinder = lpGeometry.TracksPerCylinder [~mGsXV  
    SectorsPerTrack = lpGeometry.SectorsPerTrack )e%}b -I'r  
    BytesPerSector = lpGeometry.BytesPerSector !]koSw}  
MQTdk*L_]  
End Sub oh-|'5+,;h  
'\7G@g?UZ  
Public Property Get BufferSize() As Long -1%OlKC  
'//返回每次读/写的缓冲大小 U~f4e7x*O  
    BufferSize = lBufferSize -"TR\/  
End Property ;sOsT?)7$  
4{na+M  
LBlN2)\@  
Public Function LockVolume() As Boolean 4,P bg|  
'// 将卷锁定 p9[6^rjx8  
    Dim dwOutBytes  As Long +}kgQ^  
    Dim bResult     As Boolean E4%j.  
     x4kWLy7Sz  
    bResult = DeviceIoControl(hDisk, _ 2HL9E|h  
                                FSCTL_LOCK_VOLUME, _ u'5`[U -!  
                                ByVal 0&, 0, _ \OwpD,'  
                                ByVal 0&, 0, _ #bnb ': f  
                                dwOutBytes, _ ig#r4nQ=  
                                ByVal 0&) ?UZ?NY  
    LockVolume = bResult {E_{JB~`  
End Function /n5n )P@L  
2 W<n5o   
$95~5]-nh  
Public Function UnlockVolume() As Boolean 6ghx3_%w  
'// 将卷解锁 bud&R4+  
    Dim dwOutBytes As Long 8*a), 3aK  
    Dim bResult As Boolean ERMa# L  
      Lc2QXeo8  
    bResult = DeviceIoControl(hDisk, _ 4 gBp8*2  
                                FSCTL_UNLOCK_VOLUME, _ 5Jk<xWKj  
                                ByVal 0&, 0, _ U.oksD9 v  
                                ByVal 0&, 0, _ &Z^(y}jPr  
                                dwOutBytes, _ TJ_=1Y@z  
                                ByVal 0&) 9U_ks[Qa  
    UnlockVolume = bResult _^S]gmE  
End Function V%i i3  
eVz#7vqv   
v ! hY  
Public Function DismountVolume() As Boolean msx-O=4g  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 Zj9c9  
    Dim dwOutBytes As Long kI\tqNJi  
    Dim bResult As Boolean uGH?N  
     Kuw^qX"  
    bResult = DeviceIoControl(hDisk, _ QfpuZEUK  
                                FSCTL_DISMOUNT_VOLUME, _ =?Fkn4t  
                                ByVal 0&, 0, _ lU4}B`#"v  
                                ByVal 0&, 0, _ [0; buVU.  
                                dwOutBytes, _ Y%`SHe7M  
                                ByVal 0&) ](0mjE04<d  
    DismountVolume = bResult y-aRXF=W  
End Function sfD5!Z9#1  
%5'6Tj  
]ya; v '  
Public Function ReadDisk(ByVal Cylinders As Long, _ <^R{U&Z@  
                    ByVal Tracks As Long, _ hlbvt-C?}"  
                    db() As Byte) As Boolean %j,iAUE<  
'//按柱面和磁道来读取磁盘数据 )0 Z!n  
    Dim iPos    As Long J5p8nmb  
    Dim lRead   As Long x_w~G]! /  
     k3Cz9Vt%  
    iPos = Cylinders * Tracks * lBufferSize _F(P*[[&  
     .IrNa>J~  
    If SeekAbsolute(0, iPos) Then ODw`E9  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) $W 8Cf[a  
    End If DocbxB={I  
End Function # J\rv'  
YlK7;yrq(  
Public Function WriteDisk(ByVal Cylinders As Long, _ vp)Vb^K>  
                     ByVal Tracks As Long, _ /Ft:ffR|R  
                     db() As Byte) As Boolean U.0kR/>Z=  
'//按柱面和磁道来写磁盘数据 .K8w8X/3  
    Dim iPos    As Long @_ygnNn4R  
    Dim lRead   As Long B;#J"6w  
     nhT(P`6  
    iPos = Cylinders * Tracks * lBufferSize :< S<f%  
     ,XKCz ]8V  
    If SeekAbsolute(0, iPos) Then 1} m3 ;  
        WriteDisk = WriteBytes(lBufferSize, db()) PRu&3BP  
    End If ?8V UO x  
End Function y0bq;(~X~  
c/3$AUsuO  
#=c`of6  
'///////////////////////////////////////////////////////////////////////////////////// "jg@w%~  
'//file system lx0 ~>K]  
iAn'aW\TF  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean Rd&9E  
'//seek file UmU:j@ xvg  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte R[[ ,q:4  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) _r Y,}\  
    If LowPos = -1 Then C"uahP[Y  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) Tbbz'b;{  
    Else 0HeD{TH\  
        SeekAbsolute = True uXZg1 F)  
    End If hlJpElYf  
     v({N:ya  
End Function \}*k)$r  
-6~'cm  
e79KbLV  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean wEft4 o  
'//read data to array eCbf9B  
    Dim RetVal    As Long rfcN/:k  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) r`'y?Bra;  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF P87# CAN  
    ReadBytes = Not (RetVal = 0) "9y( }  
     wD \ZOn_J  
End Function <E,%@  
#& .]" d  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean ,T{<vRj7_  
'//write data from array \FmKJ\  
    Dim RetVal As Long wVl+]zB  
    Dim BytesToWrite As Long ?,knit2x  
    Dim BytesWritten As Long a>mMvc"  
     48D?'lW %  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) s<QkDERMX  
     Do7=#|bAM  
    WriteBytes = Not (RetVal = 0) +=$  
End Function %ati7{2!  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 d' >>E  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ H1:be.^YP  
DWORD dwCB; wNJzwC&iQ  
LARGE_INTEGER  offset; |`d0^(X  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); A Io|TD5{~  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); Q%S9fq,q  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ ;QCrHqRT`  
DWORD error = GetLastError(); _banp0ywS  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); W-~n|PX8+  
return FALSE; ?DV5y|}pj  
} cu!W4Ub<  
return TRUE; Mz]: }qmFA  
} ,,L2(N  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : G2{O9  
[%A4]QzWh  
介个真的看不懂。 R8ONcG  
你说你老啦,喜欢怀旧了,才想起来填坑。 EpJ4`{4  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 3uu~ p!2  
/Dt d#OAdr  
owpWz6k7  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : d@0Kr5_  
佩服,玩也玩得这么专业! d'6|:z9c  
`p kMN  
VQI(Vp|  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : oY~ Dg  
伍SIR,再次抱拳佩服 |IoB?^_h  
:4S%'d7  
raVA?|'g~  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : q{ 2I_[p  
引用第19楼伍胥之于06-14-2010 12:33发表的  : E Uar /  
-5>-%13  
~1m2#>  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 vkS)E0s  
Og t]_  
我连一级也没有考过。 M}_ i52  
.
;?}l  
thO ~=RB  
引用
{k.MS-q  
矬子里拔将军... O<)y-nx;X  
你们那里的俗语是吧? I]Tsz'T!9  
/<CS VJ_r  
我们这里说"矮子里拔长脚"..应该是同一个意思... N!Qg;(  
+#b:d=v!  
有趣....各地有表达意思一样却方式不同的俗语.... cWGDee(  
*?+V65~dW  
~m1P_`T  
你的文章写的有脸皮,没屁眼的, 9%ii '{  
让看客大为不满... DcIvhBp  
O?8Ni=]  
你等着,,估计你以后接到的午夜凶铃就多了... fW`&'!  
]nQt>R p_  
SYeadsvF  
我到现在也没有接到你的午夜凶铃呢! } 7G8|54t  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : k{tMzx]F__  
每个人的故事对其他人都是故事, I9o6k?$K  
自己的故事也是其中之一. FtufuL?JS  
跳出来看, |8%m.fY`  
不过是众人中的一个人的故事. ]maYUKqv}'  
; )Kh;;e  
所以,接着听故事. !@u>A_  
C=uZ1xg*,  
女人们有兴趣的就等老伍开个新帖或者跟贴, &)i|$J 2.  
听他痛说恋爱革命历史.... krq/7|  
H7+X&#s%   
杂家接着听他自学程序员历史, #B'aU#$u  
高级程序员考了吗? y5= `ap  
w(L>#?  
jNwjK0?  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! @ P@c.*}s  
6b8;}],|  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 ~zm 7?_"@]  
C ]Si|D  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 ,1q_pep~?%  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : s30 O@M))  
哦, 打倒忽悠大家的家伙.      "Z,q?Fc  
kI*(V [i  
+]>+ a<x*%  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : !.-tW7   
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 {mYP<NBT  
;sdN-mb  
h4&;?T S  
其实标题没有什么,卡总既然改了就不必再改回了。 ske@uzAz  
HCA{pR`  
主要是当初写的时候真是顶着锅盖写的。 jdut4 nFc  
6,Hqb<(  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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