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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean 2g6_qsqi  
{*;]I?9Al  
Dim regEX As New RegExp dyzw J70K  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 &ZN'Ey?  
41o!2(e$  
Dim LastTitle0String As String, LastTitle0No As Long ~8t}*oV   
Dim LastTitle1String As String, LastTitle1No As Long >iH).:j  
Dim LastTitle2String As String, LastTitle2No As Long fVUBCu  
Dim LastTitle3String As String, LastTitle3No As Long GB?#1|,  
Dim LastTitle4String As String, LastTitle4No As Long VaSNFl1_M  
Dim LastTitle5String As String, LastTitle5No As Long 1fW4=pF-K  
Dim LastTabelString As String, LastTableNo As Long AvE^ F1  
Dim LastFigureString As String, LastFigureNo As Long x{>Y$t]  
i*R:WTw#  
Dim strSeperator As String q7&yb.<KD.  
&&1Y"dFs  
Sub ConvertWidth(fTEXT As String, rText As String) O'-Zn]@.]  
        Selection.Find.ClearFormatting H ?j-=Zka  
        Selection.Find.Replacement.ClearFormatting S7ehk *`  
        Selection.Find.Wrap = wdFindContinue 'c0'P%[5A  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText U;{,lS2l  
        DoEvents 0 jP00   
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True Y@H,Lk  
End Sub W8$=a  
} Tr83B|  
Sub ClearDomain() D?}m h1#  
        With Selection.Find B" m:<@ "  
            .ClearFormatting s2?,'es  
            .Replacement.ClearFormatting 0DB<hpC:5  
            .Wrap = wdFindContinue O2]r]9sh*  
            Me.txtStatus.Text = "清除所有域代码" R+K&<Rz  
            DoEvents i @9 Qb  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False _MbVF>JOx  
        End With o:8S$F`O@  
End Sub W}k?gg=  
V-;nj,.mY  
Private Sub cmdCheck_Click() 8EG8!,\I  
    bContinue = True ]ZGvRA&  
    Dim NoSeries1(1 To 16) As String v* ~ %x  
    Dim NoSeries2(1 To 16) As String 9/daRq$  
    Dim NoSeries5(1 To 16) As String $&=;9="  
    Dim NoSeriesRM(1 To 16) As String NzAtdcwR  
    Dim paraTotal As Long, ParaText As String {Okik}Oh  
    Dim ttString As String, ttNo As String 3Ge<G  
     NB5L{Gf6-  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long C.eV|rc@T  
@MZ6E$I  
    Me.txtStatus.Visible = True fsJTwSI["  
    Me.lbParaType.Visible = True U.Chf9a -  
    Me.cmdCheck.Enabled = False 2${,%8"0s  
     x_y>j)  
     5V nr"d  
     S~rVRC"<xo  
     "1!.^<V*  
    Dim ParaType As String, rText As String z]l-?>Zbg  
     .;Utkf'I  
    Selection.WholeStory @@/'b '  
    Selection.NoProofing = True o\ow{ gh9  
     4zqE?$HM'  
    tm1 = Now Ag#5.,B -  
     Ot$cmBhw!  
        ActiveWindow.View.Type = wdNormalView uP{+?#a_-\  
     N(-%"#M$  
    NoSeries1(1) = "一" 3cfZ!E~^kc  
    NoSeries1(2) = "二" }'V'Y[  
    NoSeries1(3) = "三" _`@Xy!Ye  
    NoSeries1(4) = "四" ).+xcv   
    NoSeries1(5) = "五" #~URLN  
    NoSeries1(6) = "六" ss`q{ARb  
    NoSeries1(7) = "七" O&gwr  
    NoSeries1(8) = "八" M-Z6TL  
    NoSeries1(9) = "九" YY:iPaGO  
    NoSeries1(10) = "十" ~I\r1Wj;  
    NoSeries1(11) = "十一" r,.95@  
    NoSeries1(12) = "十二" im \ YL<  
    NoSeries1(13) = "十三" _"!{7e`Z  
    NoSeries1(14) = "十四" ? X_0Iy}1  
    NoSeries1(15) = "十五" QE#-A@c  
    NoSeries1(16) = "十六" :*P___S=  
     '5xuT _  
    NoSeries2(1) = "㈠" x-V' 0-#U>  
    NoSeries2(2) = "㈡" W|H4i;u  
    NoSeries2(3) = "㈢" y>7VxX0xi  
    NoSeries2(4) = "㈣" jO &f* rxN  
    NoSeries2(5) = "㈤" {`K]sa7`  
    NoSeries2(6) = "㈥" bOxjm`B<  
    NoSeries2(7) = "㈦" Gp ^ owr  
    NoSeries2(8) = "㈧" m>uI\OY{n  
    NoSeries2(9) = "㈨"  _WDBG  
    NoSeries2(10) = "㈩"  Z|:_ c  
     iTug vb  
    NoSeries5(1) = "①" m{lRFKx>s  
    NoSeries5(1) = "②" Ag>>B9  
    NoSeries5(3) = "③" vQBY1-S  
    NoSeries5(4) = "④" &Qq/Xi,bZ  
    NoSeries5(5) = "⑤" 1Fvv/Tj  
    NoSeries5(6) = "⑥" Ife,h s  
    NoSeries5(7) = "⑦" / 2_B$  
    NoSeries5(8) = "⑧" [Yx-l;78  
    NoSeries5(9) = "⑨" ?mYV\kDt\  
    NoSeries5(10) = "⑩" =>:% n  
     p*AP 'cR  
     U)`3[fo  
    NoSeriesRM(1) = "I" }G N kB  
    NoSeriesRM(2) = "II" s;_#7x#  
    NoSeriesRM(3) = "III" Jl}!CE@-  
    NoSeriesRM(4) = "IV" 7<R6T9g  
    NoSeriesRM(5) = "V" UOLTCp?M;J  
    NoSeriesRM(6) = "VI" LTYu xZ  
    NoSeriesRM(7) = "VII" ##`;Eh0a  
    NoSeriesRM(8) = "VIII" t)oES>W1  
    NoSeriesRM(9) = "IX" F`;TU"pDf  
    NoSeriesRM(10) = "X" a(x.{}uG,  
    NoSeriesRM(11) = "XI" U-~* 5Dd  
    NoSeriesRM(12) = "XII" _yxe2[TD  
    NoSeriesRM(13) = "XIII" XU;{28P  
    NoSeriesRM(14) = "XIV" Y1yXB).AH8  
    NoSeriesRM(15) = "XV" XgiI6-B~  
    NoSeriesRM(16) = "XVI" 0l(E!d8&'  
      g`)/x\  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) ]*g ss'N  
     p9&gEW  
    If i = vbNo Then ^i`3cCFB<  
        Exit Sub Nn,vdu{^2  
    End If OP|.I._I  
     lk*0c {_L  
    If Me.chkSuper.Value Then UPVO~hB;  
        Me.txtStatus.Text = "检查修改所有的上标格式" o]|oAN9  
     "]SJbuzh  
        CheckSuperScript iO?gF  
         f>s#Ngvc  
    End If $dx1[ V+_  
     0i`v:Lq%  
    If Me.chkStyle.Value Then ~b>nCP8q  
        Me.txtStatus.Text = "设置样式,请稍候...." >uyeI&z  
        DoEvents (}*\ {  
        CeateOrModifyStyle 5&n988g C8  
    End If r?"}@MRW  
     AF*ni~  
     4uO @`0:x  
     GFQG(7G9  
    ClearDomain ~4=]%XYz  
         de=5=>P7  
     _cxm}*}\#  
     M5T=Fj86  
    If Me.chkLIST.Value Then g/U$!d_  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" ,<Grd5em.  
     Lem\UD$D`  
        ConvertListToOrdinary Jm]]>K8.3V  
    End If ,);= (r9  
     (b`4&sQ<  
     K'iS#i7  
    Dim pType As String, trimpTEXT As String f\x@ C)E  
    If Me.chkNum.Value = True Then  \]f5  
        Me.txtStatus.Text = "转换全角数字形式为半角" T.R>xd`9 "  
        ConvertWidth "1", "1" Ersr\ZB  
        DoEvents >%n8W>^^4  
        ConvertWidth "2", "2" d739UhKC  
        DoEvents j#[email protected]?  
        ConvertWidth "3", "3" gfdPx:7^  
        DoEvents m0%iw1OsH%  
        ConvertWidth "4", "4" vy{rwZ$  
        DoEvents [Q7->Wo|S:  
        ConvertWidth "5", "5" w!B,kqTG  
        DoEvents Eo7 _v  
        ConvertWidth "6", "6" @o4z3Q@  
        DoEvents M73VeV3DL  
        ConvertWidth "7", "7" o7c%\v [  
        DoEvents %S >xSqX  
        ConvertWidth "8", "8" B c,"12  
        DoEvents _:ZFCDO  
        ConvertWidth "9", "9" ,yHzo  
        DoEvents +?"HTDBE||  
        ConvertWidth "0", "0" fR]p+\#8u*  
        DoEvents (6ohrM>Q  
        ConvertWidth "a", "a" Q QsVIHA  
        DoEvents !~lVv&YO  
        ConvertWidth "b", "b" DJ 1XN pm  
        DoEvents (1kn):  
        ConvertWidth "c", "c" nJldz;  
        DoEvents DqurHQ z)m  
        ConvertWidth "d", "d" H7z>S G0  
        DoEvents Y91 e1PsV  
        ConvertWidth "e", "e" YZ"+c&V"  
        DoEvents ~J:$gu~`  
        ConvertWidth "f", "f" Pg*?[^*  
        DoEvents 80FCe(U  
        ConvertWidth "g", "g" a2c x  
        DoEvents IL+#ynC  
        ConvertWidth "h", "h" t5ny"k!  
        DoEvents O:`GL1{ve?  
        ConvertWidth "i", "i" +X* F<6mZ  
        DoEvents AND7jEn  
        ConvertWidth "j", "j" xVsa,EX b  
        DoEvents K)Df}fVOc  
        ConvertWidth "k", "k" ( !3Yc:~RE  
        DoEvents */%$6s~  
        ConvertWidth "l", "l" 27Kc -rcB  
        DoEvents `G "|MM>P  
        ConvertWidth "m", "m" g( ]b\rj  
        DoEvents 3i]"#wK  
        ConvertWidth "n", "n" p~Yy"Ec;p  
        ConvertWidth "o", "o" oglXW8  
        ConvertWidth "p", "p" U,%s;  
        ConvertWidth "q", "q" Hl^aUp.c  
        ConvertWidth "r", "r" RR[)UQ   
        ConvertWidth "s", "s" M&|sR+$^  
        ConvertWidth "t", "t" dAYI DE  
        ConvertWidth "u", "u" vKU]80T  
        ConvertWidth "v", "v" ?VMi!-POE  
        ConvertWidth "w", "w" S\! a"0$  
        ConvertWidth "x", "x" ]97Xu_  
        ConvertWidth "y", "y" {+ @ms$z  
        ConvertWidth "z", "z" 26\HV  
        ConvertWidth "A", "A" i63`B+L{  
        ConvertWidth "B", "B" wo7N7R5  
        ConvertWidth "C", "C"  ESC  
        ConvertWidth "D", "D" %gV)arwK  
        ConvertWidth "E", "E" 6pM"h5hA  
        ConvertWidth "F", "F" =R8f)UQYx  
        ConvertWidth "G", "G" bGGeg%7  
        ConvertWidth "H", "H" 4)z3X\u|Z2  
        ConvertWidth "I", "I" $Q`yNEc  
        ConvertWidth "J", "J" jsk:fh0~M  
        ConvertWidth "K", "K" _9Dn \=g  
        ConvertWidth "L", "L" 4 o3)*  
        ConvertWidth "M", "M" Ek"YM[  
        ConvertWidth "N", "N" { &\J)oZ  
        ConvertWidth "O", "O" oJlN.Q#u&  
        ConvertWidth "P", "P" |uQn|"U4  
        ConvertWidth "Q", "Q" pTa'.m  
        ConvertWidth "R", "R" .;<7424(%  
        ConvertWidth "S", "S" \ &eY)^vw  
        ConvertWidth "T", "T" otWo^CE$  
        ConvertWidth "U", "U" 7%:??*"~  
        ConvertWidth "V", "V" '+)6#/*  
        ConvertWidth "W", "W" U=haX x4N  
        ConvertWidth "X", "X" NDB*BmG  
        ConvertWidth "Y", "Y" DHh+%|e  
        ConvertWidth "Z", "Z" 3n.+_jQ>s  
        ConvertWidth "^l", "^p" K?h[.` }  
        ConvertWidth "(", "(" v?Z'[l  
        ConvertWidth ")", ")" i;[h 9=\/  
     2k.S[?)  
    End If ]yyU)V0Iu  
