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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 |'lNR)5  
k%8kt4\wn6  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : KMG}VG   
W0;QufV  
老五,I 服了U。 PZvc4  
+U<.MVOo.  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 ]N,'3`&::  
A8QUfg@uK~  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean bMsThoePT  
t|9 vb  
Dim regEX As New RegExp J7`;l6+Gb  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 v9!] /]U^  
NG RXNh+  
Dim LastTitle0String As String, LastTitle0No As Long ks69Z|D  
Dim LastTitle1String As String, LastTitle1No As Long 8Ht=B,7T  
Dim LastTitle2String As String, LastTitle2No As Long d|`8\fq  
Dim LastTitle3String As String, LastTitle3No As Long <;@E .I\N  
Dim LastTitle4String As String, LastTitle4No As Long uhv_'Q  
Dim LastTitle5String As String, LastTitle5No As Long cp"{W-Q{$  
Dim LastTabelString As String, LastTableNo As Long \rT>&o .i  
Dim LastFigureString As String, LastFigureNo As Long cmYzS6f,7  
VZe'6?#  
Dim strSeperator As String m&#D~  
 %{UW!/  
Sub ConvertWidth(fTEXT As String, rText As String) kyZZ0  
        Selection.Find.ClearFormatting ]ncK M?'O  
        Selection.Find.Replacement.ClearFormatting oLtzPC  
        Selection.Find.Wrap = wdFindContinue ~]Av$S  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText YE:5'@Z  
        DoEvents /XA*:8~!  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True 9. ,IqnP  
End Sub JaR!9GVN7  
bdvpH DA  
Sub ClearDomain() KZ1m 2R}'  
        With Selection.Find ,&s"f4Mft  
            .ClearFormatting o.Bbb=*rZ  
            .Replacement.ClearFormatting r[^O 7  
            .Wrap = wdFindContinue 0'Qvis[kt  
            Me.txtStatus.Text = "清除所有域代码" ug'^$geM  
            DoEvents ^jcVJpyT@R  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False k py)kS  
        End With ]zj&U#{  
End Sub "HwlN_PA  
GO*D4<#u  
Private Sub cmdCheck_Click() KU Mk:5 c  
    bContinue = True :T>OJ"p  
    Dim NoSeries1(1 To 16) As String  XF>!~D  
    Dim NoSeries2(1 To 16) As String L^PBcfg  
    Dim NoSeries5(1 To 16) As String n<@C'\j@  
    Dim NoSeriesRM(1 To 16) As String t\PSB  
    Dim paraTotal As Long, ParaText As String f+.sm  
    Dim ttString As String, ttNo As String xX0 wn?,~  
     7Bd=K=3u  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long YG5mzP<T  