D 7Gd%  
    With ActiveDocument #W>x \  
        Dim tbl As Table +l2e[P+q A  
        For Each tbl In .Tables & _Cxv8  
            tbl.Rows.Alignment = wdAlignRowCenter lEO?kn.:z  
            tbl.Range.Font.NameFarEast = "楷体" g6rv`I $l  
            tbl.Range.Font.NameAscii = "Times New Roman" ;el]LnV!O  
            tbl.Range.Font.Size = 10.5 vbr~< JT=  
        Next iyA*J CD  
        Set tbl = Nothing Bl kSWW/  
    End With ucQezmie  
     E p^B,;~  
     uHfhRc9  
    With ActiveDocument (A7T}znG  
         3q'K5} _  
        For i = 1 To .TablesOfContents.Count a6;gBoV  
            .TablesOfContents(i).Delete $x;tSJ)m~  
        Next <ldid]o #  
         2^ zg0!z  
         )x$!K[=  
         .Lr`j8  
        paraTotal = .Paragraphs.Count RtW4 n:c  
        paraCounter = 1 GIl:3iB49  
         ]sX7%3P  
        LastTitle0No = 0 P\D[n-&  
        LastTitle1No = 0 _Ct}%-,4  
        LastTitle2No = 0 $s e !8s"  
        LastTitle3No = 0 ?~F]@2)5w  
        LastTitle4No = 0 3mpP| b"  
        LastTableNo = 0 b*lKT]D,  
        LastFigureNo = 0 ?,WUJH?^  
         R19'| TJ  
        Dim Sec As Long N+*(Y5TU  
         ::p-9F  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) #Y;.>mF  
        If Sec = 0 Then =ied}a :[  
            Exit Sub ,DE(5iDS  
        End If 21.YO]Et  
         TZ^{pvBy  
        k = 0 er(8}]X8Q  
        Do While (paraCounter < paraTotal) And bContinue 1P5*wNF  
            k = k + 1 pWMiCXnW  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then i FC"!23f  
                Exit Do bcq@N  
            End If 5 T!&r  
            paraCounter = paraCounter + 1 Zr\2BOcc.l  
            If k Mod 20 = 0 Then .[edln  
                Me.lbCounter.Caption = paraCounter 1t0b Uf;(M  
                DoEvents am]3 "V>  
            End If re7!p(W?,  
        Loop !Bag}|#  
         V[#6yMU@  
         zSEr4^Dk4  
        Do While (paraCounter < paraTotal) And bContinue  Vil@?Y"  
             bq:wEMM4s  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) EwTS!gL  
            ShapeHeight = 0 lKf Mp1  
            ShapeWidth = 0 cNdu.c[@  
           G i$  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth  ]a78tTi  
             48lzOG  
            Select Case ParaType slu$2-H  
                Case "【】表格内容" \z2vV +f  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" c eqFQ  
                Case "章" b0y-H/d/}  
                    LastTitle0No = LastTitle0No + 1 cge-'/8w%  
                    '新一章开始,复位其下属标题编号 XZF%0g2$b  
                    LastTitle1No = 0  =Ov9Kf  
                    LastTitle2No = 0 Zn?8\  
                    LastTitle3No = 0 ^it4z gx@  
                    LastTitle4No = 0 R|/Wz/$1A  
                     'g. :MQ8  
                    k = Val(ttNo) n(Qj||:  
                    If k = 0 Then '非数字编号章节 Bfbl#ZkyL  
                        If ttNo <> NoSeries1(LastTitle0No) Then , yTN$K%M  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString .?A'6  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText cYsR 0#  
                        End If q A.+U:I8  
                    Else 8r5xs-  
                        If Val(ttNo) <> LastTitle0No Then gBMta+<fE~  
                            rText = "第" & LastTitle0No & ttString CKJAZ2  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText 5r'=O2AZX  
                        End If jeY4yM  
                         aLV~|$: 2  
                    End If ]a8eDy  
                     RwUW;hU  
                    '章段落设置 }'u3U"9)  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 Y3D3.T6Q  
                    .Paragraphs(paraCounter).Style = "QLNU章节" wh9L(0  
                    .Paragraphs(paraCounter).Range.Select H!p!sn  
                    Selection.EndKey unit:=wdLine fW(;   
                    tc = Replace(rText, vbCr, "") j6`6+W=S(  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False Tsu\oJ[  
                Case "一级标题" #]"/{Z  
                    LastTitle1No = LastTitle1No + 1 CP}0Ri)  
                    '新一级标题开始,复位其下属标题编号 k"t >He  
                    LastTitle2No = 0 DKR<W.!*t  
                    LastTitle3No = 0 ;F|jG}M"  
                    LastTitle4No = 0 AzZi{Q ?  
                     $Xf~# uH  
                    If ttNo <> NoSeries1(LastTitle1No) Then ;9K[~  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString N[>:@h  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText 4\v~HFsv  
                    End If yU> T8oFh  
                   X8 8F>1}  
                     i"/r)>"b  
                    '一级标题段落设置  格式:一、标题内容 AlUJ1^o)  
                    .Paragraphs(paraCounter).Range.Text = rText wtlB  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" MY&<)|v\  
                    .Paragraphs(paraCounter).Range.Select Xe)Pg)J1  
                    Selection.EndKey unit:=wdLine wbBE@RU>!  
                    tc = Replace(rText, vbCr, "") bC6X?m=  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False RvWFF^,.  
                Case "二级标题" <|otZJ'2r  
                    LastTitle2No = LastTitle2No + 1 %cS#+aK6M'  
                    '新二级标题开始,复位其下属标题编号 #U\$@4D  
                    LastTitle3No = 0 [qSQ#Qzi2i  
                    LastTitle4No = 0 nZe\5`  
                     Pv#KmSA9  
                    If ttNo <> NoSeries1(LastTitle2No) Then $$42pb.  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString I `lDWL  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText VZ;@S3TS  
                    End If Bhj:9%`  
                     HP#ki!'  
                    '二级标题段落设置 格式:(一)、标题内容 4>l0V<  
                    .Paragraphs(paraCounter).Range.Text = rText JL@F~U9  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" =+`D  
                     ;D:=XA%  
                    .Paragraphs(paraCounter).Range.Select D4d]3|/T  
                    Selection.EndKey unit:=wdLine *<w3" iq  
                    tc = Replace(rText, vbCr, "") S45'j(S=  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False ~M*7N@D  
                 /({P1ti:C  
                Case "三级标题" 61G|?Aax  
                    LastTitle3No = LastTitle3No + 1 sbzeY 1  
                    '新三级标题开始,复位其下属标题编号 'HCnB]1  
                    LastTitle4No = 0 {d8^@UL  
                     D^N[=q99&e  
                    If Val(ttNo) <> LastTitle3No Then #&k8TY  
                            rText = LastTitle3No & ". " & ttString !!9{U%s  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText ?b5H 2 W  
                         ,d OMW+{  
                    End If  j|ozGO  
                    '三级标题段落设置 格式:1. 标题内容  2mQOj$Lv  
                    .Paragraphs(paraCounter).Range.Text = rText /=bSt  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" wI *Y{J  
                    .Paragraphs(paraCounter).Range.Select rYbCOazr  
                    Selection.EndKey unit:=wdLine Q^nG0<q+  
                    tc = Replace(rText, vbCr, "") q Z#!CPHS  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False iL+y(]  
                Case "四级标题" " l.!Ed  
                    LastTitle4No = LastTitle4No + 1 &ryiG  
                     fa"\=V2S  
                    If Val(ttNo) <> LastTitle4No Then {JTmP`&l  
                            rText = "(" & LastTitle4No & "). " & ttString av)?>J~;  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText Ohc^d"[7  
                     )4P B<[u  
                    End If #iiwD|  
                    '四级标题段落设置 格式:(1). 标题内容 _<Xg C\4O|  
                    .Paragraphs(paraCounter).Range.Text = rText 2,+d|1(4o  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" l i@k Lh  
                    .Paragraphs(paraCounter).Range.Select :|=- (z  
                    Selection.EndKey unit:=wdLine #T[%6(QW  
                    tc = Replace(rText, vbCr, "") T=.-Cl1A  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False f KHse$?_  
                 ATo}FL 2  
                Case "表格标题" -E:(w<];  
                    LastTableNo = LastTableNo + 1 I`3d;l;d  
                     #o~[1K+Yq  
                    If ttNo <> CStr(LastTableNo) Then @$Yb#$/  
                            rText = "表" & LastTableNo & ". " & ttString aJa.U^1{  
                            ErrMsg.AddItem "表格编号错误:" & ParaText *g*VCO  
                   D6Dn&/>Zp  
                    End If Trpgx  
                     ekrBNDs9  
                    '表格名称段落设置 格式:表1. 表格名称 nVNs][  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" xwi!:PAf,o  
                    xe = Replace(rText, vbCr, "") 'w:bs!  
                    .Paragraphs(paraCounter).Range.Select HXyFj  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 z[*zuo  
                    Selection.Range.Text = xe f7ZA837Un  
                    Selection.EndKey gbJG`zC>U  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False G<|:605  
                 Y!F!@`%G  
                Case "表格首行" YKNb59k  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" Xt\Dy   
                Case "图片标题" lz- iCZ  
                    LastFigureNo = LastFigureNo + 1 whw{dfE  
                     'g2vX&=$A  
                    If ttNo <> CStr(LastFigureNo) Then 2g0K76=Co:  
                            rText = "图" & LastFigureNo & ". " & ttString ?x'w~;9R/  
                            ErrMsg.AddItem "表格编号错误:" & ParaText XYMxG:  
                   sSNCosb  
                    End If L -YNz0A  
                    '图片名称段落设置 格式:图1. 图名称 ghX:"vV{n  
                    .Paragraphs(paraCounter).Range.Text = rText IOX:yxj  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" vABXXB  
                    .Paragraphs(paraCounter).Range.Select 0Lx3]"v  
                    Selection.EndKey unit:=wdLine l`* ( f9Q  
                    xe = Replace(rText, vbCr, "") %oR>Uo  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False Xh`"  
                Case "正文" 2!BsEvB(  
                     '正文名称段落设置 u"\=^F  
                    .Paragraphs(paraCounter).Style = "QLNU正文" }Iip+URG  
               Case "文献条目" pG~'shD~Dn  
                    With .Paragraphs(paraCounter)  UPR/XQ  
                        '.Range.Select 4AuH1m)<  
                        'Selection.ClearFormatting b22LT52  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” h>| g2h  
                        .Style = "QLNU参考文献" +3)[> {~1Z  
                    End With kwO eHdV^  
               Case "图表注解" n?}5!  
                    With .Paragraphs(paraCounter) A=0@UqM  
                        .Range.Font.NameFarEast = "楷体" eJW[ ]!  
                        .Range.Font.NameAscii = "Times New Roman" _%;M9Sg3  
                        .Range.Font.Size = 9 '小5号字 *l:&f_ngV  
                         72u db^  
                        .Alignment = wdAlignParagraphCenter Q4=|@|U0  
                        .LeftIndent = 0 p+vh[+yp  
                        .RightIndent = 0 zx 7#)*  
                        .FirstLineIndent = 0 U[bgu#P;  
                        .LineSpacing = 12 RN vQ  
                        .LineSpacingRule = wdLineSpaceExactly d t<~sOT3s  
                        .LineUnitAfter = 0 q1jN]H  
                        .LineUnitBefore = 0 t|<FA#  
                        .OutlineLevel = wdOutlineLevelBodyText ]  ;&"1A  
                        .PageBreakBefore = False MJA~jjy4  
                        .RightIndent = 0 /e .D /;]  
                        .WordWrap = True F'rt>YvF  
                        .LineUnitAfter = 0.5 V\"1wV~E  
                         G@B*E%$9  
                    End With ",T` \8&@e  
                Case Else M.S s: ttj  
                    '不作处理 i2`#   
            End Select %Sul4: D#  
             -IbbPuRq  
            '含有inlineshape的段落处理 'd+:D'  
            If ShapeHeight > 30 Then *<UGgnmLE  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 y)tYSTJK  
            End If Y|:YrZSC  
             [t$4Tdd  
            If (ShapeWidth + ShapeHeight) > 150 Then UTvs |[  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" [1Uz_HY["3  
            End If VE*j*U j  
             BD4`eiu"  
            '段落计数器递 fQP,=  
            paraCounter = paraCounter + 1 *Er? C;  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter Hk~k@Wft  
            Me.txtStatus.Text = ParaText rtus`A5p  
            DoEvents Hxn<(gd G  
        Loop _=?2 3  
    End With A*Rn<{U  
     W~<m[#:6C  
    msg = "" ]{Z8  
     7pP+5&*  
    For i = 0 To Me.ErrMsg.ListCount - 1 \@8*TS  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) so*/OBte  
    Next D,E$_0  
     4 A5t*e  
     K I`11lJW~  
     =tnTdp0F  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg SD^E7W$?  
    Me.cmdCheck.Enabled = True /7x\; &bc  
    Me.txtStatus.Visible = True F(; jM(  
    Me.lbParaType.Visible = False z,avQR&  
     l 1|~  
    bContinue = False :pb67Al29  
End Sub #cO+<1  
~o i)Lf1  
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) /z#F,NB  
    Dim pTEXT As String ODek%0=  
     ld95[cTP  
    pTEXT = ChKRange.Text ~GA8_B  
     mbGcDG[HQ  
    ParaType = "其它" jFG5)t<D  
    TitleString = pTEXT TOrMXcn!/  
    TitleNo = "N/A" obj!I7  
     _F^$aZt?e  
    shpCounter = ChKRange.InlineShapes.Count aiJ nfU]W  
    If shpCounter <> 0 Then Ox|TMSb^  
        MaxShpHeight = 0: TotalShpWidth = 0 2uEhOi0I  
        For i = 1 To shpCounter Li]k7w?H  
            k = ChKRange.InlineShapes(i).Height >(OYK}ZN  
            l = ChKRange.InlineShapes(i).Width 6< >SHw  
            If k > MaxShpHeight Then \q,s?`+B  
                MaxShpHeight = k ^&-a/'D$,  
            End If 4~Dax)  
            TotalShpWidth = TotalShpWidth + l TW2Z=ks=  
        Next -,|ha>r  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then DRp&IP<  
            Exit Sub $ o " L;j  
        End If ZL=N[XW4'  
    End If OT;cfkf7  
     +YuzpuxjJ  
    '空行 ^4 8\>-Q\  
    If Len(pTEXT) <= 2 Then BJgDo  
        Exit Sub DFc [z"[  
    End If gJk[Ja  
     SOs,)  
         {\L|s5=yr  
    '是否为表格中的文字 A4 5m)wQ  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then t$5jx  
        ParaType = "表格内容" ewym 1}o  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) 3p&jLFphL  
        If k = 1 Then 26 ?23J ;  
            ParaType = "表格首行" rFfy#e  
        End If nEyI t&> 9  
        Exit Sub 0E1=W 6UZ  
    End If &wb9_? ir-  
     Z}+yI,  
    '例外情况:脚注 vtZ?X';wh  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then [Y$V\h=V  
        ParaType = "脚注" Y1WHy *s?  
        Exit Sub Z(`r-}f I  
    End If R:f7LRF/\  
     -;U3w.-  
    '例外情况:尾注 "$DldHC  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then 5uttv:@=  
        ParaType = "尾注" gB >pd?d  
        Exit Sub _Z.cMYN  
    End If V_f`0\[x  
     ;iQp7aW{$  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then G5;V.#"Z[  
        ParaType = "页眉页脚" '#<> "|  
        Exit Sub *i@T!O(1)M  
    End If ;y OD  
     -bm,:Iy!  
     ;NP[_2|-,  
    With regEX 8 URj1 W  
        .Global = True y?Onb 3%  
         >(3'Tnu  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" :~D]; m  
        If regEX.Test(pTEXT) Then B=dseeG[To  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") ABZ06S/  
            TitleString = regEX.Replace(pTEXT, "$3") hbfsHT  
            TitleNo = regEX.Replace(pTEXT, "$1") {+Sq<J_`M  
            ParaType = "章" lV)G@l[1  
            Exit Sub [;Fofu Z  
        End If hlC%HA  
         cQn)^jx=  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" nj  
        If regEX.Test(pTEXT) Then FT( iX `YQ  
            ParaType = "一级标题" A="fj  
            regEX.Execute (pTEXT) ??(Kwtx{  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") H-2_j  
            TitleString = regEX.Replace(pTEXT, "$3") n,sY\=vB  
            TitleNo = regEX.Replace(pTEXT, "$1") &[~[~m|  
            Exit Sub 3q?5OL^$  
        End If N+J>7_k   
         >XnO&hW  
        '全角或半角括号中的数字 fhr-Y'  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" ul=7>";=|  
        If regEX.Test(pTEXT) Then 8U=A{{0p  
            ParaType = "二级标题" e#khl9j*bt  
            regEX.Execute (pTEXT) 6__K#r  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") Y"*:&E2)r  
            TitleString = regEX.Replace(pTEXT, "$5") sf)W~Lx 5a  
            TitleNo = regEX.Replace(pTEXT, "$2") cix36MR_  
            Exit Sub "H?QqrKx  
        End If tr=@+WHp  
         (u9Zk~)F  
        '阿拉伯数字  1. 2. v?)SA];  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" a_{6Qdl  
        If regEX.Test(pTEXT) Then 7E~4)k0<  
            ParaType = "三级标题" uREu2T2  
            regEX.Execute (pTEXT) :<%vE!$  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 <m]wi7  
            TitleString = regEX.Replace(pTEXT, "$3") Egf^H>,.M  
            TitleNo = regEX.Replace(pTEXT, "$1") ;(S|cm'>}  
            Exit Sub lhxdx    
        End If [e1L{_*l  
         K}K)`bifw  
        '全角或半角括号中的阿拉伯数字 8lb-}=  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" Nxi)Q$  
        If regEX.Test(pTEXT) Then 8gI\zgS  
            ParaType = "四级标题" I7zn>^0}  
            regEX.Execute (pTEXT) ;wgFr.#hp@  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") VMF|i B  
            TitleString = regEX.Replace(pTEXT, "$5") v)+@XU2wZ  
            TitleNo = regEX.Replace(pTEXT, "$2") Onw24&  
            Exit Sub o\goE^,aeR  
        End If !+KhFC&Py  
         N5!&~~  
        '表格名称 f'_M0x  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" c&m9)r~zP  
        If regEX.Test(pTEXT) Then >)3VbO  
            ParaType = "表格标题" ^/ a*.cu  
            regEX.Execute (pTEXT) ] D6|o5  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) o|rzN\WJn  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) ?ZX!7^7  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) {g_@Tuu  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 !DcX 8~~@  
            Exit Sub c3W BALdh  
        End If GO~k '  
         >|n t2  
        '图片名称 B6%&gXr\  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" y 1nU{Sc@  
        If regEX.Test(pTEXT) Then jI0]LD1k  
            ParaType = "图片标题" _Ex|f5+  
            regEX.Execute (pTEXT) y <*-tZV[  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") uLK(F B  
            TitleString = regEX.Replace(pTEXT, "$3") wDw<KU1UK  
            TitleNo = regEX.Replace(pTEXT, "$1") l"5y?jT  
            Exit Sub @c]Xh:I  
        End If no |Gq>Xp  
         (3W&A M  
        '参考文献 Q7(eq0na  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 |[LE9Lq/  
        If regEX.Test(pTEXT) Then v|&s4x?D  
            ParaType = "文献条目" ?bI?GvSh  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") K(OaW)j  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") D:m#d.m  
            Exit Sub ve-8*Xa  
        End If l#xw.2bo  
         /[?Jylj  
        prfx = Left(pTEXT, 2) h'!V8'}O?  
        If prfx = "注:" Or prfx = "注:" Then m[rL\](-  
            ParaType = "图表注解"  d1bhJK  
            Exit Sub DY.58IHg1  
        End If P7r4ePtLk{  
         [b;Uz|o  
         u E.^w;~2=  
        ParaType = "正文" ET+'Pj3  
         km4g}~N</  
    End With kFLT!k  
End Sub Rsn^eR 6^  
9|3o<  
Sub ConvertListToOrdinary() $ eX*  
    Dim st As Paragraph *~;8N|4<  
    With ActiveDocument Y|RdzC M  
        For i = .Paragraphs.Count To 1 Step -1 3+9 U1:1[.  
            Set st = .Paragraphs(i) HH zEQV Lh  
            lst = st.Range.ListFormat.ListString On% ,l  
            If lst <> "" Then Mpm#GdT  
                st.Range.ListFormat.RemoveNumbers lD3)TAW@ o  
                st.Range.InsertBefore lst & " " ;"@:}_t  
            End If aDveU)]=1  
        Next ]]/lC  
    End With ]/44Ygz/  
    Set st = Nothing }p{;^B  
End Sub WsB3SFN G  
c,$mWTC  
Private Sub UserForm_Activate() yoU2AMH2D^  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" e1uMR-Q  
    Me.lbTotal.Font.Bold = True choL %g}  
    Me.txtStatus.Visible = False c[:Wf<% |  
    Me.cmdCheck.Enabled = True ]3+``vL  
wko2M[  
End Sub !g2a|g   
'=#5(O%pp  
2GUupnQkD  
Sub CheckSuperScript() =YHt9fb$c  
    Selection.Find.ClearFormatting Ux_<d?p  
    Selection.Find.Replacement.ClearFormatting Kj!Y K~~  
    With Selection.Find j+Zt.KXjT  
        .Text = "[【\[[〖](*)[】\]〗]]" liD47}+  
        .Replacement.Text = "[\1]" 9wMEvX70  
        .Replacement.Font.Superscript = True ?gG,t4D  
        '.Replacement.Font.Color = wdColorBlue tW(+xu36  
        .Forward = True q,@+^aZ  
        .Wrap = wdFindContinue ^@"c`  
        .FORMAT = True H&K3"Ulw  
        .MatchCase = False  qpTm  
        .MatchWholeWord = False l&|)O6N  
        .MatchByte = False r<|nwFJ  
        .MatchAllWordForms = False U`1l8'W}:#  
        .MatchSoundsLike = False -[$&s FD  
        .MatchWildcards = True \JU{xQMB  
    End With F.0d4:A+  
    Selection.Find.Execute Replace:=wdReplaceAll >?V<$>12  
End Sub N&x:K+Zm .  
Z"D W 2k  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Pi){h~B>  
    bContinue = False 0 !_*S )  
    Set regEX = Nothing ?K<Z kYw?  
End Sub (3O1?n[n  
BSDk9Oc  
Sub CeateOrModifyStyle()  (YrR8  
' zX~}]?|9  
' f3t. T=S  
Dim stl As Style [Xh\m DU.  
     H%C\Uz"o  
    Options.Pagination = False qHJ'1~?q  
     $T/#1w P  
    On Error Resume Next V{GXc:=  
    For Each stl In ActiveDocument.Styles f~*K {7  
        stl.Delete [-58Ezyr  
    Next HamEIL-l.  
    On Error GoTo 0 HlRAD|]\  
     )E~_rDTl  
    Set stl = Nothing ; 8E;  
     ppFY c\&=  
    DoEvents 5p )IV>G  
    On Error Resume Next $3 vhddO  
     \xeVDKJH+n  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph 9GPb$ gtx  
     n^Vxi;F  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph $',3Pv  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph :l`i4kx  
      o8tS  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph  "l2bx  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph h!Y?SO.b  
     qguVaV4Y  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph 2&x7W*  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph bg1un@%!l  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph PGY9*0n  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph GA ik;R  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph O#G| ~'.,  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph pyF5S,c  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph 4 l1 i>_R  
     _>i|s|aW  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph {_7Hz,2U  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph JCcQd 01 z  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph 1LyT7h  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph |z+9km7,  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph :d({dF_k;p  
     )UP8#|$#T  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph IfB/O.;Kz  
    On Error GoTo 0 zDd5cxFdZ  
    DoEvents c _mq  
     %A2`&:ip  
    'BaseStyle I+~bCcgPi  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False ^K.*.|  
    With ActiveDocument.Styles("BaseStyle").Font DB~MYOX~  
        .NameFarEast = "宋体" z5pc3:  
        .NameAscii = "Times New Roman" ls]H6z*q  
        .NameOther = "宋体" "*bk{)dz}  
        .Size = 10.5 E*^ 9|Y[  
        .Bold = wdUndefined G * @@K  
        .Italic = wdUndefined lC2?sD$  
        .Subscript = wdUndefined `Hd9\;NJ  
        .Subscript = wdUndefined e`AUYli"  
         7V 'Le2T'  
        .Underline = wdUnderlineNone IXJ6PpQLv  
        .UnderlineColor = wdColorAutomatic !&JiNn('  
        .StrikeThrough = False B.6`cM^  
        .DoubleStrikeThrough = False R+F,H`  
         *:j-zrwu&  
        .Outline = False ]v GgJ<  
        .Emboss = False M5 `m.n<  
        .Shadow = False :A#+=O0\z  
        .Hidden = False LfllO  
        .SmallCaps = False Qg>0G%cXU  
        .AllCaps = False gLx/w\ l6  
        .Color = wdColorAutomatic xx0k$Dqt2I  
        .Engrave = False 4oN${7k0  
        .Scaling = 100 cUsL 6y  
        .Kerning = 1 KGQC't  
        .Animation = wdAnimationNone RM#fX^)=  
        .DisableCharacterSpaceGrid = False G h=<0WaF=  
        .EmphasisMark = wdEmphasisMarkNone ]?# #))RUS  
    End With 3G.r-  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat kXEtuO5FUM  
        .LeftIndent = 0 - `4Ty*K  
        .RightIndent = 0 J&_3VKrN  
        .SpaceBefore = 0 HT&p{7kFm  
        .SpaceBeforeAuto = False  mmcdtVe  
        .SpaceAfter = 0 |lE-&a$xd  
        .SpaceAfterAuto = False '%ebcL  
         &SrGh$:X  
        .LineSpacingRule = wdLineSpaceSingle pI 5_Hg  
        .Alignment = wdAlignParagraphJustify CrO`=\  
         X(b1/lzA  
        .WidowControl = False :])JaS^  
        .KeepWithNext = False 6}STp_ x  
        .KeepTogether = False x5PPu/  
        .PageBreakBefore = False S\b K+  
        .NoLineNumber = False KK$ a;/  
         wibwyzo  
        .FirstLineIndent = CentimetersToPoints(0) *;P2+cE>H3  
        .OutlineLevel = wdOutlineLevelBodyText 4 (8<w cL  
        .CharacterUnitLeftIndent = 0 ? rQc<;b  
        .CharacterUnitRightIndent = 0 "qgu$N4/>  
        .CharacterUnitFirstLineIndent = 0 Ge0Lb+<G  
        .LineUnitBefore = 0 >|(%2Zl  
        .LineUnitAfter = 0 {wv&t R;  
        .AutoAdjustRightIndent = True v~aLTI  
        .DisableLineHeightGrid = True @`Wt4<  
         ?$16 A+  
        .FarEastLineBreakControl = True |i u2&p >  
        .WordWrap = True #!L%J<MX  
        .Hyphenation = False (Z 8,e  
         P{Lg{I_w.B  
        .HangingPunctuation = True [G=:?J,P  
        .HalfWidthPunctuationOnTopOfLine = True c>rKgx  
        .AddSpaceBetweenFarEastAndAlpha = True %Gu][_.L  
        .AddSpaceBetweenFarEastAndDigit = True KqK9X  
        .BaseLineAlignment = wdBaselineAlignBaseline 2!idy]vy_  
    End With *(p7NYf1  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False hbH#Co~o4#  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll Wz5=(<{S  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese {( dP  
    ActiveDocument.Styles("BaseStyle").NoProofing = False (FG^UA#'  
     j9>TTgy@  
    '一级标题题样式 ]<q'U> N  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") yYk|YX(7U  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" =+4 _j  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False ,m:6qdN  
    With ActiveDocument.Styles("QLNU一级标题").Font wsI5F&R,  
        .NameFarEast = "黑体" "4RQ`.S R  
        .NameAscii = "Arial Black" S?2YJ l8B  
        .NameOther = "黑体" B#:E?a;{  
        .Name = "黑体" .8x@IWJD  
        .Size = 16              '三号 ]'e A O  
        .Bold = True L:i+}F;M)s  
        .Italic = wdUndefined #EFMgQO  
        .Subscript = wdUndefined iU XM( ]  
        .Superscript = wdUndefined N;g$)zCV1  
    End With EU9[F b]  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat >"b[r  
         *73AAA5LKa  
        .LeftIndent = CentimetersToPoints(0) 3u4:l  
        .RightIndent = CentimetersToPoints(0) u6pIdt  
        .FirstLineIndent = CentimetersToPoints(0) M2L0c?  
         dxntGH< O  
        .LineSpacingRule = wdLineSpaceSingle ?y46o2b*)  
        .Alignment = wdAlignParagraphCenter !%V*UR9  
         V $>"f(  
        .WidowControl = True 6: GN(R$0  
        .KeepWithNext = True T $ IUKR  
        .KeepTogether = True ~hzEKvs  
        .OutlineLevel = wdOutlineLevelBodyText Mn{XVXY@qm  
         @C07k^j=U  
        .LineUnitBefore = 0.5 IW mHp]  
        .LineUnitAfter = 0.5 p&uCp7]U  
    End With >HX)MwAP  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False q#|r   
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll 716hpj#*  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese fQ1 0O(`g,  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True RJLFj  
    DoEvents @ce3%`c_  
     W.p66IQwL&  
    '二级 ^F&A6{9f/h  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 2n(ItA  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" {IrJLlq  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False ^1Yo-T(R  
    With ActiveDocument.Styles("QLNU二级标题").Font E)Srj~$d  
        .NameFarEast = "黑体" 4/f[`].#W  
        .NameAscii = "Arial Narrow" 0H<4+ *`K  
        .NameOther = "黑体" 97(n\Wt 2  
        .Name = "黑体" LC76Qi;|k  
        .Size = 15        '小三号 @f%wd2  
        .Bold = False fSr`>UpxC  
        .Outline = False smbUu/  
        .Italic = wdUndefined =nw0# '  
        .Subscript = wdUndefined jQkUNPHu  
        .Superscript = wdUndefined (qbc;gBy  
    End With '(XW$D  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat p KnIQa[c  
        .LeftIndent = CentimetersToPoints(0) $^ubo5%  
        .RightIndent = CentimetersToPoints(0) d _uF Y:  
        .FirstLineIndent = CentimetersToPoints(0) | 4 `.#4  
         rX:1_q`xA  
        .LineSpacingRule = wdLineSpaceSingle w~n kNqm  
        .Alignment = wdAlignParagraphLeft ff[C'  
         6}"lm]b  
        .WidowControl = True YY\Rua/nG  
        .KeepWithNext = True ~n8F7  
        .KeepTogether = True (<n>EF#  
        .PageBreakBefore = False a 1NCVZ  
        .OutlineLevel = wdOutlineLevelBodyText 1P \up   
         #]igB9Cf)w  
        .LineUnitBefore = 0.5 u,\xok"  
        .LineUnitAfter = 0.5 5/k)\`  
         p[b7E`7  
    End With !bieo'c  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False -C=]n<ak  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll %~G0[fG  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese ZRUh/<\[  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True uZ-`fcCjD  
    DoEvents D*qzNT@`LR  
     }pt-q[s>  
    '三级标题样式 K# /Ch5?  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") y6\ [1nZ  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" $=lJG(2%  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False bYK]G+ Ww  
    With ActiveDocument.Styles("QLNU三级标题").Font jKYm/}d  
        .NameFarEast = "宋体" O8iu+}]/6  
        .NameAscii = "Times New Roman" kv/(rKLp*  
        .NameOther = "黑体" 6Z$b?A3zM  
        .Name = "黑体" `k!UjO72  
        .Size = 14               '四号 o;%n,S8J|^  
        .Bold = False rrYp'L  
        .Outline = False We|-5  
        .Italic = wdUndefined O4n8MM|`  
        .Subscript = wdUndefined }\U0[x#q  
        .Superscript = wdUndefined }~V,_Fv  
    End With #c :9 V2  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat ;*_I,|A:Xr  
        .LeftIndent = CentimetersToPoints(0) |fx#KNPf]  
        .RightIndent = CentimetersToPoints(0) "AV1..mu  
        .FirstLineIndent = CentimetersToPoints(0) V54q"kP,@.  
         L+uOBW_  
        .LineSpacingRule = wdLineSpaceSingle <e[!3,%L  
        .Alignment = wdAlignParagraphLeft 2=Jmi?k  
         5vYsA1Z   
        .WidowControl = True 9W$m D w6f  
        .KeepWithNext = True 9Y\F53p&j  
        .KeepTogether = True 6OMb`A@/2  
        .PageBreakBefore = False ??q!jm-m  
        .OutlineLevel = wdOutlineLevelBodyText -}N Ab^d  
         `9:v*KuM#R  
        .CharacterUnitLeftIndent = 0 ?F9hDLX  
        .CharacterUnitRightIndent = 0 '8L(f w{k  
        .CharacterUnitFirstLineIndent = 2 cK/PQsMP  
         f x%z| K  
        .LineUnitBefore = 0.5 *TJ<  
        .LineUnitAfter = 0 1O|RIv7F[/  
    End With F W/)uf3I  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False |HNQ|r_5S  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll |b,zw^!e['  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese [GOX0}$?  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True ~T;K-9R  
    DoEvents Gi;9  S  
     r,QJG$ Jo  
    '四级标题样式 e W9)@nVJ  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 7L1\1E:!  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" Q.*'H_Y  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False E*h0#m|)  
    With ActiveDocument.Styles("QLNU四级标题").Font 2Qw )-EB  
        .NameFarEast = "宋体" UP5%C;  
        .NameAscii = "Times New Roman" Z"4VH rA  
        .NameOther = "宋体" AUu5g  
        .Name = "宋体" xu`d`!Tx  
        .Size = 12               '小四号 |3aS17yL>  
        .Bold = True H7y&N5.V  
        .Outline = False 'T6B_9GQ8  
        .Italic = wdUndefined :~-)Sm+^  
        .Subscript = wdUndefined  xh=FkY&d  
        .Superscript = wdUndefined }rFThI  
    End With dE+CIjW5  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat  \\y}DNh  
         6vMDm0sv  
        .LeftIndent = CentimetersToPoints(0) 2&suo!ig  
        .RightIndent = CentimetersToPoints(0) iZsau2K  
        .FirstLineIndent = CentimetersToPoints(0) (/To?`  
         P*}9,VoY  
        .LineSpacingRule = wdLineSpaceSingle u!m,ilAnd  
        .Alignment = wdAlignParagraphLeft fMgcK$  
         5?D1][  
        .WidowControl = True ?G2qlna  
        .KeepWithNext = True zsHG= Ee*  
        .KeepTogether = True =ZFcxGo  
        .PageBreakBefore = False lR|$*:+  
        .OutlineLevel = wdOutlineLevelBodyText 8+=p8e~An  
         Jii?r*"d  
        .CharacterUnitLeftIndent = 0 3we.*\2$  
        .CharacterUnitRightIndent = 0 []^PJ  
        .CharacterUnitFirstLineIndent = 2 uPM8GIvZX.  
         (N&k}CO]W  
        .LineUnitBefore = 0 WT;.>F  
        .LineUnitAfter = 0 iH($rSE  
         u Eu6f  
    End With cw*(L5b u  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False *Pa2bY3:  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll TJeou# =/  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese cr2{sGn|  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True vcaBL<io  
    DoEvents aE%eJ)+K  
     f_^ix  
    '正文校式 bM*Pcxv  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") [_B+DD=}  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" v+|@}9|Z  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False }G"r3*  
    With ActiveDocument.Styles("QLNU正文").Font 2nG{>,#C:O  
         ?v0A/68s#  
        .NameFarEast = "宋体" Xi1q]ps  
        .NameAscii = "Times New Roman" e5]&1^+  
        .NameOther = "宋体" p_D on3  
        .Name = "宋体" bjU 2UcI"<  
         C}t+t  
        .Size = 12               '小四号 hWl""66+5  
         d#X&Fi   
        .Bold = wdUndefined ;LwFbkOuU  
        .Italic = wdUndefined ,Zf :R  
        .Subscript = wdUndefined 3s88#_eT  
        .Superscript = wdUndefined ;9 =}_h)]  
         =U)n`#6_j2  
        .Outline = False xc:`}4  
        .Emboss = False PR48~K,?  
        .Shadow = False qz-#LZFTR  
        .Hidden = False -wPuml!hZ|  
         n0Qh9 *h  
        .DisableCharacterSpaceGrid = True /z Chdjz  
    End With _|Y.!ZRYP  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat U[K0{PbY  
         COxZ Q  
        .LeftIndent = CentimetersToPoints(0) AAeQ-nbP  
        .RightIndent = CentimetersToPoints(0) p,M3#^ q  
        .FirstLineIndent = CentimetersToPoints(0) *[XN.sb8E  
         p~v2XdR  
        .LineSpacingRule = wdLineSpaceExactly qk"oFP6  
        .LineSpacing = 20 Fh*q]1F  
        .Alignment = wdAlignParagraphLeft KZ367&>b7  
         f\U?:8 3  
        .WidowControl = False HV#?6,U}  
        .KeepWithNext = False D5o+ 0R  
        .KeepTogether = False k~'?"'  
        .PageBreakBefore = False G2U5[\  
        .Hyphenation = False X}n&`y{/  
         [)C)p*!Y)  
        .OutlineLevel = wdOutlineLevelBodyText awj}K  
         _OyP>| L'  
       LAu+{'O\  
        .CharacterUnitLeftIndent = 0 bxPY'&  
        .CharacterUnitRightIndent = 0 nR=2eBNf  
        .CharacterUnitFirstLineIndent = 2 ~v{C6)  
         ,f-T1v"  
        .LineUnitBefore = 0 S,d ngb{  
        .LineUnitAfter = 0 gxBl1  
        .SpaceBefore = 0 EF*oPn0|  
        .SpaceAfter = 0 !#cKF6%  
          "@UU[o  
        .DisableLineHeightGrid = True Res"0Q  
    End With GU;TK'Yy?  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False 9RCB$Ka6X  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll y<IZ|f  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese *il]$i  
    ActiveDocument.Styles("QLNU正文").NoProofing = True 'l0eo' K  
    DoEvents . }-@;:yh  
     n $D}0wSM/  
    '图片段落样式 f4 Sw,A  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") PVQ#>_~5  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" es*_Oo1  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False XcJ'm{=   
    With ActiveDocument.Styles("QLNU图片段落").Font / h 2*$  
        .Size = 12               '小四号 %l9WZ*yZ`2  
        .Italic = wdUndefined J pCZq #  
        .Subscript = wdUndefined %^Q@*+{:f  
        .Superscript = wdUndefined Z L6~Eut  
    End With OuYE-x2]x"  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat pqGf@24c<  
         p``;!3~ ~  
        .LeftIndent = CentimetersToPoints(0) pw(U< )  
        .RightIndent = CentimetersToPoints(0) oHc-0$eMKY  
        .FirstLineIndent = CentimetersToPoints(0) Vsm%h^]d  
         j L>I5f  
        .LineSpacingRule = wdLineSpaceSingle os "[Iji  
        .Alignment = wdAlignParagraphCenter )cv0$  
        .KeepWithNext = True Jq$6$A,f  
        .OutlineLevel = wdOutlineLevelBodyText : . FfE  
         j? Jd@(*y$  
        .CharacterUnitLeftIndent = 0 '.}6]l  
        .CharacterUnitRightIndent = 0 |}]JWsuB  
        .CharacterUnitFirstLineIndent = 0 FrAqTz  
         utFcFd X  
        .LineUnitBefore = 0 `E4!u=%  
        .LineUnitAfter = 0 #%} u8\q  
    End With eEg1-  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False ctwhfS|Y0  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll HNkZ1+P {  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese ],fwZd[t  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True ((hJmaq  
    DoEvents r(?'Yy  
     LB64W ;#h  
     Le#E! sU  
    '第X章 h M1&A  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") / %U~lr  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" h[[/p {z  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False /64^5DjTh  
    With ActiveDocument.Styles("QLNU章节标题").Font `o^;fcnG  
        .NameFarEast = "黑体" n+RUPZ  
        .NameAscii = "Arial Black" R4Gg|Bh  
        .NameOther = "Arial Black" T9XW%/n  
        .Name = "黑体" >? A `C!i  
        .Size = 16 #1,>Qnl  
        .Bold = True f)ucC$1=  
        .UnderlineColor = wdColorAutomatic z9);e8ck  
        .Outline = False !4b; >y=m  
        .Italic = wdUndefined CHdet(_=v  
        .Subscript = wdUndefined I/ e2,  
        .Superscript = wdUndefined 709Uv5  
        .Scaling = 100 F] dd>#  
        .DisableCharacterSpaceGrid = True &EbD.>Ci  
    End With JQ{zWJlt  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat YWn6wzu%Vc  
        .LineSpacingRule = wdLineSpaceSingle TGt1d  
        .Alignment = wdAlignParagraphCenter  U{ za m  
        .WidowControl = True c?V*X-   
        .KeepWithNext = True -G^t-I  
        .KeepTogether = True twJ|Jmd  
        .PageBreakBefore = True ;nAg4ll8Q  
        .OutlineLevel = wdOutlineLevelBodyText NdXy% Q  
         [M8qU$&?]  
        .LeftIndent = CentimetersToPoints(0) ^V0{Ew /x  
        .RightIndent = CentimetersToPoints(0) c}I8!*\  
        .FirstLineIndent = CentimetersToPoints(0) e{rHO,#A>  
         M~g~LhsF  
        .CharacterUnitLeftIndent = 0 4Q`=t &u  
        .CharacterUnitRightIndent = 0 y9re17{ X  
        .CharacterUnitFirstLineIndent = 0 )W}/k$S  
         R>YMGUH~w  
        .LineUnitBefore = 1 wr;|\<c  
        .LineUnitAfter = 0.5 .$ P2W0G  
         k1LtqV  
        .AutoAdjustRightIndent = False Ep,0Z*j  
        .DisableLineHeightGrid = True M#8Ao4 T  
        .FarEastLineBreakControl = True x" :Bw;~  
        .WordWrap = True J*q=C%}.  
    End With !=q:>  }g  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False GqK&'c   
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll R1b )   
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese P/1UCITq}  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True ;5JIY7t  
    DoEvents '@}?NV0  
     L]L~TA<D9i  
    '表格标题 )2^/?jK  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") +(h6{e%)  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" Oa_o"p<Lr  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False 0u&?Zy9&  
    With ActiveDocument.Styles("QLNU表格标题").Font LP m# 3U  
        .NameFarEast = "楷体" G+QNg .pH  
        .NameAscii = "Arial" T0]%(F/8  
        .Name = "楷体" 1l`s1C  
        .Size = 10.5 ]`i@~Z h\  
        .Bold = True ;]#4p8lh+  
        .Underline = wdUnderlineNone ~jRk10T(B  
        .Italic = wdUndefined n\8[G [M  
        .Subscript = wdUndefined A86lyBDQ*  
        .Superscript = wdUndefined uX5 --o=C  
        .Color = wdColorAutomatic #&`WMLl+8  
    End With f )s_e  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat a*n%SUP  
         ,j(p}t  
        .LineSpacingRule = wdLineSpaceSingle Q\/":ISq1  
        .Alignment = wdAlignParagraphCenter ]rX?n  
        .KeepWithNext = True &L~31Ayj&  
        .KeepTogether = True coP$7Q .  
        .OutlineLevel = wdOutlineLevelBodyText dnWt\>6& 2  
         /NN[gz  
        .LeftIndent = CentimetersToPoints(0) lWyP[>*  
        .RightIndent = CentimetersToPoints(0) $M3A+6["H  
        .FirstLineIndent = CentimetersToPoints(0) JXy667_  
         SUnmp  
        .CharacterUnitLeftIndent = 0 GYb2m"a)  
        .CharacterUnitRightIndent = 0 gkq RO19  
        .CharacterUnitFirstLineIndent = 0 Ca k/#1  
         xf F&$K"  
        .LineUnitBefore = 1 OS h mrz28  
        .LineUnitAfter = 0 /x8C70W^  
         NE>JtTF<  
    End With @!O&b%8X%  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False zHum&V8=H  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll  =R24 h  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese *a0I  Z  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True  ~bWWu`h  
    DoEvents Mpl,}Q!c  
c:,{ O 0 #  
    '表格首行 JjTzq2'%  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") c7TWAG_+  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False .T$9Q Ar5  
    With ActiveDocument.Styles("QLNU表格首行").Font Tdmo'"m8z_  
        .NameFarEast = "楷体" 9 {^B Tc  
        .NameAscii = "Times New Roman" d`q)^  
        .Name = "楷体" (.nJT"&  
        .Size = 9 XL&eJ  
        .Bold = True !=Kay^J~.  
        .Underline = wdUnderlineNone aXid;v,  
        .Italic = wdUndefined U=cWvr65  
        .Subscript = wdUndefined 5SWX v+  
        .Superscript = wdUndefined 1r:fxZO\Vd  
    End With 3=L1HZH  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat ]v,y(yl  
        .LineSpacingRule = wdLineSpaceSingle m$y$wo<K[7  
        .Alignment = wdAlignParagraphCenter E#X!*q&  
         ~JmxW;|_x)  
        .LeftIndent = CentimetersToPoints(0) H1ui#5n2  
        .RightIndent = CentimetersToPoints(0) r1[T:B'  
        .FirstLineIndent = CentimetersToPoints(0) o)' =D(  
         /wRK[i  
         nKa ;FaJ  
        .CharacterUnitLeftIndent = -0.5 0& L0j$&h  
        .CharacterUnitRightIndent = -0.5 kc(b;EA  
        .CharacterUnitFirstLineIndent = -0.5 ^{sI'l~  
         CbvL X="%  
        .LineUnitBefore = 0 |u@>[*k'=  
        .LineUnitAfter = 0 /$4?.qtu  
        .SpaceBefore = 0 rM~IF+f0XD  
        .SpaceAfter = 0 yI)fu^  
         aFc'_FrQ  
    End With I:>d@e/;  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False /a/uS3&  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll UmI@":|-  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese 5J2p^$s  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True yar IR|  
    DoEvents 3SB7)8Id1  
`kT$Gx4x  
    '表格内容 cZK?kz_Y  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") @_(@s*4W  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False _<~Vxz9  
    With ActiveDocument.Styles("QLNU表格内容").Font =" TOa"Zk  
        .NameFarEast = "楷体" 4}YT@={g}  
        .NameAscii = "Times New Roman" u'n%BVt   
        .Name = "楷体" #FDu 4xi  
        .Size = 9 &b]KMAo3  
        .Bold = False q\pc2Lh?^  
        .Underline = wdUnderlineNone ?(L? X&)v  
        .Italic = wdUndefined :V1ZeNw  
        .Subscript = wdUndefined %fSk "%u%<  
        .Superscript = wdUndefined e$+? v2 .  
    End With cXE y>U|/  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat eMd1%/[  
        .LineSpacingRule = wdLineSpaceSingle 1bAp{u&  
        .Alignment = wdAlignParagraphCenter DmpJzH j|  
         b({b5z.A  
        .LeftIndent = CentimetersToPoints(0) 5lA 8e  
        .RightIndent = CentimetersToPoints(0) +CHO0n  
        .FirstLineIndent = CentimetersToPoints(0) 6!=9V0G~  
         8lb `   
        .CharacterUnitLeftIndent = -0.5 P >,D$-3  
        .CharacterUnitRightIndent = -0.5 UY& W]  
        .CharacterUnitFirstLineIndent = -0.5 E2/U']R  
        .LineUnitBefore = 0 (8X8<>w~  
        .LineUnitAfter = 0 >v4~:n2D  
        .SpaceBefore = 0 CvSG!l.6f<  
        .SpaceAfter = 0 S5 oHe4#89  
    End With #7:9XID /  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False gR6T]v  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll l:C0:m%  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese ?lna8]t  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True .BTT*vL-  
    DoEvents !-o||rt  
~#x!N=q  
    '图片标题 DppvUiQB!a  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") R =c  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" ,&l*AB!  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False ]CJ>iS!V  
    With ActiveDocument.Styles("QLNU图片标题").Font 6h* bcb#C  
        .NameFarEast = "楷体" r ($t.iS  
        .NameAscii = "Times New Roman" H.S|njn:r  
        .Name = "楷体" iQj{J1V  
        .Size = 10.5 ba1QFzN  
        .Bold = True 30v1VLR_)  
        .Underline = wdUnderlineNone {7szo`U2  
        .Italic = wdUndefined MZF ;k$R  
        .Subscript = wdUndefined oDDH;Q"M(  
        .Superscript = wdUndefined sOHAW*+  
        .Outline = False O6 J<Lqgh  
        .Shadow = False ~SUl,Cs  
        .Color = wdColorAutomatic NOr*+N\  
    End With 8l,hP.  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat F(n))`(  
        .LineSpacingRule = wdLineSpaceSingle +|w~j#j9`  
        .Alignment = wdAlignParagraphCenter p2?+[d  
         Xg#([}b  
        .KeepWithNext = wdUndefined _4#psxl[M  
        .KeepTogether = True U"G+su->e  
        .OutlineLevel = wdOutlineLevelBodyText |,~A9  
         Z#V\[  
        .LeftIndent = CentimetersToPoints(0) (NV=YX?s  
        .RightIndent = CentimetersToPoints(0) PbH]K$mj{"  
        .FirstLineIndent = CentimetersToPoints(0) X)+sHcE~#  
         4Lq]yUj  
        .CharacterUnitLeftIndent = 0 b#'a4j-u  
        .CharacterUnitRightIndent = 0 W@}5e-q)O  
        .CharacterUnitFirstLineIndent = 0 Mj;'vm7#'  
         I:7,CV  
        .LineUnitBefore = 0 )bg,rESM  
        .LineUnitAfter = 0 ?S7:KnU>K  
    End With juZ3""  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False oRF"[G8BV  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll ]lG\t'R  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese P@![P Ij  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True AiI# "  
    DoEvents 7i8qB462  
W/QOG&g  
    '目录项 + ~AI(h  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") +FK<j;}C7  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" ! \Kh\  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False 8LKZ3Y|  
    With ActiveDocument.Styles("QLNU目录项").Font j_<n~ri-  
        .NameFarEast = "黑体" !@ '2  
        .NameAscii = "Times New Roman" ]/naH#8G  
        .NameOther = "Times New Roman" 3&2q\]Y,  
        .Name = "黑体" No|{rYYKK  
        .Size = 10.5 7Zn Q] ?  
        .Bold = False } dlNMW  
        .Italic = wdUndefined Q9V4-MC9  
        .Underline = wdUnderlineNone a2FIFWvW  
        .Color = wdColorAutomatic /Bu5k BC  
        .Superscript = wdUndefined ~ +$><qj  
        .Subscript = wdUndefined xeh|u"5  
    End With iR=aYT~  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat vw 2@}#\:  
         vwD(J.;  
        .LineSpacingRule = wdLineSpaceSingle N4NH)x  
        .Alignment = wdAlignParagraphLeft q &o=4  
         h--!pE+  
        .WidowControl = False xf SvvCy  
        .KeepWithNext = False "Jd1&FsCwX  
        .KeepTogether = False IbQ~f+y&2  
        .PageBreakBefore = False w`_9*AF9  
        .NoLineNumber = False nxRrmR}F  
        .OutlineLevel = wdOutlineLevelBodyText |0%UM}  
         / /rWc,c  
        .LeftIndent = CentimetersToPoints(0) mMWNUkDq  
        .RightIndent = CentimetersToPoints(0) !XC7F UO  
        .FirstLineIndent = CentimetersToPoints(0) ikiy>W8  
         e5]0<s$  
        .CharacterUnitLeftIndent = 0 ,i.P= o  
        .CharacterUnitRightIndent = 0 uV:;y}T^Z  
        .CharacterUnitFirstLineIndent = 0 }7v2GfEkM  
         #8|NZ6x,  
        .LineUnitBefore = 0 D:,<9 %A  
        .LineUnitAfter = 0 jX,~iZ_B  
    End With &Wk<F3qN  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False 6&T1 ZY`  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll A1;t60z+q>  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot V lNzm  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese r!uAofIi_  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True e.H"!X!0#H  
    DoEvents >D aS*r  
     RO8Ynm2 <  
    '参考文献 ;OyM~T gI  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") J[AgOUc  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" V(0[QA  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False \2b9A' d>  
    With ActiveDocument.Styles("QLNU参考文献").Font FX 3[U+  
        .NameFarEast = "宋体" 9hzU@m  
        .NameAscii = "Times New Roman" a{,t@G  
        .NameOther = "Times New Roman" )Me&xQTn  
        .Name = "Times New Roman" &6EfybAt^_  
        .Size = 12 xFnMXh t  
        .Bold = False 6w ,xb&S  
        .Italic = wdUndefined SQk!o{  
        .Subscript = wdUndefined sl 5wX  
        .Superscript = wdUndefined t,6=EK*3T  
        .Underline = wdUnderlineNone d(XWt;KK  
        .UnderlineColor = wdColorAutomatic 2>s;xZ@/'R  
        .Color = wdColorAutomatic B!anY}/U  
        .Engrave = False ,#haai(  
    End With ?[">%^  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat K.7gd1I  
         RwKN  
        .LineSpacingRule = wdLineSpaceExactly U7=Z.*/62  
        .LineSpacing = 16 ;_ton?bF  
        .Alignment = wdAlignParagraphLeft R/|o?qTrj  
        .WidowControl = False y_#wR/E)u{  
        .KeepWithNext = False g5[3[Z(.  
        .KeepTogether = False `,"Jc<R7Z  
        .PageBreakBefore = False (*]Y< ve  
        .OutlineLevel = wdOutlineLevelBodyText Kwn u|8  
         oPir]` re  
        .LeftIndent = CentimetersToPoints(0) mqw.v$>  
        .RightIndent = CentimetersToPoints(0) p,fin?nW c  
        .FirstLineIndent = CentimetersToPoints(0) -nSqB{s!SD  
         ^" -2fJ  
        .CharacterUnitLeftIndent = 0 J-c7ZcTt  
        .CharacterUnitRightIndent = 0 j>23QPG`6U  
        .CharacterUnitFirstLineIndent = -2 "$Q Gifb  
         ZC-N4ESr  
        .LineUnitBefore = 0 q<7n5kJ~  
        .LineUnitAfter = 0 DK1)9<  
        .SpaceBefore = 0 z{x -Vfd  
        .SpaceAfter = 0 0qd`Pf   
         v 0sX'>f  
    End With us+adS.l&  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False yhmW-#+^e  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll ,-Gw#!0  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS V ZGhF!To  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True E~Nr4vq  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese %Et] w  
    DoEvents HC+R :Dz  
+`FY  
    ' k,& QcYw  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") / [ M~##%:  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" yfr gYA  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False -9EbU7>!  
    With ActiveDocument.Styles("QLNU论文题目").Font N~(}?'y9S  
        .NameFarEast = "黑体" [u:_J qf-  
        .NameAscii = "Arial Black" |/$#G0X;H  
        .NameOther = "Arial Black" fM{Vy])J  
        .Name = "Arial Black" 7;{F"/A  
        .Size = 16 cs)hq4-L`  
        .Bold = False tA.C"  
        .Italic = wdUndefined 7Jk.U=vY  
        .Superscript = wdUndefined #'P&L>6 ;  
        .Subscript = wdUndefined t !GY>u>`  
        .Underline = wdUnderlineNone _6( =0::x  
        .UnderlineColor = wdColorAutomatic Y*f<\z(4  
        .Color = wdColorAutomatic  O(!'V~3  
k,,}N 9  
    End With S;~_9i]upe  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat 3#unh`3b  
        .LineSpacingRule = wdLineSpaceSingle  !;-x]_  
        .Alignment = wdAlignParagraphCenter C&gJP7UF  
        .WidowControl = True "mA/:8`Q  
        .KeepWithNext = True S"l&=J2dc  
        .KeepTogether = True 9q?gmAn.  
        .PageBreakBefore = True +W`~bX+  
        .NoLineNumber = False >qla,}x  
        .OutlineLevel = wdOutlineLevelBodyText e{=$4F  
         )uP= o  
        .LeftIndent = CentimetersToPoints(0) aHw VoT  
        .RightIndent = CentimetersToPoints(0)  "(xu  
        .FirstLineIndent = CentimetersToPoints(0) DS yE   
         <U*d   
        .CharacterUnitLeftIndent = 0 3L|k3 `I4  
        .CharacterUnitRightIndent = 0 lk|/N^8M  
        .CharacterUnitFirstLineIndent = 0 s0SB!-Vjm  
         )U` c9*.  
        .LineUnitBefore = 1 <:w7^m  
        .LineUnitAfter = 1 >e%Po,Fg$  
         -}s?!Pg>  
        .BaseLineAlignment = wdBaselineAlignAuto (WC<XKf  
    End With Aj_}B.  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False s0CRrMk  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll sr4K-|@  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS \JchcQ  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True M=%p$ \x  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese y-YYDEl  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True ,bJx| K  
    DoEvents IkkrnG8  
      Sk-Ti\  
    '中文摘要 tp7fmn*  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") bmLNR  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" BKk*<WMD  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False Qi M>59[  
    With ActiveDocument.Styles("QLNU中文摘要").Font 9z#IdY$a  
        .NameFarEast = "宋体" Up:#Zs2  
        .NameAscii = "Times New Roman" i2DR}%U  
        .NameOther = "Times New Roman" Sl1N V  
        .Name = "Times New Roman" "q8wEu,z[  
        .Size = 12 qyto`n7  
        .Bold = wdUndefined 4|qp&%9-  
        .Superscript = wdUndefined W7 $yE},z  
        .Subscript = wdUndefined G>j/d7  
        .Italic = wdUndefined {#MViBhd%  
        .Underline = wdUnderlineNone vs +N{ V  
        .UnderlineColor = wdColorAutomatic dO 2cgY}  
        .Color = wdColorAutomatic 0#G"{M  
    End With i BQftq7  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat M6>l% [  
        .LineSpacingRule = wdLineSpaceExactly |j;`;"+B  
        .LineSpacing = 20 i~4Kek6,I  
        .Alignment = wdAlignParagraphLeft Vufw:}i+^  
         -kO=pYP*O  
        .WidowControl = False !?96P|G  
        .KeepWithNext = False 4'M#m|V  
        .KeepTogether = True D c^d$gh  
        .PageBreakBefore = False HhO$`YZ%>  
        .NoLineNumber = False HDYf^mcW  
        .OutlineLevel = wdOutlineLevelBodyText {|cA[#j#  
         ]?2AFkF  
        .LeftIndent = CentimetersToPoints(0) w[XW>4x K  
        .RightIndent = CentimetersToPoints(0) v|e>zm <  
        .FirstLineIndent = CentimetersToPoints(0) #AHIlUH"m  
         U w)1yzX  
        .CharacterUnitLeftIndent = 0 .*,Z cO  
        .CharacterUnitRightIndent = 0 R)v`ZF,/b  
        .CharacterUnitFirstLineIndent = 2 q:( K^  
        .LineUnitBefore = 0 &nq[Vy0kO4  
        .LineUnitAfter = 0 V+Z22  
         v'uQ'CiH  
    End With S $Wd}2>  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False +=O:z *O  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll 8^T' a^Wt  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS KvgZx(.  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True E_? M&  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese 2-]m# }zbP  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True j>U.(K  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete m~v Ie c  
    DoEvents >z2 {D7  
     *UTk. :G5  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") xnArYm  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" ${?Px c{-  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False Z7 @#0;g{  
    With ActiveDocument.Styles("QLNU英文标题").Font  /Wa+mp  
        .NameFarEast = "黑体" ,F1$Of/'@\  
        .NameAscii = "Arial Narrow" #Xc~3rg9  
        .Name = "Arial Narrow" `JC!uc  
        .Size = 16 wFe</U-';  
        .Bold = True uBM1;9h  
        .Bold = wdUndefined |laq y`D  
        .Superscript = wdUndefined -`( :L[  
        .Subscript = wdUndefined WrV|<%EQh  
        .Italic = wdUndefined @[^H*^1|g  
         Rj8l]m6U9  
        .Underline = wdUnderlineNone XH/|jE.9^|  
        .UnderlineColor = wdColorAutomatic 0 [s1!Cm!i  
        .StrikeThrough = False *m;L.r`5[  
        .DoubleStrikeThrough = False |D\ ukml  
    End With |:AjQ&PM)  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat wZ\0<skU  
        .LineSpacingRule = wdLineSpaceSingle 4 P.ry|2  
        .Alignment = wdAlignParagraphCenter ?h5Y^}8Qg  
        .WidowControl = True $]_=B Jyu  
        .KeepWithNext = False ."2V:; ;  
        .KeepTogether = False m+L:\mvA  
        .PageBreakBefore = False GxBj N7"  
        .NoLineNumber = False )}EwEM  
        .FirstLineIndent = CentimetersToPoints(0) fRbVc  
        .OutlineLevel = wdOutlineLevelBodyText ,Vog o5~X  
         Y=5hm  
        .LeftIndent = CentimetersToPoints(0) "/q6E  
        .RightIndent = CentimetersToPoints(0) R75sK(oS  
        .FirstLineIndent = CentimetersToPoints(0) %Z.!Bm:  
         4B |f}7%\  
        .CharacterUnitLeftIndent = 0 It4F;Ah  
        .CharacterUnitRightIndent = 0 Xd4~N:  
        .CharacterUnitFirstLineIndent = 0 vO\CPb %/  
         x@/ !H<y  
        .LineUnitBefore = 1 @8 pRIS"V  
        .LineUnitAfter = 1 tIg_cY_y  
         E yNCky  
    End With vt1!|2{ h  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False ^t| %!r G  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll Fax73vl|^a  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS _|F h^hq  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True $HaM, Oh;i  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese =Vi+wH{xM  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True ]$7|1-&Y  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete b_B4  
    DoEvents }\9qN!ol  
f}fM%0/5  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") (* p |Kzu  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" ]UNmhF!W>u  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False n9#@ e}r  
    With ActiveDocument.Styles("QLNU英文摘要").Font ! _QU-  
        .NameFarEast = "宋体" Q<M>+U;t  
        .NameAscii = "Arial" 4"GY0) Q  
        .NameOther = "Arial" )t|M)zJ  
        .Name = "Arial" D=3NI  
        .Size = 12 =lzjMRX(?  
        .Bold = wdUndefined MQI6e".  
        .Italic = wdUndefined %rf<YZ.\  
        .Superscript = wdUndefined J[^-k!9M  
        .Subscript = wdUndefined ~ >6(@~6  
    End With CkOd>Kn  
     !$O +M#  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat 6(eyUgnb  
         8r~4iVwg  
        .LineSpacingRule = wdLineSpaceExactly 1PWDK1GI8  
        .LineSpacing = 20 U+\\#5$  
         wy7f7zIa  
        .Alignment = wdAlignParagraphJustify J ~~WV<6  
         S2`p&\Ifn  
        .WidowControl = False rT x]%{  
        .KeepWithNext = False zfS`@{;F`|  
        .KeepTogether = False oRCj]9I$  
        .PageBreakBefore = False ETmfy}V8  
        .NoLineNumber = False I!{5*~ 3  
         i# QI}r  
        .OutlineLevel = wdOutlineLevelBodyText bk V_ ^8  
         Er{yQIi0L  
        .LeftIndent = CentimetersToPoints(0) ^JH 4: h  
        .RightIndent = CentimetersToPoints(0) Eg ;r]?|6  
        .FirstLineIndent = CentimetersToPoints(0) oR5'g7?  
         +] FdgmK:  
        .CharacterUnitLeftIndent = 0 lK{h%2A\b  
        .CharacterUnitRightIndent = 0 um[.r, ++  
        .CharacterUnitFirstLineIndent = 2 NL1Ajms`  
         [z/OY&kF  
        .LineUnitBefore = 0 3t8VH`!mL{  
        .LineUnitAfter = 1 ,Q^.SHP8  
         wz'D4B  
    End With -&+[/  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False .}^m8PP  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll ?8`b  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS Wu:evaZ:i  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False Nkc=@l {  
    DoEvents 5Ba eHzI  
u-8,9  
    Options.Pagination = True 0;)4.*t  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." Z5v\[i@H!  
    DoEvents pJV<#<#Z  
    ActiveDocument.Repaginate |A"zxNeS"  
;XANIT V  
End Sub emTqbO  
gx3arVa  
}e1f kjWk  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: >]FRHJo_  
c!b4Y4eJ  
用VBA控制WORD自己修订学生毕业文的格式。 oPl^tzO  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

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

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 OXp(rJ*bK  
第6车皮 x4v@ o?zW  

_Fkz^B*  
?h\fwF3  
第9车皮 Kjzo>fIC{  
e*)*__$O  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 bY&!d.  
m55|&Ux|  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 6({TG&`!]  
x4bmV@b  
Main2.bas g|T WoRx:  
fQQj2> 3w  
Attribute VB_Name = "SubMain" H Q:Y:  
Option Explicit 717S3knlv  
D||)H  
'采集文件与临时文件 #fy3 i+  
Public Const TmpFile As String = "d:\30-0600.dat" ^m Ua5w  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 Xrl# DN  
\:-" ?  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long 1Be/(pSc  
Public hBCFile As Long  '记录采集参数的文件  X~g U$  
Public Const TmpBMP As String = "d:\1.bmp" Zz/ z7~{  
Public hTmpFile As Long FRhHp(0}5  
};Pdn7;1G:  
)sN}ClgJ  
'采集窗口参数常量 L%;fYi;n  
Public Const FrameH As Long = 280& V9Pw\K!w#\  
Public Const FrameW As Long = 768& >)^Q p-  
Public Const pFrameSize As Long = FrameW * FrameH WA((>D af]  
owviIZFe  
'标志区范围,用于识别车辆 g286 P_a`*  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X $:|?z_@  
Public Const mkW As Integer = 28  '识别标志立柱宽度 0hg4y  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) t#d{hEr  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) 8B! MgNKV  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 A3^_ 'K  
'车缝检测位置常数 Uz =OTM  
Public Const sSize As Long = 32& zt;aB>jz#  
Public Const sPos As Long = 310& ^|%u%UR  
Public Const sPosL As Long = 200& ?[?;%Y  
Public Const sPosR As Long = 500& *Za'^ Z2  
'车缝检测框位置 'C7$,H'  
Public Slice(1 To sSize, 1 To FrameH) As Byte o3W@)|>  
Public SliceL(1 To sSize, 1 To FrameH) As Byte ?k`UQi]Q  
Public SliceR(1 To sSize, 1 To FrameH) As Byte hh!4DHv   
Public avSL As Integer, avSLR As Integer, avSLL As Integer l=UXikx  
"O~7s}  
Z\r?>2  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 nD.K*#u  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 b|pp}il  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 i"#pk"@`  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long 8'qq!WR~  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte !mH !W5&  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 4OeH}@a  
w"{mDL}c  
:'2h0 5R  
[>D5(O  
'一次连续采集的帧数 HSR,moI  
Public tFrames As Long YWAH(  
 R0~w F>  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 Pj8W]SA_  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 mor[AJ  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize FQBE1h@k0u  
&yRR!1n)H  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte [2{2w68D!  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte nc3u sq  
Public pWorkSpace(1 To FrameW * FrameH) As Long DGbEQiX$\  
Public Const pBufferSize As Long = FrameW * FrameH * 2 "^Vnnb:Z*o  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 I= 2jQ>$Q  
2q4-9vu  
Public hBoard As Long   '采集卡标识 .;F%k,!v  
Public mBufferAddr As Long  '缓存地址 #f@}$@  
Public BufferSize As Long  '缓存大小(字节) s~06%QEG  
Public iCurrentCard As Long \NTVg6>qN  
Public CapStatus As Long K;7ea47m N  
Public iFrames As Long &G!~@\tMg  
Public currentBr As Byte, currentContr As Byte #+&"m7 s  
ra;:  
Public hMEM As Long, mStatus As Long % 6\L^RP  
Public Const hMemSize As Long = pFrameSize * 4 < &kl:|  
Public hMemWork As Long O1Ynl` }  
Public Const hMemWorkSize As Long = pFrameSize * 5 >  -,$  
 s2`}~  
+#L'g c  
vM?,#:5  
'串口接收轨道衡数据 U1Y0G[i)  
Public WeightFromCom As String mWF\h>]|.  
Public bReceiveComplete As Boolean v]\T &w%9  
qnFg7X >C,  
|G)P I`BH  
Public Type GrayBMPHeader CHyT'RT  
  Tag As Integer ` ZBOaN^if  
  FileLength As Long    '文件大小 (3WK2IM^  
  Reserve1 As Long ivg W[]  
  DataOffset As Long    '图像数据偏移量 vddl9"V)  
  BMPHeaderSize As Long  '文件头长  {b|V;/  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… 9^7z"*@#  
                        'the following sizes are possible: h t3P@;  
                        '28h - windows 3.1x, 95, nt, … B[~Q0lP ih  
                        '0ch - os/2 1.x |?v .5|1  
                        'f0h - os/2 2.x G/ H>M%M  
&PPYxg<  
  ImageWidth As Long           '图像宽(像素数) y[ZVi5) ,  
  ImageHeight As Long          '图像高(像素数) b#-=Dbe  
  PlaneNumber As Integer  '图像层数 (y s<{Y-;  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap T_[5 ZYy  
                                        '4 - 16 color bitmap <m/XGFc  
                                        '8 - 256 color bitmap N :OLN[  
                                        '16 - 16bit (high color) bitmap 'w0?-  
                                        '24 - 24bit (true color) bitmap cx[[K.  
                                        '32 - 32bit (true color) bitmap + B<7]\\M  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) lS|F&I5j  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) RdB,;Um9f  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) MU4BAN   
                                    '3 - bitfields (also identified by bi_bitfields) (%'`t(<  
  IMAGESIZE As Long  '图像数据字节数 tn;Uaw  
  hResolution  As Long  '水平分辩率  像素数/米 e=+q*]>  
  vResolution  As Long  '垂直分辩率 z))rk vL%  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 _\<TjGtG  
  ImportantColors As Long %Z8wUG  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 tzY?LX[3  
End Type +&r=XJ5:`p  
r6&+pSA>  
LJA uTg  
Tol V3  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader _7b4+ L  
Public sRECT As RECT 9"?;H%.  
GX'S4B  
a4XK.[O  
Public conn As ADODB.Connection ~7gFddi=i  
Public rsTrain As ADODB.Recordset >y+?Sz!  
Public rsOperater As ADODB.Recordset ?rY+,nQP  
Public rsGoods As ADODB.Recordset JkI|Ojmm/  
Public rsGood2 As ADODB.Recordset Yfx ?3  
Public rsSender As ADODB.Recordset +TAyCxfmt  
Public rsReceover As ADODB.Recordset .pG`/[*a  
Public rsTrainTMP As ADODB.Recordset )-m/(-  
JQ|*XU  
J| 1!4R~  
'打开采集卡 j$<g8Bg=o  
'设置参数 NtmmPJ|5  
'设置为实时单帧采集到缓存方式 FE1'MUT_  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 `_sKR,LhB  
=QIu3%&  
F-XMy>9  
Sub Main() I+QM":2  
  Dim i As Integer, status As Long ?69E_E  
     w\M"9T  
   InitBMPinfo cd`P'GDF  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 # \ECQF  
    BMPHeader.Tag = &H4D42 XP[~ :+  
    BMPHeader.ImageWidth = FrameW c_t7<  
    BMPHeader.ImageHeight = FrameH V/xjI<,  
    BMPHeader.BMPHeaderSize = &H28 3e>U(ES  
    BMPHeader.PlaneNumber = 1 )Fw#]~Z  
    BMPHeader.bpp = 8 `a[ V_4wO  
    BMPHeader.Compression = 0 +i[@+`  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 H vHy{S4  
    BMPHeader.vResolution = &H1274 7[0<,O6Q  
    BMPHeader.ColorsinBMP = 256 b'I@TLE')  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP  He%v 4S  
    BMPHeader.DataOffset = Len(BMPHeader) J3XG?' }  
    For i = 0 To 255 WD5jO9Oai  
      BMPHeader.Pallate(i) = RGB(i, i, i) {N << JX  
    Next i (Vn3g ra  
    BMPHeader.IMAGESIZE = FrameH * FrameW b\t?5z-Z  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE H6Ytp^~>  
nt@uVwfQ  
^x Z=";eq  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) OKAmw >{  
     fymmA faR  
    BMP1.ImageWidth = FrameW 4b+_|kYb  
    BMP1.ImageHeight = FrameH * 2 ps^ ["3e  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight *to#ZMR;!  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE >%5GMx>m  
ZENblh8fs  
  '确定标志位置,为pilarX, pilarY确定初始值 l3+G]C&<  
   PilarW = mkW s )Xz}QPK.  
   PilarH = mkH  '此两项为固定值 T+PERz(  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) (:^YfG~e  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 o=-Af|#b  
   Q3'P<"u  
   %_G '#Bn<  
  '连续采集记录文件 !?sB=qo  
  ' 建立一个缓冲区为页对齐方式的文件 8K@e8p( y  
  If Dir(TmpFile) <> "" Then K"!U&`T  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ qoZe<jW (  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) 3[@:I^q  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 Zq 'FOzs  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 m {&lU@uL  
  Else E B! ,t  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ h*Mt{A&'.&  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) (w`_{%T  
  End If cYvt!M\ed  
  If hFile = 0 Then R2Lq??XA=  
    MsgBox TmpFile & ": File Open Error", vbOKOnly oFhBq0@  
    Exit Sub 1d$wP$  
  End If ]z2x`P^oI  
  '采集参数记录文件 S~W;Ld<>fB  
hBCFile = FreeFile() b~{nS,_Rn  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile %q.5; L  
   Q[FDk63;w  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 *,)1Dcv(  
If hMEM = 0 Then B`w8d[cL7  
    fStatus = GetLastError P F);KQ  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ M,cz7,  
     & "请向技术人员报告该错误代码。", vbOKOnly t*fH&8(  
    CloseHandle hFile TxH amI l  
    Exit Sub )(rr1^Xer  
End If Xjm AM/H4  
: rudo[L  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) w4R~0jXy  
If hMemWork = 0 Then A"0Yn(awWu  
    fStatus = GetLastError b>9?gmR{  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ qiq=v)  
     & "请向技术人员报告该错误代码。", vbOKOnly 8@){\.M  
     '释放已成功分配的内存 8w#4T:hsuN  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) 0b<Qs88yd>  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) '*EKi  
     "Xl"H/3r  
    CloseHandle hFile -X3CrW  
    Exit Sub Y5P9z{X=  
End If a@AIv"q  
;2[OI  
' Test writing Js.G hTs  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& 1r5Z$3t\  
     7+Nl)d:C J  
   '初始化采集卡参数 (!?% "e  
   iCurrentCard = -1 =BbXSwv'(  
   hBoard = okOpenBoard(iCurrentCard) wKoar  
   Debug.Print hBoard 4sfq,shRq  
   If hBoard = 0 Then O]?\<&y  
      ExitGrabber >[~`rOU*|Y  
      End b&]z^_m)  
   End If #Zi6N   
   okGetBufferSize hBoard, mBufferAddr, BufferSize BqpJvRJd  
   If mBufferAddr = 0 Then * ^XMf  
     MsgBox "缓存不存在!" +U>Y.YP  
     ExitGrabber I}| E_U1Qj  
   End If i>C%[dk9  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) Iu(]i?Y  
   (4IP&^j:\  
   i2-]Xl  
   currentBr = 128: currentContr = 128 fF2] 7:  
   '设置视频输入参数 ^E)8Sb9t  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 3 lKs>HE0  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input :fUN c^\2  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 m|;gl|dTB  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 /7ShE-.5#  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 06`caG|]-M  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 y3bL\d1  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) 79D;0  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) Fu% n8  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) :GFK |  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 j3S!uA?  
   FE:} D ;$  
   '设置采集参数 @i#=1)Ze  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 "D :?l`\o  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 x_<,GE@  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 Ir(U7D  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 YgtW(j[  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 _,? xc"  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 Q'Uv5p"X  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 -FrK'!\  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 I0;gTpt9  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 of >  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 &i6JBZ#~,  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 ZkdSgc')  
   7mn&w$MS4:  
   mR|']^!SE  
   okCloseBoard hBoard ^)'D eP/  
   Sleep 50 C0khG9,BL  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 &x4*YM h  
   {DE4PE`  
   '设置数据传送方式 :G= ol2Q  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 TkIiO>  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 ) r"7"i  
   r1z+yx  
   sRECT.Right = -1   '用于获得当前设置值 h\5~&}Hp  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) Z`Jt6QgW  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom *g9VI;X  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 9|NF) ~Q}'  
   sRECT.Left = 0 nITkgN:s  
   sRECT.Top = 0 ')iyD5/4  
   sRECT.Right = sRECT.Left + FrameW h A '>  
   sRECT.Bottom = sRECT.Top + FrameH * 2 ,#9i=gp  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) @RCZ![XYWg  
   dnM.  
   sRECT.Right = -1   '检查新设置值 IR&b2FTcU  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) l*Fp}d.  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom Ef3=" }AI;  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) 7#*`7 K'P!  
   =B`=f,,#3  
   If TESTSignal = False Then O7od2fV(i7  
      'ExitGrabber :bCswgd[  
   End If uLfk>&hc  
   FTzc,6  
   :H]MMe  
   K;`W4:,  
   '设为实时采集状态 F^lau f  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) 2_Zn?#G8dl  
   yNG|YB;  
   Zrew}0  
   '单帧采集  .4Mc4 '  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 Zeq^dV5y77  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) BqavI&1=  
   okCaptureTo hBoard, BUFFER, 0, 1 'single %WqUZ+yy  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 ^* CKx  
   '   Sleep 20 Fr<tk^~/  
   'Loop U.=TjCW  
   okGetCaptureStatus hBoard, True Xi~I<&  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize K_;?Sr=  
   '写入768*576测试图象 #%/Jr 52<  
   ArrayToBMP TmpBMP K.}jyhKIKi  
   zFY$^Oz"_  
   '打开数据库 iszVM  
   Set conn = New ADODB.Connection i&<@}:,  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ };'~@%U]/  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ LaL{ ^wP  
      "; Mode=Read|Write" ]4'V59\  
   conn.Open '#yIcV$  
   f:AfMf>m  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) '$4&q629d  
   frmRecord.Visible = True Cd_H<8__  
   frmQuery.Visible = True B->oTC`5  
   Load frmReceiveFromComm [(vV45(E  
   {@'#|]4y.  
   '调试参数 <"S`ZOn  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then cnDF`7xrT  
     SignalBox.Visible = True g3!<A*<  
   End If BFqM6_/J  
   If InStr(UCase(Command()), "/COMM") > 0 Then umpa!q};  
     frmReceiveFromComm.Visible = True DZ:$p.  
   End If /N")uuv  
6aWNLJ @  
End Sub \_)mWK,h  
~| oB|>  
Sub ExitGrabber() @lqI,Ce5  
  '关闭数据库 \ >#y*W<  
  '关闭采集卡 n<eK \ w  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) 5!57<n  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) T:!H^  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) cet|k!   
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) ?xwZ< A  
  okStopCapture hBoard [vnxp/v/<  
  okCloseBoard hBoard Gsy90  
  CloseHandle hFile $J]NWgXl@  
  Close #hBCFile jS|jPk|I.  
  conn.Close gEmsPk,  
  End hD,xJ]zv1  
End Sub s -F3(mc(  
B9`_~~^U5  
Function ArrayToBMP(ByVal File As String) R-2Aby ts2  
Dim BytesWrite As Long =`!# V/=  
&O5&pet  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ I] Z"?T  
  CREATE_ALWAYS, 0&, 0&) RGBntp%  
oJc7a z  
If hTmpFile = 0 Then M{=p0?X  
   ArrayToBMP = False aCy n9Y$=  
   Exit Function =A_{U(>  
End If { >Qs +]  
PpSQf14,  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN KPZqPtb;  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& 6rlM\k@!  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN qg*xdefQ%  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& LX(`@-<DH  
Ng*O/g`%L  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN DtZ7UX\P  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& c A{,2CYc  
>QB Dxm  
If BytesWrite < pFrameSize Then n 0uL^{B  
  ArrayToBMP = False N0YJ'.=8,  
End If @y|JIBBRc  
_z#S8Y  
CloseHandle hTmpFile GwG(?_I"  
!$Arc^7r  
End Function >^v,,R8j  
V9;IH<s:  
Function ArrayToBMP1(ByVal File As String) R78P](1\>  
B"t4{1/  
Dim BytesWrite As Long jk])S~xl?  
/~g.j1g  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ !1 <>][F  
  CREATE_ALWAYS, 0&, 0&) w3Dqpo8E  
A8ClkLC;I  
If hTmpFile = 0 Then c =Zurqj  
   ArrayToBMP1 = False l HZ4N{n  
   Exit Function g{hbq[>X]  
End If )-i(%;,*e  
Q.f D3g  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN "&\]1A}Z-x  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& , lBHA+@  
o<g1;  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN y )7;"3Q<  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& ei[, ug'  
ciN*gwI)  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN C`aUitL}  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& QD 0p  
"Fxw" I <  
If BytesWrite < pBufferSize Then Tq%##  
  ArrayToBMP1 = False k vt^s0T8Q  
End If G.^^zmsM`  
vtq47i  
CloseHandle hTmpFile ~S0T+4$  
Mu_'C$zA  
End Function vs*@)'n0}  
1Nz#,IdQ  
'使用该过程建立的文件要求在用后关闭 .0dx@Sbv  
Public Function ArrayToBMP2(File As String) As Boolean %'9&Js O  
i>=y3x"  
Dim BytesWrite As Long ALKzR433/  
yq`  ,)  
ArrayToBMP2 = True '~xjaa;.  
)2F%^<gZ#  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ prGp/"E  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) |+1k7S  ,  
HZ89x|H k_  
If hTmpFile = 0 Then :eSwXDy&  
   ArrayToBMP2 = False &qm:36Y7Xg  
   Exit Function f%%'M.is  
End If Xs)?PE [  
%,udZyO3uR  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 6h&i<->  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& ?!bA#aSbl5  
ItG|{Bo  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN %kk~qvW  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& 8]JlYe  
"ZG2olOqLI  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN ka:wD?>1i  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& @nM+*0 $d  
#aadnbf  
If BytesWrite < pFrameSize Then Z}>+!Z  
  ArrayToBMP2 = False l YjPrA]TC  
End If |3gWH4M4**  
UJ&gm_M+kL  
CloseHandle hTmpFile jG,^~ 5x  
fBP J8VY  
End Function x' 3kHw  
VS+5{w:t  
Private Function TESTSignal() As Boolean 3e|,Z'4}4  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long M:%Ll3  
:(4];Va  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) @Z@S;RWSU  
rTeADu_vf  
If extsign = 1 Then o H]FT{  
   TESTSignal = True w)}@svv"  
Else px^brzLQo  
    If extsign = 0 Then sP%J`L@h  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly -M-y*P)  
        TESTSignal = False ;!<@Fm9W  
        Exit Function @SAJ*h fb0  
    End If  \>e>J\t:  
End If z| zd=3c  
pF:C   
'测试视频输入类型 T{Yk/Z/}?  
'video type DjiWg(X  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 J 77*Ue ^  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) wtfM }MW\  
If videotype = 1 Then !6*4^$i#o  
        '"隔行信号(Interlaced)" v3]~*\!5  
Else DE$T1pFV  
   If videotype = 0 Then 7zu3o  
       '"逐行信号(Non-interlaced)" 3\5I4#S  
   Else [Ib17#74  
     If videotype = -1 Then A~'p~ @L  
       ' "不支持" XKbTj R  
     End If s1zkkLw`*  
   End If z2SR/[I?  
End If dg;E,'e_ p  
XQj+]-m  
'测试垂直扫描线数 liTAV9<  
'video scanlines 'WoB\y569  
scanlines = -1 H&0S  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) 2*0n#" L  
    If scanlines = -1 Then mz^[C7(q'(  
        ' "不支持" ,>I_2mc  
    Else mtNB09E(  
        'Trim(Str(ScanLines)) + " 行数/幅" 6`)Ss5jzk  
    End If iBqIV  
w6'8L s  
'测试帧频  83:qIfF  
'video field frequency `e+eL*rZ~  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) @Hst-H.l<l  
    If fieldfrq = -1 Then lDG.\u  
        'lblSignal(8) = "不支持" [ Ny'vAHOj  
    Else BWsD~Ft  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" {ALOs^_-  
    End If 5K |s]Y;  
End Function |bjLmGb  
)h;zH,DA[3  
g)iw.M2  
Sub PicIdentify() Wu693<  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 }-paGM@'Nd  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 #M8>)oc  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 x_x|D|@wM  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 \V9);KAOj  
&3Mps[u:h  
  Dim fPTR As Long, cFrame As Long O9)k)A]`O  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer Mm#=d?YUHJ  
     aGmbB7[BZ  
Ky'\t7p u  
cFrame = 0 ZHc;8|}  
rX nG"A  
,+RoJwi m  
Do While cFrame < tFrames DZX4c2J  
   ,CnUQx0  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) CIf""gL9  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) S3YAc4  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize 90+Hv:wF  
   W7 9.,#  
  frmRecord.RText.Text = Str(cFrame) %l)~C%T  
  frmRecord.RText.Refresh G I#TMFz3  
       z';h5GNd>z  
  If CheckMark = True Then 9!Vp-bo  
   ArrayToBMP TmpBMP BC1P3Sk 6X  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) w7_2JS  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" '8f h(`  
   8?k.4{?  
   DrawSlice +F6R@@rWr  
   hFt~7R  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) 5>M@ F0  
   'If i = vbNo Then 8hvh xp  
   '  Exit Do QEl~uhc3  
   'End If _ 4+=S)$  
   'cFrame = cFrame + 1 l,1.6  
   "RsH'`  
  End If PX,fg5s\b  
  DoEvents 7R".$ p  
  cFrame = cFrame + 1 7:&a,nU  