sk_xQo#Y 3  
    Me.txtStatus.Visible = True hQz1zG`z7  
    Me.lbParaType.Visible = True ,1.Td=lY$  
    Me.cmdCheck.Enabled = False p AaNWm  
     IFZw54  
     &os:h] C  
     ~ 588md :  
     |9BX  ~`{  
    Dim ParaType As String, rText As String mVN\  
     [jxh$}?P  
    Selection.WholeStory (]VY==t~  
    Selection.NoProofing = True _PQk<QZ  
     G)f!AuN=  
    tm1 = Now 1.<gC  
     5/T#>l<  
        ActiveWindow.View.Type = wdNormalView rmFcSolt,f  
     biForT_no  
    NoSeries1(1) = "一" % .ss  
    NoSeries1(2) = "二" knfmJUT  
    NoSeries1(3) = "三" *(XGNp[0  
    NoSeries1(4) = "四" E70o nR!i  
    NoSeries1(5) = "五" X eslOsHh  
    NoSeries1(6) = "六"  @k#xr  
    NoSeries1(7) = "七" K|Xe)  
    NoSeries1(8) = "八" gKmF#Z"\  
    NoSeries1(9) = "九" x8C *  
    NoSeries1(10) = "十" U-$nwji  
    NoSeries1(11) = "十一" *.VNyay  
    NoSeries1(12) = "十二" \/nSRAk  
    NoSeries1(13) = "十三" 91nB?8ZE6,  
    NoSeries1(14) = "十四" Q. '2 v%i  
    NoSeries1(15) = "十五" ] r%fAm j  
    NoSeries1(16) = "十六" *y` (^kyS  
     dB QCr{7  
    NoSeries2(1) = "㈠" ``@e7~F{  
    NoSeries2(2) = "㈡" 6\v4#  
    NoSeries2(3) = "㈢" epG =)gd=8  
    NoSeries2(4) = "㈣" bj_/  
    NoSeries2(5) = "㈤" 2z A xGX  
    NoSeries2(6) = "㈥" +D[C.is>]}  
    NoSeries2(7) = "㈦" / %F,  
    NoSeries2(8) = "㈧" Mhb~wDQl  
    NoSeries2(9) = "㈨" T.B7QAI. H  
    NoSeries2(10) = "㈩" m;TekJXm  
     <xrya _R?  
    NoSeries5(1) = "①" obv_?i1  
    NoSeries5(1) = "②" 5{IbKj|  
    NoSeries5(3) = "③" X`-o0HG  
    NoSeries5(4) = "④" ELg$tc  
    NoSeries5(5) = "⑤" 7osHKO<?2  
    NoSeries5(6) = "⑥" *o!#5c  
    NoSeries5(7) = "⑦" !/! Fc 'A  
    NoSeries5(8) = "⑧" &Z9rQH81f>  
    NoSeries5(9) = "⑨" SLH;iqPT  
    NoSeries5(10) = "⑩" ^&c &5S}  
     Z^%HDB9^  
     W'Y(@  
    NoSeriesRM(1) = "I" TN08 ,:k  
    NoSeriesRM(2) = "II" (h[. Ie  
    NoSeriesRM(3) = "III" 6\VZ 6oS  
    NoSeriesRM(4) = "IV" [By|3 bI  
    NoSeriesRM(5) = "V" nU6UjC|3  
    NoSeriesRM(6) = "VI" |TF6&$>d  
    NoSeriesRM(7) = "VII" EN ,}[^Z  
    NoSeriesRM(8) = "VIII" tWQ$`<h  
    NoSeriesRM(9) = "IX" C~nL3w  
    NoSeriesRM(10) = "X" .ezZ+@LI+#  
    NoSeriesRM(11) = "XI" (.wR!l# !  
    NoSeriesRM(12) = "XII" ZsYY)<n  
    NoSeriesRM(13) = "XIII" ;E!] /oY<  
    NoSeriesRM(14) = "XIV" Q )8I(*  
    NoSeriesRM(15) = "XV" o,?h}@  
    NoSeriesRM(16) = "XVI" 64<*\z_  
     SP>&+5AydX  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) 9A|9:OdG1  
      9/I xh?  
    If i = vbNo Then K!2%8Ej,J  
        Exit Sub MOi1+`kwh  
    End If wS >S\,LV  
     3a}c'$F>_'  
    If Me.chkSuper.Value Then r]aI=w<(f  
        Me.txtStatus.Text = "检查修改所有的上标格式" ^i8(/iwdJE  
     F ^m;xy  
        CheckSuperScript tbfwgK  
         PeLzZ'$ D  
    End If S0LaQ<9.  
     t\v~ A0  
    If Me.chkStyle.Value Then N0ef5J JM`  
        Me.txtStatus.Text = "设置样式,请稍候...." uU-1;m#N?  
        DoEvents ~~m(CJ4S  
        CeateOrModifyStyle Bo'v!bI7  
    End If |1e//*  
     ~0}d=d5g  
     k @gQY_  
     e)87 & 7  
    ClearDomain 2p58_^l  
         gkca {BJ   
     A>RK3{7  
     41Ab,  
    If Me.chkLIST.Value Then U]9k,#  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" 6!;D],,"#.  
     8_O?#JYi  
        ConvertListToOrdinary k 6i&NG6  
    End If hDBo XIK  
     >LPIvmT4D?  
     x0%@u^BF  
    Dim pType As String, trimpTEXT As String >9yy91H  
    If Me.chkNum.Value = True Then $' ::51  
        Me.txtStatus.Text = "转换全角数字形式为半角" [81q 0@  
        ConvertWidth "1", "1" R:f ,g 2  
        DoEvents nV8iYBBym  
        ConvertWidth "2", "2" OsRizcgdA  
        DoEvents !HP=Rgh  
        ConvertWidth "3", "3" h}DKFrHW;-  
        DoEvents I%B\Wy/j^  
        ConvertWidth "4", "4" Q]$pg5O  
        DoEvents N&|,!Cu  
        ConvertWidth "5", "5" ep*8*GmP  
        DoEvents I\Cg-&e  
        ConvertWidth "6", "6" {M\n  
        DoEvents ^f,%dM=i=  
        ConvertWidth "7", "7" Lzcea+*uw  
        DoEvents l|;]"&|_]c  
        ConvertWidth "8", "8" 1xO-tIp/  
        DoEvents 1qm*#4x  
        ConvertWidth "9", "9" .S* sGauM  
        DoEvents r$x;rL4  
        ConvertWidth "0", "0" c'5ls7?}O{  
        DoEvents T#[#w*w/  
        ConvertWidth "a", "a" {.e^1qE  
        DoEvents dx$+,R~y  
        ConvertWidth "b", "b" PY&mLux%  
        DoEvents !!cN4X  
        ConvertWidth "c", "c" !;${2Q  
        DoEvents i|28:FJA  
        ConvertWidth "d", "d" eax"AmO  
        DoEvents [N<rPHT  
        ConvertWidth "e", "e" 6fC Hd10!  
        DoEvents ,rNud]NM8  
        ConvertWidth "f", "f" $e{}SQ;fW  
        DoEvents 2R;#XmKS  
        ConvertWidth "g", "g" A5_r(Z-5  
        DoEvents PSyUC#;  
        ConvertWidth "h", "h" 0\!v{A> I'  
        DoEvents )HX(-"c  
        ConvertWidth "i", "i" GLMpWD`Wo  
        DoEvents ySF^^X $J  
        ConvertWidth "j", "j" +wI<w|!  
        DoEvents Q5sJ|]Bc  
        ConvertWidth "k", "k" 8PWEQ<ev7>  
        DoEvents ToD_9i }6  
        ConvertWidth "l", "l" bU/YU0ZIT  
        DoEvents %7?Z|'\  
        ConvertWidth "m", "m" b"B:DDw00  
        DoEvents VSh&Y_%  
        ConvertWidth "n", "n" ,/!^ZS*  
        ConvertWidth "o", "o" ~m v5{C  
        ConvertWidth "p", "p" d"Zyc(Jk  
        ConvertWidth "q", "q" D6C h6i5$  
        ConvertWidth "r", "r" 1y,/| Y  
        ConvertWidth "s", "s" 6` Aw!&{  
        ConvertWidth "t", "t" ^uPg71r:  
        ConvertWidth "u", "u" O]Y   z7  
        ConvertWidth "v", "v" k~fH:X~x  
        ConvertWidth "w", "w" uH[:R vC0  
        ConvertWidth "x", "x" e{ *yV#Wl  
        ConvertWidth "y", "y" o%0To{MAF-  
        ConvertWidth "z", "z" Wr'1Y7z  
        ConvertWidth "A", "A" rZ2cC#  
        ConvertWidth "B", "B" ViG>gMGv  
        ConvertWidth "C", "C" P?zaut  
        ConvertWidth "D", "D" K6|R ;r5e{  
        ConvertWidth "E", "E" %joU}G;"  
        ConvertWidth "F", "F" JU)k+:\a  
        ConvertWidth "G", "G" z*9 ke  
        ConvertWidth "H", "H" rd)W+W9  
        ConvertWidth "I", "I" u1\r:q  
        ConvertWidth "J", "J" H5o=nWQ6e  
        ConvertWidth "K", "K" ;kT~&.,y  
        ConvertWidth "L", "L" 6& 6|R3  
        ConvertWidth "M", "M" o^r\7g6\  
        ConvertWidth "N", "N" a>Zp?*9  
        ConvertWidth "O", "O" g${k8.TV  
        ConvertWidth "P", "P" 62K#rR S  
        ConvertWidth "Q", "Q" Sl@Ucc31  
        ConvertWidth "R", "R" 1xSG (!  
        ConvertWidth "S", "S" {kr14 l*2  
        ConvertWidth "T", "T" 3e1P!^'\  
        ConvertWidth "U", "U" (A "yE4rYK  
        ConvertWidth "V", "V" Pw5[X5.DX  
        ConvertWidth "W", "W" cH+ ~|3  
        ConvertWidth "X", "X" *d PbV.HCl  
        ConvertWidth "Y", "Y" b[:{\ !I  
        ConvertWidth "Z", "Z" }]JHY P\  
        ConvertWidth "^l", "^p" c@J@*.q]   
        ConvertWidth "(", "(" ;WgUhA ;q  
        ConvertWidth ")", ")" DKkilqVM  
     ~R50-O  
    End If _rmKvSD%  
h Vui.]  
    With ActiveDocument {Byh:-e<  
        Dim tbl As Table Ys&)5j-  
        For Each tbl In .Tables T)', }=  
            tbl.Rows.Alignment = wdAlignRowCenter  'S:$4j  
            tbl.Range.Font.NameFarEast = "楷体" :+"H h%  
            tbl.Range.Font.NameAscii = "Times New Roman" ?nq%'<^^  
            tbl.Range.Font.Size = 10.5 H8 xhE~'t  
        Next  T;V!>W37  
        Set tbl = Nothing |--Jd$ dj  
    End With 2u+!7D!w$  
     Wrh$`JC  
     [+!&iN  
    With ActiveDocument h[Uo6`  
         X; 6=WqJj  
        For i = 1 To .TablesOfContents.Count !SIk9~rJ  
            .TablesOfContents(i).Delete e+MQmW A'F  
        Next B&6lG!K'?  
         dlIYzO<  
         C7DwA/$D  
         |=MhI5gsx  
        paraTotal = .Paragraphs.Count n7yp6 Db  
        paraCounter = 1 s[t<2)i  
         2U( qyC  
        LastTitle0No = 0 FZLx.3k4  
        LastTitle1No = 0 o$rF-?  
        LastTitle2No = 0 UM<s#t`\3  
        LastTitle3No = 0 ?Ygd|a5  
        LastTitle4No = 0 T Q5kM  
        LastTableNo = 0 w4M;e;8m[U  
        LastFigureNo = 0 [^^Pl:+  
         3rj Kwh7  
        Dim Sec As Long TwI'XMO;A  
         D3%2O`9  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) o?6m/Klw6  
        If Sec = 0 Then g 4952u  
            Exit Sub &HtTh {  
        End If V Ew | N)  
         0%4OmLBT  
        k = 0 W|y;Kxy  
        Do While (paraCounter < paraTotal) And bContinue u8M_2r  
            k = k + 1 f8`dJ5i  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then 0G0(g,3p  
                Exit Do XUD Ztxa  
            End If p@[ fZj  
            paraCounter = paraCounter + 1 OHrzN ']  
            If k Mod 20 = 0 Then "F6gV;{Bt  
                Me.lbCounter.Caption = paraCounter P(/eVD#v  
                DoEvents oR/_{#Mz"  
            End If G=SMz+z  
        Loop !&NrbiuN  
         }}D32T VN  
         ={+8jQqi1  
        Do While (paraCounter < paraTotal) And bContinue euVj,m  
             [m%]C  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) -Mz [S  
            ShapeHeight = 0 iq[IZdza  
            ShapeWidth = 0 iRbe$v&N  
           ]}p<P):hO  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth OA(.&5]  
             P{yb%@I~J  
            Select Case ParaType O?cU6u;W  
                Case "【】表格内容" D /GE-lq  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" QodWUbi'&  
                Case "章" ?_cOU@n  
                    LastTitle0No = LastTitle0No + 1 Z!7xRy  
                    '新一章开始,复位其下属标题编号 `b%lojT.  
                    LastTitle1No = 0 ]vP}K   
                    LastTitle2No = 0 51y#A Q@  
                    LastTitle3No = 0 4 Tw~4b  
                    LastTitle4No = 0 To5hVL<Ex"  
                     " 0m4&K(3,  
                    k = Val(ttNo) $*T?}r>  
                    If k = 0 Then '非数字编号章节 z?( b|v  
                        If ttNo <> NoSeries1(LastTitle0No) Then UGj |)/  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString 1@JusS0^K  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText ra>2<  
                        End If ]5Dh<QY&.  
                    Else xV 2C4K  
                        If Val(ttNo) <> LastTitle0No Then -6~.;M 5  
                            rText = "第" & LastTitle0No & ttString Hmt2~>FI[  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText NzTF2ve(  
                        End If =0!j"z=  
                          Ip:54  
                    End If egURRC!  
                     Poa&htxe1  
                    '章段落设置 #V%98|"  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 `E?0jQ  
                    .Paragraphs(paraCounter).Style = "QLNU章节" y@I t#!u0  
                    .Paragraphs(paraCounter).Range.Select YRFz ]  
                    Selection.EndKey unit:=wdLine -a&<Un/  
                    tc = Replace(rText, vbCr, "") a^pbBDi W  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False ZfK[o{9>  
                Case "一级标题" w6WPfy(/2  
                    LastTitle1No = LastTitle1No + 1 A.dbb'^  
                    '新一级标题开始,复位其下属标题编号 P^48]Kj7  
                    LastTitle2No = 0 j@ D,2B;  
                    LastTitle3No = 0 akU2ToP  
                    LastTitle4No = 0 0H]{,mVs  
                     z|X6\8f  
                    If ttNo <> NoSeries1(LastTitle1No) Then KIag(!&  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString >#k- ~|w  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText Lj9RF<39g  
                    End If X2rKH$<g  
                   &i.sSqSI5  
                     }m~MN4 l  
                    '一级标题段落设置  格式:一、标题内容 !8| }-eFY  
                    .Paragraphs(paraCounter).Range.Text = rText f-71`Pyb  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" S2_(lS+R  
                    .Paragraphs(paraCounter).Range.Select <a DZ{T%  
                    Selection.EndKey unit:=wdLine FROC/'  
                    tc = Replace(rText, vbCr, "") ~!!| #A)W  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False %^vT7c>  
                Case "二级标题" _B&Lyg !J  
                    LastTitle2No = LastTitle2No + 1 )>S,#_e*b  
                    '新二级标题开始,复位其下属标题编号 ]JV'z<  
                    LastTitle3No = 0 (xRcG+3];  
                    LastTitle4No = 0 J9p4\=9  
                     xLDD;Qm,  
                    If ttNo <> NoSeries1(LastTitle2No) Then W)/^*, Q7  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString ,"XiI$Le  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText nP]!{J]  
                    End If T'@+MA) ~  
                     d]" 4aS  
                    '二级标题段落设置 格式:(一)、标题内容 ]z/R?SM  
                    .Paragraphs(paraCounter).Range.Text = rText qc 5[ e  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" .V?[<}OJn  
                     IA({R E  
                    .Paragraphs(paraCounter).Range.Select G{E`5KIvm  
                    Selection.EndKey unit:=wdLine pDSNI2  
                    tc = Replace(rText, vbCr, "") kFV, Fg  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False 2wHbhW[  
                 +38R#2JV  
                Case "三级标题" ;}"Eqq:  
                    LastTitle3No = LastTitle3No + 1 ?1a9k@[t  
                    '新三级标题开始,复位其下属标题编号 Xq&BL,lS  
                    LastTitle4No = 0 ,^97Ks ;  
                     F_jHi0A  
                    If Val(ttNo) <> LastTitle3No Then {G VA4=UAE  
                            rText = LastTitle3No & ". " & ttString ;% B9mM#p~  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText $2L6:&.P,  
                         y,3ZdY"  
                    End If  1/2cb-V  
                    '三级标题段落设置 格式:1. 标题内容 -p.\fvip  
                    .Paragraphs(paraCounter).Range.Text = rText ``Q6R2[|)  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" UNff &E-  
                    .Paragraphs(paraCounter).Range.Select va'F '|  
                    Selection.EndKey unit:=wdLine c$%*p (zY  
                    tc = Replace(rText, vbCr, "") Fu tS  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False So'.QWzX  
                Case "四级标题" =@?[.`  
                    LastTitle4No = LastTitle4No + 1 a4=(z72xe  
                     f zQR0  
                    If Val(ttNo) <> LastTitle4No Then %kjG[C  
                            rText = "(" & LastTitle4No & "). " & ttString Zrr)<'!i  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText ,0 q1Id  
                     `+"(GaZ  
                    End If MA6 Vy  
                    '四级标题段落设置 格式:(1). 标题内容 X["xC3 i  
                    .Paragraphs(paraCounter).Range.Text = rText ?! 6Itkg  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" !NkCki"W  
                    .Paragraphs(paraCounter).Range.Select W% -XN   
                    Selection.EndKey unit:=wdLine gtZmBe=  
                    tc = Replace(rText, vbCr, "") '.(Gg%*\.  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False |#kY_d)10  
                 E<[ s+iX  
                Case "表格标题" b' y*\9Ru  
                    LastTableNo = LastTableNo + 1 a[(OeVQ5  
                     *_o(~5w-K  
                    If ttNo <> CStr(LastTableNo) Then n]ba1t8ZA  
                            rText = "表" & LastTableNo & ". " & ttString voRry6Q;  
                            ErrMsg.AddItem "表格编号错误:" & ParaText HdJ g  
                   4^F%bXJ)  
                    End If U5OX.0  
                     %gh#gH   
                    '表格名称段落设置 格式:表1. 表格名称 pB 8D  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" ^hmV?a:Y  
                    xe = Replace(rText, vbCr, "") ?YLq iAA  
                    .Paragraphs(paraCounter).Range.Select "4)N]Nj  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 (^m] 7l  
                    Selection.Range.Text = xe r~j [Qm"CJ  
                    Selection.EndKey P*O G`%y  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False <ak[`]  
                 C; N6",s!  
                Case "表格首行" z qo0P~  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" dD=$$( je  
                Case "图片标题" jk03 Hd  
                    LastFigureNo = LastFigureNo + 1 +*:mKx@Nw  
                     89g a+#7  
                    If ttNo <> CStr(LastFigureNo) Then YcN|L&R.  
                            rText = "图" & LastFigureNo & ". " & ttString VNHce H  
                            ErrMsg.AddItem "表格编号错误:" & ParaText  MK=oGzK  
                   nQjpJ /=  
                    End If At4\D+J{Vs  
                    '图片名称段落设置 格式:图1. 图名称 Y \-W`  
                    .Paragraphs(paraCounter).Range.Text = rText o g5VB  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" \}s/<Q  
                    .Paragraphs(paraCounter).Range.Select V0>X2&.A  
                    Selection.EndKey unit:=wdLine Gl1XRNy C  
                    xe = Replace(rText, vbCr, "") d?2ORr|m=  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ,=P&{38\q  
                Case "正文" |'nQvn:{  
                     '正文名称段落设置 T8x)i\<  
                    .Paragraphs(paraCounter).Style = "QLNU正文" Nc7"`!;-   
               Case "文献条目" % /VCjuV  
                    With .Paragraphs(paraCounter) c MXv  
                        '.Range.Select <gkE,e9  
                        'Selection.ClearFormatting <m]0!ii  
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” Q=`yPK>{$N  
                        .Style = "QLNU参考文献" IMH4GV r"  
                    End With yx :^*/  
               Case "图表注解" Mh.1KI[t  
                    With .Paragraphs(paraCounter) K8;SE !  
                        .Range.Font.NameFarEast = "楷体" (?7=,A7^  
                        .Range.Font.NameAscii = "Times New Roman" <\~v$=G  
                        .Range.Font.Size = 9 '小5号字 3R+% C*7  
                         HcsV q+  
                        .Alignment = wdAlignParagraphCenter ,X4+i8Yc  
                        .LeftIndent = 0  ?<EzILM  
                        .RightIndent = 0 s)a-ky(  
                        .FirstLineIndent = 0 h*k V@Dc  
                        .LineSpacing = 12 IR6W'vA  
                        .LineSpacingRule = wdLineSpaceExactly ]?tRO  
                        .LineUnitAfter = 0 ]P0%S@]  
                        .LineUnitBefore = 0 wtY)(k a  
                        .OutlineLevel = wdOutlineLevelBodyText +[!S[K E  
                        .PageBreakBefore = False g<W]NYm  
                        .RightIndent = 0 tDX& ~1s  
                        .WordWrap = True F@i >l{C  
                        .LineUnitAfter = 0.5 7~e,"^>T  
                         OlO Og  
                    End With Q[biy{(b8  
                Case Else c>_ti+  
                    '不作处理 )!2@v@SQ  
            End Select /Sw~<B!8N  
             -G~]e6:zD  
            '含有inlineshape的段落处理 uL`#@nI  
            If ShapeHeight > 30 Then wUv?;Y$C  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 ""0 Y^M2I  
            End If d_yvG.#C  
             S4x9k{Xn  
            If (ShapeWidth + ShapeHeight) > 150 Then ^l!SIu  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" +'<P W+U$  
            End If /?'~`4!(  
             "?NDN4l*  
            '段落计数器递 l{{,D57J  
            paraCounter = paraCounter + 1 n1."Qix0  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter MA`nFkVK  
            Me.txtStatus.Text = ParaText w}xA@JgQ%  
            DoEvents .\R9tt}  
        Loop 'Qy6m'esW  
    End With !p &<.H_  
     PR %)3  
    msg = "" J\L'HIs  
     djdTh +>28  
    For i = 0 To Me.ErrMsg.ListCount - 1 MJXnAIG?2  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) nqj(V  
    Next >Ku4Il+36  
     e*7O!Z= O  
     !kovrvM6F  
     pl`4&y%Me  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg ,|A^ <R`  
    Me.cmdCheck.Enabled = True K%v:giN$l`  
    Me.txtStatus.Visible = True Z<nNk.G  
    Me.lbParaType.Visible = False \,Y .5?  
     J:@gmo`M;V  
    bContinue = False 7g\v (P  
End Sub ^wIB;!W  
Lv%3 jj  
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) <=M5)#  
    Dim pTEXT As String atTR6%!6  
     8;@y\0  
    pTEXT = ChKRange.Text E(~7NRRm  
     =!'9TS  
    ParaType = "其它" *7xcwj eP  
    TitleString = pTEXT 3Z XAAV  
    TitleNo = "N/A" z9aR/:W}  
     l=CAr  
    shpCounter = ChKRange.InlineShapes.Count pU7;!u:c4%  
    If shpCounter <> 0 Then 4YfM.~ 6  
        MaxShpHeight = 0: TotalShpWidth = 0 72dRp!J U  
        For i = 1 To shpCounter |OH*c3~r  
            k = ChKRange.InlineShapes(i).Height 4$xVm,n|  
            l = ChKRange.InlineShapes(i).Width &=g3J4$z  
            If k > MaxShpHeight Then Hd~g\  
                MaxShpHeight = k c RLw)"|  
            End If 0= $/  
            TotalShpWidth = TotalShpWidth + l Y) sB]!hx  
        Next Lh[0B.g<  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then tvI<Why\p  
            Exit Sub OcT Wq  
        End If w2 Y%yjCV  
    End If k&$ov  
     os/h~,=  
    '空行 Bl b#h  
    If Len(pTEXT) <= 2 Then & FhJ%JK  
        Exit Sub QLY;@-jF$  
    End If f .O^R~,  
     ^ Ps!  
         ?Y4 +3`\x  
    '是否为表格中的文字 ;ElCWs->\  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then ``l*;}  
        ParaType = "表格内容" Cn~VJ,l g  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) hVz yvpw  
        If k = 1 Then  LCor T-  
            ParaType = "表格首行" 4 Ej->T.  
        End If Ib..X&N2  
        Exit Sub 6$urrSQ`N0  
    End If n _K1%  
     A9xe Oy8e  
    '例外情况:脚注 X30tO>  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then Tb i?AJa}  
        ParaType = "脚注" Fv^zSoi2  
        Exit Sub wN[lC|1c  
    End If `K{}  
     ` UsJaoR#f  
    '例外情况:尾注 dn 6]qW5  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then )'+[,z ;s  
        ParaType = "尾注" EF)BezG5y  
        Exit Sub Cbff:IP  
    End If w+)${|N?  
     32ki ?\ P  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then Jt8;ddz  
        ParaType = "页眉页脚" 5P!ZGbG  
        Exit Sub tWIOy6`  
    End If sX1DbEjj[o  
     \ S;[7T  
     *K/K97  
    With regEX 1-y8Hy_a2  
        .Global = True OJ&'Z}LB  
         I$;  `^z  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" <2pp6je\0s  
        If regEX.Test(pTEXT) Then jFN0xGZ  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") Y#F.{ i  
            TitleString = regEX.Replace(pTEXT, "$3") ]Y [N=G  
            TitleNo = regEX.Replace(pTEXT, "$1") L$PbC!1  
            ParaType = "章" cY5&1Shb~  
            Exit Sub XDPR$u8hM  
        End If p1UloG\  
         X:W\EeH  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" !n-Sh<8  
        If regEX.Test(pTEXT) Then  0s;~9>  
            ParaType = "一级标题" Hu|Tj<S  
            regEX.Execute (pTEXT) Y$JVxly  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") Lz 1.+:Ag  
            TitleString = regEX.Replace(pTEXT, "$3") AU9C#;JD  
            TitleNo = regEX.Replace(pTEXT, "$1") +=($mcw#[  
            Exit Sub o/{`\4  
        End If oMbd1uus  
         u@_|4Bp,"  
        '全角或半角括号中的数字 * :L"#20:R  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" |5~Oh`w  
        If regEX.Test(pTEXT) Then BN9e S   
            ParaType = "二级标题" eK7A8\;e  
            regEX.Execute (pTEXT) T?1BcY  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") _&-d0'+  
            TitleString = regEX.Replace(pTEXT, "$5") ~0PzRS^o  
            TitleNo = regEX.Replace(pTEXT, "$2") n #X~"|U`  
            Exit Sub : @|Rj_S;  
        End If VIF43/>(  
         eo]nkyYDP  
        '阿拉伯数字  1. 2. v`|]57?A  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" KrGl}|  
        If regEX.Test(pTEXT) Then 1/-3m Po  
            ParaType = "三级标题" |m's)  
            regEX.Execute (pTEXT) 1M`E.Ztw*  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 &~_F2]oM  
            TitleString = regEX.Replace(pTEXT, "$3") ]9YA~n\  
            TitleNo = regEX.Replace(pTEXT, "$1") 5;)^o3X>  
            Exit Sub p/Ul[7A4e  
        End If :E")Zw&sW3  
         u9"kF  
        '全角或半角括号中的阿拉伯数字 0|AgmW_7 .  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" ]+I9{%zB%8  
        If regEX.Test(pTEXT) Then W8& )UtWQ  
            ParaType = "四级标题" p"0#G&-  
            regEX.Execute (pTEXT) .YF1H<gwa  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") 9k6s  
            TitleString = regEX.Replace(pTEXT, "$5") ?Bu*%+  
            TitleNo = regEX.Replace(pTEXT, "$2") Jqxd92 bI  
            Exit Sub );!ND %  
        End If H'WYnhU&  
         /9_%NR[  
        '表格名称 _HwA%=>7  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" 2^'Ec:|f  
        If regEX.Test(pTEXT) Then AS;Sz/YP  
            ParaType = "表格标题" IHEb T   
            regEX.Execute (pTEXT) fG0ZVV!   
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) EXSJ@k6=8s  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) xa)p ,  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) ]aPf-O*  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 :?xH)J,imk  
            Exit Sub $z$^ yjL  
        End If /r7xA}se^  
         xT> 9ZZcE  
        '图片名称 yY8zTWji_  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" f/Y&)#g>k  
        If regEX.Test(pTEXT) Then 89M'klZ   
            ParaType = "图片标题" KYiJXE[Q-  
            regEX.Execute (pTEXT) `CWhjL8^  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") FAM{p=t]HT  
            TitleString = regEX.Replace(pTEXT, "$3") @r GY9%E  
            TitleNo = regEX.Replace(pTEXT, "$1") .)/ ."V  
            Exit Sub qx#M6\L!  
        End If 4Fp[94 b  
         F(VVb(\jd  
        '参考文献 ta?NO{*  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 e|k]te  
        If regEX.Test(pTEXT) Then N:lE{IvRJ  
            ParaType = "文献条目" 9 dNB _  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") Wc@ ,#v  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") _<Ak M"  
            Exit Sub t'2A)S  
        End If f#ZM 2!^!  
         6Q:Wo)^!  
        prfx = Left(pTEXT, 2) qm=U<'b^  
        If prfx = "注:" Or prfx = "注:" Then 'w ,gYW  
            ParaType = "图表注解" `NtW+v  
            Exit Sub ,>B11Z}PH  
        End If 5t%8y!s  
         Zu"qTJE/1  
         Ck/44Wfej  
        ParaType = "正文" l,o'J%<%  
         xKu#O H  
    End With 7^i7U-A<A  
End Sub c'Z=uL<Rm  
Rw'}>?k]  
Sub ConvertListToOrdinary() $NR[U+  
    Dim st As Paragraph ho=!Yy  
    With ActiveDocument ZLzc\>QX  
        For i = .Paragraphs.Count To 1 Step -1 ]T)N{"&N/  
            Set st = .Paragraphs(i) Vit-)o{zr  
            lst = st.Range.ListFormat.ListString 4. R(`#f  
            If lst <> "" Then I(M/ X/  
                st.Range.ListFormat.RemoveNumbers n3p@duC4  
                st.Range.InsertBefore lst & " " >az~0PeEL  
            End If =d Q[I6  
        Next ~ky;[  
    End With $ W7}Igx#  
    Set st = Nothing xgxfPcI  
End Sub 0`E G-Hw  
?>;b,^4  
Private Sub UserForm_Activate() _*H Hdd5I  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" mh8fJ6j29N  
    Me.lbTotal.Font.Bold = True %Yu~56c-  
    Me.txtStatus.Visible = False (?l ]}p^[  
    Me.cmdCheck.Enabled = True T U6 s~  
5Y+YN1  
End Sub i bzY&f  
# `^nmC/F  
qWH^/o  
Sub CheckSuperScript() QD7KE6KP'  
    Selection.Find.ClearFormatting :E-$:\V0}k  
    Selection.Find.Replacement.ClearFormatting K<^p~'f4P  
    With Selection.Find M0$MK>  
        .Text = "[【\[[〖](*)[】\]〗]]" $IQPB_:  
        .Replacement.Text = "[\1]" bll[E}E|3  
        .Replacement.Font.Superscript = True "s|P,*Xf  
        '.Replacement.Font.Color = wdColorBlue uF<34  
        .Forward = True 6>]  
        .Wrap = wdFindContinue ?kR1T0lKkE  
        .FORMAT = True l 73% y  
        .MatchCase = False OJu>#   
        .MatchWholeWord = False WVR/0l&bU  
        .MatchByte = False /xUF@%rT  
        .MatchAllWordForms = False (G F}c\=T7  
        .MatchSoundsLike = False [7}3k?42X  
        .MatchWildcards = True {}s/p9F4  
    End With mo^E8t.  
    Selection.Find.Execute Replace:=wdReplaceAll VzXVy)d  
End Sub AE:(:U\  
?t%{2a<X  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Ue \A ,  
    bContinue = False Dn)yBA%  
    Set regEX = Nothing !L.R"8!  
End Sub \Vme\Ke*v)  
U,!qNi}  
Sub CeateOrModifyStyle() vb[ 0H{TT2  
' )p> Cf_[.  
' q0 }u%Yz  
Dim stl As Style (#y2R F8j  
     9`Qa/Y!  
    Options.Pagination = False V.{HMeE4  
     $1ovT8  
    On Error Resume Next 8gavcsVE[  
    For Each stl In ActiveDocument.Styles =0?5hxMd  
        stl.Delete ?EC\ .{  
    Next .F,l>wUNe  
    On Error GoTo 0 }Nr6oUn  
     1 3 ]e< '  
    Set stl = Nothing "SN*hzs"]`  
      Z}t;:yhR  
    DoEvents |? V7E\S  
    On Error Resume Next c>$d!IKCL  
     ND1hZ3(^  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph LM eI[Ji  
     @RPQ 1da  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph H5 z1_O_+  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph 7G+!9^  
     v7pu  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph 8=$XhC  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph ou-#+Sdd  
     \0 ~?i6o  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph 68j1s vz9  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph ZP~H!  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph n{N0S^h  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph `<g]p-=":  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph ry|a_3X(I  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph )5( j x  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph t*= nI $  
     rQl9SUs  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph )(,O~w  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph oJD]h/fQs  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph bit|L7*14  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph m]V#fRC  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph I\TSVJk^Xi  
     ueJ^Q,-t  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph * sldv  
    On Error GoTo 0 x'0_lf</ #  
    DoEvents >/74u/&  
     Qc rhgR  
    'BaseStyle ;SE*En  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False se.HA  
    With ActiveDocument.Styles("BaseStyle").Font 9 C)VW  
        .NameFarEast = "宋体" 'o)Y!VYnJF  
        .NameAscii = "Times New Roman" J&j5@  
        .NameOther = "宋体"  el2Wk@*  
        .Size = 10.5 IoL P*D  
        .Bold = wdUndefined )y8Myb}  
        .Italic = wdUndefined Y-bTKSn  
        .Subscript = wdUndefined d:hnb)I$*  
        .Subscript = wdUndefined Dh4 Lffy  
         `xx.,;S  
        .Underline = wdUnderlineNone 8XYxyOl  
        .UnderlineColor = wdColorAutomatic B9|s`o)!  
        .StrikeThrough = False ~qZ6I)?  
        .DoubleStrikeThrough = False 693"Pg8b  
         @&G}'6vF!  
        .Outline = False :4AIYk=q  
        .Emboss = False 8 SU0q9X.  
        .Shadow = False )Wle CS_  
        .Hidden = False pfZ[YC-  
        .SmallCaps = False O#k; O*s'  
        .AllCaps = False kxKb}> =  
        .Color = wdColorAutomatic '4M{Xn}@  
        .Engrave = False *` mxv0w~(  
        .Scaling = 100 /ckk qk"  
        .Kerning = 1 3UXZ|!-  
        .Animation = wdAnimationNone Ye]K 74M.  
        .DisableCharacterSpaceGrid = False 3Iqvc v  
        .EmphasisMark = wdEmphasisMarkNone L*4"D4V  
    End With r^6@Zwox]  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat x%s1)\^A  
        .LeftIndent = 0 3ibQbk  
        .RightIndent = 0 9ye!kYF,  
        .SpaceBefore = 0 Xps \+l%i  
        .SpaceBeforeAuto = False j5DCc,s  
        .SpaceAfter = 0 +@]k[9  
        .SpaceAfterAuto = False hY!ek;/Gc  
         [;Ih I  
        .LineSpacingRule = wdLineSpaceSingle 4AzDWK@/  
        .Alignment = wdAlignParagraphJustify 5/Qu5/  
         iT:i '\~  
        .WidowControl = False K6-)l isf  
        .KeepWithNext = False 4!Radl3`  
        .KeepTogether = False tf6-DmMH  
        .PageBreakBefore = False {J)%6eL?  
        .NoLineNumber = False \)5mO 8w  
         JkN*hm?  
        .FirstLineIndent = CentimetersToPoints(0) C)c*s C5N  
        .OutlineLevel = wdOutlineLevelBodyText zgz!"knVx  
        .CharacterUnitLeftIndent = 0 'Z#_"s#L  
        .CharacterUnitRightIndent = 0 7 q!==P=  
        .CharacterUnitFirstLineIndent = 0 J-/w{T8:  
        .LineUnitBefore = 0 O [= L#wi  
        .LineUnitAfter = 0 C$0u-Nx8  
        .AutoAdjustRightIndent = True +%j27~ R>D  
        .DisableLineHeightGrid = True H ~3.F  
         AmC9qk8Q  
        .FarEastLineBreakControl = True L{VnsY V  
        .WordWrap = True c/ImK`:)4a  
        .Hyphenation = False vv&< 7[  
         ~ S<aIk0l  
        .HangingPunctuation = True mxZ+r#|di  
        .HalfWidthPunctuationOnTopOfLine = True A{4,ih"5  
        .AddSpaceBetweenFarEastAndAlpha = True  omg#[  
        .AddSpaceBetweenFarEastAndDigit = True q]yw",muT  
        .BaseLineAlignment = wdBaselineAlignBaseline lusUmFm'*  
    End With QOK,-  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False Q3%]  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll $}vzBuWHwN  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese QGI@5  
    ActiveDocument.Styles("BaseStyle").NoProofing = False sCw>J#@2>  
     Y!45Kio  
    '一级标题题样式 ;%d<Uk?  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") EVLL,x.~:z  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" JmDxsb^  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False eH7x>[lH.  
    With ActiveDocument.Styles("QLNU一级标题").Font 7[P-;8)tq  
        .NameFarEast = "黑体" bD=H$)  
        .NameAscii = "Arial Black" m#_ Rv  
        .NameOther = "黑体" sN8pwRjb  
        .Name = "黑体" <[n:Ij  
        .Size = 16              '三号 eCR^$z=c  
        .Bold = True D N)o|p  
        .Italic = wdUndefined =v^#MU{k?  
        .Subscript = wdUndefined =8#.=J[/  
        .Superscript = wdUndefined `Y.~eE  
    End With U2?R&c;b  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat |pS]zD  
         q6rkp f,Tl  
        .LeftIndent = CentimetersToPoints(0) [K,P)V>K  
        .RightIndent = CentimetersToPoints(0) rR":}LA^d  
        .FirstLineIndent = CentimetersToPoints(0) @5wc 3y  
         m8PS84."]M  
        .LineSpacingRule = wdLineSpaceSingle )Nh C+=N  
        .Alignment = wdAlignParagraphCenter |hj!NhBe  
         ?\8  
        .WidowControl = True a T(]  
        .KeepWithNext = True ,\i XZ5"R  
        .KeepTogether = True f.$[?Fi  
        .OutlineLevel = wdOutlineLevelBodyText &k,DAx`rN;  
         7b08Lo7b  
        .LineUnitBefore = 0.5 pTGGJ,  
        .LineUnitAfter = 0.5 m5 sW68  
    End With p?#T^{Quz~  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False VqvjOeCbH  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll C_>XtcU  
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese L7{}`O/g7  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True ;^bfLSWm{  
    DoEvents %\,9S`0  
     V*PL_|Q5  
    '二级 Z[w}PN,xV  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") LI@BB:)[  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" Q*I8RAfd  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False Wk7E&?-:6  
    With ActiveDocument.Styles("QLNU二级标题").Font  :QP1!  
        .NameFarEast = "黑体" D'u7"^=  
        .NameAscii = "Arial Narrow" . ]h/M,xg  
        .NameOther = "黑体" $ c-O+~  
        .Name = "黑体" u; KM[FmK  
        .Size = 15        '小三号  !AJkd.  
        .Bold = False WPsfl8@D  
        .Outline = False ~b*]jZwT  
        .Italic = wdUndefined vGlVr.)  
        .Subscript = wdUndefined Pb;c:HeI/  
        .Superscript = wdUndefined YFS6YA  
    End With pt"9zkPj  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat E,tdn#_|  
        .LeftIndent = CentimetersToPoints(0) MvZa;B  
        .RightIndent = CentimetersToPoints(0) sgi5dQ  
        .FirstLineIndent = CentimetersToPoints(0) q++\< \2  
         'u x!:b"  
        .LineSpacingRule = wdLineSpaceSingle smfI+Z S"  
        .Alignment = wdAlignParagraphLeft 5PZ!ZO&  
         $%cHplQz5  
        .WidowControl = True ?R)dx uj  
        .KeepWithNext = True }\S'oC\[  
        .KeepTogether = True t qpO3  
        .PageBreakBefore = False y>w;'QR&a  
        .OutlineLevel = wdOutlineLevelBodyText [m{sl(Q  
         O!nS3%De  
        .LineUnitBefore = 0.5 VO eVS&}  
        .LineUnitAfter = 0.5 J;Z2<x/H  
         Z" ;q w  
    End With ?ckV 2  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False &kzysv-_  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll OFtf)cGE  
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese 2#:p:R8I>  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True 5b/ ~]v  
    DoEvents aOd#f:{y  
     =K0%bI  
    '三级标题样式 :, JjN&  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") iii|;v ]+  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" pD({"A.x9z  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False `dcz9 *  
    With ActiveDocument.Styles("QLNU三级标题").Font X-nC2[tu'W  
        .NameFarEast = "宋体" 9MfU{4:;I  
        .NameAscii = "Times New Roman" ;6``t+]q   
        .NameOther = "黑体" 6 /YJA*  
        .Name = "黑体" ? -:2f#bC  
        .Size = 14               '四号 kd!?N  
        .Bold = False >Y8\f:KQ  
        .Outline = False W9w*= W )Z  
        .Italic = wdUndefined 4 j=K3m  
        .Subscript = wdUndefined ' m~=sC_uL  
        .Superscript = wdUndefined AvrvBz[  
    End With 6Jq[]l"v  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat .,z6a  
        .LeftIndent = CentimetersToPoints(0) bKmwXDv'  
        .RightIndent = CentimetersToPoints(0) 1UJrPM%  
        .FirstLineIndent = CentimetersToPoints(0) WtZI1`\qe  
         aR6F%7gvz  
        .LineSpacingRule = wdLineSpaceSingle p&RC#wYu  
        .Alignment = wdAlignParagraphLeft 8u~  
         B%uY/Mwz$  
        .WidowControl = True p,8~)ic_  
        .KeepWithNext = True /a^ R$RHl'  
        .KeepTogether = True YhV<.2^k  
        .PageBreakBefore = False +Mijio  
        .OutlineLevel = wdOutlineLevelBodyText tXtNK2-1  
         F<b'{qf"  
        .CharacterUnitLeftIndent = 0 I[k"I(  
        .CharacterUnitRightIndent = 0 z mip  
        .CharacterUnitFirstLineIndent = 2 tgG*k$8z  
         v =y 2  
        .LineUnitBefore = 0.5 ^K"BQ~-w  
        .LineUnitAfter = 0 M\4` S&  
    End With ,\v'%,:C  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False cg3}33Z;6  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll t?G6|3  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese gep#o$P  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True E>]K#H  
    DoEvents Sp X;nH-D  
     M{5AQzvs  
    '四级标题样式 l~;>KjZg  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ~5&4s  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" pAatv;Ex  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False Godrz*"  
    With ActiveDocument.Styles("QLNU四级标题").Font Q >/,QX  
        .NameFarEast = "宋体" #PD6LO  
        .NameAscii = "Times New Roman" rWL;pM<  
        .NameOther = "宋体" T%)E!: }v  
        .Name = "宋体" o5a=>|?p>  
        .Size = 12               '小四号 lvWwr!w  
        .Bold = True ?v M9 !  
        .Outline = False YS^!'IyG/B  
        .Italic = wdUndefined J?3/L&seA  
        .Subscript = wdUndefined T8A(W  
        .Superscript = wdUndefined X8ap   
    End With GqRXNs!  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat %\<b{x# G  
         A`Dx]y   
        .LeftIndent = CentimetersToPoints(0) I)'bf/6?  
        .RightIndent = CentimetersToPoints(0) B ktRA  
        .FirstLineIndent = CentimetersToPoints(0) ?MRY*[$  
         -&Xv,:'?  
        .LineSpacingRule = wdLineSpaceSingle =${.*,o  
        .Alignment = wdAlignParagraphLeft I<9 40PZ  
         m4@NW*G{  
        .WidowControl = True _|GbU1Hz  
        .KeepWithNext = True 4{kH;~ z$  
        .KeepTogether = True Oh$:qu7o0&  
        .PageBreakBefore = False ]S&ki}i&  
        .OutlineLevel = wdOutlineLevelBodyText t([}a ~1}  
         |~BnE  
        .CharacterUnitLeftIndent = 0 !-7n69:G  
        .CharacterUnitRightIndent = 0 B%;MGb o  
        .CharacterUnitFirstLineIndent = 2 4Wiy2  
         Z,#H\1v3lB  
        .LineUnitBefore = 0 [y@*vQw  
        .LineUnitAfter = 0 ;9k>; g3m  
         klJ21j0Bb2  
    End With iv$YUM+  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False IANSpWea?  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll 2.z-&lFBZ  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese T3P9  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True 1]G)41  
    DoEvents 6E}9uwQ  
     V#dga5*]  
    '正文校式 ~)ys,Q  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") QKj0~ia 5  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" h[]9F.[  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False \i_E}Ii0  
    With ActiveDocument.Styles("QLNU正文").Font `RnWh9  
         t>cGfA  
        .NameFarEast = "宋体" WChP,hw  
        .NameAscii = "Times New Roman" Ldj z-  
        .NameOther = "宋体" swF{}S"  
        .Name = "宋体" /dYv@OU?  
         0h@FHw2d  
        .Size = 12               '小四号 \_1a#|97e  
         NV4g5)D&L  
        .Bold = wdUndefined ) 6)bI.BY  
        .Italic = wdUndefined GVXdyi  
        .Subscript = wdUndefined p?Azn>qBa  
        .Superscript = wdUndefined kh0cJE\_^  
         "9s_[e  
        .Outline = False EB*sd S  
        .Emboss = False 'vBZh1`p  
        .Shadow = False z/{X{+Z  
        .Hidden = False Vbl-Ff  
         D|9+:Y  
        .DisableCharacterSpaceGrid = True =Hd yra  
    End With v~Q'm1!O4\  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat u)0I$Tc"  
         uAPVR  
        .LeftIndent = CentimetersToPoints(0) C")genMH  
        .RightIndent = CentimetersToPoints(0) 7l69SQo]?  
        .FirstLineIndent = CentimetersToPoints(0) Lg7A[\c ~  
         ?+d`_/IB  
        .LineSpacingRule = wdLineSpaceExactly w2nReB z  
        .LineSpacing = 20 GkJcd;  
        .Alignment = wdAlignParagraphLeft ,_3hbT8Q  
         :ZrJL&  
        .WidowControl = False z l r !   
        .KeepWithNext = False 1.!U{>$  
        .KeepTogether = False Eu?z!  
        .PageBreakBefore = False 0ae8Xm3J@R  
        .Hyphenation = False 0y9 b0 G  
         (P)G|2=  
        .OutlineLevel = wdOutlineLevelBodyText [ /o'l:  
         .Ima M  
       27eG8  
        .CharacterUnitLeftIndent = 0 |GnTRahV.  
        .CharacterUnitRightIndent = 0 ZkbE&7Z  
        .CharacterUnitFirstLineIndent = 2 Tzex\]fw  
         yU v YV-7  
        .LineUnitBefore = 0 BNK]Os  
        .LineUnitAfter = 0 sE"s!s/  
        .SpaceBefore = 0 f,HUr% @  
        .SpaceAfter = 0 h+g\tYWGP  
         2 kDsIEA  
        .DisableLineHeightGrid = True , Z"<-%3  
    End With J3_aHI  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False 7s(tAbPdB  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll !?>V^#c  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese }sXTZX  
    ActiveDocument.Styles("QLNU正文").NoProofing = True ss)x fG  
    DoEvents 1]7gYNzV"  
     h+ [6i{  
    '图片段落样式 S!b18|o "  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") |ri)-Bk ,  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" _nbr%PD,  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False .h at!Tt9  
    With ActiveDocument.Styles("QLNU图片段落").Font $"kPzo~B_  
        .Size = 12               '小四号 ]1!" q40)]  
        .Italic = wdUndefined vamZKm~p  
        .Subscript = wdUndefined T0w_d_aS  
        .Superscript = wdUndefined *1dDs^D#|  
    End With >c,s}HJ  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat KG'i#(u[  
         P"vrYom  
        .LeftIndent = CentimetersToPoints(0) y"JR kJ  
        .RightIndent = CentimetersToPoints(0) *HKw;I   
        .FirstLineIndent = CentimetersToPoints(0) =j,WQ66r3  
         IO+]^nY `  
        .LineSpacingRule = wdLineSpaceSingle ]b4IO4T  
        .Alignment = wdAlignParagraphCenter ,L/x\_28  
        .KeepWithNext = True 6z9 '|;,4  
        .OutlineLevel = wdOutlineLevelBodyText WkTJ M  
         P"w\hF  
        .CharacterUnitLeftIndent = 0 {6'X z  
        .CharacterUnitRightIndent = 0 Rg?6eN  
        .CharacterUnitFirstLineIndent = 0 I/f\m}}ba  
         >pU9}2fpT  
        .LineUnitBefore = 0 )dT@0Ys%  
        .LineUnitAfter = 0 Op'a=4x]  
    End With !ZBtX t#P  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False _M^.4H2  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll $`F9e5}G  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese rpT.n-H>%A  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True kTvM,<  
    DoEvents & N7ji  
     ~Bzzu % S  
     79h~w{IT@  
    '第X章 IP62|~Ap  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 8 t5kou]h  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" ShB]U5b:k  
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False ]i*ucW4  
    With ActiveDocument.Styles("QLNU章节标题").Font 'X?xn@?  
        .NameFarEast = "黑体" eTuqK23  
        .NameAscii = "Arial Black" Cu[-<>my  
        .NameOther = "Arial Black" _VrY7Mz:r  
        .Name = "黑体" g":[rXvId  
        .Size = 16 )j_El ]?  
        .Bold = True iEvQ4S6tD  
        .UnderlineColor = wdColorAutomatic T D _@0Rd  
        .Outline = False 1-_r\sb  
        .Italic = wdUndefined M kz_.;3  
        .Subscript = wdUndefined y }odTeq  
        .Superscript = wdUndefined 5f-b>=02  
        .Scaling = 100 u7!9H<{>P  
        .DisableCharacterSpaceGrid = True 8-2 `S*  
    End With REUxXaN>Z  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat ywa*?3?c  
        .LineSpacingRule = wdLineSpaceSingle w_(3{P[Iz  
        .Alignment = wdAlignParagraphCenter /'/I^ab  
        .WidowControl = True HxG8 'G  
        .KeepWithNext = True '.mepxf< f  
        .KeepTogether = True h|qJ{tUWc$  
        .PageBreakBefore = True `S {&gl  
        .OutlineLevel = wdOutlineLevelBodyText YT\@fgBt  
         8`q7Yss6F  
        .LeftIndent = CentimetersToPoints(0) ]\78(_o.zz  
        .RightIndent = CentimetersToPoints(0) 5'lPXKn+L  
        .FirstLineIndent = CentimetersToPoints(0) _Iy\,<  
         Z3`EXs  
        .CharacterUnitLeftIndent = 0 B 71/nt9  
        .CharacterUnitRightIndent = 0 @Wu-&Lb  
        .CharacterUnitFirstLineIndent = 0 tEhg',2t(  
         _wq?Pa<)e  
        .LineUnitBefore = 1 `%C-7D'?  
        .LineUnitAfter = 0.5 z5>I9R^q;  
         ||$&o!;/L  
        .AutoAdjustRightIndent = False NQ9v[gv  
        .DisableLineHeightGrid = True Wc3z7xK1@  
        .FarEastLineBreakControl = True O`5,L[i1y  
        .WordWrap = True ;5Sdx5`_  
    End With .Bm%  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False ?{ir $M  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll m@4Dz|  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese g*Y, .  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True Cx7-I0!  
    DoEvents Y2H-D{a27  
     '0+*  
    '表格标题 +hxG!o?O  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") CXlbtpK2k  
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" $83B10OQ&L  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False /DYyl/  
    With ActiveDocument.Styles("QLNU表格标题").Font NX @FUct;  
        .NameFarEast = "楷体" g68p9#G  
        .NameAscii = "Arial" <L &EH@T  
        .Name = "楷体" (`tRJWbdz  
        .Size = 10.5 mayJwBfU  
        .Bold = True ScPVjqG2{  
        .Underline = wdUnderlineNone aLO^>",  
        .Italic = wdUndefined #oUNF0L@6  
        .Subscript = wdUndefined 4-(kk0]`z  
        .Superscript = wdUndefined @R[{  
        .Color = wdColorAutomatic zCx4DN`  
    End With m#7(<#  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat /).{h'^Hq\  
         l:85 _E  
        .LineSpacingRule = wdLineSpaceSingle ^J'_CA  
        .Alignment = wdAlignParagraphCenter @A/k"Ax{r  
        .KeepWithNext = True ?"B] "%M&  
        .KeepTogether = True >yBq i^aL  
        .OutlineLevel = wdOutlineLevelBodyText rpR${%jc  
         xA] L0h]  
        .LeftIndent = CentimetersToPoints(0) n>M`wF>  
        .RightIndent = CentimetersToPoints(0) ,WT>"9+  
        .FirstLineIndent = CentimetersToPoints(0) &gXh:.  
         .Mt3e c<  
        .CharacterUnitLeftIndent = 0 %q{q.(M#  
        .CharacterUnitRightIndent = 0 '%NglC[J  
        .CharacterUnitFirstLineIndent = 0 R@vcS=m7  
         2QfN.<[-  
        .LineUnitBefore = 1 fr@F7s5}  
        .LineUnitAfter = 0 oaoTd$/5  
         ]R__$fl`8  
    End With !gsvF\XDM  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False >[}oH2oi  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll &.?XntI9O  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese rd%%NnT"  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True OrY[  
    DoEvents $<}c[Nm  
5(1:^:LGK  
    '表格首行 Zi!Ta"}8  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") LFp "Waiv  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False $NXP)Lic)  
    With ActiveDocument.Styles("QLNU表格首行").Font M^ FY6TT4O  
        .NameFarEast = "楷体" )- C3z   
        .NameAscii = "Times New Roman" #+ I'V\ [  
        .Name = "楷体" zzqJeIS  
        .Size = 9 P15 H[<:Fz  
        .Bold = True }Mc b\+[  
        .Underline = wdUnderlineNone d$dy6{/YD  
        .Italic = wdUndefined "LMj,qZ1!  
        .Subscript = wdUndefined p9(y b  
        .Superscript = wdUndefined V$^jlWdR  
    End With 4fEDg{T  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat Wa_qD  
        .LineSpacingRule = wdLineSpaceSingle $XBK_ 5  
        .Alignment = wdAlignParagraphCenter pfA6?tP`  
         tK#R`AQ  
        .LeftIndent = CentimetersToPoints(0) dAo;y.3  
        .RightIndent = CentimetersToPoints(0) XX6Z|Y5.  
        .FirstLineIndent = CentimetersToPoints(0) :{lwz#9V  
         P]_d;\ !"v  
         #&Sr;hAJ  
        .CharacterUnitLeftIndent = -0.5 ZCiCZ)oc  
        .CharacterUnitRightIndent = -0.5 dUI5,3*  
        .CharacterUnitFirstLineIndent = -0.5 :=*de Z<  
         <xOv8IQ|  
        .LineUnitBefore = 0 )Fw/Cu  
        .LineUnitAfter = 0 v9*m0|T0M  
        .SpaceBefore = 0 +.G"ool  
        .SpaceAfter = 0 x(_[D08/TT  
         qWt}8_"  
    End With UO/sv2CN  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False t}EM X9SQ  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll VtreOJ+  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese 7s9h:/Lu  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True wp[Ug2;G  
    DoEvents qUe _B  
,"(L2+Yp  
    '表格内容 f:T?oR>2  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") 6cQgp]%  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False sDY~jP[Oa  
    With ActiveDocument.Styles("QLNU表格内容").Font KyvZ? R  
        .NameFarEast = "楷体" op,L3:R\Z  
        .NameAscii = "Times New Roman" [6/ QUD8  
        .Name = "楷体" M>8J_{r^  
        .Size = 9 o4(*nz  
        .Bold = False M6Fo.eeK3  
        .Underline = wdUnderlineNone cr7MvXF-  
        .Italic = wdUndefined JKfG/z|  
        .Subscript = wdUndefined XYE|=Tr]  
        .Superscript = wdUndefined O] _4pP  
    End With yV30x9i!2  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat M`xiC  
        .LineSpacingRule = wdLineSpaceSingle e#eVc'=cDR  
        .Alignment = wdAlignParagraphCenter eL!41_QI  
         Y +gY"  
        .LeftIndent = CentimetersToPoints(0) *GP2>oEM  
        .RightIndent = CentimetersToPoints(0) ']]d-~:  
        .FirstLineIndent = CentimetersToPoints(0) VFHd2Ea(  
         nB[-KS  
        .CharacterUnitLeftIndent = -0.5 39pG-otJ  
        .CharacterUnitRightIndent = -0.5 YO6BzS/~  
        .CharacterUnitFirstLineIndent = -0.5 *{o7G  a  
        .LineUnitBefore = 0 =bVPHrKNQ  
        .LineUnitAfter = 0 cNs'GfD}  
        .SpaceBefore = 0 .6B\fr.za  
        .SpaceAfter = 0 G dgL}"*F  
    End With (~T*yH ~  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False .R9Z$Kbq  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll bS.w<V Ew  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese  Cs,H#L  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True XR5KJl  
    DoEvents )G? qX.D  
ZykMri3bi  
    '图片标题 wb-yAQ8  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") >tD=t8  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" s}D>.9  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False 5=dL`  
    With ActiveDocument.Styles("QLNU图片标题").Font |@qw  
        .NameFarEast = "楷体" r-2k<#^r  
        .NameAscii = "Times New Roman" <=uYfi3,  
        .Name = "楷体" K |& f5w  
        .Size = 10.5 4ls:BO;k]  
        .Bold = True 8xpplo8  
        .Underline = wdUnderlineNone C*9X;+S0J  
        .Italic = wdUndefined : Mf"    
        .Subscript = wdUndefined 5En6f`nR{  
        .Superscript = wdUndefined En5oi  
        .Outline = False 9 _d2u#  
        .Shadow = False K%(y<%Xp  
        .Color = wdColorAutomatic 'j1e(wq  
    End With ==[,;g x  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat x3@-E  
        .LineSpacingRule = wdLineSpaceSingle  ao(T81  
        .Alignment = wdAlignParagraphCenter !_S>ER  
         E+td~&x  
        .KeepWithNext = wdUndefined 4#U}bN  
        .KeepTogether = True H'+7z-% G  
        .OutlineLevel = wdOutlineLevelBodyText N^^0j,  
         >.h:Y5  
        .LeftIndent = CentimetersToPoints(0) =;}W)V|X)S  
        .RightIndent = CentimetersToPoints(0) 1^ iBS  
        .FirstLineIndent = CentimetersToPoints(0) )Q)qz$h@  
         rS8a/d~;0  
        .CharacterUnitLeftIndent = 0 B.z$0=b  
        .CharacterUnitRightIndent = 0 U=>S|>daR  
        .CharacterUnitFirstLineIndent = 0 +)]YvZ6%[,  
         ?RRO  
        .LineUnitBefore = 0 0lw> mxN  
        .LineUnitAfter = 0 <h T\xBb:  
    End With gk]QR.  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False xad`- vw  
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll g7oY1;  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese c:[k+_Zr  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True NnZW@ln"|  
    DoEvents | HazM9=  
U"oNJ8&%|  
    '目录项 $ {Z0@G+  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") |<%!9Z  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" n*4`Tduu^  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False 1uF$$E6[  
    With ActiveDocument.Styles("QLNU目录项").Font %!|w(Povq  
        .NameFarEast = "黑体"  cby#  
        .NameAscii = "Times New Roman" ;*K4{wvG  
        .NameOther = "Times New Roman" L`NIYH<^  
        .Name = "黑体" (8nv&|  
        .Size = 10.5 _k-_&PR  
        .Bold = False BD g]M/{  
        .Italic = wdUndefined xNz(LZ.c  
        .Underline = wdUnderlineNone 7#8Gn=g  
        .Color = wdColorAutomatic J[ds.~ $  
        .Superscript = wdUndefined  *kr/,_K  
        .Subscript = wdUndefined pwUXM?$R  
    End With pO]gf$  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat Io6/Fv>!  
         *zfgO pK  
        .LineSpacingRule = wdLineSpaceSingle \l+v,ELX=  
        .Alignment = wdAlignParagraphLeft :_{8amO  
         Sb.8d]DW  
        .WidowControl = False 6&3,fSP  
        .KeepWithNext = False n:j'0WW  
        .KeepTogether = False }r}*=;Ea  
        .PageBreakBefore = False _Hb;)9y  
        .NoLineNumber = False GAGS-G#  
        .OutlineLevel = wdOutlineLevelBodyText V35Vi 6*p  
         Iq$| ?MH  
        .LeftIndent = CentimetersToPoints(0) -[>de! T3$  
        .RightIndent = CentimetersToPoints(0) 3"fDFR  
        .FirstLineIndent = CentimetersToPoints(0) m 2H4V+M+  
         !iXRt")  
        .CharacterUnitLeftIndent = 0 f~IJ4T2#N  
        .CharacterUnitRightIndent = 0 3f;=#|l  
        .CharacterUnitFirstLineIndent = 0 lU WXXuO]  
         [B0 BHJ~  
        .LineUnitBefore = 0 37AVk`a  
        .LineUnitAfter = 0 Z%T Ajm  
    End With  0^;2  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False j ;x()iZ<  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll |diI(2w  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot f%Q)_F[0D4  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese L"_X W no  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True yzK;  
    DoEvents +9)Jtm oL  
     ">uN= {Iy  
    '参考文献 t0)1;aBZ  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") OG\i?N  
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" H`EhsYYK  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False {@Wv@H+4  
    With ActiveDocument.Styles("QLNU参考文献").Font QV4|f[Ki%  
        .NameFarEast = "宋体" (Wzp sDte  
        .NameAscii = "Times New Roman" 7Q 3!= b  
        .NameOther = "Times New Roman" z*@eQau A  
        .Name = "Times New Roman" &$"#hGg  
        .Size = 12 9>}&dQ8  
        .Bold = False "gJ?LojB<  
        .Italic = wdUndefined x`CjFaE~F  
        .Subscript = wdUndefined b F=MQ  
        .Superscript = wdUndefined )m%uSSx#  
        .Underline = wdUnderlineNone 8-$t7bV5  
        .UnderlineColor = wdColorAutomatic 3G} )$y3m  
        .Color = wdColorAutomatic MqmQ52HR  
        .Engrave = False 0zt]DCdY  
    End With Ik G&  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat t;O)   
         }nx)|J*p  
        .LineSpacingRule = wdLineSpaceExactly K`*GZ+b|`  
        .LineSpacing = 16 0.GFg${v`  
        .Alignment = wdAlignParagraphLeft 16NHzAQ  
        .WidowControl = False %L|fTndKH  
        .KeepWithNext = False V>6klA}o  
        .KeepTogether = False T^bA O-d#  
        .PageBreakBefore = False p8Vqy-:  
        .OutlineLevel = wdOutlineLevelBodyText Y\xEPh  
         <O#&D|EMd|  
        .LeftIndent = CentimetersToPoints(0) F!z0N&#  
        .RightIndent = CentimetersToPoints(0) 1#vy# '  
        .FirstLineIndent = CentimetersToPoints(0) *dBy<d Iy  
         1$E(8"l  
        .CharacterUnitLeftIndent = 0 sqkWQ`Ur  
        .CharacterUnitRightIndent = 0 d\z6Ob"t  
        .CharacterUnitFirstLineIndent = -2 m*0YMS>Y |  
         )'shpRB;1  
        .LineUnitBefore = 0 dab]>% M  
        .LineUnitAfter = 0 =?sG~  
        .SpaceBefore = 0 6F\ 6,E  
        .SpaceAfter = 0 )|gw5N4;  
         @!ChPl  
    End With ]lWqV  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False M!&Hn,22  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll gF6> /  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS ]4:QqdV  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True MBLZ:A| C  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese 'u,|*o  
    DoEvents k %I83,+  
q8 v iC|  
    ' Y2|i>5/|<  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") U S^% $Z:  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" TykT(=  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False S zo'[/ [R  
    With ActiveDocument.Styles("QLNU论文题目").Font RQ+,7Ir  
        .NameFarEast = "黑体"  F/Goq`  
        .NameAscii = "Arial Black" ">V&{a-C4  
        .NameOther = "Arial Black" }1a}pm2p  
        .Name = "Arial Black" Y&2FH/(M  
        .Size = 16 /ViY:-8s  
        .Bold = False G|i0n   
        .Italic = wdUndefined LF|0lAr  
        .Superscript = wdUndefined +{UY9_~\3  
        .Subscript = wdUndefined 4,RPidv%O  
        .Underline = wdUnderlineNone r" H::A  
        .UnderlineColor = wdColorAutomatic `[ZswLE  
        .Color = wdColorAutomatic xd Z$|{,  
*P mZqe  
    End With *&U~Io"U  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat U-|]A\`)I  
        .LineSpacingRule = wdLineSpaceSingle .Rr^AGA4  
        .Alignment = wdAlignParagraphCenter dPUe5k)G_  
        .WidowControl = True ;hj lRQ\  
        .KeepWithNext = True D(b01EQ;d  
        .KeepTogether = True -cqE^qAdX  
        .PageBreakBefore = True h5?^MRZS  
        .NoLineNumber = False E@}F^0c  
        .OutlineLevel = wdOutlineLevelBodyText a~}q]o?j  
         mV0,T*}e  
        .LeftIndent = CentimetersToPoints(0) l4C{LZ  
        .RightIndent = CentimetersToPoints(0) F :j@JMpQ  
        .FirstLineIndent = CentimetersToPoints(0) 2>z YJqG|  
         dX(JV' 18A  
        .CharacterUnitLeftIndent = 0 .7iRV  
        .CharacterUnitRightIndent = 0 1 ?@ HOu  
        .CharacterUnitFirstLineIndent = 0 {3Inj8a=?A  
         \w9}O2 lL  
        .LineUnitBefore = 1 AXyXK??  
        .LineUnitAfter = 1 ]#0 (  
         =m.Nm-g  
        .BaseLineAlignment = wdBaselineAlignAuto "Eh=@?]S_  
    End With 1tuvJ+`{  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False 87 gk  
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll mhbczVw  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS 8SRR)O[)}  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True |}zWH=6  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese O'4G'H)   
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True 5es t  
    DoEvents f*k7 @[rSv  
     )JMqC+J3*t  
    '中文摘要 IjI 'Hx  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") y)kxR  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" 0U42QEG2  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False KEAXDF&#  
    With ActiveDocument.Styles("QLNU中文摘要").Font Nd8>p.iqO  
        .NameFarEast = "宋体" $8^Hk xy  
        .NameAscii = "Times New Roman" 4o>y9  
        .NameOther = "Times New Roman" 8/e-?2l  
        .Name = "Times New Roman" bY_'B5$.^2  
        .Size = 12 #W\}v(Ke  
        .Bold = wdUndefined <G})$f'x2  
        .Superscript = wdUndefined N0 {e7M  
        .Subscript = wdUndefined Yf0 KG  
        .Italic = wdUndefined zB .cOMx  
        .Underline = wdUnderlineNone *85N_+Wv!  
        .UnderlineColor = wdColorAutomatic +!lDAkW0  
        .Color = wdColorAutomatic Xv1vq -cM  
    End With dT| XcVKg  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat xGs}hVlZiC  
        .LineSpacingRule = wdLineSpaceExactly PD#,KqL:  
        .LineSpacing = 20 &V4Zm n?UU  
        .Alignment = wdAlignParagraphLeft 3W1Lh~Av  
         ^*. [b  
        .WidowControl = False 0X)vr~`  
        .KeepWithNext = False <J509j  
        .KeepTogether = True *)m:u:   
        .PageBreakBefore = False ki1(b]rf  
        .NoLineNumber = False {FI zoR"  
        .OutlineLevel = wdOutlineLevelBodyText Dka,v  
         P&`%VW3E  
        .LeftIndent = CentimetersToPoints(0) rPH7 ]]  
        .RightIndent = CentimetersToPoints(0) +p 6Ty2rz  
        .FirstLineIndent = CentimetersToPoints(0) Ejug2q  
         ]r`;89:s>  
        .CharacterUnitLeftIndent = 0 (p]FI#y  
        .CharacterUnitRightIndent = 0 *-0s ` rC  
        .CharacterUnitFirstLineIndent = 2 "vGh/sXW  
        .LineUnitBefore = 0 N{J 1C6  
        .LineUnitAfter = 0 Q2 q~m8(  
         i/:L^SQAq  
    End With !Asncc G  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False \,R;  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll U[C>Aoze  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS  _a09;C  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True ^s~)"2 g  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese % /:1eE`!S  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True ^'QO!{7f  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete ZP"; B^J  
    DoEvents ly[yn{  
     [@@{z9c  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") Yp\n=#$[  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" }M4dze  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False EP:`l  
    With ActiveDocument.Styles("QLNU英文标题").Font A6(Do]M  
        .NameFarEast = "黑体" s8-RXEPb  
        .NameAscii = "Arial Narrow" N+&uR!:.C  
        .Name = "Arial Narrow" o3 0C\  
        .Size = 16 z'l$;9(y  
        .Bold = True tN#C.M7.'7  
        .Bold = wdUndefined e=;A3S  
        .Superscript = wdUndefined r1!1u7dr t  
        .Subscript = wdUndefined 1UP {j`-K|  
        .Italic = wdUndefined Avx`  
         l7`{O/hN  
        .Underline = wdUnderlineNone h<9vm[.  
        .UnderlineColor = wdColorAutomatic Jn+-G4h$  
        .StrikeThrough = False HZ3;2k  
        .DoubleStrikeThrough = False _k:8ib2TQ  
    End With w=KfkdAJ*/  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat `gSMb UgF  
        .LineSpacingRule = wdLineSpaceSingle u\LNJo| B  
        .Alignment = wdAlignParagraphCenter f:Pl Mv!{  
        .WidowControl = True |5u~L#P  
        .KeepWithNext = False i(~DhXz*T  
        .KeepTogether = False TV`1&ta  
        .PageBreakBefore = False ~5 6&!4  
        .NoLineNumber = False SZGR9/* ^  
        .FirstLineIndent = CentimetersToPoints(0) yaz6?,)  
        .OutlineLevel = wdOutlineLevelBodyText [O3:?BNY  
         9'MGv*Ho  
        .LeftIndent = CentimetersToPoints(0) m6R/,  
        .RightIndent = CentimetersToPoints(0)  WI\a  
        .FirstLineIndent = CentimetersToPoints(0) 8Lgt  
         fcq8aW/z_  
        .CharacterUnitLeftIndent = 0 rHKO13WF  
        .CharacterUnitRightIndent = 0 @a 9.s  
        .CharacterUnitFirstLineIndent = 0 zP nb_[YF  
         =lAjQt  
        .LineUnitBefore = 1 8AR8u!;8  
        .LineUnitAfter = 1 b<FE   
         b1Vr>:sK47  
    End With TcZ.5Oe6h#  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False wra0bS)4  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll N7?]eD  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS } =OE.cf@  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True T0 K!Msz  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese [!uzXVS3  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True c64^u9  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete tz ;3  
    DoEvents V$ZclV2:Ih  
l'I:0a 4T  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") 8 a]'G)(ts  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" Kq[4I[+R  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False (dlp5:lQz  
    With ActiveDocument.Styles("QLNU英文摘要").Font #mV2VIX#Jv  
        .NameFarEast = "宋体" |]-Zz7N)  
        .NameAscii = "Arial" W&5/1``u\  
        .NameOther = "Arial" \'~ E%=Q  
        .Name = "Arial" mZ71_4X#  
        .Size = 12 L[<#>/NPy  
        .Bold = wdUndefined ^N7H~CT"  
        .Italic = wdUndefined k`5I"-e  
        .Superscript = wdUndefined m > =DJ{KQ  
        .Subscript = wdUndefined 8"%Es  
    End With Vh~h fj"  
     DS?.'"n[u  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat q|*^{(tWs  
         $w(RJ/  
        .LineSpacingRule = wdLineSpaceExactly !.P||$x`&  
        .LineSpacing = 20 [9sEc  
         9a*#r;R  
        .Alignment = wdAlignParagraphJustify n])# <0  
         L{1sYR%s\  
        .WidowControl = False 5W)ST&YPL*  
        .KeepWithNext = False 2E }vuw=c  
        .KeepTogether = False $udhTI#,  
        .PageBreakBefore = False 5G355 ,}E  
        .NoLineNumber = False 3sr_V~cZ9  
         N3"JouP  
        .OutlineLevel = wdOutlineLevelBodyText G*IP?c>=  
          VAiJL  
        .LeftIndent = CentimetersToPoints(0)  G*z\ ^H  
        .RightIndent = CentimetersToPoints(0) g}MUfl-L  
        .FirstLineIndent = CentimetersToPoints(0) 1.14tS-}[4  
         hywcj\[  
        .CharacterUnitLeftIndent = 0 PC9,;T&7_  
        .CharacterUnitRightIndent = 0 Qvp"gut)%X  
        .CharacterUnitFirstLineIndent = 2 =~ Uhr6Q  
         Q:b0M11QR  
        .LineUnitBefore = 0 ~,/@]6S&Y  
        .LineUnitAfter = 1 SIp)&  
         d+,!>.<3  
    End With .D@J\<,+l  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False y#'hOSR2  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll X['9;1Xr  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS >'4A[$$4mM  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False 4r(0+SO  
    DoEvents f<8Hvumw  
r w!jmvHE&  
    Options.Pagination = True \Th<7WbR6#  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." ^/BGOBK  
    DoEvents ko9}?qs  
    ActiveDocument.Repaginate wPg/.N9H  
;VE y{%nF  
End Sub @1CXc"IgA  
rZ?:$],U!  
-, bnj^L  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
99楼  发表于: 2021-07-18   
继续填个坑: 1Ms]\<^j  
rpKZ>S|7+)  
用VBA控制WORD自己修订学生毕业文的格式。 coAXYn  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

vzS b(  
DvH-M3  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 xF UD9TM  
第6车皮 u&p8S#e  

RPa]VL1W  
> X  AB#  
第9车皮 x/1FQ>n:9  
TJP;!uX  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 E2 'Al6^C  
z*nztvY@e  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 xG~-.  
J'cE@(US  
Main2.bas Ct /6<  
.f!'> _  
Attribute VB_Name = "SubMain" @W+8z#xr'  
Option Explicit FIn)O-<  
Qvny$sr2  
'采集文件与临时文件 KI<x`b  
Public Const TmpFile As String = "d:\30-0600.dat" l$BKE{rg  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 ve#[LBOC8  
~l+~MB  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long )P1NX"A  
Public hBCFile As Long  '记录采集参数的文件 ]Gl_L7u`  
Public Const TmpBMP As String = "d:\1.bmp" >&<D.lx  
Public hTmpFile As Long }J5iY0  
e /XOmv  
z"5e3w  
'采集窗口参数常量 ICoZ<;p  
Public Const FrameH As Long = 280& ,[m4+6G5  
Public Const FrameW As Long = 768& tSDp>0yZ3  
Public Const pFrameSize As Long = FrameW * FrameH avS9"e  
oi3Ix7  
'标志区范围,用于识别车辆 -NG9?sI\U  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X jbOzbxR?  
Public Const mkW As Integer = 28  '识别标志立柱宽度 dkEnc  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) ^(xVjsHp#  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) AF{ o=@  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 i\36 s$\  
'车缝检测位置常数 17Q* <iCs  
Public Const sSize As Long = 32& P\c0Q;){h"  
Public Const sPos As Long = 310& xT9+l1_  
Public Const sPosL As Long = 200& !/&~Feb  
Public Const sPosR As Long = 500& !oV'  
'车缝检测框位置 \@2sI  
Public Slice(1 To sSize, 1 To FrameH) As Byte bVRxGn @l  
Public SliceL(1 To sSize, 1 To FrameH) As Byte etW-gbr  
Public SliceR(1 To sSize, 1 To FrameH) As Byte <.7W:s,f=  
Public avSL As Integer, avSLR As Integer, avSLL As Integer 0g#?'sD  
a(o[ bH.|;  
RAyR&p  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 /7*qa G  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 n O}x,sG2'  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 1?+)T%"  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long h^9Ne/s~  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte AM gvk`<f  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 If9!S} wa  
Q6Zh%\+h(  
F7x< V=4{  
hYCyc -W  
'一次连续采集的帧数 RDG,f/L2  
Public tFrames As Long `0ju=FP'u5  
ZG)C#I1;O  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 XeBSHvO_  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 9.goO|~B~  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize N_!Zn"J  
b!37:V\#}  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte ;+qPV7Z  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte L3Q1az!Ct  
Public pWorkSpace(1 To FrameW * FrameH) As Long q33!X!br  
Public Const pBufferSize As Long = FrameW * FrameH * 2 ,KibP_<%&P  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 CQY/q@7  
kLY9#p=X  
Public hBoard As Long   '采集卡标识 8&f"")m  
Public mBufferAddr As Long  '缓存地址 zGFW?|o<  
Public BufferSize As Long  '缓存大小(字节) I|[a a$G  
Public iCurrentCard As Long Y@%6*uTLa  
Public CapStatus As Long ldoN!J  
Public iFrames As Long NOmSLIgt7  
Public currentBr As Byte, currentContr As Byte Df/f&;`  
,v1-y ?kB  
Public hMEM As Long, mStatus As Long 1/q iE{NW  
Public Const hMemSize As Long = pFrameSize * 4 dR /UXzrc  
Public hMemWork As Long J2#=`|t"  
Public Const hMemWorkSize As Long = pFrameSize * 5 .yj=*N.  
ZsPBs4<p  
{&(bKQ  
Ah2XwFg?  
'串口接收轨道衡数据 [dL?N  
Public WeightFromCom As String Ip0@Q}^  
Public bReceiveComplete As Boolean =09j1:''<d  
Tf[-8H<  
s?K4::@Fv  
Public Type GrayBMPHeader Mz{ Rh+gS  
  Tag As Integer :S7yM8 b`  
  FileLength As Long    '文件大小 L{CHAVkV  
  Reserve1 As Long FkE CY  
  DataOffset As Long    '图像数据偏移量 Pq7tNM E  
  BMPHeaderSize As Long  '文件头长 >|I3h5\M  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… u&I~%s  
                        'the following sizes are possible: Y=rW.yK8  
                        '28h - windows 3.1x, 95, nt, … I0jEhg%JZ  
                        '0ch - os/2 1.x j'0*|f^z  
                        'f0h - os/2 2.x `TsfscN  
vrW9<{   
  ImageWidth As Long           '图像宽(像素数) v DOeBw =  
  ImageHeight As Long          '图像高(像素数) m~NWY$oI9[  
  PlaneNumber As Integer  '图像层数 ! xqG-rd '  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap 7erao-   
                                        '4 - 16 color bitmap &FvNz  
                                        '8 - 256 color bitmap GrQAho  
                                        '16 - 16bit (high color) bitmap 8QZk0 O  
                                        '24 - 24bit (true color) bitmap ?y45#Tk]  
                                        '32 - 32bit (true color) bitmap E.% F/mM  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) SS~Txt75m  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) 7iJk0L$]x  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) yb**|[By  
                                    '3 - bitfields (also identified by bi_bitfields) v <Ze$^ e&  
  IMAGESIZE As Long  '图像数据字节数 U ._1'pW  
  hResolution  As Long  '水平分辩率  像素数/米 TuCOoz@d  
  vResolution  As Long  '垂直分辩率 RBgkC+2  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 #XY]@V\  
  ImportantColors As Long 5BCaE)J  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 3S2'JOTY  
End Type J2[QHr&tn  
s3kEux^  
+[ }]a3)  
\ T]"pE+8l  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader x!.VWGtb  
Public sRECT As RECT 6k3l/~R  
>qUO_>  
(&hX8  
Public conn As ADODB.Connection '}YXpB  
Public rsTrain As ADODB.Recordset >%3c1  
Public rsOperater As ADODB.Recordset >a-+7{};  
Public rsGoods As ADODB.Recordset u#UeJu O  
Public rsGood2 As ADODB.Recordset ng<`2XgU  
Public rsSender As ADODB.Recordset ez5`B$$  
Public rsReceover As ADODB.Recordset ta6 WZu  
Public rsTrainTMP As ADODB.Recordset 'IW+"o  
246lFx G.  
w./EJk KI  
'打开采集卡 =<_5gR  
'设置参数 `Zi#rr|)L  
'设置为实时单帧采集到缓存方式 zXf+ieo  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 Yh%wf3 UEO  
D\l.?<C  
@ Q1j H~t  
Sub Main() g4$%)0x%  
  Dim i As Integer, status As Long a&ByV!%%+_  
     nG*6ic  
   InitBMPinfo &s;%(c04A  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 fY"28#   
    BMPHeader.Tag = &H4D42 XP;&iZ J  
    BMPHeader.ImageWidth = FrameW < 5_Ys  
    BMPHeader.ImageHeight = FrameH RK3/!C`  
    BMPHeader.BMPHeaderSize = &H28 7ER 2 h*  
    BMPHeader.PlaneNumber = 1 tr/dd&(Y1  
    BMPHeader.bpp = 8 v!U#C[a^  
    BMPHeader.Compression = 0 O`0$pn  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 Cw|S Y  
    BMPHeader.vResolution = &H1274 (Mm{"J3uv  
    BMPHeader.ColorsinBMP = 256 \j;uN#)28  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP /#se>4]  
    BMPHeader.DataOffset = Len(BMPHeader) v#+w<gRq  
    For i = 0 To 255 6uXYZ.A  
      BMPHeader.Pallate(i) = RGB(i, i, i) EH "g`r  
    Next i dS&8R1\>1  
    BMPHeader.IMAGESIZE = FrameH * FrameW ,] {NZ9  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE KE3 /<0Z  
W=\dsdnu*  
*(MvNN*  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) _~(Xd@c(  
     0amz#VIB<u  
    BMP1.ImageWidth = FrameW G\p; bUF  
    BMP1.ImageHeight = FrameH * 2 3ElpS^ 2W  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight +e:ZN tr9  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE Mqtp}<*@-  
udZ: OU<  
  '确定标志位置,为pilarX, pilarY确定初始值 q5W'P>  
   PilarW = mkW ?W|IC8~d')  
   PilarH = mkH  '此两项为固定值 S7q &|nI  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) `pMI[pLZe  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 2,;t%GB  
   mfN@tMp  
   fBOPd =  
  '连续采集记录文件 D5m\u$~V  
  ' 建立一个缓冲区为页对齐方式的文件 KJ)&(Yx  
  If Dir(TmpFile) <> "" Then 6qJB"_.  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ lmcDA,7  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) XfrnM^oty  
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 |\ (/dXXP  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 `s_TY%&_}g  
  Else h*9o_  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ ` ;=Se_  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) ~+C#c,Nw  
  End If 9h(hx 7]  
  If hFile = 0 Then piFQ7B  
    MsgBox TmpFile & ": File Open Error", vbOKOnly |)-:w?  
    Exit Sub G0Eq }MyF  
  End If ;2|H6IN"  
  '采集参数记录文件 V6{xX0'b*m  
hBCFile = FreeFile() 7 f*_  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile Aii[=x8  
   w;$+7  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 8)!;[G|  
If hMEM = 0 Then FOA%( 5$4  
    fStatus = GetLastError ui{_w @o  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ U.F65KaKF  
     & "请向技术人员报告该错误代码。", vbOKOnly M<srJ8|'  
    CloseHandle hFile KTEis!w  
    Exit Sub NGY I%:  
End If kZ9pgdI  
a !K;8#xc  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) r*wKYb  
If hMemWork = 0 Then pzr-}>xrZ  
    fStatus = GetLastError rw2|1_AF  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ 7&)F;;H  
     & "请向技术人员报告该错误代码。", vbOKOnly w$ {  
     '释放已成功分配的内存 JrAc]=  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) cj<@~[uw  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) %$x FnGb  
     9.=#4OH/  
    CloseHandle hFile =x'%zUgE  
    Exit Sub $ bosGG  
End If -*M:OF"Zh  
k>CtWV5B  
' Test writing ex+A T;o  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& m^.C(}  
     8!SiTOzR?  
   '初始化采集卡参数 swFOh5z  
   iCurrentCard = -1 jf/9] `Hf  
   hBoard = okOpenBoard(iCurrentCard) \^4$}@*]  
   Debug.Print hBoard B^?XE(.  
   If hBoard = 0 Then &zcj U+n  
      ExitGrabber ( `+Z'Y  
      End o {LFXNcg[  
   End If Vgn1I(Gj4  
   okGetBufferSize hBoard, mBufferAddr, BufferSize <6~;-ZQY  
   If mBufferAddr = 0 Then fO>~V1  
     MsgBox "缓存不存在!" bVHi3=0{  
     ExitGrabber |]cDz  
   End If b]#d04]  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) [;AcV73  
   8Q -F  
   F8Wq&X#r  
   currentBr = 128: currentContr = 128 AyO|9!F@A  
   '设置视频输入参数 \W^+vuD8  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 c7IR06E  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input Ig KAD#2a  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 y}HC\A77uD  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 }2,#[m M  
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 @EZONKT  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 p ri{vveN@  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) PWu2;JF  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) q*nz4QTOE  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值)  Zwns|23n  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 pd3&AsU  
   UJ$:5*S=u  
   '设置采集参数 ~(/HgFLLu  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 a4RFn\4?  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 ,P@-DDJ  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 Z|% 2495\  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 3rg^R"&  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 yWtr,  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 zpqNmxmF  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 9%14k  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 a?~csP^?}  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 J6ShIPc  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 c.Z4f 7  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 .b oizW1+  
   mm-UQ\h  
   -$ t,}3  
   okCloseBoard hBoard 3&fFIab9  
   Sleep 50 <SZO- -+lB  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 )6 <byO  
   p\;)^O4  
   '设置数据传送方式 4"x;XVNM[  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 W? ||9  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 WUS9zK  
   ( v:ek_  
   sRECT.Right = -1   '用于获得当前设置值 u/'sdt  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) Wb )l8[=  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom qjzW9yV+  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 =>\-ma+  
   sRECT.Left = 0 jsd]7C  
   sRECT.Top = 0 So.P @CCd  
   sRECT.Right = sRECT.Left + FrameW (x0 *(*A}  
   sRECT.Bottom = sRECT.Top + FrameH * 2 GP Lt<K!<#  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) "nno)~)u  
   Z[S+L"0  
   sRECT.Right = -1   '检查新设置值 DF|s,J`98  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) TeCpT2!5j  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom  r;X0 B  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) cCGXB|9fYR  
   /'fDXSdP  
   If TESTSignal = False Then *;E+9^:V  
      'ExitGrabber _j\=FJz[  
   End If @[lc0_ b  
   8Vhck-wF  
   .r5oN+?e  
   89#0vG7m  
   '设为实时采集状态 $uK"@Mw  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) xe vP2pYG:  
   M2Fj)w2   
   A'QGTT  
   '单帧采集 lV6[d8P  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 S} Cp&}G{P  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) fR%1FXpK&  
   okCaptureTo hBoard, BUFFER, 0, 1 'single WAXts]=  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 % `1CE\f  
   '   Sleep 20 hUvuq,LH_  
   'Loop RL OQ>vYY  
   okGetCaptureStatus hBoard, True EvQwGt1)P  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize  0(/D|  
   '写入768*576测试图象 ]~S+nl yd<  
   ArrayToBMP TmpBMP yPh2P5}H>  
   yL x .#kx6  
   '打开数据库 >04>rn#},,  
   Set conn = New ADODB.Connection QsJW"4d  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ OrEuQ-,i@  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ DE\bYxJ  
      "; Mode=Read|Write" RrdtU7i 3  
   conn.Open q,+kPhHEgy  
   g+ 1=5g  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) ~!:Sp_y  
   frmRecord.Visible = True aC~n:0 v  
   frmQuery.Visible = True ;GFB@I@  
   Load frmReceiveFromComm n,a5LR  
   'Rd*X6dv  
   '调试参数 _<RR`  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then _pko]F|()  
     SignalBox.Visible = True l()MYuLNV  
   End If S50x0$%<W  
   If InStr(UCase(Command()), "/COMM") > 0 Then 6mpg&'>  
     frmReceiveFromComm.Visible = True +VLe'|  
   End If Dnm.!L8  
]ZzG!7  
End Sub 0$L0fhw.  
oA;Ty7s  
Sub ExitGrabber() h<' 5q&y  
  '关闭数据库 A : bPIXb  
  '关闭采集卡 ,o@~OTja*  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) R 4$ Q3vcH  
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ~J>gVg%66  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) -N8cjr4l  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) o;4e)tK  
  okStopCapture hBoard  /E{dM2  
  okCloseBoard hBoard ' q<EZ {  
  CloseHandle hFile yC 7Vb P  
  Close #hBCFile ) Zb`~w  
  conn.Close `o8{qU,*]N  
  End DxKfWb5 R  
End Sub G</I%qM  
Wd` QpW  
Function ArrayToBMP(ByVal File As String) LX\*4[0%K  
Dim BytesWrite As Long SU%rWH  
s'aV qB  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ ,)rZAI  
  CREATE_ALWAYS, 0&, 0&) tdnXPxn[  
?(/j<,m^  
If hTmpFile = 0 Then l P$r   
   ArrayToBMP = False O (D5A?tv!  
   Exit Function $rpTs?j*K$  
End If iQ|,&K0d]  
S`@6c$y k  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN Ly)(_Tp@+  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& yI.}3y{^5  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN *M&VqG4P9w  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& ;j>Vt?:Pw  
'`]n_$f'  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN 2@3.xG  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& grCO-S|j^  
Awa|rIM  
If BytesWrite < pFrameSize Then 1KYbL8c  
  ArrayToBMP = False xa{<R+LR  
End If \YlF>{LVe  
RHx+HBZ  
CloseHandle hTmpFile I51oG:6fR?  
71l"m^Z3zy  
End Function !<=%;+  
v-;XyVx  
Function ArrayToBMP1(ByVal File As String) wHOlj)CZ  
..q63dr  
Dim BytesWrite As Long =qp}p'BYe  
cF_ ;hD|YZ  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ 5&<d2EG6l'  
  CREATE_ALWAYS, 0&, 0&) 6/mkJj+"  
Dpdn%8+Z  
If hTmpFile = 0 Then @UpC{M--Wr  
   ArrayToBMP1 = False i,'Ka[6   
   Exit Function yD[zzEuQ  
End If B]|6`UfB  
^s2m\Q(  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN 7O+Ij9+{n  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& ,zN3? /7  
'o/N}E!Pt  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN jKj=#O  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& 6/[Z178m  
1J-Qh<Q   
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN (lN ;xT`=  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& )ew[ Ak|  
OHHNWg_5  
If BytesWrite < pBufferSize Then NDRW  
  ArrayToBMP1 = False U EEBWzH  
End If $K?T=a;z  
xi?P(s A  
CloseHandle hTmpFile ke}Y 2sB  
%9QMzz5  
End Function e|b~[|;*=  
WO.0K5nfk  
'使用该过程建立的文件要求在用后关闭 {}g %"mi#  
Public Function ArrayToBMP2(File As String) As Boolean ;v,9 v;T  
bvip bf[m<  
Dim BytesWrite As Long jB%"AvIX  
%Ui{=920  
ArrayToBMP2 = True /i{tS`[F2a  
my\o P(e\  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ i5 L:L   
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) :vYt Mp  
_oJ2]f6KX  
If hTmpFile = 0 Then *b Ci2mbm@  
   ArrayToBMP2 = False aJ6#=G61l  
   Exit Function ,G[r+4|h  
End If dNUR)X#e  
kUn2RZ6$#  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN >P\h,1  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& *|LbbRu  
.Na&I)udX.  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN DHm[8 Qp  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& Q(IJD4  
9u ?)vR[@e  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN ~*7O(8  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& &r'{(O8$N  
selP=Q!  
If BytesWrite < pFrameSize Then /lLov.  
  ArrayToBMP2 = False 8ji^d1 G,  
End If b|sc'eP#?  
8"km_[JE e  
CloseHandle hTmpFile aJ :A%+1  
(ve+,H6w\  
End Function "[jhaUAK  
='dLsh4P2N  
Private Function TESTSignal() As Boolean *?_qE  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long cW)Oi^q%o2  
YVB% kKv{  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) *.m{jgi1X  
oe(9mYWKa6  
If extsign = 1 Then Sc&)~h}YF  
   TESTSignal = True 6kt]`H`cfJ  
Else 5c: '>  
    If extsign = 0 Then &GdL 9!hH  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly RDs,sj/Y9?  
        TESTSignal = False 1m JbQ#5  
        Exit Function Kajkw>z  
    End If mb0n}I_AC  
End If b:P\=k]8#  
&l. x:eD  
'测试视频输入类型 T!l mO?Q  
'video type wv, GBZ-f  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 `*e4m  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) [ 8F \;  
If videotype = 1 Then 87^:<\pp  
        '"隔行信号(Interlaced)" 8W~ lU~-  
Else M!N` Orz  
   If videotype = 0 Then {q&@nm40  
       '"逐行信号(Non-interlaced)" j|VXC(6 P,  
   Else DeOXM=&z  
     If videotype = -1 Then L]k*QIn:h  
       ' "不支持" Ro'jM0(KE  
     End If -|m$YrzG  
   End If CN.6E<9'kK  
End If  6Xdtr  
koOyZ>  
'测试垂直扫描线数 %{R _^Y8t  
'video scanlines r0F_;  
scanlines = -1 2c}B  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) 3<c*v/L{C\  
    If scanlines = -1 Then Q0V^PDF  
        ' "不支持" O.*jR`l  
    Else |EF>Y9   
        'Trim(Str(ScanLines)) + " 行数/幅" T>#TDMU#Fm  
    End If O6y @G .+  
<9ma(PFa  
'测试帧频 +w "XNl  
'video field frequency C _8j:Z&  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) Bu7A{DRf  
    If fieldfrq = -1 Then 7{n\y l?  
        'lblSignal(8) = "不支持" p{NPcT%&  
    Else OuB2 x=B  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" zzX<?6MS  
    End If L~*u4  
End Function g-."sniP$g  
3YR* ^  
/@&(P#h  
Sub PicIdentify() MWM +hk1fs  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 c}\ ' x5:o  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 n}19?K]g  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 R=`U4Ml;  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 $"Afy)Ir  
3PfiQ|/b  
  Dim fPTR As Long, cFrame As Long QT#b>xV)1  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer VR "u*  
     XjX 2[*l  
x.I][(}  
cFrame = 0 qh%i5Mu  
aSRjFL^   
hzaU8kb  
Do While cFrame < tFrames "?$L'!bM@  
   RNGO~:k?r  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) \WWG>OUh.U  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) +Dv7:x7  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize !0`lu_ZN  
   T` uDlo  
  frmRecord.RText.Text = Str(cFrame) GF&_~48GD  
  frmRecord.RText.Refresh #`/bQ~s  
       j*XjY[  
  If CheckMark = True Then avlqDi1l  
   ArrayToBMP TmpBMP f[x~)=  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) StEQ -k  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" ^>-+@+( r  
   x@h tx?   
   DrawSlice 21U&Ww  
   PmHd9^C  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) (FuEd11R  
   'If i = vbNo Then P"b8!k?   
   '  Exit Do Ujf,6=M  
   'End If +|6`E3j%  
   'cFrame = cFrame + 1 $nj\\,(g  
   iBucT"d]  
  End If Fav?,Q,n  
  DoEvents ze&#i6S  
  cFrame = cFrame + 1 T-^0:@5o9  
Loop ^Sw2xT$p{j  
End Sub 5`"iq "5Cf  
UanEzx%  
veV_be{i  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 2zhn`m  
yKYl@&H/%  
'如标志区模式反差存在则为TRUE,否则返回FALSE (}G!np  
L/~D<V  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long h{I`7X  
CheckMark = True ?fV?|ZGZI  
   z^'n* h  
'复制标志区 a_Jb> }  
For i = 1 To mkH G(3;;F7"  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW -!l^]MU  
Next i GSP?X$E  
GjEqU;XBi  
For j = 1 To PilarW * PilarH / 2 >zQNHSi  
   mTop = mTop + MKpilar(j) SgiDh dE  
Next j IAYACmlN&  
DE%fF,Hk3  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH (i\)|c/a7  
   mBot = mBot + MKpilar(j) sa G8g  
Next j w^3|(F  
"9w}dQ  
mTop = mTop / PilarW / PilarH * 2 hqL+_| DW  
mBot = mBot / PilarW / PilarH * 2 p+$+MeBz  
avg4K*vv  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 0 <g{ V  
6F(hY !}5  
'平均值极值化 \Dfm(R  
  For j = 1 To PilarH * PilarW E30Ln_^o  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) ^_sQG  
  Next j 0*/kGvw`i  
   NddO*`8+)  
mTop = 0: mBot = 0 [P{a_(  
For j = 1 To PilarH * PilarW / 2 Y17hOKc`  
  mTop = mTop + MKpilar(j) " CM ucK  
Next j 40u7fojg2  
JRXRi*@  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW _C20 +PMO  
  mBot = mBot + MKpilar(j) u\f3qc,]F  
Next j teAukE=}  
YGETMIT(  
d .p'pGL  
  mTop = mTop / PilarH / PilarW * 3 :<H8'4>  
  mBot = mBot / PilarH / PilarW * 3 9:Si] Pp+S  
   ;= a_B1"9u  
z?4=h Sy  
If mBot > iWhite And mTop < iBlk Then uxb:^d?D!  
  CheckMark = True 6AAswz'$P  
Else _B3zRO  
  CheckMark = False #BsW  
End If U9 bWU'  
End Function #ra*f~G  
`kFiH*5%z  
Sub Capture1Frame() okstY4f'  
   okCaptureTo hBoard, BUFFER, 0, 1 'single 2 L:$aZ  
   okGetCaptureStatus hBoard, True "Kq>#I'%W  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize D^|9/qm$  
End Sub )&:L'N  
g  rspt}  
yPoSJzC=[  
Sub CopyMark(iBlk As Integer, iWhite As Integer) 1 DqX:WM6  
'复制标志区并返回标志区暗区与亮区的亮度平均值 `;$h'eI9  
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 eeW`JG-E  
   >k;p.Pay%  
'复制标志区 ET.dI.R8  
For i = 1 To mkH QXs8:;T  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW ywO mQc Z  
Next i W&YU^&`Yr  
J'e]x[Y  
For j = 1 To mkW * mkH / 2 FIS "Z(  
   mTotal = mTotal + MKpilar(j) V#L'7">VP  
Next j DHv2&z H  
Lc|{aN  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 b1xpz1  
pM9yOY  
mTotal = 0 q*bt4,D&Es  
For j = mkW * mkH / 2 + 1 To mkW * mkH |NJ}F@t/5  
   mTotal = mTotal + MKpilar(j) -%,"iaO  
Next j P\AqpQv  
BZ+;n |<r  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 |4fF T `  
>'b=YlUL  
'背景亮度 ~>g+2]Bn>$  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW 2"X~ju  
  For i = 1 To 4 * FrameW Vm,,u F  
    bsTotal = bsTotal + BsLine(i) ugLlI2 nJ  
  Next i o_$&XNC_  
  bsAV = bsTotal / FrameW / 4 !),t"Ae?>  
)M:)y  
End Sub I]9 C_  
N 9LgU)-Jt  
9->q|E4  
Sub AdjIMGbright(Optional bInit As Boolean = True) 8EI:(NE*J  
/8c&Axuv  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) m*Cu-6&qd  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 X{\jK]O  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 X#`dWNrN  
     QIK 9  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer v+6e;xl8  
   )+EN$*H  
  '按标准亮度与对比度采集一帧,确定背景亮度 ,[l`zp  
  currentContr = 128   '初始对比度 orqJ[!u)`  
  currentBr = 128   '初始亮度 Oaa"T8t  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 Jzex]_:1~  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 Z9[+'ZWt  
  DoEvents sJU`u'w  
  Capture1Frame )/>A6A:  
  '获得图像上缘4行象素 ~=cmM  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW ^2C>L}  
  CopyMark iBlack, iBright   '图像标志区亮度 +qy 6d7^  
  For i = 1 To 4 * FrameW S-c ^eLzQ  
    bsTotal = bsTotal + BsLine(i) p!DP`Ouc3\  
  Next i g`[$Xi R  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 2hq\n<  
   RB$ z]/=  
  Select Case bsAV >{nH v)  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 IZrk1fh  
       currentBr = 150 q7_+}"i  
       currentContr = 60 ?lKhzH.T  
     Case 61 To 80   '有可见背景 (>7>3  
       currentBr = 140 ? JXa~.dA  
       currentContr = 70 nB] Ia?  
     Case 81 To 100  '有清晰背景 :FHA]oec1  
       currentBr = 128 5jZiJw(  
       currentContr = 80 +~ 35G:&:  
     Case 100 To 150  '有明亮背景 !YE zFU`L  
       currentBr = 140                '5:30-6:00钟实测数据 1m)M ;^_  
       currentContr = 50 t)a;/scT  
     Case 151 To 180 !%[S49s  
       currentBr = 130 _ck[&Q  
       currentContr = 60 !0" nx{7.  
     Case 181 To 220  '背景全为白色 tTuX\;G  
       currentBr = 110 i=rH7k  
       currentContr = 130 bK*~ol  
     Case 221 To 255  '背景全为白色 [Y/:@t"2y  
       currentBr = 100 BJy;-(JP  
       currentContr = 100 T1bd:mC}n  
  End Select  3+U]?7t  
   g 7n "  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 L l}yJ#3,  
        Case 100 To 150 &%,DZA`  
          currentBr = currentBr - 10 BC77<R!E)  
        Case 151 To 255 KY.ZT2k  
          currentBr = currentBr - 20 ej^3Y Nh&  
  End Select q-_' W,  
   H=~9CJ+tc  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 k\aK?(.RC7  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 /tj$luls5  
End Sub >5ChcefH  
Ia4)uV8  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) _A'{la~k  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long m3 -9b"  
     *C2R`gpBI  
    For i = 1 To 8 ?9xu{B>6  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& ^sClz*%?  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& d5!!Ut  
    Next i ZA820A>2!  
     ,:GN;sIXg  
    For j = 1 To 1024 G;1?<3   
      L1 = L1 + LeftBK(j, 0) t'(1I|7  
      L2 = L2 + LeftBK(j, 1) LW:1/w&pv  
      R1 = R1 + RightBK(j, 0) MbA\pG'T  
      R2 = R2 + RightBK(j, 1) 75NRCXh.  
    Next j ( kw5>c7  
    diffL = Abs(L1 - L2) / 1024 PJ\0JR7a  
    diffR = Abs(R1 - R2) / 1024 [Qj;/  
End Sub |He=LQ }0  
{vVTv SC  
Function CheckSlice() As Boolean %!|O.xxRR  
  CopySlice avSL, avSLR, avSLL SSA W52xC  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then Ed-M7#wY  
    CheckSlice = True z]@6fM[  
  Else |.U)ll(c  
    CheckSlice = False Vw~\H Gs/~  
  End If h"W8N+e\  
End Function {y-^~Q"z  
w/m:{cHk  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) -t-tn22  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long (.23rVvnT@  
  For i = 1 To FrameH 5kMWW*Xtf  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize =.Tv)/ea  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize ,D=fFpn  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize n7! H:{L  
  Next i |FNCXlgZ  
  For i = 1 To FrameH XKU=oI0\j  
    For j = 1 To sSize 6v732;^  
       total = total + Slice(j, i) Nneo{j  
       totalL = totalL + SliceL(j, i) )^x K   
       totalR = totalR + SliceR(j, i) A)NkT`<)  
    Next j (f#b7O-Wn  
  Next i |yY`s6Uq  
  avSL = total / FrameH / sSize (K<9h L+X  
  avSLR = totalR / FrameH / sSize g0R[xOS|  
  avSLL = totalL / FrameH / sSize uY#TEjGh]  
End Sub 8dO?K*J,H'  
i.y)mcB4  
Sub DrawSlice() qoX@@xr1  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B Q8nId<\(  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B ',=g;  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B r'4:)~]s  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) iiC!|`k"  
End Sub 8e2?tmWM  
Sub DrawMark(pic As Control) GbZ;#^S  
   Dim i As Long, j As Long A :e;k{J  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B z5 m> H;P  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B  jNyoN1M  
   For i = 1 To PilarH l#qv 5f  
     For j = 1 To PilarW A9:NKY{z  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) [V}, tO|  
     Next j PK2~fJB  
   Next i Da1aI]{I  
End Sub \RG!@$i  
Xm!-~n@-m7  
Function avIMG() As Integer i$^ZTb^  
  Dim i As Long, j As Long, totalIMG As Long Wf26  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize egR-w[{  
  For i = 1 To pFrameSize '7 )"  
    totalIMG = totalIMG + pBuffer(i) NXk!qGV2  
  Next i ^ c%N/V \  
  avIMG = totalIMG / pFrameSize )"<8K}%!  
End Function \>Zvev!s  
osP\D iQ  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer ajH"Jy3A  
  Dim i As Long, j As Long, totalIMG As Long >U!*y4  
  For i = 1 To FrameH ftbpqp'  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth } cN W^4F  
  Next i l=m(mf?QBg  
  For i = 1 To FrameH * barWidth md Gwh7/3  
    totalIMG = totalIMG + pBuffer(i) MuI2?:~:*4  
  Next i SNpi=K!yn  
  avRegion = totalIMG / pFrameSize +j/~Af p5f  
End Function Ud(`V:d  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 #f,y&\Xmf  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 Z;DCI-Wg  
6W2hr2Zy9  
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  A[N {  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Gh( A%x)  
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 i@P }{   
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 `` K#}3  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long $lwz-^1t.  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 W;_E4  
{MBTP;{*~  
Y wDt.6(+,  
Private Const GENERIC_READ = &H80000000 6g:|*w  
Private Const GENERIC_WRITE = &H40000000 MgM D\  
Dm0a.J v  
Private Const FILE_SHARE_READ = &H1 !36]ud&  
Private Const FILE_SHARE_WRITE = &H2 <i. a pBH  
Private Const OPEN_EXISTING = 3 Y3U9:VB  
P:xT0g tt  
Private Const INVALID_HANDLE_VALUE = -1 V"KS[>>f  
k!L@G Q  
'//file seek PAF8W lg  
Private Const FILE_BEGIN = 0 *%FA:Y  
Private Const FILE_CURRENT = 1 } p:%[  
Private Const FILE_END = 2 gE7L L=x  
S Z U \i*  
Private Const ERROR_SUCCESS = 0& (P|pRVO  
5Fe FN)  
'//device io control ;{Ux_JEg  
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 t+Bf#:  
+0$/y]k  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 mI1H!  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 GZ#aj|  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 Jh/ E@}'  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 Sv[5NZn0&  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C 3lxc4@Zmd  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 ]+ Ixi o  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F Lxl_"k G  
[:EvTY  
'//type iw?I  
Private Type LARGE_INTEGER ~mz%E  
    lowpart As Long  $)~   
    highpart As Long 5TKJWO.  
End Type P ,mN >  
Dt }rR[yJ  
Private Enum MEDIA_TYPE w Iv o"|%  
    Unknown E /<lGm:.  
    F5_1Pt2_512 6dqsFns}e  
    F3_1Pt44_512 A<MtKb  
    F3_2Pt88_512 'Prxocxq  
    F3_20Pt8_512 Hf gz02Z$  
    F3_720_512 VR? ^HA9  
    F5_360_512 2[yBD-":  
    F5_320_512 s][24)99  
    F5_320_1024 #s5N [uK^m  
    F5_180_512 |UUdz_i!:  
    F5_160_512 &:#h$`4  
    RemovableMedia oYM3Rgxf9Q  
    FixedMedia w}cY6O,1  
End Enum 5jcte< 5I_  
TD@v9  
Private Type DISK_GEOMETRY Yl cbW0'c  
    Cylinders           As LARGE_INTEGER L@Nu/(pB=  
    MediaType           As MEDIA_TYPE WgQBGch,!  
    TracksPerCylinder   As Long afG{lWE)  
    SectorsPerTrack     As Long qt e>r  
    BytesPerSector      As Long (8a#\Y[b  
End Type 8MwK.H[U  
{p<Zbm.  
'//private vars 1 jb/o5n;  
Private hDisk           As Long             'disk handle [1G^/K"  
Private lpGeometry      As DISK_GEOMETRY    'disk info G=9d&N  
Private lBufferSize     As Long             'the buffer size of read/write u{H?4|'(  
NZLAk~R;0  
Public Function OpenDisk(ByVal FileName As String) As Boolean |AZW9  
'// 打开磁盘 kSncZ0K{  
    hDisk = CreateFile(FileName, _ |UnUG  
                        GENERIC_READ Or GENERIC_WRITE, _ 4Ft1@  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ Q4]4@96Aj  
                        ByVal 0&, _ bCv{1]RC2  
                        OPEN_EXISTING, _ V4w=/e _  
                        0, _ E+95WF|4k"  
                        0) W6c]-pc  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) f:JlZ&  
End Function _"a=8a06G  
/ +K?  
Public Function CloseDisk() As Boolean )u:Q) %$t  
'//关闭磁盘 },$0&/>ft  
    CloseDisk = CloseHandle(hDisk) ' I}: !Z  
End Function ` |Z}2vo;j  
]3{0J  
Public Function GetDiskGeometry() As Boolean tfO#vw,@  
'//获取磁盘参数 <c N~jv-w$  
    Dim dwOutBytes      As Long uRV<?y%  
    Dim bResult         As Boolean v6(E3)J7  
     B^ 7eoW  
    bResult = DeviceIoControl(hDisk, _ S56]?M|[  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ y2L#:[8  
                                ByVal 0&, 0, _ sN=6gCau  
                                lpGeometry, Len(lpGeometry), _ k"UO c=   
                                dwOutBytes, _ <U Zd;e@  
                                ByVal 0&) iP@6hG `:  
     1`0#HSO  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack 8T[ 6J{|C  
    GetDiskGeometry = bResult hf6f.Z  
End Function *Nb#W!  
z,SYw &S  
Public Sub GetDiskInfo(MediaType As Long, _ $D1w5o-  
                        Cylinders As Long, _ LaFZ?7@|}  
                        TracksPerCylinder As Long, _ }GwVKAjP  
                        SectorsPerTrack As Long, _ g2cVZ!GIj  
                        BytesPerSector As Long) V<Z'(UI  
'//返回磁盘的参数 I<oL}f  
    MediaType = lpGeometry.MediaType tl yJ mdl  
    Cylinders = lpGeometry.Cylinders.lowpart 6=_~ 0PcY  
    TracksPerCylinder = lpGeometry.TracksPerCylinder Ut@RGg+f8  
    SectorsPerTrack = lpGeometry.SectorsPerTrack 7j<e)"  
    BytesPerSector = lpGeometry.BytesPerSector (?)7)5H  
eU+ {*YJg  
End Sub |s+0~$O;  
U\@A _ B  
Public Property Get BufferSize() As Long I,@r5tK o  
'//返回每次读/写的缓冲大小 UPU+ver  
    BufferSize = lBufferSize ;U =q-tb  
End Property >TL^>D  
6]cryf&b  
Tb;d.^  
Public Function LockVolume() As Boolean <i?a0  
'// 将卷锁定 5f'DoT  
    Dim dwOutBytes  As Long >pyj]y^3  
    Dim bResult     As Boolean ` TqSQg_l  
      l~s7Ae  
    bResult = DeviceIoControl(hDisk, _ koG{ |elgB  
                                FSCTL_LOCK_VOLUME, _ w0m^ &,;#  
                                ByVal 0&, 0, _ EV M7Q>  
                                ByVal 0&, 0, _ 8TV;Rtl  
                                dwOutBytes, _ oih5B<&f#  
                                ByVal 0&) ;Y9=!.Ak0y  
    LockVolume = bResult Q[n\R@  
End Function t:~t@4j}  
Rg&- 0b  
~`8hwR1&z  
Public Function UnlockVolume() As Boolean LwqC ~N  
'// 将卷解锁 , $*IzL~  
    Dim dwOutBytes As Long xg`h40c  
    Dim bResult As Boolean =HDI \LD<  
     +!t}  
    bResult = DeviceIoControl(hDisk, _ imB#Eo4eY  
                                FSCTL_UNLOCK_VOLUME, _ IE~%=/|  
                                ByVal 0&, 0, _ &jA\hg#9  
                                ByVal 0&, 0, _ d;[u8 t  
                                dwOutBytes, _ >c8GW >\N  
                                ByVal 0&) /hWd/H]  
    UnlockVolume = bResult R{Z-m2La  
End Function < E|s\u  
V)M1YZV{  
|iYg >  
Public Function DismountVolume() As Boolean vYmSKS  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 +]xFoH  
    Dim dwOutBytes As Long RSfM]w}Hq#  
    Dim bResult As Boolean 0Wvq>R.(]7  
     y8Xv~4qQW  
    bResult = DeviceIoControl(hDisk, _ Z$KLl((  
                                FSCTL_DISMOUNT_VOLUME, _ -XK0KYhgW  
                                ByVal 0&, 0, _ jjs&`Fy,  
                                ByVal 0&, 0, _ g:ErZ;[  
                                dwOutBytes, _ YB))S!;Ok  
                                ByVal 0&) 'vV$]/wBF  
    DismountVolume = bResult AbwbAm+  
End Function QWnndI_4p  
 }alj[)  
G#`\(NW  
Public Function ReadDisk(ByVal Cylinders As Long, _ MZv]s  
                    ByVal Tracks As Long, _ }3 m0AQ;K  
                    db() As Byte) As Boolean b}9[s  
'//按柱面和磁道来读取磁盘数据 _m E^rT  
    Dim iPos    As Long vE, 37  
    Dim lRead   As Long \BV 0zKd  
     0*%&>  
    iPos = Cylinders * Tracks * lBufferSize @`"AHt  
     z$lF)r:Bc  
    If SeekAbsolute(0, iPos) Then kTIYD o  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) _o6G6e,  
    End If |f( ~@Q:  
End Function n^(A=G  
NLd``=&  
Public Function WriteDisk(ByVal Cylinders As Long, _ CJknJn3m&  
                     ByVal Tracks As Long, _ bKVj[r8D~  
                     db() As Byte) As Boolean gT+Bhr  
'//按柱面和磁道来写磁盘数据 ^>&k]T`  
    Dim iPos    As Long A?!I/|E ^;  
    Dim lRead   As Long 1MsWnSvzf  
     q z&+=d@  
    iPos = Cylinders * Tracks * lBufferSize V~MiO.B  
     8ovM\9qT  
    If SeekAbsolute(0, iPos) Then &-yGVx  
        WriteDisk = WriteBytes(lBufferSize, db()) )emOKS  
    End If $o?@ 0  
End Function tq50fq'  
`iKj  
4'pS*v  
'///////////////////////////////////////////////////////////////////////////////////// ?9MVM~$  
'//file system V\~WvV  
.lG5=Th!  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean yq[Cq=rBk  
'//seek file OKOu`Hz@  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte 0'Z\O   
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) yqOuX>m1c  
    If LowPos = -1 Then imL_lw^?  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) j=+"Qz/hr_  
    Else 7^TV~E#  
        SeekAbsolute = True mg:!4O$K  
    End If EpPf _ \o  
     Tpp&  
End Function `s#Hq\C  
G* b2,9&F  
CG]Sj*SA~  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean 0[A9b,MMVO  
'//read data to array # Doq P:  
    Dim RetVal    As Long 9W`Frx'h1  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) 5r {;CKKz  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF |+IZS/W"  
    ReadBytes = Not (RetVal = 0) B6P|Z%E;D6  
     Yd cK&{  
End Function hqSJ(gs{  
gYop--\14]  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean al9.}  
'//write data from array Oc?+M 5  
    Dim RetVal As Long xG&SX#[2  
    Dim BytesToWrite As Long {U!St@  
    Dim BytesWritten As Long R>@uY( >dJ  
     \$*$='6"  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) VObrlOkp  
     KLQTKMNv  
    WriteBytes = Not (RetVal = 0) K r`]_m  
End Function bF}V4"d,B3  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 [&S}dQ"  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ 7cg*|E@  
DWORD dwCB; W1aa:hEf  
LARGE_INTEGER  offset; nQK|n^AU/  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); d^ ZMS~\*  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); C&\5'[*  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ m#H3:-h,  
DWORD error = GetLastError(); 8euZTfK9e  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); $K~LM8_CKy  
return FALSE; C_:k8?  
} ,hxkk`  
return TRUE; E N^Uki`  
} N6QVt f.  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : 3+7^uR$/I4  
uUR~&8ERX  
介个真的看不懂。 6"j_iB  
你说你老啦,喜欢怀旧了,才想起来填坑。 J<n+\F-s  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 CE NVp"C/`  
Wk;5/  
}S_oH9A  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : )n7l'}o?+  
佩服,玩也玩得这么专业! mo]KCi  
(n( fI f  
6&v? )o  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : Cm$1$?J  
引用第19楼伍胥之于06-14-2010 12:33发表的  : +#@"*yj3  
}S-DB#6  
Vv bFp  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 Yx'res4e  
Q~D`cc|]  
我连一级也没有考过。 ^(}58 5b  
.
+eX)48  
~`;rNnOT3  
引用
@\_x'!R  
矬子里拔将军... 9ch#}/7B  
你们那里的俗语是吧? A?Qa 4i  
3CjL\pIC  
我们这里说"矮子里拔长脚"..应该是同一个意思... Gnm4gF!BI  
T70QJ=,  
有趣....各地有表达意思一样却方式不同的俗语.... ajl 2I/D  
!33#. @[  
73A)lU.  
你的文章写的有脸皮,没屁眼的, @xsP5je]  
让看客大为不满... SZ![%)83  
}G46g#_6d>  
你等着,,估计你以后接到的午夜凶铃就多了... B-.v0R`5  
W) j|rz.  
" }gVAAvc7  
我到现在也没有接到你的午夜凶铃呢! Wm'QP4`  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  : hli|B+:m"  
每个人的故事对其他人都是故事, q"KnLA(  
自己的故事也是其中之一. *x~xWg9^  
跳出来看, k?BJdg)xJ  
不过是众人中的一个人的故事. >e5 *prx+  
a^qNJ?R !  
所以,接着听故事. (LvS :?T}  
FFhtj(hVgc  
女人们有兴趣的就等老伍开个新帖或者跟贴, $$i. O}  
听他痛说恋爱革命历史.... 5/[H+O1;  
~pk(L[G  
杂家接着听他自学程序员历史, >M%\T}5  
高级程序员考了吗? A \rt6/  
31^cz*V  
bo"%0 ?3n  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! 3T\l]? z  
n;HHogA  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 U;_[b"SW%  
Yw3oJf&  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 :WGtR\tK  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : @53k8  
哦, 打倒忽悠大家的家伙.      [u@Jc,  
U/ V  
Jk|Q`h  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : nMDxH $O  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 :.(;<b<\  
&uP~rEJl+  
.iCDXc{#  
其实标题没有什么,卡总既然改了就不必再改回了。  [=O/1T  
dpQG[vXe  
主要是当初写的时候真是顶着锅盖写的。 4${jr\q]  
c,so`I3rI  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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