Loop e irRAU  
End Sub pPZ^T5-ks  
JLV?n,nF  
)hK1W\5  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 8\8%FSrc  
~sc@49p  
'如标志区模式反差存在则为TRUE,否则返回FALSE `jCq`-.  
AmT*{Fz8  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long | b)N;t  
CheckMark = True 2N_9S?a3sK  
   c#(&\g2H  
'复制标志区 Z!qF0UDj  
For i = 1 To mkH `H\NJ,  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW }ilX 2s?>  
Next i =v/x&,Uj@6  
r#K"d  
For j = 1 To PilarW * PilarH / 2 WWWfQ_u2  
   mTop = mTop + MKpilar(j) {X>U`0P  
Next j {,i='!WIm  
69/qH_Y  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH v7- d+P=  
   mBot = mBot + MKpilar(j) SQx:`{O  
Next j Jl,\^)DSw  
BGVy \F<  
mTop = mTop / PilarW / PilarH * 2 }@w Xm  
mBot = mBot / PilarW / PilarH * 2 9i#K{CkC|  
QjwCY=PK!  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 ]lzOz<0q  
6c&OR2HGqO  
'平均值极值化 @GE:<'_:{  
  For j = 1 To PilarH * PilarW 8^dsx1U#  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) g3,F+  
  Next j FI(M 1iJ  
   Q*AgFF%wn  
mTop = 0: mBot = 0 x$tzq+N  
For j = 1 To PilarH * PilarW / 2 WnC0T5S?U  
  mTop = mTop + MKpilar(j) VEg/x z4c  
Next j =;A~$[g  
5V/CYcO  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW _k.gVm  
  mBot = mBot + MKpilar(j) rz gzX  
Next j 9 TW  
_fANl}Mf:  
@?"t&h  
  mTop = mTop / PilarH / PilarW * 3 p=J9N-EM  
  mBot = mBot / PilarH / PilarW * 3 ' k[gxk|d2  
   )ur&Mnmm  
WWYG>C[  
If mBot > iWhite And mTop < iBlk Then dCM*4B<  
  CheckMark = True MBH/,Yd  
Else 6u v'{  
  CheckMark = False Z'z~40Bda  
End If y2Z1B2E%f  
End Function _d/ZaCx'i  
]j?Kn$nv*S  
Sub Capture1Frame() "n=Ih_J  
   okCaptureTo hBoard, BUFFER, 0, 1 'single WP0{%  
   okGetCaptureStatus hBoard, True k~b8=$  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize mPo].z  
End Sub oM#S. f?  
s *1%I$=@  
%uLyL4*L(p  
Sub CopyMark(iBlk As Integer, iWhite As Integer) B 9AE*  
'复制标志区并返回标志区暗区与亮区的亮度平均值 R|H_F#eVn}  
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 A)q,VSR8  
   :7Q, `W9  
'复制标志区 \ g[A{  
For i = 1 To mkH },LW@Z}  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW Nm/Fc   
Next i }\/f~ ?tEh  
k|T0Bly3P  
For j = 1 To mkW * mkH / 2 *npe]cC  
   mTotal = mTotal + MKpilar(j) |1(9_=i'  
Next j 7%4@*  
Gk5SG_o  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 /I&b5Vp  
)z?Kq0  
mTotal = 0 r#[YBaCZJ  
For j = mkW * mkH / 2 + 1 To mkW * mkH Bh,LJawE  
   mTotal = mTotal + MKpilar(j) mF !=H%  
Next j 0,`$KbV\  
+bK.{1  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 I3V>VLv  
}~28UXb23  
'背景亮度 i<Be)Y-'  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW DY%#E9   
  For i = 1 To 4 * FrameW /1q] D8  
    bsTotal = bsTotal + BsLine(i) in6iJ*E@'  
  Next i }ZWeb#\  
  bsAV = bsTotal / FrameW / 4 MhpR^VM'.  
#FV(a~  
End Sub l?%U*~*  
)o zN{&B6  
v{2 Vg  
Sub AdjIMGbright(Optional bInit As Boolean = True) \i#0:3s.  
*oX~z>a E  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) +(<}`!9M*  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 zdUi1 b  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 L~FE;*>7  
     yw;!KUKb|  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer [0G>=h@u  
   F- n1J?4b  
  '按标准亮度与对比度采集一帧,确定背景亮度 6Pa jBEF  
  currentContr = 128   '初始对比度 I"=XM   
  currentBr = 128   '初始亮度 H;n(qBSB  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 oos35xV .  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 O}3M+  
  DoEvents C&'Y@GE5  
  Capture1Frame J ;wA  
  '获得图像上缘4行象素 "V`MNZ  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW P&Q 5ZQb  
  CopyMark iBlack, iBright   '图像标志区亮度 Ma3Hn  
  For i = 1 To 4 * FrameW v+*l|!v  
    bsTotal = bsTotal + BsLine(i) 4n@, p0   
  Next i 6gfdXVN5  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 r8~U@$BBK  
   (7rG~d1iS  
  Select Case bsAV Up$vBE8i]  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 {9 Op{bZ  
       currentBr = 150 f V.(v&  
       currentContr = 60 []M+(8Z_P  
     Case 61 To 80   '有可见背景 f 6P5J|'  
       currentBr = 140 O( { -lI  
       currentContr = 70 n [/|M  
     Case 81 To 100  '有清晰背景 ^MWfFpJV!]  
       currentBr = 128 Yg#)@L  
       currentContr = 80 7>m#Y'ppl@  
     Case 100 To 150  '有明亮背景 (IR'~ :W  
       currentBr = 140                '5:30-6:00钟实测数据 qEpP%p  
       currentContr = 50 U)p P^:|  
     Case 151 To 180 'm=9&?0S  
       currentBr = 130 ?D6rFUs9;  
       currentContr = 60 rkl/5z??  
     Case 181 To 220  '背景全为白色 I -obfyije  
       currentBr = 110 _dEf@==  
       currentContr = 130 Bv |Z)G%RR  
     Case 221 To 255  '背景全为白色 u[oYVpe)IG  
       currentBr = 100 2aN  
       currentContr = 100 Q'^]lVY  
  End Select >:`Y]6z  
   ud-.R~f{e  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 .j4IW 3)  
        Case 100 To 150 UmU=3et<Wj  
          currentBr = currentBr - 10 {hM*h(W~3  
        Case 151 To 255 Sk$ XC  
          currentBr = currentBr - 20 :LFw J  
  End Select }r /L 9  
   w`VmN}pR  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 BI=Ie?  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 2'J.$ h3  
End Sub k>Qr 14F  
\?fl%r2  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) 6P;1I+5m{q  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long V@K}'f~  
     ?^&!/,  
    For i = 1 To 8 /=\__$l)  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& b`K~l'8  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& s^9N7'  
    Next i P"u*bqk  
     ~4*9w3t   
    For j = 1 To 1024 JCZJ\f*EZ  
      L1 = L1 + LeftBK(j, 0) UgJ^ NF2w  
      L2 = L2 + LeftBK(j, 1) p$@=N6)I.k  
      R1 = R1 + RightBK(j, 0) qD#-q vn  
      R2 = R2 + RightBK(j, 1) <96ih$5D1  
    Next j /kVy#sT|  
    diffL = Abs(L1 - L2) / 1024 ? xX`_l  
    diffR = Abs(R1 - R2) / 1024 9ffRY,1@  
End Sub y\ @;s?QL  
MnsnW{VGX  
Function CheckSlice() As Boolean  N _r*Ig  
  CopySlice avSL, avSLR, avSLL -zz9k=q  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then ki^[~JS>'  
    CheckSlice = True zT~ GBC-IX  
  Else 4#=!VK8ZH  
    CheckSlice = False Y^S0K'N  
  End If (vjQF$Hp  
End Function eeb 8v:4  
9#6ilF:F  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) W^&t8d2  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long ^B?koU l^  
  For i = 1 To FrameH $zz=>BOk  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize 'eqvK|Uj:  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize Q ;5'I3w  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize Zk}e?Grc  
  Next i Y@u {73H  
  For i = 1 To FrameH ( L RX  
    For j = 1 To sSize Z#;ieI\  
       total = total + Slice(j, i) $Y aL3n  
       totalL = totalL + SliceL(j, i) Dl/UZ@8pl  
       totalR = totalR + SliceR(j, i) =W !m`  
    Next j V|HSIJ#J  
  Next i A Sy7")5  
  avSL = total / FrameH / sSize ^O\tN\g;c  
  avSLR = totalR / FrameH / sSize j&m<=-q  
  avSLL = totalL / FrameH / sSize [;5HI'px  
End Sub m$hSL4 N  
EGGy0ly  
Sub DrawSlice() M7,|+W/RK  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B g)&-S3\  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B %_SE$>v^  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B _z m<[0(  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) r:Cad0xj;^  
End Sub }.zgVL L  
Sub DrawMark(pic As Control) xY t{=  
   Dim i As Long, j As Long ,bmTB ZV  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B L +.K}w  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B *vsOL 4I%  
   For i = 1 To PilarH nhXa&Nro  
     For j = 1 To PilarW ^"+cJ)  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) p|Rxy"}  
     Next j /yrR f;}<O  
   Next i dGh<R|U3  
End Sub G';oM;~/|  
WM=kr$/3  
Function avIMG() As Integer r?/>t1Z  
  Dim i As Long, j As Long, totalIMG As Long .#WF'  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize o ohf))  
  For i = 1 To pFrameSize T*h+"TmE  
    totalIMG = totalIMG + pBuffer(i) ^Z:x poz,  
  Next i |klL KX&  
  avIMG = totalIMG / pFrameSize S^D ~A8u  
End Function 7@tr^JykO  
rzaEVXbz1  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer >Q5E0 !]  
  Dim i As Long, j As Long, totalIMG As Long ~P6K)V|@<  
  For i = 1 To FrameH bJB:]vs$  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth 6o A0a\G'  
  Next i [TO:- 8$.  
  For i = 1 To FrameH * barWidth 9fl !CG  
    totalIMG = totalIMG + pBuffer(i) zLXtj-  
  Next i !FpMO`m  
  avRegion = totalIMG / pFrameSize S8,+6+_7  
End Function *bRH,u  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 s^KxAw_IV  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 \HK#d1>ox  
5K6_#g4"  
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 )If[pw@j  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long U;V. +onv  
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 Va*Uwy?x/)  
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 l1W5pmhK]'  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long #{ Uk4  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 At bqj?  
dEe/\i'r9  
q}\\p  
Private Const GENERIC_READ = &H80000000 eEc ;w#  
Private Const GENERIC_WRITE = &H40000000 bNaJ{Dm$R  
UN>hJN;c  
Private Const FILE_SHARE_READ = &H1 {8B\-LUR  
Private Const FILE_SHARE_WRITE = &H2 ;:$Na=  
Private Const OPEN_EXISTING = 3 >MP PYVn7  
=$`DBLX   
Private Const INVALID_HANDLE_VALUE = -1 A<.Q&4jb  
$yFur[9 7C  
'//file seek %W&=]&L  
Private Const FILE_BEGIN = 0 M;43F*   
Private Const FILE_CURRENT = 1 :Dr& {3>  
Private Const FILE_END = 2 1;:2 =8  
.cZ&~ N  
Private Const ERROR_SUCCESS = 0& ]-PF?8  
|g'sRTKJ  
'//device io control [email protected]"$  
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 caj)  
i*U\~CZjT  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 ?pF;{  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 \GvVs  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 s9E:6  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 zw5~|<  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C g:o\r (  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 }=GyBnXu  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F Aoo'i  
}lxvXVc{I  
'//type jZ{ S{"j  
Private Type LARGE_INTEGER )E[5lD61  
    lowpart As Long ReK@~#hLY  
    highpart As Long GO?-z0V  
End Type ZXU e4@qfl  
'Ux_X:,:;  
Private Enum MEDIA_TYPE %ri4nKGS  
    Unknown 'g=yJ  
    F5_1Pt2_512 J<`RlDI  
    F3_1Pt44_512 E$ngmm[  
    F3_2Pt88_512 -dvDAs{X  
    F3_20Pt8_512 Dh9-~}sW'  
    F3_720_512 Y\%}VD2k  
    F5_360_512 MZd\.]G@  
    F5_320_512 ~AE034_N  
    F5_320_1024 |t]9RC.;7  
    F5_180_512 /e7'5#v  
    F5_160_512 yh0|f94m  
    RemovableMedia .i=%gg  
    FixedMedia q/B+F%QiMQ  
End Enum }zobIfIF  
uRL3v01?H0  
Private Type DISK_GEOMETRY vSnb>z1  
    Cylinders           As LARGE_INTEGER \ qs6%  
    MediaType           As MEDIA_TYPE 5r+0^UAO:J  
    TracksPerCylinder   As Long a <Ns C1   
    SectorsPerTrack     As Long 3x=F  
    BytesPerSector      As Long #63/;o:l$  
End Type I Mv^ 9T:  
pz$$K?  
'//private vars x# YOz7.  
Private hDisk           As Long             'disk handle s?6 7@\  
Private lpGeometry      As DISK_GEOMETRY    'disk info [{{?e6J  
Private lBufferSize     As Long             'the buffer size of read/write Sm Ei _u]'  
h3)KT+7.  
Public Function OpenDisk(ByVal FileName As String) As Boolean mm{U 5  
'// 打开磁盘 VG8rd'Z  
    hDisk = CreateFile(FileName, _ D1j 7i v  
                        GENERIC_READ Or GENERIC_WRITE, _ -y\N9  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ no/]Me!j=  
                        ByVal 0&, _ pJv?  
                        OPEN_EXISTING, _ Bs1-UI}+  
                        0, _ tm|lqa  
                        0) <HzAh<_@F  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) _+Q$h4t   
End Function R/Y/#X^b  
PCLSY8N  
Public Function CloseDisk() As Boolean Gqia@>T4*N  
'//关闭磁盘 Ov<3?)ok  
    CloseDisk = CloseHandle(hDisk) AngECkF-  
End Function 7GIv3Dc  
*xl7;s  
Public Function GetDiskGeometry() As Boolean `?D_=Gw  
'//获取磁盘参数 b?bYPN+  
    Dim dwOutBytes      As Long 6Ss{+MF|v  
    Dim bResult         As Boolean @"/}Al  
     I?Zs|A  
    bResult = DeviceIoControl(hDisk, _ g-:)} 8d6  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ P5d@-l%}  
                                ByVal 0&, 0, _ n5JB 'F)  
                                lpGeometry, Len(lpGeometry), _ {&<}*4D  
                                dwOutBytes, _ ?}]kIK}MC  
                                ByVal 0&) ,m"zt u-  
     ~o%-\^oc  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack f C^l9CRY  
    GetDiskGeometry = bResult XeB>V.<y  
End Function FSQ&J|O  
(Dar6>!  
Public Sub GetDiskInfo(MediaType As Long, _ v|/ 3Mi9mz  
                        Cylinders As Long, _ DdQf %W8u  
                        TracksPerCylinder As Long, _ GVfu_z?  
                        SectorsPerTrack As Long, _ h#n8mtt&i  
                        BytesPerSector As Long) bK].qN  
'//返回磁盘的参数 L$Leo6<3a  
    MediaType = lpGeometry.MediaType Z*TW;h0ZQ3  
    Cylinders = lpGeometry.Cylinders.lowpart 6m.Ku13;  
    TracksPerCylinder = lpGeometry.TracksPerCylinder H3c=B /+  
    SectorsPerTrack = lpGeometry.SectorsPerTrack j0%0yb{-^  
    BytesPerSector = lpGeometry.BytesPerSector z1FbW&V  
x@Y2jM  
End Sub =Hx~]1  
I| j tpv}  
Public Property Get BufferSize() As Long 4bxkp3~h;  
'//返回每次读/写的缓冲大小 hZ'oCRM  
    BufferSize = lBufferSize "{B ek<  
End Property 28)TXR r-  
p;7 4 +q  
&S3W/lQs  
Public Function LockVolume() As Boolean #VOjnc/rW  
'// 将卷锁定 PPqTmx5S  
    Dim dwOutBytes  As Long %'t~e?d!  
    Dim bResult     As Boolean _eQ P0N  
     3N bn|_`(  
    bResult = DeviceIoControl(hDisk, _ :HE]P)wz-  
                                FSCTL_LOCK_VOLUME, _ i]53A0l  
                                ByVal 0&, 0, _ 7>zKW?  
                                ByVal 0&, 0, _ f~q&.,I(  
                                dwOutBytes, _ ^kl9U+  
                                ByVal 0&) kdUGmR0d  
    LockVolume = bResult lQsQRp  
End Function 9kF#*  
>4ct[fW+  
E&>,B81  
Public Function UnlockVolume() As Boolean avpw+ M6+  
'// 将卷解锁 `Of wl%G  
    Dim dwOutBytes As Long *QG3Jz  
    Dim bResult As Boolean 0`P]fL+&  
     PD}R7[".>  
    bResult = DeviceIoControl(hDisk, _  }]~}DHYr  
                                FSCTL_UNLOCK_VOLUME, _ Gtg)%`  
                                ByVal 0&, 0, _ psZeu* /r  
                                ByVal 0&, 0, _ $&C(oh$:  
                                dwOutBytes, _ ,Mhe:^3  
                                ByVal 0&) >Y/[zf I2  
    UnlockVolume = bResult @gqw]_W  
End Function ob] lCX)  
S[a5k;8GL  
[[ e| GQ  
Public Function DismountVolume() As Boolean |tg?b&QR  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 #c^Q<&B  
    Dim dwOutBytes As Long -/-6Td1JY>  
    Dim bResult As Boolean 8Wj=|Ow-q  
     Y1 P[^ws  
    bResult = DeviceIoControl(hDisk, _ 4v|/+J6G  
                                FSCTL_DISMOUNT_VOLUME, _ UC1!J =f  
                                ByVal 0&, 0, _  i) 2))C  
                                ByVal 0&, 0, _ I:e2sE ":  
                                dwOutBytes, _ ,OKM\N ,  
                                ByVal 0&) N-rm k  
    DismountVolume = bResult F3Y>hs):7  
End Function K7hf m%`N  
H{f_:z{{  
]hj1.V+  
Public Function ReadDisk(ByVal Cylinders As Long, _ ~t:b<'/  
                    ByVal Tracks As Long, _ |%}s$*s  
                    db() As Byte) As Boolean <nvWC/LU  
'//按柱面和磁道来读取磁盘数据 P*PL6UQ  
    Dim iPos    As Long _on p%*  
    Dim lRead   As Long z/YMl3$l~  
     +2zuIW.  
    iPos = Cylinders * Tracks * lBufferSize @1F'V'  
     Hk]BC  
    If SeekAbsolute(0, iPos) Then KCk?)Qv  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) Q@2tT&eL  
    End If 2\w=U,;(  
End Function x ct U.)p  
u!uDu,y  
Public Function WriteDisk(ByVal Cylinders As Long, _ &Bn; Vi  
                     ByVal Tracks As Long, _ | sFe:TX  
                     db() As Byte) As Boolean gx*rSS?=N  
'//按柱面和磁道来写磁盘数据 lk +K+Ra/  
    Dim iPos    As Long s\W  
    Dim lRead   As Long \ZFQ?e,d  
     ;1.>"zX(  
    iPos = Cylinders * Tracks * lBufferSize IMGqJc,7  
     Z% ;4Ed  
    If SeekAbsolute(0, iPos) Then R1.sq(z`  
        WriteDisk = WriteBytes(lBufferSize, db()) d# 3tQ*G/  
    End If 7I(t,AKJ  
End Function i$ L]X[  
%< ?ciU  
aE BP9RX}z  
'/////////////////////////////////////////////////////////////////////////////////////  j/9QV  
'//file system s1vrzze  
,0Zn hS)kq  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean CjQ"oQw  
'//seek file  M_1Tx  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte ^V}R(gDu}s  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) , Ln   
    If LowPos = -1 Then Z02s(y=k1  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) x~;EH6$5'/  
    Else QWHy=(!  
        SeekAbsolute = True z`/.v&<>V  
    End If vS YKe  
     jAK{<7v4U  
End Function RW 7oL:$dt  
`XxG"k\/S  
A'( 7V J  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean $a^isd4  
'//read data to array ?4ILl>*  
    Dim RetVal    As Long .gN$N=7<  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) }IN_5o((  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF h_~|O [5|)  
    ReadBytes = Not (RetVal = 0) ( b%y$D  
     c,q"}nE8w  
End Function &^IcL!t[  
9"aFS=><  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean +V9 B  
'//write data from array ]zyX@=mM  
    Dim RetVal As Long z@~&Kwf\}  
    Dim BytesToWrite As Long dPx<Dz;  
    Dim BytesWritten As Long }[z<iij4  
     atf%7}2  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) z9 w&uZzi  
     )_v\{N  
    WriteBytes = Not (RetVal = 0) }6J7 <g  
End Function A,gx5!J  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 u5Ny=Xm  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ h1XMx'}B  
DWORD dwCB; JT|u;Z*n  
LARGE_INTEGER  offset; KO|pJ3  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); Q)S>VDLA  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); HRV*x!|I  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ 0i\',h}9  
DWORD error = GetLastError(); 3%R{"Q"  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); ufCqvv>'  
return FALSE; WE[m@K[CR  
} lKEX"KQ!  
return TRUE; CofH}-  
} kwHqvO!G  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : t<sNc8x  
~o@\ n  
介个真的看不懂。 1TNz&=e  
你说你老啦,喜欢怀旧了,才想起来填坑。 8?7kIin  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 efjO8J[uk-  
uxO J3  
/2e%s:")h  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : f=ac I|w  
佩服,玩也玩得这么专业! ; 8P_av}C  
hH%,!tSx  
f cRj  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : v f`9*xF  
伍SIR,再次抱拳佩服 P##Z[$IJ3  
./l|8o  
W`$[j0  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : }W$8M>l  
引用第19楼伍胥之于06-14-2010 12:33发表的  : i\Yl  
f =o4I2Y[  
lEHwZ<je  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 #{x5L^v>]  
jYWw.g<  
我连一级也没有考过。 I!0JG`&  
.
-#aZF2z   
>AG^fUArH  
引用
9? 2  
矬子里拔将军... WSLy}@`Vx  
你们那里的俗语是吧? hK(tPl$  
y"vX~LR  
我们这里说"矮子里拔长脚"..应该是同一个意思... lkA^\ +Ct  
H`-=?t  
有趣....各地有表达意思一样却方式不同的俗语.... _gW{gLYyJ  
/7gi/uh~-(  
s~J=<)T*6  
你的文章写的有脸皮,没屁眼的, [ ?iqqG.  
让看客大为不满... h4(JUio  
|3;(~a)%  
你等着,,估计你以后接到的午夜凶铃就多了... WmNYO,>  
$n-Af0tK  
R& #tSL  
我到现在也没有接到你的午夜凶铃呢! %cX"#+e  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : \}JrFc%O  
每个人的故事对其他人都是故事, /r^[a,Q#x  
自己的故事也是其中之一. P~RhUKfd  
跳出来看, /v#)f-N%zs  
不过是众人中的一个人的故事. 8o|P&q(v*  
>w.'KR0L  
所以,接着听故事. ff E# ^|  
}ptMjT{9  
女人们有兴趣的就等老伍开个新帖或者跟贴, k4{:9zL1#?  
听他痛说恋爱革命历史.... *HE^1IEl  
5G(E&>~  
杂家接着听他自学程序员历史, ,l HLH  
高级程序员考了吗? )(m0cP{7  
x<ax9{  
c?K~/bx.  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! exDkq0u]  
+=eR%|!@  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 mS%4gx~~_n  
5HKW"=5Cf  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 dz%EM8  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : bzZ>ly H  
哦, 打倒忽悠大家的家伙.      3l1cyPv  
V@vU"  
$V>yXhTh  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  :  .) tSg  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 XMIbUbU k-  
1bnBji  
Qdk6Qubi!  
其实标题没有什么,卡总既然改了就不必再改回了。 q2aYEuu,  
t= #&fSR  
主要是当初写的时候真是顶着锅盖写的。 Me5{_n  
&a0r%L()X  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
82楼  发表于: 2015-09-05   
引用
引用第6楼沧桑于06-13-2010 14:39发表的  : [lzN !!B!  
老伍在写交代材料啊,而且写在一个ZT的贴下,哈哈。 op2 Of<{h  
y9H% Xl  
f|7\DeY9U  
这不是怕您见笑嘛!现在露馅了,只得继续招供了。 y&~w2{a  
 m EG6  
可以从宽不?
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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