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

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

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

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

精彩

感动

搞笑

开心

愤怒

无聊

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

显示用户信息 
101楼  发表于: 2024-12-28   
姐妹儿,你也快RETIRED 了, 你欠得帐我可记得呢! 你该单独开帖填坑了。 g<$2#c}  
:N_DJ51  
引用
引用第20楼newport93于06-14-2010 13:47发表的  : d*U<Ww^q  
Bf[`o<c  
老五,I 服了U。 XBcbLF  
{DUtd u[  
哪一天等俺退休了,也写一个The Non-Progamming career of an ex-programmer。哈哈哈。。。。。 6y^GMlsI  
v5{2hCdt  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
100楼  发表于: 2021-07-18   
Dim bContinue As Boolean "-rqL  
L gy^^.  
Dim regEX As New RegExp p|BoEITL  
Dim paraCounter As Long  '全局段落计数,仅在主程序中可读写,其它过程函数应为只读 zXbA$ c  
)dJx82" l  
Dim LastTitle0String As String, LastTitle0No As Long U: )Gc  
Dim LastTitle1String As String, LastTitle1No As Long $ 1m}lXk  
Dim LastTitle2String As String, LastTitle2No As Long bUYjmb2g)  
Dim LastTitle3String As String, LastTitle3No As Long ^oW{N  
Dim LastTitle4String As String, LastTitle4No As Long M[Nv>  
Dim LastTitle5String As String, LastTitle5No As Long YJ~mcaw  
Dim LastTabelString As String, LastTableNo As Long RU>qj *e  
Dim LastFigureString As String, LastFigureNo As Long K7nyQGS  
8 tIy"5  
Dim strSeperator As String !*?9n ^PaF  
9}4~3_gv;M  
Sub ConvertWidth(fTEXT As String, rText As String) 59+KOQul6  
        Selection.Find.ClearFormatting O,NVhU7,  
        Selection.Find.Replacement.ClearFormatting ',rK\&lL6  
        Selection.Find.Wrap = wdFindContinue C\dk} A  
        Me.txtStatus.Text = "转换全角数字字母" & fTEXT & "形式为半角" & rText OF-VVIS  
        DoEvents 47f\  
        Selection.Find.Execute findtext:=fTEXT, replacewith:=rText, Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchCase:=True YPCitGBl  
End Sub ?|\wJrM ]  
UG}2q:ST  
Sub ClearDomain() k;qWiYMV  
        With Selection.Find 0y+i?y 9  
            .ClearFormatting -YrMV oZl  
            .Replacement.ClearFormatting ~sq@^<M)s  
            .Wrap = wdFindContinue h[ <l2fy  
            Me.txtStatus.Text = "清除所有域代码" dt"&  
            DoEvents XBO( *6"E  
            .Execute findtext:="^d", replacewith:="", Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue, MatchWildcards:=False (qz)3Fa  
        End With Ji6.-[:  
End Sub roBb8M|q  
,]Xn9 W  
Private Sub cmdCheck_Click() '6*9pG-  
    bContinue = True | :id/  
    Dim NoSeries1(1 To 16) As String j"VDqDDz  
    Dim NoSeries2(1 To 16) As String E\p"%  
    Dim NoSeries5(1 To 16) As String 1083p9Uh  
    Dim NoSeriesRM(1 To 16) As String V\l@_%D[(v  
    Dim paraTotal As Long, ParaText As String j5]ul! ji  
    Dim ttString As String, ttNo As String sc6NON#  
     4G XS(  
    Dim ShapeCounter As Long, ShapeHeight As Long, ShapeWidth As Long l/\D0\x2  
[8 H:5 Ho  
    Me.txtStatus.Visible = True :)&vf<JL  
    Me.lbParaType.Visible = True ( 5uSqw&U  
    Me.cmdCheck.Enabled = False g=,}j]tl  
     a(ml#-M  
     9b@yDq3hQ  
     TNK1E  
     ;BKU _}k=  
    Dim ParaType As String, rText As String M* {5> !\  
     B<a` o&?  
    Selection.WholeStory cL~YQJYp  
    Selection.NoProofing = True 8lA,3'z  
     BL"7_phM,  
    tm1 = Now dep"$pys>  
     <td]k%*+  
        ActiveWindow.View.Type = wdNormalView uv^x  
     J(w FJg\/  
    NoSeries1(1) = "一" JO90TP $  
    NoSeries1(2) = "二" Htln <N  
    NoSeries1(3) = "三" k]`-Y E  
    NoSeries1(4) = "四" >Q?8tGfB  
    NoSeries1(5) = "五" 4%I[.dBnM  
    NoSeries1(6) = "六" KeXt"U  
    NoSeries1(7) = "七" >VX'`5r>uw  
    NoSeries1(8) = "八" }6=)w@v  
    NoSeries1(9) = "九" tCar:p4$  
    NoSeries1(10) = "十" KDH<T4#x  
    NoSeries1(11) = "十一" MX.?tN#F|H  
    NoSeries1(12) = "十二" vbZ!NO!H  
    NoSeries1(13) = "十三" A r>BL2@  
    NoSeries1(14) = "十四" 18Ju]U  
    NoSeries1(15) = "十五" c& bms)Jwa  
    NoSeries1(16) = "十六" "^ ;h'  
     evNe6J3  
    NoSeries2(1) = "㈠" ^Xu4N "@  
    NoSeries2(2) = "㈡" ]]3rSXs2}J  
    NoSeries2(3) = "㈢" LhM$!o?W  
    NoSeries2(4) = "㈣" (Nv -wU  
    NoSeries2(5) = "㈤" Nd{U|k3pL  
    NoSeries2(6) = "㈥" *;~u 5y2b  
    NoSeries2(7) = "㈦"  X>P|-n#  
    NoSeries2(8) = "㈧" S kB*w'k  
    NoSeries2(9) = "㈨" gU NWM^n  
    NoSeries2(10) = "㈩" {t!7r_hj  
     0r8Wv,7Bo  
    NoSeries5(1) = "①" BBv+*jj  
    NoSeries5(1) = "②" NK(_ &.F  
    NoSeries5(3) = "③" Chx+p&!  
    NoSeries5(4) = "④" ) S /=5Uc  
    NoSeries5(5) = "⑤" 2% OAQ(  
    NoSeries5(6) = "⑥" -|>T? t'K  
    NoSeries5(7) = "⑦"  ,CuWQ'H  
    NoSeries5(8) = "⑧" #N'9 w .  
    NoSeries5(9) = "⑨" %H,s~IU  
    NoSeries5(10) = "⑩" %O<8H7e)V  
     &ODo7@v`1  
     bSz7?NAp  
    NoSeriesRM(1) = "I" \xv(&94U  
    NoSeriesRM(2) = "II" xgpf2y!{  
    NoSeriesRM(3) = "III" 6] kBG?m0  
    NoSeriesRM(4) = "IV" VxARJ*4=Y  
    NoSeriesRM(5) = "V" N^@:+,<3  
    NoSeriesRM(6) = "VI" fFWi 3.  
    NoSeriesRM(7) = "VII" F[`dX  
    NoSeriesRM(8) = "VIII" het<#3Bo  
    NoSeriesRM(9) = "IX" #.$y   
    NoSeriesRM(10) = "X" ?:-:m'jdU  
    NoSeriesRM(11) = "XI" _{gqi$Mi  
    NoSeriesRM(12) = "XII" "Aw)0a[j1  
    NoSeriesRM(13) = "XIII" As`=K$^Il.  
    NoSeriesRM(14) = "XIV" AQT_s9"0  
    NoSeriesRM(15) = "XV" @qj]`}Gx'  
    NoSeriesRM(16) = "XVI" r\Yh'cRW{  
     7mM MVz2  
    i = MsgBox("为了你的数据安全,请使用单独保存的文件副本进行本操作。" & vbCrLf & "确定继续进行吗?", vbYesNo) CyW|k Dz  
     Jmi,;Af'/  
    If i = vbNo Then =6"5kz10  
        Exit Sub !\9^|Ef?  
    End If qMA-#  
     I0z7bx  
    If Me.chkSuper.Value Then P".IW.^kk~  
        Me.txtStatus.Text = "检查修改所有的上标格式" \g h |G  
     pe\Nwq  
        CheckSuperScript x;\/Xj ;  
         QCE7VV1Rw  
    End If ={V@Y-5T  
     gq/Za/ !6  
    If Me.chkStyle.Value Then Ki7t?4Y E  
        Me.txtStatus.Text = "设置样式,请稍候...." { I\og  
        DoEvents  (/,l0  
        CeateOrModifyStyle U V*Ruy-  
    End If slUi)@b  
     i1-%#YYF(  
     6 )P.wW  
     Y$]zba  
    ClearDomain )|^8`f  
         k+ w Ji  
     K7K/P{@9[9  
     di0@E<@1:  
    If Me.chkLIST.Value Then w>=N~0@t  
        Me.txtStatus.Text = "将所有自动列表标题转化为人工标题形式" 8&| o  
      0yq  
        ConvertListToOrdinary 7v)p\#-  
    End If w^$C\bCbh  
     Jww#zEK  
     `[ U.BVP'  
    Dim pType As String, trimpTEXT As String 79exZ7|  
    If Me.chkNum.Value = True Then isQOt * i  
        Me.txtStatus.Text = "转换全角数字形式为半角" 1EEcNtpub]  
        ConvertWidth "1", "1" 8T6N G!/  
        DoEvents T<? kH  
        ConvertWidth "2", "2" :zPK  
        DoEvents Lhe &  
        ConvertWidth "3", "3" }u=Oi@~  
        DoEvents a !%,2|U  
        ConvertWidth "4", "4" s.Ai _D  
        DoEvents .9PT)^2  
        ConvertWidth "5", "5" Fb =uN   
        DoEvents 3}F>t{FDk  
        ConvertWidth "6", "6" |iUC\F=-  
        DoEvents 1gbFl/i6T  
        ConvertWidth "7", "7" J ou* e%  
        DoEvents {\P%J:s#9  
        ConvertWidth "8", "8" %A=/(%T>  
        DoEvents &tvp)B?cWk  
        ConvertWidth "9", "9" x3+ {Y  
        DoEvents $sE=[j'v  
        ConvertWidth "0", "0" q!@!eC[b  
        DoEvents 6w, "i#E!  
        ConvertWidth "a", "a" [|=M<>?[  
        DoEvents 7bihP@I !  
        ConvertWidth "b", "b" b/]4#?g  
        DoEvents vc&+qI+I3  
        ConvertWidth "c", "c" ,m5i(WL  
        DoEvents f17E2^(I(}  
        ConvertWidth "d", "d" J'$NBws  
        DoEvents }$'_%,  
        ConvertWidth "e", "e" r9'[7b1l  
        DoEvents "wTCO1  
        ConvertWidth "f", "f" /UK]lP^w]!  
        DoEvents {7z]+h  
        ConvertWidth "g", "g" :Ev gUA\4  
        DoEvents dS4zOz"  
        ConvertWidth "h", "h" .hR <{P  
        DoEvents J ~3m7  
        ConvertWidth "i", "i" z[v4(pO 6  
        DoEvents Y%;X7VxU*  
        ConvertWidth "j", "j" VN!nef  
        DoEvents KvPCb%!ZP  
        ConvertWidth "k", "k" X.k8w\~  
        DoEvents c {%mi  
        ConvertWidth "l", "l" zIjfx K  
        DoEvents }6/M5zF3  
        ConvertWidth "m", "m" 10 *Tk 8  
        DoEvents ZL\^J8PRK  
        ConvertWidth "n", "n" fe98 Y-e  
        ConvertWidth "o", "o" Kw" y#Ys]  
        ConvertWidth "p", "p" 9&AO  
        ConvertWidth "q", "q" X )tH23  
        ConvertWidth "r", "r" 'yq ?xlIj  
        ConvertWidth "s", "s" M K)}z jw  
        ConvertWidth "t", "t" 5~@-LXqL  
        ConvertWidth "u", "u" \&;y:4&l8  
        ConvertWidth "v", "v" 5)lcgvp  
        ConvertWidth "w", "w" cK u[ 4D{  
        ConvertWidth "x", "x" W/>a 1  
        ConvertWidth "y", "y" 5P"R'/[PA_  
        ConvertWidth "z", "z" \GxqE8  
        ConvertWidth "A", "A" 9n{Y6I x:  
        ConvertWidth "B", "B" o /[7Vo  
        ConvertWidth "C", "C" Hy&Z0W'l  
        ConvertWidth "D", "D" ;M4[Liw~O  
        ConvertWidth "E", "E" Vb\g49\o/  
        ConvertWidth "F", "F" ]Z8u0YtM)  
        ConvertWidth "G", "G" OB$Jv<C@  
        ConvertWidth "H", "H" 3WGET[3  
        ConvertWidth "I", "I" 3zD#V3 =  
        ConvertWidth "J", "J" 8Sj<,+XFq  
        ConvertWidth "K", "K" :VZS7$5  
        ConvertWidth "L", "L" C|TQf8  
        ConvertWidth "M", "M" <TtPwUX  
        ConvertWidth "N", "N" >{tn2Fkg>  
        ConvertWidth "O", "O" e8^/S^ =&d  
        ConvertWidth "P", "P" zdRVAcrwQ  
        ConvertWidth "Q", "Q" wTU$jd1;+  
        ConvertWidth "R", "R" tjb$MW$('  
        ConvertWidth "S", "S" #NYnZ^6e  
        ConvertWidth "T", "T" ]B=*p0~j^n  
        ConvertWidth "U", "U" T :d+Qz\  
        ConvertWidth "V", "V" *YvtT (Gt  
        ConvertWidth "W", "W" u@#% SX  
        ConvertWidth "X", "X" R P<M  
        ConvertWidth "Y", "Y" LkS t U)  
        ConvertWidth "Z", "Z" hQm=9gS  
        ConvertWidth "^l", "^p" 0lg'QG>  
        ConvertWidth "(", "(" `v``}8tm  
        ConvertWidth ")", ")" [07E-TT2U  
     `y.4FA4"8  
    End If \]]K{DO  
?%hd3zc+f  
    With ActiveDocument 8:V,>PH  
        Dim tbl As Table ~rdS#f&R2  
        For Each tbl In .Tables VPYLDg.'  
            tbl.Rows.Alignment = wdAlignRowCenter m[v0mXE  
            tbl.Range.Font.NameFarEast = "楷体" w a(Y[]V  
            tbl.Range.Font.NameAscii = "Times New Roman" 9U6$-]J  
            tbl.Range.Font.Size = 10.5 `D~oY=  
        Next S*h^7?Bu  
        Set tbl = Nothing x-CjxU3  
    End With *af\U3kx  
     >,]a>V  
     )__sw  
    With ActiveDocument uhfK\.3  
         r*vh3.Agl  
        For i = 1 To .TablesOfContents.Count u0&R*YV  
            .TablesOfContents(i).Delete D!,5j_,j%  
        Next 9u{[e"  
         Xpg -rxX  
         mnK<5KLg1  
         ?j.a >{  
        paraTotal = .Paragraphs.Count jsE8=zZs  
        paraCounter = 1 -(:T&rfTp  
         |ffHOef  
        LastTitle0No = 0 B]G2P`sN  
        LastTitle1No = 0 A&t8C8,  
        LastTitle2No = 0 =+MF@ 4  
        LastTitle3No = 0 Za|iU`e\  
        LastTitle4No = 0 8$ _{R!x  
        LastTableNo = 0 M1-tRF  
        LastFigureNo = 0 |nx3x   
         DPxx9lN_rx  
        Dim Sec As Long mB_?N $K  
         w)+1^eW  
        Sec = InputBox("正文从第一节开始?", "节设置", 6) ~ O#\$u  
        If Sec = 0 Then ;QXg*GNAv$  
            Exit Sub Cy$~H  
        End If cLf90|YFp  
         #C&';HB;y  
        k = 0 49=pB,H;H  
        Do While (paraCounter < paraTotal) And bContinue FXJ0 G>F  
            k = k + 1 Q ^2dZXk~  
            If .Paragraphs(paraCounter).Range.Information(wdActiveEndSectionNumber) >= Sec Then hHJvLs>^  
                Exit Do 5 _E8 RAG  
            End If 9m$"B*&6G  
            paraCounter = paraCounter + 1 Rh^@1{yr  
            If k Mod 20 = 0 Then t;w<n"  
                Me.lbCounter.Caption = paraCounter M11\Di1  
                DoEvents Ba m.B6-  
            End If !?JZ^/u  
        Loop vkTu:3Qe  
         @e3+Gs  
         ?;~E*kzO&  
        Do While (paraCounter < paraTotal) And bContinue 2 {b/*w  
             q< q IT  
            ParaText = Trim(.Paragraphs(paraCounter).Range.Text) M^ :JhX{  
            ShapeHeight = 0 D r(0w{5  
            ShapeWidth = 0 ?m]vk|>  
           e3SnC:OWf  
            CheckPara .Paragraphs(paraCounter).Range, ParaType, rText, ttString, ttNo, ShapeCounter, ShapeHeight, ShapeWidth ojnO69v  
             {. 9BG&  
            Select Case ParaType %ln kD5  
                Case "【】表格内容" lOVcXAe}  
                    .Paragraphs(paraCounter).Style = "QLNU表格内容" by @qg:  
                Case "章" qSr]d`7@  
                    LastTitle0No = LastTitle0No + 1 q=88 *Y  
                    '新一章开始,复位其下属标题编号 :k1?I'q%  
                    LastTitle1No = 0 J\*uW|=F  
                    LastTitle2No = 0 q x)\{By  
                    LastTitle3No = 0 )v_Wn[Y.H  
                    LastTitle4No = 0 / e>%yq<9B  
                     FJtmRPP[r  
                    k = Val(ttNo) Q/]~`S   
                    If k = 0 Then '非数字编号章节 -\f7qRW^U  
                        If ttNo <> NoSeries1(LastTitle0No) Then  (yP1}?  
                            rText = "第" & NoSeries1(LastTitle0No) & ttString VU,G.eLW  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText OXrm!'  
                        End If kiM:( =5  
                    Else |hika`35K  
                        If Val(ttNo) <> LastTitle0No Then !VWA4 e!+  
                            rText = "第" & LastTitle0No & ttString Eu(Qe ST\  
                            Me.ErrMsg.AddItem "章节编号错误:" & ParaText \[3~*eX6  
                        End If .J O3#  
                         v3Vve:}+  
                    End If )mm0PJF~q  
                     gx Vr1DIkN  
                    '章段落设置 Lf5zHUH  
                    '字体大小:三号16磅小三号15磅四号14磅小四号12磅五号10.5磅小五号9磅 <jV,VKL#  
                    .Paragraphs(paraCounter).Style = "QLNU章节" A)]&L`s  
                    .Paragraphs(paraCounter).Range.Select BC.3U.  
                    Selection.EndKey unit:=wdLine ; oa+Z:;f  
                    tc = Replace(rText, vbCr, "")  wkZwtq  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 0o>C, `  
                Case "一级标题" 0QZT<Zs  
                    LastTitle1No = LastTitle1No + 1 ux TgK'3  
                    '新一级标题开始,复位其下属标题编号 5/'Q0]4h  
                    LastTitle2No = 0 pmB {b  
                    LastTitle3No = 0 b&[".ibN1  
                    LastTitle4No = 0 "ZGP,=?y2  
                     hc q&`Gun  
                    If ttNo <> NoSeries1(LastTitle1No) Then Li5&^RAo|J  
                            rText = NoSeries1(LastTitle1No) & "、" & ttString 59)w+AW  
                            Me.ErrMsg.AddItem "一级标题编号错误:" & ParaText GO"|^W  
                    End If YgcW1}  
                   3Y38l P:>h  
                     ,1mL=|na  
                    '一级标题段落设置  格式:一、标题内容 B=d< L^  
                    .Paragraphs(paraCounter).Range.Text = rText 1}\p:`  
                    .Paragraphs(paraCounter).Style = "QLNU一级标题" B3ItZojAuw  
                    .Paragraphs(paraCounter).Range.Select 4u}Cki,vOK  
                    Selection.EndKey unit:=wdLine o @L0ET  
                    tc = Replace(rText, vbCr, "") 9{;L7`<  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 1 ", PreserveFormatting:=False 2QaE&8vW  
                Case "二级标题" #b;?:.m\=  
                    LastTitle2No = LastTitle2No + 1 o:QL%J{[  
                    '新二级标题开始,复位其下属标题编号 n%F _ 3`  
                    LastTitle3No = 0 > IaG a!4  
                    LastTitle4No = 0 sF!#*Y  
                     s>6h]H  
                    If ttNo <> NoSeries1(LastTitle2No) Then BQ Pmo1B  
                            rText = "(" & NoSeries1(LastTitle2No) & ")" & ttString Vhv' Z\  
                            ErrMsg.AddItem "二级标题编号错误:" & ParaText ;"Gy5  
                    End If }2;P`s  
                     ~7ZZb*].(  
                    '二级标题段落设置 格式:(一)、标题内容 0R)x"4Ww  
                    .Paragraphs(paraCounter).Range.Text = rText N0w?c 5>  
                    .Paragraphs(paraCounter).Style = "QLNU二级标题" cQt&%SVT]E  
                     %9>w|%+;U+  
                    .Paragraphs(paraCounter).Range.Select F M6{%}4  
                    Selection.EndKey unit:=wdLine ,A`|jF  
                    tc = Replace(rText, vbCr, "") z<55[~3  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 2 ", PreserveFormatting:=False aDRcVA$*  
                 !j'LZ7  
                Case "三级标题" mh}D[K=~%  
                    LastTitle3No = LastTitle3No + 1 : b`N(]  
                    '新三级标题开始,复位其下属标题编号 } KyoMs  
                    LastTitle4No = 0 nu\ AEFT  
                     Nksm&{=6S  
                    If Val(ttNo) <> LastTitle3No Then <CuUwv 'A  
                            rText = LastTitle3No & ". " & ttString %htI!b+"@  
                            Me.ErrMsg.AddItem "三级标题编号错误:" & ParaText >} 2C,8N  
                         ~4~r  
                    End If C+**!uYIB  
                    '三级标题段落设置 格式:1. 标题内容 D?_K5a&v,  
                    .Paragraphs(paraCounter).Range.Text = rText KUU {X~w  
                    .Paragraphs(paraCounter).Style = "QLNU三级标题" i,;JI>U  
                    .Paragraphs(paraCounter).Range.Select eB#I-eD  
                    Selection.EndKey unit:=wdLine }lp37,  
                    tc = Replace(rText, vbCr, "") $}su 'EIo  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 3 ", PreserveFormatting:=False Un K7&Uo  
                Case "四级标题" l3Zi]`@r  
                    LastTitle4No = LastTitle4No + 1 LnE/62){N  
                     ;iiCay37F  
                    If Val(ttNo) <> LastTitle4No Then [+D]!&P  
                            rText = "(" & LastTitle4No & "). " & ttString X,w X)9]J  
                            ErrMsg.AddItem "四级标题编号错误:" & ParaText p48enH8CO  
                     W_M#Gi/ AL  
                    End If [> v1JN  
                    '四级标题段落设置 格式:(1). 标题内容 0V3dc+t)O  
                    .Paragraphs(paraCounter).Range.Text = rText Im~DK  
                    .Paragraphs(paraCounter).Style = "QLNU四级标题" aH. "| *.  
                    .Paragraphs(paraCounter).Range.Select GrG'G(NQ  
                    Selection.EndKey unit:=wdLine 9 ~W]D!m,  
                    tc = Replace(rText, vbCr, "") i5TGK#3o  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="TC  """ & tc & """ \l 4 ", PreserveFormatting:=False ^o5;><S]  
                 c~(61Sn]  
                Case "表格标题" 4:rwzRDY  
                    LastTableNo = LastTableNo + 1 w|&lRo@1  
                     oH=?1~ e  
                    If ttNo <> CStr(LastTableNo) Then KR$Fd  
                            rText = "表" & LastTableNo & ". " & ttString  'l5  
                            ErrMsg.AddItem "表格编号错误:" & ParaText .*` ^dt  
                   x$-kw{N  
                    End If )$S=iL8(  
                     1@OpvO5  
                    '表格名称段落设置 格式:表1. 表格名称 gNW+Dq|X%  
                    .Paragraphs(paraCounter).Style = "QLNU表格标题" `$> Y  
                    xe = Replace(rText, vbCr, "") d?X,od6  
                    .Paragraphs(paraCounter).Range.Select kV1L.Xg  
                    Selection.MoveEnd wdCharacter, -1   '选择范围包括行尾的换行符。 < ?B3^z$  
                    Selection.Range.Text = xe X?t;uZI^  
                    Selection.EndKey ;'{7wr|9  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False .4v?/t1  
                 5.VPK 338A  
                Case "表格首行" 23r(4  
                    .Paragraphs(paraCounter).Style = "QLNU表格首行" W2X`%Tx0  
                Case "图片标题" ]#G s6CsT|  
                    LastFigureNo = LastFigureNo + 1 ~b]enG5xS4  
                     W|8VE,"7  
                    If ttNo <> CStr(LastFigureNo) Then oVK:A;3T|  
                            rText = "图" & LastFigureNo & ". " & ttString v)O0i2  
                            ErrMsg.AddItem "表格编号错误:" & ParaText 7vZO;FGtG  
                   PoaCnoNS  
                    End If Dazm8_x  
                    '图片名称段落设置 格式:图1. 图名称 y\_+,G0  
                    .Paragraphs(paraCounter).Range.Text = rText KE,.Evyu=  
                    .Paragraphs(paraCounter).Style = "QLNU图片标题" NC~?4F[  
                    .Paragraphs(paraCounter).Range.Select =.8n K y  
                    Selection.EndKey unit:=wdLine lkT :e)w  
                    xe = Replace(rText, vbCr, "") B<EqzP*#  
                    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="XE  " & """" & xe & """", PreserveFormatting:=False ;j1 SSHZ  
                Case "正文" Chnt)N`/B4  
                     '正文名称段落设置 ~!Sd|e:4  
                    .Paragraphs(paraCounter).Style = "QLNU正文" Dc0=gq0  
               Case "文献条目" CqEbQ>?  
                    With .Paragraphs(paraCounter) ) Z3 KO  
                        '.Range.Select 3]vVuQK.  
                        'Selection.ClearFormatting GPLop/6   
                        '.Range.Find.Execute findtext:=rText, replacewith:=strSeperator   'Replacetext 传回了编号及分隔符部分, 而StrSeperator传回了正确的格式与分隔符如“[15] ” |c0^7vrC  
                        .Style = "QLNU参考文献" D'!JV1Q  
                    End With Q*<KX2O  
               Case "图表注解" r =x"E$  
                    With .Paragraphs(paraCounter) s\mA3t  
                        .Range.Font.NameFarEast = "楷体" LujLC&S  
                        .Range.Font.NameAscii = "Times New Roman" Ee}|!n>  
                        .Range.Font.Size = 9 '小5号字 :dW\Q&iW  
                         _3%$E.Q  
                        .Alignment = wdAlignParagraphCenter #3*cA!V.<  
                        .LeftIndent = 0 2!-Q!c`y  
                        .RightIndent = 0 _{'[Uf/l  
                        .FirstLineIndent = 0 \ Ki3ls  
                        .LineSpacing = 12 KMi$0+  
                        .LineSpacingRule = wdLineSpaceExactly jz" >Kh.}  
                        .LineUnitAfter = 0 AwG0E `SU  
                        .LineUnitBefore = 0 [;ZCq!)>  
                        .OutlineLevel = wdOutlineLevelBodyText 8i[TeW"  
                        .PageBreakBefore = False t[2b~peNI  
                        .RightIndent = 0 .9x* YS  
                        .WordWrap = True H (;@7dh  
                        .LineUnitAfter = 0.5 K*5gb^Ul  
                         pZS]i "  
                    End With W<)nC_$  
                Case Else Ew0)MZ.#  
                    '不作处理 a&JY x  
            End Select O=bkq}  
             V7U*09 0*5  
            '含有inlineshape的段落处理 /g>-s&w  
            If ShapeHeight > 30 Then GkU_01C  
                .Paragraphs(paraCounter).LineSpacingRule = wdLineSpaceSingle  '对有图片的段落设置为单倍行距 IoOOS5a  
            End If `0ym3}(O  
             Brxnl,%\  
            If (ShapeWidth + ShapeHeight) > 150 Then 4eB'mPor  
                .Paragraphs(paraCounter).Style = "QLNU图片段落" @@*x/"GJG  
            End If 4)e1K/PJ)  
             K@= u F 1?  
            '段落计数器递 n`Z}tQ%)o  
            paraCounter = paraCounter + 1 VX&g[5zr  
            Me.lbCounter.Caption = "当前检测段落:" & paraCounter }+m4(lpl  
            Me.txtStatus.Text = ParaText \Ebh6SRp\  
            DoEvents 9 RDs`>v  
        Loop J #C4A]A  
    End With @}6<,;|DQ  
     X% 05[N  
    msg = "" aR3jeB,=x  
     W)ug %@)  
    For i = 0 To Me.ErrMsg.ListCount - 1 XFoSGqD  
        msg = msg & vbCrLf & vbCrLf & Me.ErrMsg.List(i) r1 :TM|5L  
    Next Ut2T:%m{  
     h^rG5Q  
     7HW:;2dL  
     @>(JC]HtR  
    Me.txtStatus.Text = "格式化完成!" & vbCrLf & "开始时间:" & tm1 & vbCrLf & "结束时间:" & Now & vbCrLf & msg (.=Y_g.  
    Me.cmdCheck.Enabled = True <|k :%  
    Me.txtStatus.Visible = True Y}BP ]#1  
    Me.lbParaType.Visible = False l/(~Kf9eQG  
     +PE-j| D  
    bContinue = False TXM/+sd  
End Sub fSd|6iFH  
`r1j>F7Xb  
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) O$,  
    Dim pTEXT As String =b*GV6b  
     F#|y,<}<  
    pTEXT = ChKRange.Text rrfJs  
     &v0]{)PO  
    ParaType = "其它" Mw,]Pt6~i  
    TitleString = pTEXT ?J2A.x5` a  
    TitleNo = "N/A" )T9Cv8  
     @ ,oc%m  
    shpCounter = ChKRange.InlineShapes.Count V/xXW=  
    If shpCounter <> 0 Then NpGi3>5  
        MaxShpHeight = 0: TotalShpWidth = 0 MD$W;rk(Hn  
        For i = 1 To shpCounter `scW.Vem  
            k = ChKRange.InlineShapes(i).Height Vfzy BjQ  
            l = ChKRange.InlineShapes(i).Width sT1k]duT  
            If k > MaxShpHeight Then 5)Z=FUupA~  
                MaxShpHeight = k $s=` {vv  
            End If B ZU@W%E  
            TotalShpWidth = TotalShpWidth + l nmn/4>  
        Next XE_Lz2H`  
        If MaxShpHeight > 60 Or TotalShpWidth > 150 Then {f/]K GGk  
            Exit Sub Q0"?TSY  
        End If yg8= G vO  
    End If %Y0lMNP  
     G.O;[(3ab  
    '空行 M{orw;1Isy  
    If Len(pTEXT) <= 2 Then [?N,3  
        Exit Sub CRCy)AS,t  
    End If j xI;clr  
     j)8$hK/e0.  
         iC hIW/H  
    '是否为表格中的文字 rF[-4t %  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdWithInTable) Then to).PI?  
        ParaType = "表格内容" 0#Gm# =F  
        k = ActiveDocument.Paragraphs(paraCounter).Range.Information(wdEndOfRangeRowNumber) sHPAr}14  
        If k = 1 Then O1jiD_Y!9  
            ParaType = "表格首行" 1d+Kn Jy  
        End If e~gNGr]L/  
        Exit Sub F^{31iU~CX  
    End If @BLB.=  
     b0'}BMJ  
    '例外情况:脚注 ~roNe|P  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInFootnote) Then >k\p%{P  
        ParaType = "脚注" Jq)k5X>&Sj  
        Exit Sub 5D<Zbn.>q  
    End If X,+a 6F  
     #xx.yn(7  
    '例外情况:尾注 e%pohHI  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInEndnote) Then ~m<K5K6 V  
        ParaType = "尾注" +fY@q ,`  
        Exit Sub G0h&0e{w  
    End If DXD+,y\=  
     *PlKl_nP6  
    If ActiveDocument.Paragraphs(paraCounter).Range.Information(wdInHeaderFooter) Then ,k_ b-/  
        ParaType = "页眉页脚" 6I(Y<LZ5  
        Exit Sub %`pi*/(  
    End If xKBi".wA  
     u= dj3q  
     Kn$t_7AF^  
    With regEX W2-l_{  
        .Global = True 5q@s6_"{  
         *>?N>f"  
        .Pattern = "^第([1-9]|1|2|3|4|5|6|7|8|一|二|三|四|五|六|七|八|九|十)章(、|\.|\s|。|.)+(.{1,30})$" G)YmaHeI;[  
        If regEX.Test(pTEXT) Then q'7.lrKwa>  
            ReplaceTEXT = regEX.Replace(pTEXT, "第$1章 $3") M^\`~{*T  
            TitleString = regEX.Replace(pTEXT, "$3") Q'jGNWep  
            TitleNo = regEX.Replace(pTEXT, "$1") Q1*_l  
            ParaType = "章" 6H2Bf*i  
            Exit Sub ~rI2 RJ  
        End If |8{ k,!P'K  
         lFf>z}eLy  
        .Pattern = "^(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(、|\.|\s|。|.)+(.{1,40})$" mEYfsO  
        If regEX.Test(pTEXT) Then au1 9Q*r9  
            ParaType = "一级标题" D"$ 97  
            regEX.Execute (pTEXT) n}Eu^^d  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1、$3") CB9:53zK9  
            TitleString = regEX.Replace(pTEXT, "$3") tkm@&e=e%  
            TitleNo = regEX.Replace(pTEXT, "$1") TT9 \m=7  
            Exit Sub %x,HQNRDU  
        End If WYRC_U7  
         g:~q&b[q6  
        '全角或半角括号中的数字 ?IQDk|<%  
        .Pattern = "(^\(|()(十一|十二|十三|十四|十五|十六|一|二|三|四|五|六|七|八|九|十)(\)|))(、|\.|\s|。|.)*(.{1,40})$" {~]5QKg.  
        If regEX.Test(pTEXT) Then kK4+K74B  
            ParaType = "二级标题" &Oz  
            regEX.Execute (pTEXT) 3d;J"e+?  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2)$5") Z2*?a|3  
            TitleString = regEX.Replace(pTEXT, "$5") ye(av&Hn  
            TitleNo = regEX.Replace(pTEXT, "$2") 6K7lQ!#}Q  
            Exit Sub z2Wblh"_  
        End If sa<\nH$_X  
         lGK7XAx,  
        '阿拉伯数字  1. 2. #l+Rs3T:  
        .Pattern = "^([1-9]|1|2|3|4|5|6|7|8|9|0){1,2}(、|\.|\s|。|.)+(.{1,80})$" ]O:u9If  
        If regEX.Test(pTEXT) Then z7BFkZ6+  
            ParaType = "三级标题" 2sgp$r  
            regEX.Execute (pTEXT) ?/T=G k  
            ReplaceTEXT = regEX.Replace(pTEXT, "$1. $3") '未进行全半角转换,如需要可分成两步分别检测 ^& * ;]S`  
            TitleString = regEX.Replace(pTEXT, "$3") zk3\v "  
            TitleNo = regEX.Replace(pTEXT, "$1") n|WSnm,W  
            Exit Sub oH4zW5  
        End If 45wqX h  
         )%p46(]  
        '全角或半角括号中的阿拉伯数字 MV3K'<Y  
        .Pattern = "^(^\(|()([0-9]|0|1|2|3|4|5|6|7|8|9){1,2}(\)|))(、|\.|\s|。|.)*(.{1,80})$" Ha]vG@?+  
        If regEX.Test(pTEXT) Then kLF3s#k  
            ParaType = "四级标题" )$1j"mV  
            regEX.Execute (pTEXT) Pbbi*&i  
            ReplaceTEXT = regEX.Replace(pTEXT, "($2) $5") /m>SEo\{C  
            TitleString = regEX.Replace(pTEXT, "$5") J*K=tA  
            TitleNo = regEX.Replace(pTEXT, "$2") ?`Mk$Y%my  
            Exit Sub vv)O+xt  
        End If lmUCrs37  
         ^GYVRD  
        '表格名称 \2~\c#-k  
        .Pattern = "^表(\d{1,2}-{0,1}\d{0,1})([、|\.|。|.|\s]{1,9})(.{1,120})$" f'"PQr^9  
        If regEX.Test(pTEXT) Then '`gnJX JO  
            ParaType = "表格标题" @ g`|ob]9  
            regEX.Execute (pTEXT) uj\&-9gEi  
            ReplaceTEXT = Trim(regEX.Replace(pTEXT, "表$1. $3")) ,>qtnwvlHP  
            TitleString = Trim(regEX.Replace(pTEXT, "$3")) 8cvSA&l(D  
            TitleNo = Trim(regEX.Replace(pTEXT, "$1")) Y5ei:r|^  
            strSeperator = Trim(regEX.Replace(pTEXT, "$2")) '不知道为什么,但是发现传回的replacetext在修改Paragraph对象的Range.Text后,表格标题就会落入第一个单元格中,所以,只能用Paragraph.Range.Find.Execute方法替换 tUJe-3,  
            Exit Sub @N[<<k7g  
        End If 0FL'8!e<  
         Ui"$A/  
        '图片名称 L$"x*2[A  
        .Pattern = "^图(\d{1,2}-{0,1}\d{0,1})(、|\.|\s|。|.)+(.{1,120})$" yYe>a^r4R  
        If regEX.Test(pTEXT) Then F@ |(  
            ParaType = "图片标题" BZTj>yd  
            regEX.Execute (pTEXT) d14@G4#Bd  
            ReplaceTEXT = regEX.Replace(pTEXT, "图$1. $3") %@ >^JTkY8  
            TitleString = regEX.Replace(pTEXT, "$3") p;7wH\c  
            TitleNo = regEX.Replace(pTEXT, "$1") Z$c&Y>@)  
            Exit Sub IDF0nx]  
        End If O%bltNEx1  
         _7u&.l<;  
        '参考文献 LZG(T$dI  
        .Pattern = "^([\[|[])(\d+)([]|\]])([、|\.|\s|。|.]{0,1})"  '[数字]、 ~ m vv :u  
        If regEX.Test(pTEXT) Then `=V1w4J  
            ParaType = "文献条目" bUy!hS;s  
            'ReplaceTEXT = regEX.Replace(pTEXT, "$1$2$3$4") [vuikJP>1k  
            'TitleNo = regEX.Replace(pTEXT, "[$2] ") SR.xI:}4  
            Exit Sub f6SXXkO+  
        End If H_S"4ISS_  
         K5bR7f:  
        prfx = Left(pTEXT, 2) -;6uN\gq  
        If prfx = "注:" Or prfx = "注:" Then ^wSGrV'  
            ParaType = "图表注解" DfGq m-c  
            Exit Sub ^; U}HAY  
        End If I4ZbMnO  
         !]7b31$M_  
         v5 p`=Z@%  
        ParaType = "正文" s!D?%  
         ldU ><xc2  
    End With z*b|N45O  
End Sub `'r~3kP*NT  
(7,Q4T  
Sub ConvertListToOrdinary() ;[Xf@xf  
    Dim st As Paragraph p]~PyzG!  
    With ActiveDocument -sf[o"T,j  
        For i = .Paragraphs.Count To 1 Step -1 .#sX|c=W  
            Set st = .Paragraphs(i) KCbOO8cQS  
            lst = st.Range.ListFormat.ListString VR_/Vh ]@  
            If lst <> "" Then sAA;d  
                st.Range.ListFormat.RemoveNumbers P! j*4t  
                st.Range.InsertBefore lst & " " !.iFU+?V  
            End If >(YH@Z&;  
        Next |'o<w ]hc  
    End With 0S+$l  
    Set st = Nothing iM9k!u FE  
End Sub mW[w4J+7P  
dEkST[Y3  
Private Sub UserForm_Activate() T^+K`U  
    Me.lbTotal.Caption = "当前文章段落总数:" & ActiveDocument.Paragraphs.Count & " 共" & ActiveDocument.Sections.Count & "节" @o}J)  
    Me.lbTotal.Font.Bold = True zA|lbJz=GY  
    Me.txtStatus.Visible = False yXtQfR  
    Me.cmdCheck.Enabled = True YsiH=x  
W:WRG8(F  
End Sub ;InMgo,  
1)~9Eku6K  
WFFd3TN%<  
Sub CheckSuperScript() ? YIe<  
    Selection.Find.ClearFormatting  xi<}n#  
    Selection.Find.Replacement.ClearFormatting pE+:tMH;  
    With Selection.Find 6W]C`  
        .Text = "[【\[[〖](*)[】\]〗]]" Zs0;92WL  
        .Replacement.Text = "[\1]" d6m&nj  
        .Replacement.Font.Superscript = True # ax% n  
        '.Replacement.Font.Color = wdColorBlue 3 AP=  
        .Forward = True ;*nzb!u\\  
        .Wrap = wdFindContinue |V}tTx1  
        .FORMAT = True D > U(&n  
        .MatchCase = False .2rpQa/h  
        .MatchWholeWord = False =<#++;!I  
        .MatchByte = False S+eu3nMq  
        .MatchAllWordForms = False cw0 @Z0  
        .MatchSoundsLike = False dF! B5(  
        .MatchWildcards = True f2KH&j>~r  
    End With p}I\H ^"8+  
    Selection.Find.Execute Replace:=wdReplaceAll h?ijZHG $  
End Sub Q>\DM'{:4  
v13\y^t  
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) FW3E UC)P  
    bContinue = False d7&d FvG  
    Set regEX = Nothing 6_rgRo&  
End Sub R;U4a2~  
e8_EB/)_Z  
Sub CeateOrModifyStyle() j~+(#|  
' I3Z\]BI  
' `x#}co  
Dim stl As Style i-WP#\s  
     |_s,]:  
    Options.Pagination = False C[ KMaB  
     (VCJn<@@  
    On Error Resume Next .DnG}884  
    For Each stl In ActiveDocument.Styles }a UQ#x  
        stl.Delete  fOsvOC  
    Next zw5Ol%JF  
    On Error GoTo 0 \ ux {J  
     4 8; b  
    Set stl = Nothing tK+JmbB\  
     [z_z tK1  
    DoEvents #{k+^7aQ  
    On Error Resume Next M0vX9;J  
     \Q|,0`  
    ActiveDocument.Styles.Add Name:="BaseStyle", Type:=wdStyleTypeParagraph u]9 #d^%V  
     d}?KPJ{  
    ActiveDocument.Styles.Add Name:="QLNU论文题目", Type:=wdStyleTypeParagraph ,N_V(Cx5pt  
    ActiveDocument.Styles.Add Name:="QLNU中文摘要", Type:=wdStyleTypeParagraph Jfv'M<I  
     X g7xy>{]  
    ActiveDocument.Styles.Add Name:="QLNU英文标题", Type:=wdStyleTypeParagraph *[jq&  
    ActiveDocument.Styles.Add Name:="QLNU英文摘要", Type:=wdStyleTypeParagraph zrE{CdG%y  
     FSkX95  
    ActiveDocument.Styles.Add Name:="QLNU目录项", Type:=wdStyleTypeParagraph |XQ\c.A  
    ActiveDocument.Styles.Add Name:="QLNU章节标题", Type:=wdStyleTypeParagraph ns/*WH&[x  
    ActiveDocument.Styles.Add Name:="QLNU一级标题", Type:=wdStyleTypeParagraph m^RO*n.  
    ActiveDocument.Styles.Add Name:="QLNU二级标题", Type:=wdStyleTypeParagraph `4Z:qh+fJ  
    ActiveDocument.Styles.Add Name:="QLNU三级标题", Type:=wdStyleTypeParagraph *cX i*7|=  
    ActiveDocument.Styles.Add Name:="QLNU四级标题", Type:=wdStyleTypeParagraph 0; w 4WJJ  
    ActiveDocument.Styles.Add Name:="QLNU正文", Type:=wdStyleTypeParagraph z} r  
     Y2ON!Rno  
    ActiveDocument.Styles.Add Name:="QLNU表格标题", Type:=wdStyleTypeParagraph hDoFF8)c  
    ActiveDocument.Styles.Add Name:="QLNU表格首行", Type:=wdStyleTypeParagraph <O-R  
    ActiveDocument.Styles.Add Name:="QLNU表格内容", Type:=wdStyleTypeParagraph \SgBI/L^  
    ActiveDocument.Styles.Add Name:="QLNU图片标题", Type:=wdStyleTypeParagraph 4`V&Yqwl  
    ActiveDocument.Styles.Add Name:="QLNU图片段落", Type:=wdStyleTypeParagraph j,i) ecZ>  
     J*%IvRg  
    ActiveDocument.Styles.Add Name:="QLNU参考文献", Type:=wdStyleTypeParagraph "9vL+Hh  
    On Error GoTo 0 Gp?pSI,b.t  
    DoEvents &`]T# ">  
      h y\iot  
    'BaseStyle W^;4t3eQf  
    ActiveDocument.Styles("BaseStyle").AutomaticallyUpdate = False M3d%$q)<rW  
    With ActiveDocument.Styles("BaseStyle").Font ycIcM~<4  
        .NameFarEast = "宋体" *|6vCR  
        .NameAscii = "Times New Roman" w:1UwgcPC  
        .NameOther = "宋体" g>b{h kIXg  
        .Size = 10.5 I~ mu'T  
        .Bold = wdUndefined ,a2=OV  
        .Italic = wdUndefined VS~+W=5}  
        .Subscript = wdUndefined va#].4_  
        .Subscript = wdUndefined LH@Kn?R6  
          4] u\5K-  
        .Underline = wdUnderlineNone }KftV nD?  
        .UnderlineColor = wdColorAutomatic AS4oz:B  
        .StrikeThrough = False BoARM{m  
        .DoubleStrikeThrough = False E3CwA8)k  
         m("KLp8  
        .Outline = False yS?5&oMl  
        .Emboss = False )C0I y.N-  
        .Shadow = False 5lwMc0{/3  
        .Hidden = False GJ?J6@|  
        .SmallCaps = False S]e;p\8$Z  
        .AllCaps = False ' w/ S6j  
        .Color = wdColorAutomatic 6pQo_l}  
        .Engrave = False S,Qa\\~z  
        .Scaling = 100 vMJ _n=Vf  
        .Kerning = 1 OSJj^Y)W|  
        .Animation = wdAnimationNone GbkDs-  
        .DisableCharacterSpaceGrid = False ;D(6Gy9~  
        .EmphasisMark = wdEmphasisMarkNone fC O<-L9k$  
    End With {?cF2K#  
    With ActiveDocument.Styles("BaseStyle").ParagraphFormat 9A`^ (  
        .LeftIndent = 0 @6;ZP1  
        .RightIndent = 0 RO[X #c  
        .SpaceBefore = 0 #z*,-EV|  
        .SpaceBeforeAuto = False cp`ZeLz2^  
        .SpaceAfter = 0 QPFv]^s(  
        .SpaceAfterAuto = False e+ m(g  
         y<BG-  
        .LineSpacingRule = wdLineSpaceSingle J'&K  
        .Alignment = wdAlignParagraphJustify \mt Y_O  
         ;<F^&/a|yQ  
        .WidowControl = False !,J] 5$M  
        .KeepWithNext = False ),%@X  
        .KeepTogether = False 8|!"CQJ|H  
        .PageBreakBefore = False ! bwy/A  
        .NoLineNumber = False LS-_GslE7\  
         *u[@C  
        .FirstLineIndent = CentimetersToPoints(0) r'*#i>PkQD  
        .OutlineLevel = wdOutlineLevelBodyText e!k4Ij-]  
        .CharacterUnitLeftIndent = 0 (2RuQgO  
        .CharacterUnitRightIndent = 0 [*H h6  
        .CharacterUnitFirstLineIndent = 0 %r(qQM.Pl  
        .LineUnitBefore = 0 ^%U`|GBZp  
        .LineUnitAfter = 0 SHnMqaq  
        .AutoAdjustRightIndent = True Cs vwc%  
        .DisableLineHeightGrid = True J'I1NeK  
         >@-BZJg/k  
        .FarEastLineBreakControl = True -2C^M> HZ  
        .WordWrap = True (K ]wk9a  
        .Hyphenation = False ?cK67|%W  
         gla'urb[i|  
        .HangingPunctuation = True q03nu3uDI  
        .HalfWidthPunctuationOnTopOfLine = True #,"[sag  
        .AddSpaceBetweenFarEastAndAlpha = True \SJX;7 ST  
        .AddSpaceBetweenFarEastAndDigit = True T&<ee|t@{  
        .BaseLineAlignment = wdBaselineAlignBaseline U4iVI#f  
    End With ( ~JtKSq%  
    ActiveDocument.Styles("BaseStyle").NoSpaceBetweenParagraphsOfSameStyle = False O^3XhTW^\~  
    ActiveDocument.Styles("BaseStyle").ParagraphFormat.TabStops.ClearAll p~-)6)We?  
    ActiveDocument.Styles("BaseStyle").LanguageID = wdSimplifiedChinese Q} -YD.bx3  
    ActiveDocument.Styles("BaseStyle").NoProofing = False *iSE)[W  
     j0=H6Y  
    '一级标题题样式  {yxLL-5c  
    ActiveDocument.Styles("QLNU一级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") + :b"0pu-H  
    ActiveDocument.Styles("QLNU一级标题").NextParagraphStyle = "BaseStyle" "SC]G22  
    ActiveDocument.Styles("QLNU一级标题").AutomaticallyUpdate = False +R 8dy  
    With ActiveDocument.Styles("QLNU一级标题").Font #~r+Z[(,p  
        .NameFarEast = "黑体" <c,iu{:  
        .NameAscii = "Arial Black" kFfNDM#D  
        .NameOther = "黑体" {X nBj}C  
        .Name = "黑体" UnZc9 6  
        .Size = 16              '三号 x_(K%0+Ca  
        .Bold = True 3CSwcD  
        .Italic = wdUndefined zTn.#-7y  
        .Subscript = wdUndefined , s,AkH  
        .Superscript = wdUndefined \ ~C/  
    End With +5:9?&lH  
    With ActiveDocument.Styles("QLNU一级标题").ParagraphFormat Ub wmn!~  
         ;h d%w mE  
        .LeftIndent = CentimetersToPoints(0) ,OkI 0[  
        .RightIndent = CentimetersToPoints(0) po*r14f  
        .FirstLineIndent = CentimetersToPoints(0)  \5HVX/  
         n (Um/  
        .LineSpacingRule = wdLineSpaceSingle ' 1dhdm8  
        .Alignment = wdAlignParagraphCenter =ATQ2\T$m  
         PFbkkQKsT  
        .WidowControl = True raMtTL+  
        .KeepWithNext = True K@"B^f0mU  
        .KeepTogether = True btDTC 9O  
        .OutlineLevel = wdOutlineLevelBodyText qzu(4*Gk6  
         $?OQtz@  
        .LineUnitBefore = 0.5 O? 7hT!{  
        .LineUnitAfter = 0.5 Jg.^h1>x  
    End With M2qor.d  
    ActiveDocument.Styles("QLNU一级标题").NoSpaceBetweenParagraphsOfSameStyle = False tCj\U+;  
    ActiveDocument.Styles("QLNU一级标题").ParagraphFormat.TabStops.ClearAll gU@R   
    ActiveDocument.Styles("QLNU一级标题").LanguageID = wdSimplifiedChinese l5enlYH  
    ActiveDocument.Styles("QLNU一级标题").NoProofing = True nbDjoZZ4  
    DoEvents LZJFp@  
     1_@vxi~aW_  
    '二级 OskQ[ e0  
    ActiveDocument.Styles("QLNU二级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ,GtN6?  
    ActiveDocument.Styles("QLNU二级标题").NextParagraphStyle = "BaseStyle" rF/<}ye/4M  
    ActiveDocument.Styles("QLNU二级标题").AutomaticallyUpdate = False 5VGZ5,+<<  
    With ActiveDocument.Styles("QLNU二级标题").Font T IyHM1+  
        .NameFarEast = "黑体" |Fx~M,Pzg  
        .NameAscii = "Arial Narrow" EgOiJH  
        .NameOther = "黑体" AG G xx?I  
        .Name = "黑体" Xw16 2/:h  
        .Size = 15        '小三号 }fhGofN$e  
        .Bold = False *4Z! 5iOs  
        .Outline = False 4Ub7T=LG  
        .Italic = wdUndefined :p$Q3  
        .Subscript = wdUndefined 0/~{,  
        .Superscript = wdUndefined 7?uIl9Vk>(  
    End With L*{E-m/  
    With ActiveDocument.Styles("QLNU二级标题").ParagraphFormat ;_/!F}d  
        .LeftIndent = CentimetersToPoints(0) Ou|kb61zg  
        .RightIndent = CentimetersToPoints(0) ;;432^jD  
        .FirstLineIndent = CentimetersToPoints(0) 6x16?x  
         anH ]]  
        .LineSpacingRule = wdLineSpaceSingle ,jy9\n*<t9  
        .Alignment = wdAlignParagraphLeft Rf{YASPIw&  
         _6aI>b#yL  
        .WidowControl = True z;&J9r $`  
        .KeepWithNext = True ?:7$c  
        .KeepTogether = True 6ziBGU#.-  
        .PageBreakBefore = False /~/nhK m  
        .OutlineLevel = wdOutlineLevelBodyText <CS,v)4,nH  
         H00iy$R  
        .LineUnitBefore = 0.5 1[e%E#h  
        .LineUnitAfter = 0.5 i06|P I  
         7Ewq'Vu`y  
    End With uJ3*AO  
    ActiveDocument.Styles("QLNU二级标题").NoSpaceBetweenParagraphsOfSameStyle = False 78IY&q:v&0  
    ActiveDocument.Styles("QLNU二级标题").ParagraphFormat.TabStops.ClearAll D@ BP<   
    ActiveDocument.Styles("QLNU二级标题").LanguageID = wdSimplifiedChinese LP?*RrM  
    ActiveDocument.Styles("QLNU二级标题").NoProofing = True #V@vz#bo=  
    DoEvents b,#?LdQ%  
     VF~kjH2>  
    '三级标题样式 T >5N$i  
    ActiveDocument.Styles("QLNU三级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") ypTH=]y  
    ActiveDocument.Styles("QLNU三级标题").NextParagraphStyle = "BaseStyle" }~v0o# I  
    ActiveDocument.Styles("QLNU三级标题").AutomaticallyUpdate = False Ol8Yf.e_  
    With ActiveDocument.Styles("QLNU三级标题").Font T7(U6yN  
        .NameFarEast = "宋体" f!B\X*|  
        .NameAscii = "Times New Roman" Z..s /K {  
        .NameOther = "黑体" PJ)d5D%T  
        .Name = "黑体" V$ " ]f6  
        .Size = 14               '四号 :SN/fY  
        .Bold = False aM\Ph&c7e'  
        .Outline = False ERfSJ  
        .Italic = wdUndefined >PUT(yNL  
        .Subscript = wdUndefined ,,h>_IA  
        .Superscript = wdUndefined uLt31G()  
    End With .6iJ:A6T  
    With ActiveDocument.Styles("QLNU三级标题").ParagraphFormat ' p T8S  
        .LeftIndent = CentimetersToPoints(0) `I(5Aj"  
        .RightIndent = CentimetersToPoints(0) k !g%vx  
        .FirstLineIndent = CentimetersToPoints(0) V~QOl=`K:  
         E/C3t2@-  
        .LineSpacingRule = wdLineSpaceSingle o"qG'\x  
        .Alignment = wdAlignParagraphLeft 6 _#CvQ  
         07vzVsQ}p  
        .WidowControl = True [-nPHm ZV[  
        .KeepWithNext = True uA\KbA.c;U  
        .KeepTogether = True Mw6 Mt  
        .PageBreakBefore = False h- %RSei 5  
        .OutlineLevel = wdOutlineLevelBodyText 4CxU eq  
         |u[@g`Z  
        .CharacterUnitLeftIndent = 0 /Em6+DN>  
        .CharacterUnitRightIndent = 0 #\6k_toZ  
        .CharacterUnitFirstLineIndent = 2 LiJ./  
         CmtDfE  
        .LineUnitBefore = 0.5 l0%7u  
        .LineUnitAfter = 0 Co:Rg@i(F  
    End With ~01t_Xp qc  
    ActiveDocument.Styles("QLNU三级标题").NoSpaceBetweenParagraphsOfSameStyle = False Aj"fkY|Q  
    ActiveDocument.Styles("QLNU三级标题").ParagraphFormat.TabStops.ClearAll b Kr73S9  
    ActiveDocument.Styles("QLNU三级标题").LanguageID = wdSimplifiedChinese i >BQRbU  
    ActiveDocument.Styles("QLNU三级标题").NoProofing = True p<Vj<6.=?  
    DoEvents $A)[s$  
     t<SCrLbz  
    '四级标题样式 HQc^ybX5  
    ActiveDocument.Styles("QLNU四级标题").BaseStyle = ActiveDocument.Styles("BaseStyle") 41i#w;ojI  
    ActiveDocument.Styles("QLNU四级标题").NextParagraphStyle = "BaseStyle" ]q|U0(q9  
    ActiveDocument.Styles("QLNU四级标题").AutomaticallyUpdate = False )24 1-b V  
    With ActiveDocument.Styles("QLNU四级标题").Font 3o_@3-Y%  
        .NameFarEast = "宋体" lh;;%@1DM  
        .NameAscii = "Times New Roman" *>jJ<8!  
        .NameOther = "宋体" Shu=oweJ  
        .Name = "宋体" "]yfx@)_  
        .Size = 12               '小四号 t28 y=nv  
        .Bold = True 3Io7!:+  
        .Outline = False (usPAslr  
        .Italic = wdUndefined p$$0** p!`  
        .Subscript = wdUndefined B~u`bn,iQ  
        .Superscript = wdUndefined ({h W  
    End With ,'@t .XP  
    With ActiveDocument.Styles("QLNU四级标题").ParagraphFormat "X-"uIc  
         KY9@2JG  
        .LeftIndent = CentimetersToPoints(0) %p^`,b}  
        .RightIndent = CentimetersToPoints(0) uh3<%9#\k  
        .FirstLineIndent = CentimetersToPoints(0) -8sB\E  
         }`_x%]EJ  
        .LineSpacingRule = wdLineSpaceSingle 5Qxm\?0J  
        .Alignment = wdAlignParagraphLeft GAlM:>  
         1sXVuto  
        .WidowControl = True -'j|U[&N\  
        .KeepWithNext = True P2 z~U  
        .KeepTogether = True G=m18Bv{  
        .PageBreakBefore = False `m-7L  
        .OutlineLevel = wdOutlineLevelBodyText KK/siG~O  
         W;.L N<bx  
        .CharacterUnitLeftIndent = 0 LC0g"{M  
        .CharacterUnitRightIndent = 0 F2',3  
        .CharacterUnitFirstLineIndent = 2 er2#h  
         ]fU0;jzX  
        .LineUnitBefore = 0 y+M9{[ i/O  
        .LineUnitAfter = 0 Gp1?drF6  
         Bv^5L>JZ/  
    End With 7Dz-xM_?  
    ActiveDocument.Styles("QLNU四级标题").NoSpaceBetweenParagraphsOfSameStyle = False x#'v}(v  
    ActiveDocument.Styles("QLNU四级标题").ParagraphFormat.TabStops.ClearAll P5Pb2|\*  
    ActiveDocument.Styles("QLNU四级标题").LanguageID = wdSimplifiedChinese F?4&qbdD  
    ActiveDocument.Styles("QLNU四级标题").NoProofing = True =u.hHkx  
    DoEvents f}Uf* Bp  
     "lKR~Qi  
    '正文校式 _[y<u})  
    ActiveDocument.Styles("QLNU正文").BaseStyle = ActiveDocument.Styles("BaseStyle") P? <G:]W  
    ActiveDocument.Styles("QLNU正文").NextParagraphStyle = "BaseStyle" wU&vkb)k  
    ActiveDocument.Styles("QLNU正文").AutomaticallyUpdate = False d-B,)$zE  
    With ActiveDocument.Styles("QLNU正文").Font *YP;HL  
         DxG8`}+  
        .NameFarEast = "宋体" j$r2=~1  
        .NameAscii = "Times New Roman" uL=FK  
        .NameOther = "宋体" 3:3>k 8  
        .Name = "宋体" [f`7+RHrd  
         #6 M3BF  
        .Size = 12               '小四号 k1HCPj  
         et@<MU@ `  
        .Bold = wdUndefined q)y<\cEO  
        .Italic = wdUndefined |G P1[Q{  
        .Subscript = wdUndefined P"Y7N?\](  
        .Superscript = wdUndefined ~L9I@(/ S  
         }i9VV+L#1  
        .Outline = False ;x-]1xx_  
        .Emboss = False G g{M  
        .Shadow = False 5:SS2>~g  
        .Hidden = False \C"hL(4-  
         "E7YCZQR  
        .DisableCharacterSpaceGrid = True  o=C'u  
    End With OTWp,$YA=  
    With ActiveDocument.Styles("QLNU正文").ParagraphFormat 2E@y0[C?  
         2h`Tn{&1/  
        .LeftIndent = CentimetersToPoints(0) Z':w X  
        .RightIndent = CentimetersToPoints(0) g<Y N#  
        .FirstLineIndent = CentimetersToPoints(0) {A{sRT=%  
         4X$|jGQ\  
        .LineSpacingRule = wdLineSpaceExactly MJy(B><  
        .LineSpacing = 20 \mNN ) K@  
        .Alignment = wdAlignParagraphLeft GNoUn7Y  
         A_I\6&b4  
        .WidowControl = False Z \;{e'#o  
        .KeepWithNext = False 8]l(D  
        .KeepTogether = False 2:;;  
        .PageBreakBefore = False @ gjA8mL  
        .Hyphenation = False v =E(U4v9e  
         @ "/:Omh  
        .OutlineLevel = wdOutlineLevelBodyText oN=>U"<\1  
         c{})Z=  
       G`,M?l mL  
        .CharacterUnitLeftIndent = 0 Z4D[nPm$  
        .CharacterUnitRightIndent = 0 0!q@b  
        .CharacterUnitFirstLineIndent = 2 `~2I  
         t+A 9nvj)  
        .LineUnitBefore = 0 kB_T9$0e#  
        .LineUnitAfter = 0 M)sAMfuUw  
        .SpaceBefore = 0 *m[[>wE  
        .SpaceAfter = 0 SF[}s uL  
         \y+@mJWa  
        .DisableLineHeightGrid = True jL:GP}I=  
    End With J{PNB{v  
    ActiveDocument.Styles("QLNU正文").NoSpaceBetweenParagraphsOfSameStyle = False I$oqFF|D  
    ActiveDocument.Styles("QLNU正文").ParagraphFormat.TabStops.ClearAll ;~(yv|f6  
    ActiveDocument.Styles("QLNU正文").LanguageID = wdSimplifiedChinese $)VnHr `hy  
    ActiveDocument.Styles("QLNU正文").NoProofing = True }EN-WDJD\  
    DoEvents >4nQ&b.u  
     '_ FxxLAO  
    '图片段落样式 Eb9n6Fg  
    ActiveDocument.Styles("QLNU图片段落").BaseStyle = ActiveDocument.Styles("BaseStyle") b}Xh|0`b+  
    ActiveDocument.Styles("QLNU图片段落").NextParagraphStyle = "BaseStyle" 1krSX 2L  
    ActiveDocument.Styles("QLNU图片段落").AutomaticallyUpdate = False Tvd: P^ C  
    With ActiveDocument.Styles("QLNU图片段落").Font Z^#u n  
        .Size = 12               '小四号 T}Ve:S  
        .Italic = wdUndefined Pk&sY'  
        .Subscript = wdUndefined *JiI>[  
        .Superscript = wdUndefined +*x9$LSD  
    End With |}wT/3>\  
    With ActiveDocument.Styles("QLNU图片段落").ParagraphFormat uevhW  
         # 2?3B  
        .LeftIndent = CentimetersToPoints(0) jXYjs8Iy  
        .RightIndent = CentimetersToPoints(0) \?"kT}..  
        .FirstLineIndent = CentimetersToPoints(0) gh.+}8= "  
         {EyWSf"  
        .LineSpacingRule = wdLineSpaceSingle y`J8ha wp  
        .Alignment = wdAlignParagraphCenter x+,:k=JMT  
        .KeepWithNext = True B1b9 JS(>  
        .OutlineLevel = wdOutlineLevelBodyText qzi i[Mf  
         NwNjB w%v  
        .CharacterUnitLeftIndent = 0 C{]1+eL  
        .CharacterUnitRightIndent = 0 k;l^y%tzp  
        .CharacterUnitFirstLineIndent = 0 xi15B5 _Ps  
         1i@a? 27|  
        .LineUnitBefore = 0 5GDg_9Bz  
        .LineUnitAfter = 0 3% O[W  
    End With Wn Ng3'6  
    ActiveDocument.Styles("QLNU图片段落").NoSpaceBetweenParagraphsOfSameStyle = False b-YmS=*  
    ActiveDocument.Styles("QLNU图片段落").ParagraphFormat.TabStops.ClearAll {Hzj(c~S?  
    ActiveDocument.Styles("QLNU图片段落").LanguageID = wdSimplifiedChinese }[SYWJIc  
    ActiveDocument.Styles("QLNU图片段落").NoProofing = True $dF$-y<[0  
    DoEvents %(:{TR  
     SL?YU(a  
     fY!9i5@'  
    '第X章 P}"uC `036  
    ActiveDocument.Styles("QLNU章节标题").BaseStyle = ActiveDocument.Styles("BaseStyle") PyM59v  
    ActiveDocument.Styles("QLNU章节标题").NextParagraphStyle = "BaseStyle" `a9iq>   
    ActiveDocument.Styles("QLNU章节标题").AutomaticallyUpdate = False 'm.+S8  
    With ActiveDocument.Styles("QLNU章节标题").Font Ceew~n{  
        .NameFarEast = "黑体" |P7FP mn  
        .NameAscii = "Arial Black"  !x EGN@  
        .NameOther = "Arial Black" jm,cVo  
        .Name = "黑体" UZJ#/x5F  
        .Size = 16 OZQN&7  
        .Bold = True .a9f)^  
        .UnderlineColor = wdColorAutomatic ln_[@K[oX  
        .Outline = False ;1q|SmF  
        .Italic = wdUndefined T (? CDc+  
        .Subscript = wdUndefined S#S&_#$`,X  
        .Superscript = wdUndefined ,z`* 1b8  
        .Scaling = 100 G$;cA:p-j  
        .DisableCharacterSpaceGrid = True !JA//{?  
    End With \hg%J/  
    With ActiveDocument.Styles("QLNU章节标题").ParagraphFormat P 4+}<5  
        .LineSpacingRule = wdLineSpaceSingle kQO-V 4z!  
        .Alignment = wdAlignParagraphCenter Koc5~qUY]  
        .WidowControl = True 2Wr^#PY60  
        .KeepWithNext = True 05o<fa2HE  
        .KeepTogether = True jt3=<&*Bm  
        .PageBreakBefore = True RhkTN'vO  
        .OutlineLevel = wdOutlineLevelBodyText 'q1cc5(ueV  
         Zhc99L&K  
        .LeftIndent = CentimetersToPoints(0) +IG=|X  
        .RightIndent = CentimetersToPoints(0) j5rMY=|F  
        .FirstLineIndent = CentimetersToPoints(0) =LKf.@]#  
         gB]jLe  
        .CharacterUnitLeftIndent = 0 O6Y1*XTmH6  
        .CharacterUnitRightIndent = 0 T%w5%{dqJ  
        .CharacterUnitFirstLineIndent = 0 I !O5+Er  
         ?b\oM v5y  
        .LineUnitBefore = 1 OOnhT  
        .LineUnitAfter = 0.5 UvuA N:'  
         qI*7ToBJ  
        .AutoAdjustRightIndent = False HSEz20s  
        .DisableLineHeightGrid = True OtoG,~?  
        .FarEastLineBreakControl = True ku GaOO  
        .WordWrap = True hpYW1kfQl  
    End With oObQN;A@6  
    ActiveDocument.Styles("QLNU章节标题").NoSpaceBetweenParagraphsOfSameStyle = False |2Uw8M7.E  
    ActiveDocument.Styles("QLNU章节标题").ParagraphFormat.TabStops.ClearAll mEyIbMci  
    ActiveDocument.Styles("QLNU章节标题").LanguageID = wdSimplifiedChinese sCE%./h]  
    ActiveDocument.Styles("QLNU章节标题").NoProofing = True {2U3   
    DoEvents W6V((84(O  
     {TaYkuWS  
    '表格标题 y-mjfW`n  
    ActiveDocument.Styles("QLNU表格标题").BaseStyle = ActiveDocument.Styles("BaseStyle") C0CJ;   
    ActiveDocument.Styles("QLNU表格标题").NextParagraphStyle = "BaseStyle" nBwDq^  
    ActiveDocument.Styles("QLNU表格标题").AutomaticallyUpdate = False %+ytX]E  
    With ActiveDocument.Styles("QLNU表格标题").Font 5. +_'bF|  
        .NameFarEast = "楷体" eQ<Vky^SJ  
        .NameAscii = "Arial" 8LUl@!4b  
        .Name = "楷体" nxe9^h7m  
        .Size = 10.5 z&CBjlh  
        .Bold = True ':]Hj8t_  
        .Underline = wdUnderlineNone XC4wm #R  
        .Italic = wdUndefined g9j&\+h^  
        .Subscript = wdUndefined rTim1<IXR  
        .Superscript = wdUndefined Cm9#FA  
        .Color = wdColorAutomatic d2Ta&Md  
    End With _}tPtHPa/  
    With ActiveDocument.Styles("QLNU表格标题").ParagraphFormat ywA7hm  
         :-oMkBS  
        .LineSpacingRule = wdLineSpaceSingle ' 1X^@]+6  
        .Alignment = wdAlignParagraphCenter hP$5>G(3  
        .KeepWithNext = True AYfL}X<Ig  
        .KeepTogether = True }H|'W[Q.  
        .OutlineLevel = wdOutlineLevelBodyText b"w@am>&  
         ]rji]4s  
        .LeftIndent = CentimetersToPoints(0) |qpFR)l  
        .RightIndent = CentimetersToPoints(0) C]Q}HI#G  
        .FirstLineIndent = CentimetersToPoints(0) D/+l$aBz  
         lLLPvW[Q  
        .CharacterUnitLeftIndent = 0 f( <O~D  
        .CharacterUnitRightIndent = 0 k\IdKiOj!D  
        .CharacterUnitFirstLineIndent = 0 ~bz$]o-<  
         9V>C %I  
        .LineUnitBefore = 1 /q) H0b  
        .LineUnitAfter = 0 \=Od1i  
         hp@F\9j  
    End With ,JfP$HJ  
    ActiveDocument.Styles("QLNU表格标题").NoSpaceBetweenParagraphsOfSameStyle = False WAJ KP"  
    ActiveDocument.Styles("QLNU表格标题").ParagraphFormat.TabStops.ClearAll Xq}}T%jcd  
    ActiveDocument.Styles("QLNU表格标题").LanguageID = wdSimplifiedChinese d '\ ^S}  
    ActiveDocument.Styles("QLNU表格标题").NoProofing = True eu'~(_2  
    DoEvents nK#%Od{GF  
S2>$S^[U  
    '表格首行 iqKs:v@+x  
    ActiveDocument.Styles("QLNU表格首行").BaseStyle = ActiveDocument.Styles("BaseStyle") 15d' /f  
    ActiveDocument.Styles("QLNU表格首行").AutomaticallyUpdate = False S_38U  
    With ActiveDocument.Styles("QLNU表格首行").Font X2'XbG 3  
        .NameFarEast = "楷体" xXSfYW  
        .NameAscii = "Times New Roman" 9U Hh#  
        .Name = "楷体" g @NwW&  
        .Size = 9 eo^C[# .  
        .Bold = True gy xC)br  
        .Underline = wdUnderlineNone l[[^]__  
        .Italic = wdUndefined  #"fn;  
        .Subscript = wdUndefined i!iG7X)qT  
        .Superscript = wdUndefined m@2=v q1f  
    End With 3gtKD9RL:  
    With ActiveDocument.Styles("QLNU表格首行").ParagraphFormat c-U]3`;Q  
        .LineSpacingRule = wdLineSpaceSingle ll*Ez"  
        .Alignment = wdAlignParagraphCenter 1 ]ePU8  
         cUn>gT  
        .LeftIndent = CentimetersToPoints(0) z>)lp$  
        .RightIndent = CentimetersToPoints(0) +'_ peT.8  
        .FirstLineIndent = CentimetersToPoints(0) Q=Liy@/+!  
         >X*Y jv:r  
         S3&n?\CO:  
        .CharacterUnitLeftIndent = -0.5 8+H 0  
        .CharacterUnitRightIndent = -0.5 lv+: `   
        .CharacterUnitFirstLineIndent = -0.5 U65oh8x  
         =,8nfJ+x  
        .LineUnitBefore = 0 wQa,o l_p  
        .LineUnitAfter = 0 wLNk XC  
        .SpaceBefore = 0 k]~$AaNq  
        .SpaceAfter = 0 tl`x/   
         L nyow}  
    End With r 5t{I2  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False D;[%*q*  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll -Ua&/Yd/}  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese = BbG2k  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True )&l5I4CIf  
    DoEvents ^ 4*#QtO  
aLlH R_  
    '表格内容 uzh TNf  
    ActiveDocument.Styles("QLNU表格内容").BaseStyle = ActiveDocument.Styles("BaseStyle") z<gII~%  
    ActiveDocument.Styles("QLNU表格内容").AutomaticallyUpdate = False t<"%m)J  
    With ActiveDocument.Styles("QLNU表格内容").Font ]GD&EQ  
        .NameFarEast = "楷体" 4gZ)9ya   
        .NameAscii = "Times New Roman" $LiBJ~vV<  
        .Name = "楷体" }$LnjwM;,  
        .Size = 9 M>xT\  
        .Bold = False )a9C3-8Y'  
        .Underline = wdUnderlineNone IkO [R1K  
        .Italic = wdUndefined s\p 1EL(  
        .Subscript = wdUndefined t#w,G  
        .Superscript = wdUndefined HVK0NI  
    End With pJuD+v  
    With ActiveDocument.Styles("QLNU表格内容").ParagraphFormat `26.+>Z7  
        .LineSpacingRule = wdLineSpaceSingle >E3-/)Ti  
        .Alignment = wdAlignParagraphCenter v# e*RI2}  
         15OzO.Ud  
        .LeftIndent = CentimetersToPoints(0) @FF80U4'  
        .RightIndent = CentimetersToPoints(0) J"$U$.W=  
        .FirstLineIndent = CentimetersToPoints(0) <C451+95  
         _-2n tO<E  
        .CharacterUnitLeftIndent = -0.5 8,(--A  
        .CharacterUnitRightIndent = -0.5 9 9^7Ek!z#  
        .CharacterUnitFirstLineIndent = -0.5 ZD4aT1|Q7  
        .LineUnitBefore = 0 @!^Y_q  
        .LineUnitAfter = 0 204"\ mv  
        .SpaceBefore = 0 + WT?p]  
        .SpaceAfter = 0 5 ed|]LP  
    End With u=Xpu,q  
    ActiveDocument.Styles("QLNU表格首行").NoSpaceBetweenParagraphsOfSameStyle = False Yv0y8Vz@  
    ActiveDocument.Styles("QLNU表格首行").ParagraphFormat.TabStops.ClearAll `ZT/lB`  
    ActiveDocument.Styles("QLNU表格首行").LanguageID = wdSimplifiedChinese *$Z y|&[Z  
    ActiveDocument.Styles("QLNU表格首行").NoProofing = True A5Q4wy`  
    DoEvents *Ea)b -  
u?F.%j-  
    '图片标题 { SDnVV  
    ActiveDocument.Styles("QLNU图片标题").BaseStyle = ActiveDocument.Styles("BaseStyle") }<&?t;  
    ActiveDocument.Styles("QLNU图片标题").NextParagraphStyle = "BaseStyle" ./^8L(  
    ActiveDocument.Styles("QLNU图片标题").AutomaticallyUpdate = False oDayfyy4y)  
    With ActiveDocument.Styles("QLNU图片标题").Font &h_Y?5kK  
        .NameFarEast = "楷体" NE4]i  
        .NameAscii = "Times New Roman" b_7LSp  
        .Name = "楷体" }pGjc_:']  
        .Size = 10.5 G ]uz$V6!  
        .Bold = True "=LeHY=9  
        .Underline = wdUnderlineNone 6cD3(//  
        .Italic = wdUndefined r! [Qpb-:  
        .Subscript = wdUndefined HZ1nuA  
        .Superscript = wdUndefined l dp$jrNLr  
        .Outline = False :#cJZ\YH  
        .Shadow = False 5sNN:m  
        .Color = wdColorAutomatic g:@4/+TSt  
    End With + R~ !G  
    With ActiveDocument.Styles("QLNU图片标题").ParagraphFormat |~&cTDd  
        .LineSpacingRule = wdLineSpaceSingle [f}`reRlZ  
        .Alignment = wdAlignParagraphCenter &WOm[]Q4  
         \S&OAe/b  
        .KeepWithNext = wdUndefined Y#6LNI   
        .KeepTogether = True T#i~/  
        .OutlineLevel = wdOutlineLevelBodyText Z?V vFEt%  
         Z#D*HAd`  
        .LeftIndent = CentimetersToPoints(0) i0*Cs#(=h  
        .RightIndent = CentimetersToPoints(0) z, FPhbFn  
        .FirstLineIndent = CentimetersToPoints(0) >V4r '9I  
         57O|e/2  
        .CharacterUnitLeftIndent = 0 J #jFX F\  
        .CharacterUnitRightIndent = 0 I zVc  
        .CharacterUnitFirstLineIndent = 0 ;mC|> wSZ  
         B I=5 7  
        .LineUnitBefore = 0 9+/D\|"{  
        .LineUnitAfter = 0 fRq+pUx U  
    End With \HG4i/V:h  
    ActiveDocument.Styles("QLNU图片标题").NoSpaceBetweenParagraphsOfSameStyle = False s_^N=3Si   
    ActiveDocument.Styles("QLNU图片标题").ParagraphFormat.TabStops.ClearAll #l MC#Ld  
    ActiveDocument.Styles("QLNU图片标题").LanguageID = wdSimplifiedChinese o{QV'dgu  
    ActiveDocument.Styles("QLNU图片标题").NoProofing = True kUfbB#.5L  
    DoEvents fjY:u,5V_  
sB$ "mJ  
    '目录项 oOaLD{g>  
    ActiveDocument.Styles("QLNU目录项").BaseStyle = ActiveDocument.Styles("BaseStyle") mn*}U R  
    ActiveDocument.Styles("QLNU目录项").NextParagraphStyle = "BaseStyle" D7m uf  
    ActiveDocument.Styles("QLNU目录项").AutomaticallyUpdate = False 4wGBB{X  
    With ActiveDocument.Styles("QLNU目录项").Font %oWG"u  
        .NameFarEast = "黑体" lCBH3-0^  
        .NameAscii = "Times New Roman" Zj_2B_|WN#  
        .NameOther = "Times New Roman" e+:X%a4\  
        .Name = "黑体" ;=k{[g 'gv  
        .Size = 10.5  wG6Oz2(  
        .Bold = False 'St?nW3  
        .Italic = wdUndefined U"oHPK3"TA  
        .Underline = wdUnderlineNone h:sf?X[  
        .Color = wdColorAutomatic <0? r# }  
        .Superscript = wdUndefined 5NhAb$q2Y  
        .Subscript = wdUndefined '-Oh$hqCx|  
    End With ZkO2*;  
    With ActiveDocument.Styles("QLNU目录项").ParagraphFormat 4bL? V^@7  
         ]&9=f#k%  
        .LineSpacingRule = wdLineSpaceSingle u J]uz%  
        .Alignment = wdAlignParagraphLeft k8@bQ"#b  
         _+H $Pa}?  
        .WidowControl = False 3\{\ al   
        .KeepWithNext = False LC$M_Cpw  
        .KeepTogether = False (ti!Y"e2  
        .PageBreakBefore = False f.bwA x  
        .NoLineNumber = False teC/Uf 5  
        .OutlineLevel = wdOutlineLevelBodyText ?$uEN_1O\@  
         )>U"WZ'<  
        .LeftIndent = CentimetersToPoints(0) 3Bvz& `\  
        .RightIndent = CentimetersToPoints(0) S%B56|'  
        .FirstLineIndent = CentimetersToPoints(0) ~ wOMT  
         p=#/H ,2  
        .CharacterUnitLeftIndent = 0 mN.  
        .CharacterUnitRightIndent = 0 W~a|AU8]C  
        .CharacterUnitFirstLineIndent = 0  Z'l!/l!  
         yeBfzKI{b  
        .LineUnitBefore = 0 ;PnN$g]Q  
        .LineUnitAfter = 0 ZS=;)  
    End With Ts3!mjn  
    ActiveDocument.Styles("QLNU目录项").NoSpaceBetweenParagraphsOfSameStyle = False f`_{SU"3  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.ClearAll @&%/<|4P5  
    ActiveDocument.Styles("QLNU目录项").ParagraphFormat.TabStops.Add Position:=PicasToPoints(44.5), Alignment:=wdAlignTabRight, Leader:=wdTabLeaderMiddleDot "] Uj _d  
    ActiveDocument.Styles("QLNU目录项").LanguageID = wdSimplifiedChinese w'XSkI_ay  
    ActiveDocument.Styles("QLNU目录项").NoProofing = True />pAZa  
    DoEvents ~)[ pL(4  
     :>Qu;Z1P  
    '参考文献 QDVSFGwr  
    ActiveDocument.Styles("QLNU参考文献").BaseStyle = ActiveDocument.Styles("BaseStyle") t o8J   
    ActiveDocument.Styles("QLNU参考文献").NextParagraphStyle = "BaseStyle" og~a*my3  
    ActiveDocument.Styles("QLNU参考文献").AutomaticallyUpdate = False ~4O3~Y_+GN  
    With ActiveDocument.Styles("QLNU参考文献").Font 0 c1=M|2  
        .NameFarEast = "宋体" 5wha _Yet  
        .NameAscii = "Times New Roman" e@S$[,8  
        .NameOther = "Times New Roman" ,-8Xb+!8I  
        .Name = "Times New Roman" <#199`R  
        .Size = 12 Nl/ fvJ`4  
        .Bold = False Y6.Bi  
        .Italic = wdUndefined D>ou,  
        .Subscript = wdUndefined ?L H[,8z  
        .Superscript = wdUndefined `T{CB) ? 9  
        .Underline = wdUnderlineNone r!w*y3  
        .UnderlineColor = wdColorAutomatic N}<!k#d E  
        .Color = wdColorAutomatic >[wB|V5  
        .Engrave = False 3gD <!WI  
    End With g0;;+z  
    With ActiveDocument.Styles("QLNU参考文献").ParagraphFormat G2 V$8lh  
         b?VByJl  
        .LineSpacingRule = wdLineSpaceExactly EwgNd Gcj  
        .LineSpacing = 16 q/Ji}NGm  
        .Alignment = wdAlignParagraphLeft ;!lwB  
        .WidowControl = False p GF;,h>  
        .KeepWithNext = False  s{{8!Q  
        .KeepTogether = False dmcY]m  
        .PageBreakBefore = False bj0<A  
        .OutlineLevel = wdOutlineLevelBodyText zAvI f  
         (w\|yPBB  
        .LeftIndent = CentimetersToPoints(0) ShvC4Xb 0  
        .RightIndent = CentimetersToPoints(0) ,fN <I  
        .FirstLineIndent = CentimetersToPoints(0) [ dUAb  
         ?<Hgq8J  
        .CharacterUnitLeftIndent = 0 A$n.'*gK  
        .CharacterUnitRightIndent = 0 J><hrZ  
        .CharacterUnitFirstLineIndent = -2 O '`|( L  
         fe"w--v  
        .LineUnitBefore = 0 <eP,/H  
        .LineUnitAfter = 0 Da!vGr  
        .SpaceBefore = 0 g_k95k3V'  
        .SpaceAfter = 0 3Zs0W{OxU  
         8 nqF i  
    End With B1s&2{L6K  
    ActiveDocument.Styles("QLNU参考文献").NoSpaceBetweenParagraphsOfSameStyle = False #3eI4KJ4+l  
    ActiveDocument.Styles("QLNU参考文献").ParagraphFormat.TabStops.ClearAll -dN`Ok<g  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdEnglishUS v6 |[p  
    ActiveDocument.Styles("QLNU参考文献").NoProofing = True 6}0_o[23  
    ActiveDocument.Styles("QLNU参考文献").LanguageID = wdSimplifiedChinese 59v=\; UI  
    DoEvents kmo#jITa`  
"Mv^S'?>  
    ' (Q ^=^s|  
    ActiveDocument.Styles("QLNU论文题目").BaseStyle = ActiveDocument.Styles("BaseStyle") w7Mh8'P54  
    ActiveDocument.Styles("QLNU论文题目").NextParagraphStyle = "BaseStyle" 2V$Jn8v,`{  
    ActiveDocument.Styles("QLNU论文题目").AutomaticallyUpdate = False cxvO,8NiB  
    With ActiveDocument.Styles("QLNU论文题目").Font -nX{&Z3-s  
        .NameFarEast = "黑体" l0qHoM,1Y[  
        .NameAscii = "Arial Black" g 4|ai*^  
        .NameOther = "Arial Black" f)gV2f0t  
        .Name = "Arial Black" =|dm#w_L"  
        .Size = 16 ,,6lQ]wG  
        .Bold = False `[XH=-p  
        .Italic = wdUndefined < <Y]P+uU  
        .Superscript = wdUndefined $uUyp8F  
        .Subscript = wdUndefined ;=E}PbZt2  
        .Underline = wdUnderlineNone E[=&6T4  
        .UnderlineColor = wdColorAutomatic 5|t-CY{?b  
        .Color = wdColorAutomatic m!!;CbPo  
* CAz_s<  
    End With d{) =E8wE  
    With ActiveDocument.Styles("QLNU论文题目").ParagraphFormat R/Sm  
        .LineSpacingRule = wdLineSpaceSingle )"|wWu  
        .Alignment = wdAlignParagraphCenter wV{j CQ  
        .WidowControl = True [D(JEO@ :  
        .KeepWithNext = True p]?eIovi  
        .KeepTogether = True )8n ?.keq  
        .PageBreakBefore = True e6qIC*C!  
        .NoLineNumber = False ZCb@!V}=  
        .OutlineLevel = wdOutlineLevelBodyText B|+% ExT7  
         r2PN[cLu|  
        .LeftIndent = CentimetersToPoints(0)  j0O1??  
        .RightIndent = CentimetersToPoints(0) B# .xs>{N  
        .FirstLineIndent = CentimetersToPoints(0) -*Qg^1]i+  
         mo= @Zt  
        .CharacterUnitLeftIndent = 0 'O9Yu{M  
        .CharacterUnitRightIndent = 0 ,?Vxcr  
        .CharacterUnitFirstLineIndent = 0 /R?*i@rvf  
         UEm4):/}  
        .LineUnitBefore = 1 45iO2W uur  
        .LineUnitAfter = 1 dS \n 2Qb  
         $P#+Y,r~\  
        .BaseLineAlignment = wdBaselineAlignAuto yp@cn(:~  
    End With \ $t{K  
    ActiveDocument.Styles("QLNU论文题目").NoSpaceBetweenParagraphsOfSameStyle = False .i*ja*   
    ActiveDocument.Styles("QLNU论文题目").ParagraphFormat.TabStops.ClearAll QwF.c28[  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdEnglishUS 3UZ_1nY  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True -em3 #V  
    ActiveDocument.Styles("QLNU论文题目").LanguageID = wdSimplifiedChinese a9_2 b}t  
    ActiveDocument.Styles("QLNU论文题目").NoProofing = True s>WqVuXmn  
    DoEvents NNTrH\SU #  
     V:+vB "  
    '中文摘要 .L^;aL  
    ActiveDocument.Styles("QLNU中文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") JHVndK4L  
    ActiveDocument.Styles("QLNU中文摘要").NextParagraphStyle = "BaseStyle" :0 Y.${h  
    ActiveDocument.Styles("QLNU中文摘要").AutomaticallyUpdate = False Wf%)::G*uR  
    With ActiveDocument.Styles("QLNU中文摘要").Font ;j(*:Nt1  
        .NameFarEast = "宋体" /X#OX 8gb]  
        .NameAscii = "Times New Roman" V\FlKC   
        .NameOther = "Times New Roman" rq1~%S  
        .Name = "Times New Roman" jv1p'qs4  
        .Size = 12 ~x_(v,NW  
        .Bold = wdUndefined ~ 7Nqwwx  
        .Superscript = wdUndefined O8rd*+  
        .Subscript = wdUndefined Vhb~kI!x  
        .Italic = wdUndefined e%{7CR'~TD  
        .Underline = wdUnderlineNone @E h(GZN  
        .UnderlineColor = wdColorAutomatic LW("/  
        .Color = wdColorAutomatic S"87 <o  
    End With 7)Tix7:9S;  
    With ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat sk~7"v{Y.  
        .LineSpacingRule = wdLineSpaceExactly *laFG <;  
        .LineSpacing = 20 2)n%rvCQ  
        .Alignment = wdAlignParagraphLeft ]^{5`  
         IBNb!mPu%  
        .WidowControl = False KVViTpZ  
        .KeepWithNext = False V/R@ =[  
        .KeepTogether = True 4j i#Q  
        .PageBreakBefore = False e(`r"RrQ  
        .NoLineNumber = False (5[#?_~  
        .OutlineLevel = wdOutlineLevelBodyText $U. 2"  
          x}d5 Y  
        .LeftIndent = CentimetersToPoints(0) -(}N-yu  
        .RightIndent = CentimetersToPoints(0) 8 ?:W{GAo  
        .FirstLineIndent = CentimetersToPoints(0) je>gT`8  
         5"q{b1  
        .CharacterUnitLeftIndent = 0 KK-+vq  
        .CharacterUnitRightIndent = 0 _n4`mL8>kH  
        .CharacterUnitFirstLineIndent = 2 YxA nh  
        .LineUnitBefore = 0 ,5K&f\  
        .LineUnitAfter = 0 Ls.g\Gl3  
         =FFs8&PKys  
    End With A^0-%Ygl  
    ActiveDocument.Styles("QLNU中文摘要").NoSpaceBetweenParagraphsOfSameStyle = False b+Vlq7Bc  
    ActiveDocument.Styles("QLNU中文摘要").ParagraphFormat.TabStops.ClearAll CPP9=CoR37  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdEnglishUS 4xFAFK~lx  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True |Q?$n3-f"  
    ActiveDocument.Styles("QLNU中文摘要").LanguageID = wdSimplifiedChinese kjQI=:i=  
    ActiveDocument.Styles("QLNU中文摘要").NoProofing = True mt e3k=17  
    ActiveDocument.Styles("QLNU中文摘要").Frame.Delete tEibxE  
    DoEvents cmaha%3d  
     *|0W3uy\Y  
    ActiveDocument.Styles("QLNU英文标题").BaseStyle = ActiveDocument.Styles("BaseStyle") n iB<h  
    ActiveDocument.Styles("QLNU英文标题").NextParagraphStyle = "BaseStyle" A O5a  
    ActiveDocument.Styles("QLNU英文标题").AutomaticallyUpdate = False *0'{ n*>  
    With ActiveDocument.Styles("QLNU英文标题").Font [ei5QSL |  
        .NameFarEast = "黑体" @OHNz!Lj:d  
        .NameAscii = "Arial Narrow" %VXIiu[  
        .Name = "Arial Narrow" B8up v~U 6  
        .Size = 16 $D f1t  
        .Bold = True /\1Q :B3W  
        .Bold = wdUndefined J KCV >k  
        .Superscript = wdUndefined soKR*gJ,  
        .Subscript = wdUndefined O U mZ|  
        .Italic = wdUndefined mcQ\"9;pY  
         fKuaom9  
        .Underline = wdUnderlineNone i@<w"yNd_  
        .UnderlineColor = wdColorAutomatic pMp@W`i^6  
        .StrikeThrough = False W>P:EI1  
        .DoubleStrikeThrough = False gKIN* Od  
    End With pBQ[lPCY/  
    With ActiveDocument.Styles("QLNU英文标题").ParagraphFormat G~Y#l@8M+  
        .LineSpacingRule = wdLineSpaceSingle H-X5A\\5  
        .Alignment = wdAlignParagraphCenter X&K,,C  
        .WidowControl = True AJzm/,H  
        .KeepWithNext = False A7|x|mW  
        .KeepTogether = False R~N%sn  
        .PageBreakBefore = False kll ,^A  
        .NoLineNumber = False jd 8g0^  
        .FirstLineIndent = CentimetersToPoints(0) F{}:e QD  
        .OutlineLevel = wdOutlineLevelBodyText 'XSHl?+q  
         eMH\]A~v"  
        .LeftIndent = CentimetersToPoints(0) ;hFB]/.v  
        .RightIndent = CentimetersToPoints(0) 15DlD`QV  
        .FirstLineIndent = CentimetersToPoints(0) %U1HvmyK  
         Ja@ ?.gW  
        .CharacterUnitLeftIndent = 0 sn@)L~$V  
        .CharacterUnitRightIndent = 0 ZQ[s:  
        .CharacterUnitFirstLineIndent = 0 :+ "JPF4X  
         icK U)  
        .LineUnitBefore = 1 ~<osL  
        .LineUnitAfter = 1 O9{A)b!HB  
         \OK}DhY#  
    End With !W=2ZlzS  
    ActiveDocument.Styles("QLNU英文标题").NoSpaceBetweenParagraphsOfSameStyle = False ^AUQsRA7PZ  
    ActiveDocument.Styles("QLNU英文标题").ParagraphFormat.TabStops.ClearAll ({!*&DVu  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdEnglishUS A {')  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True ;:Kc{B.s  
    ActiveDocument.Styles("QLNU英文标题").LanguageID = wdSimplifiedChinese }yCgd 5+_  
    ActiveDocument.Styles("QLNU英文标题").NoProofing = True \}Pr!tk!  
    ActiveDocument.Styles("QLNU英文标题").Frame.Delete i{J[;rV9  
    DoEvents ,l\D@<F  
8mX:*$qm:  
    ActiveDocument.Styles("QLNU英文摘要").BaseStyle = ActiveDocument.Styles("BaseStyle") ?/p."N:]H  
    ActiveDocument.Styles("QLNU英文摘要").NextParagraphStyle = "BaseStyle" a1weTn*  
    ActiveDocument.Styles("QLNU英文摘要").AutomaticallyUpdate = False qEjsAL  
    With ActiveDocument.Styles("QLNU英文摘要").Font Ax!fvcsN  
        .NameFarEast = "宋体" {Z[kvXf"mZ  
        .NameAscii = "Arial" gti=GmL(L  
        .NameOther = "Arial" ACgWT  
        .Name = "Arial" s: MJ{r(s  
        .Size = 12 ]08~bL1Q  
        .Bold = wdUndefined H {Na'_sL  
        .Italic = wdUndefined ,z0E2  
        .Superscript = wdUndefined !|Y&h0e  
        .Subscript = wdUndefined HsK5 2<  
    End With F0Z cV>j}  
     "n<u(m8E  
    With ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat } x'o`GuUf  
         9x9E+DG#(  
        .LineSpacingRule = wdLineSpaceExactly '9|R7  
        .LineSpacing = 20  uQW d1>  
         Gs}lw'pK  
        .Alignment = wdAlignParagraphJustify H329P* P  
         [{_K[5i  
        .WidowControl = False a\I`:RO=<Z  
        .KeepWithNext = False [3W+h1  
        .KeepTogether = False .fY$$aD$4  
        .PageBreakBefore = False Mz6|#P}.s  
        .NoLineNumber = False Fd9Z7C  
         $I /RN  
        .OutlineLevel = wdOutlineLevelBodyText +T7FG_  
         jH4Wu`r;m  
        .LeftIndent = CentimetersToPoints(0) yXc@i)9w3  
        .RightIndent = CentimetersToPoints(0) Szlww  
        .FirstLineIndent = CentimetersToPoints(0) m$ q*  
         )v.\4Q4  
        .CharacterUnitLeftIndent = 0 Je` w/Hl/U  
        .CharacterUnitRightIndent = 0 @{880 5Dp  
        .CharacterUnitFirstLineIndent = 2 0j{KZy  
         0+S'i82=M  
        .LineUnitBefore = 0 j!`2Z@  
        .LineUnitAfter = 1 y? 65*lUl  
         nSU7,K`PM  
    End With V0:db  
    ActiveDocument.Styles("QLNU英文摘要").NoSpaceBetweenParagraphsOfSameStyle = False MK4CggoC  
    ActiveDocument.Styles("QLNU英文摘要").ParagraphFormat.TabStops.ClearAll c<qJs-C4;  
    ActiveDocument.Styles("QLNU英文摘要").LanguageID = wdEnglishUS I~c}&'V  
    ActiveDocument.Styles("QLNU英文摘要").NoProofing = False c-a;nAR  
    DoEvents *km - pp  
G@S'_  
    Options.Pagination = True 0 f"M-x  
    Me.txtStatus.Text = "样式修改完成,重新进行分页,请稍候....." vYG$>*  
    DoEvents u+8?'ZT,  
    ActiveDocument.Repaginate 7jF2m'(  
Cd7d-'EQn  
End Sub Al]z =  
&44?k:  
UgLJV2M6  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

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

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

jVu3!{}  
V|fs"HY  
这个地方现在已经变化很大了。以前紧靠山东农科院的实验田
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

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

显示用户信息 
94楼  发表于: 2015-09-06   
拍下的火车 _`zj^*%  
第6车皮 >2~q{e  

6l>$N?a  
ZWSYh>"  
第9车皮 u1&pJLK0[  
.Eg>)  
  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

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

一共这么多文件。 b{t'Doe  
}cG!93  
这是我用VB写出的最大的程序,也是用API最多的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
92楼  发表于: 2015-09-06   
这才是我当年写出的一个比较烂的程序 gfs?H#  
nmVL%66K  
Main2.bas Sf)VQ5U!Y  
&/4W1=>(  
Attribute VB_Name = "SubMain" <w.W[ak  
Option Explicit 4*_9Gl  
ucyz>TL0  
'采集文件与临时文件 @U(D&_H,K  
Public Const TmpFile As String = "d:\30-0600.dat" =LS?:Mhm  
'已有数据:30-0600.dat /30日早6点进车与6:30出车头 {|6(_SM|  
R$=UJ}>  
Public fStatus As Long, hFile As Long, bytesRW As Long, lptrFile As Long Qd 1Q~PBla  
Public hBCFile As Long  '记录采集参数的文件 &gZ5dTj>  
Public Const TmpBMP As String = "d:\1.bmp" EOj o>w>  
Public hTmpFile As Long A\_cGM2  
#!KbqRt  
|j niI(  
'采集窗口参数常量 XU .FLNe  
Public Const FrameH As Long = 280& %9xz[Ng  
Public Const FrameW As Long = 768& 8|`4D 'Ln  
Public Const pFrameSize As Long = FrameW * FrameH RJ1 Q.o  
K<KyX8$P0  
'标志区范围,用于识别车辆 )G0a72  
Public Const PilarC As Integer = 260   '识别标志立柱中线坐标X Mjrl KI}f/  
Public Const mkW As Integer = 28  '识别标志立柱宽度 n97A'"'wz  
Public Const mkH As Integer = 80 ''识别标志立柱高度(上白中黑下白) %J?;@ G)r  
Public Const mkY As Integer = 4 ''识别标志立柱Y坐标(40-79白, 80-119黑,120-159白) Cw`v\ 9  
Public Const mkX As Integer = PilarC - mkW / 2 '识别标志立柱X坐标 I m1e/F]  
'车缝检测位置常数 :~pPB#)nk  
Public Const sSize As Long = 32& E[>4b7{g:  
Public Const sPos As Long = 310& eW]K~SPd7  
Public Const sPosL As Long = 200& 1+PLj[;jJ:  
Public Const sPosR As Long = 500& T"XP`gk  
'车缝检测框位置 {SW}S_  
Public Slice(1 To sSize, 1 To FrameH) As Byte 37Z:WJ?  
Public SliceL(1 To sSize, 1 To FrameH) As Byte i!<,8e=  
Public SliceR(1 To sSize, 1 To FrameH) As Byte 3ADT Yt".  
Public avSL As Integer, avSLR As Integer, avSLL As Integer S\ ~Wpf  
ao<@a{G  
_YY:}'+  
Public MKpilar(1 To mkW * mkH) As Byte   '一维数组用于亮度对比度分析,比使用二维数组更便于VB编译优化 U&|=dH]-  
'该数组用于亮度对比度调节、车辆通过识别与车皮间隔识别 UfSWdR)  
Public BsLine(1 To 4 * FrameW) As Byte, bsAV As Integer  '图像的前4行。用于确定标志区的亮度与对比度范围 b:Dr _|  
Public PilarW As Long, PilarH As Long, PilarX As Long, PilarY As Long PWOV~ `^;  
Public LeftBK(1 To 1024, 0 To 1) As Byte, RightBK(1 To 1024, 0 To 1) As Byte =usx' #rb  
'前后帧左右上角128列*8行像素块,根据平均值差绝对值判断进车方向 GmB7@-[QA%  
AS[cz! >  
yK<%AV@v  
a 1Qg&s<  
'一次连续采集的帧数 pIk&NI  
Public tFrames As Long JB a:))lw  
{mMrD 5  
'在采集卡申请的缓存中,是按帧为单位的,每一帧包含奇偶场两场的数据 }| _uqvin  
'而该卡的硬件设置是按场采集,只需要读第一场的数据即可。 impzqQlZ,  
'所以要设置的缓存帧的大小是frameW*frameH*2,而一场的数据量为pFrameSize !j6]k^ra  
IDb|J%e^P  
Public pFRAME(1 To FrameW, 1 To FrameH) As Byte 74rz~ZM 5  
Public pBuffer(1 To FrameW * FrameH * 2) As Byte q3B#rje>h  
Public pWorkSpace(1 To FrameW * FrameH) As Long oW(p (>  
Public Const pBufferSize As Long = FrameW * FrameH * 2 B i?DmrH  
Public pGray(0 To 255) As Long '整幅图像的灰度直方图 &)OX*y  
%8tlJQvu  
Public hBoard As Long   '采集卡标识 Hm4:m$=p 4  
Public mBufferAddr As Long  '缓存地址 0x'>}5`5  
Public BufferSize As Long  '缓存大小(字节) #vYdP#nWb  
Public iCurrentCard As Long J.mEOo!>  
Public CapStatus As Long pm,&kE  
Public iFrames As Long Iw8;",e2  
Public currentBr As Byte, currentContr As Byte -4o6 OkK<  
b;O]@kBB  
Public hMEM As Long, mStatus As Long a5:Q%F<!  
Public Const hMemSize As Long = pFrameSize * 4 nM1U=Du  
Public hMemWork As Long *?7Ie;)  
Public Const hMemWorkSize As Long = pFrameSize * 5 ? r=cLC  
q 4PRc<\^  
l. ?R7f  
W\o(f W  
'串口接收轨道衡数据 Y(ly0U}  
Public WeightFromCom As String el39HB$  
Public bReceiveComplete As Boolean xXM`f0s@+]  
@!&\Z[",  
C".&m  
Public Type GrayBMPHeader l=[<gPE  
  Tag As Integer <P7f\$o~  
  FileLength As Long    '文件大小 #[C |%uq  
  Reserve1 As Long 0Np }O=>  
  DataOffset As Long    '图像数据偏移量 |_8- 3  
  BMPHeaderSize As Long  '文件头长 0ejx; Mum  
                        'length of the bitmap info header used to describe the bitmap colors, compression,… Uwr inkoeE  
                        'the following sizes are possible: a1B_w#?8  
                        '28h - windows 3.1x, 95, nt, … *;8tj5du  
                        '0ch - os/2 1.x 2GA6@-u\  
                        'f0h - os/2 2.x bN@V=C3  
-kxNJ Gc?  
  ImageWidth As Long           '图像宽(像素数) ~S15tZ $  
  ImageHeight As Long          '图像高(像素数) @kn0f`  
  PlaneNumber As Integer  '图像层数 1Dg\\aUk  
  bpp As Integer    'bits per pixels    '1 - monochrome bitmap f*7/O |Gp  
                                        '4 - 16 color bitmap 'H <?K  
                                        '8 - 256 color bitmap 8*I43Jtlf,  
                                        '16 - 16bit (high color) bitmap ` ZXX[&C  
                                        '24 - 24bit (true color) bitmap 9~bje^M  
                                        '32 - 32bit (true color) bitmap gX5I`mm  
  Compression As Long '压缩方法     '0 - none (also identified by bi_rgb) &F*s.gL  
                                    '1 - rle 8-bit / pixel (also identified by bi_rle4) a;D{P`%n  
                                    '2 - rle 4-bit / pixel (also identified by bi_rle8) V6?ku6k  
                                    '3 - bitfields (also identified by bi_bitfields) abUvU26t  
  IMAGESIZE As Long  '图像数据字节数 /cUcfe#X  
  hResolution  As Long  '水平分辩率  像素数/米 1 e1$x@\\  
  vResolution  As Long  '垂直分辩率 (Sr&Y1D  
  ColorsinBMP As Long   '图中所用的颜色。对256色图像总为0x100 0: R}  
  ImportantColors As Long v{^_3 ]  
  Pallate(0 To 255) As Long  '图像每个值对应的实际显示颜色,项数对应PallateNumber所指调色板项数 8E"Ik ~  
End Type ~xpU<Pd*  
f@T/^|`mh  
Gvw4ot/  
=O1N*'e  
Public BMPHeader As GrayBMPHeader, BMP1 As GrayBMPHeader 2j ` x^  
Public sRECT As RECT 7OG=LF*V-  
I4ZL +a  
\T'uFy9&a  
Public conn As ADODB.Connection jzSh|a9_  
Public rsTrain As ADODB.Recordset &/}]9 #  
Public rsOperater As ADODB.Recordset W~k"`g7uu  
Public rsGoods As ADODB.Recordset _ro^<V$%  
Public rsGood2 As ADODB.Recordset sptDzVM  
Public rsSender As ADODB.Recordset }x`W+r  
Public rsReceover As ADODB.Recordset (m 4`l_  
Public rsTrainTMP As ADODB.Recordset G2U=*|  
\@vR*E  
W)ihk\E  
'打开采集卡 lwaxj7  
'设置参数 V03U"eI="  
'设置为实时单帧采集到缓存方式 r.0IC*Y  
'由另一线程查询采集状态,如果完成采集,传送至用户数组分析或保存 -mOSB(#bo  
*g]q~\b/;  
}BS.OK?  
Sub Main() +^YXqOXU  
  Dim i As Integer, status As Long  pI|Lt  
     T~7i:<E^  
   InitBMPinfo -bu.Ar-#;h  
   '生成BMP文件头---该文件头是固定将pFRAME数组写成BMP文件 3:7J@>  
    BMPHeader.Tag = &H4D42 PuqT&|wP l  
    BMPHeader.ImageWidth = FrameW  @T  
    BMPHeader.ImageHeight = FrameH o {Sc  
    BMPHeader.BMPHeaderSize = &H28 -$J\BkI  
    BMPHeader.PlaneNumber = 1 1w/1k6`0  
    BMPHeader.bpp = 8 {$)zC*l  
    BMPHeader.Compression = 0 /Y:&307q  
    BMPHeader.hResolution = &H1274   'Windows pBrush.exe的默认值,PhotoED.exe默值为0 \dTX%<5D  
    BMPHeader.vResolution = &H1274 oE[wOq +  
    BMPHeader.ColorsinBMP = 256 N_lQz(nG/2  
    BMPHeader.ImportantColors = BMPHeader.ColorsinBMP rlmzbIu I9  
    BMPHeader.DataOffset = Len(BMPHeader) #ok1qT9_  
    For i = 0 To 255 ;BUJ5  
      BMPHeader.Pallate(i) = RGB(i, i, i) M5s>;q)  
    Next i jt?4raNW  
    BMPHeader.IMAGESIZE = FrameH * FrameW CTQF+Oe8O  
    BMPHeader.FileLength = Len(BMPHeader) + BMPHeader.IMAGESIZE N}b/; Y  
Lz's!b  
fi^ I1*S  
    MoveMemory BMP1, BMPHeader, Len(BMPHeader) \:-#,( .V  
     W'u6F-$2  
    BMP1.ImageWidth = FrameW `@q[&^  
    BMP1.ImageHeight = FrameH * 2 P7O$*  
    BMP1.IMAGESIZE = BMP1.ImageWidth * BMP1.ImageHeight :jB~rhZ~  
    BMP1.FileLength = Len(BMP1) + BMP1.IMAGESIZE l^w=b~|7=  
4eK!1|1  
  '确定标志位置,为pilarX, pilarY确定初始值 P?  VGY  
   PilarW = mkW xQ9P'ru   
   PilarH = mkH  '此两项为固定值 #\[h.4i  
   PilarX = GetSetting(App.EXEName, "Mark", "MarkX", mkX) aa2&yc29hp  
   PilarY = GetSetting(App.EXEName, "Mark", "MarkY", mkY)  '此两项需要在程序初始化时检查并进行调整 T_|%n F-+  
   lfp[(Ph)9  
   wv>*g:El'  
  '连续采集记录文件 "i_I<?aGB  
  ' 建立一个缓冲区为页对齐方式的文件 eRc+.m[  
  If Dir(TmpFile) <> "" Then Fxdu)F,~u  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ qk;*$Q  
     0&, 0&, OPEN_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) A94ZG:   
    ' 在95/98中,如果打开文件时没有声明overlapped方式,在读定文件时就不能使用overlapped参数项 'd4I/  
    ' 而必须用setfilepointer函数调节与操作系统保留的文件指针。 b}< T<  
  Else bhDV U(%I6  
    hFile = CreateFile(TmpFile, GENERIC_READ Or GENERIC_WRITE, _ 5A oKlJrY  
     0&, 0&, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING, 0&) |1wfLJ4--l  
  End If O*xC}$OOn  
  If hFile = 0 Then L| .q19b*  
    MsgBox TmpFile & ": File Open Error", vbOKOnly B:#5U85m  
    Exit Sub  P&"8R  
  End If =/Pmi_  
  '采集参数记录文件 b<>GF-`w  
hBCFile = FreeFile() !|;^  
Open TmpFile + ".BC" For Binary Access Read Write As #hBCFile mIgc)"  
   kIhP 73M  
hMEM = VirtualAlloc(ByVal 0&, hMemSize, MEM_COMMIT, PAGE_READWRITE)  ’分配系统内容 'g.9 goQ  
If hMEM = 0 Then {I0b%>r=  
    fStatus = GetLastError U>?q|(u  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ pQAG%i^mF  
     & "请向技术人员报告该错误代码。", vbOKOnly g*?)o!_*  
    CloseHandle hFile 9W88_rE'e}  
    Exit Sub u :AKp<'  
End If EITA[Ba B`  
NC'+-P'y  
hMemWork = VirtualAlloc(ByVal 0&, hMemWorkSize, MEM_COMMIT, PAGE_READWRITE) ;[TC`DuNj0  
If hMemWork = 0 Then b9Jah  
    fStatus = GetLastError nXPl\|pXt  
    MsgBox "内存分配错误: 错误代码 - " & Str(fStatus) & vbCrLf _ 6x|"1 G{  
     & "请向技术人员报告该错误代码。", vbOKOnly ZDuP|" ^  
     '释放已成功分配的内存  al/Mgo  
    mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) V/5.37FSb  
    mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) jA_w OR7$  
     %Z9&zmO  
    CloseHandle hFile ?,uTH 4  
    Exit Sub <"F\&M`G  
End If {\z&`yD@  
a,g3 /  
' Test writing wZB:7E%  
'WriteFile hFile, ByVal hMEM, ByVal 4096&, bytesRW, ByVal 0& 07 [%RG  
     |& OW_*l  
   '初始化采集卡参数 )Be?axI  
   iCurrentCard = -1 !lQGoXQ'4  
   hBoard = okOpenBoard(iCurrentCard) !lxs1!:  
   Debug.Print hBoard W <.h@Rz+  
   If hBoard = 0 Then \1|]?ZQ\K  
      ExitGrabber -}avH  
      End ,{DZvif   
   End If OiBDI3,|+  
   okGetBufferSize hBoard, mBufferAddr, BufferSize aDEz |>q  
   If mBufferAddr = 0 Then *FhD%><  
     MsgBox "缓存不存在!" ZslH2#   
     ExitGrabber Tk~RT<\Ab+  
   End If W,<L/ZKJ  
   Debug.Print Hex(mBufferAddr), Hex(BufferSize) b{Srd3  
   ,Vb;2  
   ?4>uGaU\  
   currentBr = 128: currentContr = 128  +6paM  
   '设置视频输入参数 Sc!]M 5  
   okSetVideoParam hBoard, VIDEO_SOURCECHAN, 1 'Video2 T,N"8N{K"  
      ' lParam=0,1.. Comp.Video; 0x100,101...to Y/C(S-Video), 0x200,0x201 to RGB Chan.Input XfY~q~f8  
   okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 K5l#dl_T  
   okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度  ---初始设置条件下如果图像亮度达不到基本要求则控制灯光 [MLJs-*   
   okSetVideoParam hBoard, VIDEO_RGBFORMAT, FORM_GRAY8 '8位灰度模式 u\LG_/UJV1  
   okSetVideoParam hBoard, VIDEO_TVSTANDARD, 0 'PAL制式 #m>Rt~(,S  
   okSetVideoParam hBoard, VIDEO_SIGNALTYPE, &H10000 '逐行(低字)同步开槽(高字) YDh6XD<Z  
   okSetVideoParam hBoard, VIDEO_RECTSHIFT, 144 + &H2C0000 '有效区起始位置:高字Y偏移,低字X偏移 (144/44经验值) ;VM',40  
   okSetVideoParam hBoard, VIDEO_AVAILRECTSIZE, FrameW + FrameH * 2 * &H10000 '有效区大小:低字X高字Y (768/576采集卡最大值) OSP#FjH  
   okSetVideoParam hBoard, VIDEO_FREQSEG, 0 ' 低频部分信号 Zx$q,Zo<  
   8/q6vk><  
   '设置采集参数 wkNf[>jX?  
   okSetCaptureParam hBoard, CAPTURE_INTERVAL, 0  '逐帧 oVi_X98R  
   okSetCaptureParam hBoard, CAPTURE_CLIPMODE, 2 '裁剪方式 i T* !3  
   okSetCaptureParam hBoard, CAPTURE_BUFRGBFORMAT, FORM_GRAY8  '8位灰度 OS|uZ<"Rq3  
   okSetCaptureParam hBoard, CAPTURE_HARDMIRROR, 0 '不作镜像变换 T.ZPpxY  
   okSetCaptureParam hBoard, CAPTURE_FRMRGBFORMAT, FORM_GRAY8 '帧存格式 j{}-zQ]n  
   okSetCaptureParam hBoard, CAPTURE_SAMPLEFIELD, 0 ' 逐场采集 5A|4  
   okSetCaptureParam hBoard, CAPTURE_HORZPIXELS, 944  '水平像素数 PAL制式固定值 x~1.;dBF  
   okSetCaptureParam hBoard, CAPTURE_VERTLINES, 625 '垂直线数 4cZig\mE;  
   okSetCaptureParam hBoard, CAPTURE_SEQCAPWAIT, 0 '不等结束立即返回 UrAg*v!Qy  
   'okSetCaptureParam hBoard, CAPTURE_BUFBLOCKSIZE, FrameW + FrameH * 2 * &H10000 kg@D?VqJP  
   'Buffer Block Size不用设置,而用okSetTargetRect函数进行动态调节 },1**_#<Br  
   6x18g(KbP  
   ~yacJU=  
   okCloseBoard hBoard p }p1>-j  
   Sleep 50 yLv jf P1  
   hBoard = okOpenBoard(iCurrentCard)   '关闭后重新打开使新的设置值生效 BC!n;IAe  
   [f`^+,U  
   '设置数据传送方式 "s[Y$!#  
   'okSetConvertParam hBoard, CONVERT_FIELDEXTEND, FIELD_COPYEXTEND '逐行并扩展行 ifA=qn0= }  
   '该设置对本程序无意义,因为程序直接用CopyMemory方法读缓存,而扩展行方式是在用采集卡内置函数读RECT过程中实现的。 K&1o!<|  
   Qdepzo>E  
   sRECT.Right = -1   '用于获得当前设置值 KKMzhvf]#  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) j5hM |\]  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom dzA5l:5  
   Debug.Print okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)  'FrameW + FrameH * &H10000 85;hs  
   sRECT.Left = 0 +Smt8O<N  
   sRECT.Top = 0 $BIQ# T>qK  
   sRECT.Right = sRECT.Left + FrameW -anLp8G*  
   sRECT.Bottom = sRECT.Top + FrameH * 2 \1` L-lz  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) OPm ?kr  
   Y)D~@|D ,  
   sRECT.Right = -1   '检查新设置值 "F_o%!l  
   iFrames = okSetTargetRect(hBoard, BUFFER, sRECT) F\pw0^K;N  
   Debug.Print sRECT.Left, sRECT.Right, sRECT.Top, sRECT.Bottom 4a'O#;h o  
   Debug.Print Hex(okSetCaptureParam(hBoard, CAPTURE_BUFBLOCKSIZE, -1)) dFdll3bC  
   si`{>e~`6P  
   If TESTSignal = False Then ?Q$LIoR  
      'ExitGrabber X`xI~&t_  
   End If WY=RJe2  
   %cIF()  
   bpe8 `b(#  
   {8L)Fw  
   '设为实时采集状态 2kv%k3 Q{  
   'iFrames = okCaptureActive(hBoard, BUFFER, 0&) PT2b^PP  
   00DWXGt20o  
   [y^)&L$=  
   '单帧采集 t<`h(RczHI  
   'okWaitSignalEvent hBoard, EVENT_FRAMEHEADER, -1 m3|KIUP  
   'iFrames = okCaptureSingle(hBoard, BUFFER, 0&) aFkxR\x 6%  
   okCaptureTo hBoard, BUFFER, 0, 1 'single FN$ hEc!  
   'Do While okGetCaptureStatus(hBoard, False) <> 0 -I, _{3.S  
   '   Sleep 20 <9za!.(zu  
   'Loop NF?FEUoxz  
   okGetCaptureStatus hBoard, True  ]J= S\  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize }h+_kRQ  
   '写入768*576测试图象 sU7>q}!  
   ArrayToBMP TmpBMP eF O+@  
   g4n& k  
   '打开数据库 qg7] YT&  
   Set conn = New ADODB.Connection M~&|-Hm  
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ i&cH  
      "Persist Security Info=False;Data Source=" & "c:\train\train.mdb" & _ iz|mJUx  
      "; Mode=Read|Write" {HgW9N(  
   conn.Open _ F0qq j  
   `i{k^Q  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) s3G\L<~mB  
   frmRecord.Visible = True d<*4)MRN  
   frmQuery.Visible = True IKJ~sw~AQ  
   Load frmReceiveFromComm ,H{ /@|RW  
   3F%Q q7v  
   '调试参数 c[=%v]j:u  
   If InStr(UCase(Command()), "/CAPTURE") > 0 Then |=OO$z;q|  
     SignalBox.Visible = True Bjg 21b w^  
   End If hl4@Y#n  
   If InStr(UCase(Command()), "/COMM") > 0 Then mtfyhFk  
     frmReceiveFromComm.Visible = True , N :'Z  
   End If 6~g:"}  
%9_wDfw~  
End Sub | ?6 wlf  
>.R6\>N%  
Sub ExitGrabber() ! ;Mh5*-  
  '关闭数据库 4SG22$7W  
  '关闭采集卡 4fDo }~  
  mStatus = VirtualFree(ByVal hMEM, hMemSize, MEM_DECOMMIT) !U02>X   
  mStatus = VirtualFree(ByVal hMEM, 0&, MEM_RELEASE) ;bt@wgY  
  mStatus = VirtualFree(ByVal hMemWork, hMemWorkSize, MEM_DECOMMIT) )B d`N^k+  
  mStatus = VirtualFree(ByVal hMemWork, 0&, MEM_RELEASE) cQ4TYr;?  
  okStopCapture hBoard ,v"/3Ff{,  
  okCloseBoard hBoard Dl862$_Q  
  CloseHandle hFile ^V^In-[!y:  
  Close #hBCFile +mBJvrI  
  conn.Close WY@x2bBi  
  End pv;c<NQ'1  
End Sub X,- ' v[z  
* *?mZtF  
Function ArrayToBMP(ByVal File As String) dEXHd@"H  
Dim BytesWrite As Long J CIm*6~  
cz_4cMgxu  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, _ T;-Zl[H  
  CREATE_ALWAYS, 0&, 0&) -Q@jL{Ue  
kndP?#> p1  
If hTmpFile = 0 Then r#{r]q_E*  
   ArrayToBMP = False Y^)VHE]  
   Exit Function T[$Sbz`  
End If >K`.!!av,Y  
(xU+Y1*g"%  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN {HqwpB\@  
WriteFile hTmpFile, BMPHeader, 2&, BytesWrite, ByVal 0& D\Y)E#%,  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN _ Ko0  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& &`7~vA&c  
ht^U VV2  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN _/[n/"gn  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& I3Sl>e(Z  
~A8%[.({5  
If BytesWrite < pFrameSize Then C9-9cdW H  
  ArrayToBMP = False fgxsC7P$  
End If Rl4r 9  
0XlX7Sk+  
CloseHandle hTmpFile ` R@24 )  
[7Nn%eZC  
End Function Ow\9vf6H  
39!o!_g  
Function ArrayToBMP1(ByVal File As String) F"a^`E&  
%EPqJ(T  
Dim BytesWrite As Long @LY 5]og  
*$(=I6b  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ oH+UuP2a-J  
  CREATE_ALWAYS, 0&, 0&) O$ i6r]j_  
<$liWAGX\  
If hTmpFile = 0 Then [5%/{W,~m  
   ArrayToBMP1 = False ` w S g/  
   Exit Function < %Qw dEO  
End If {d$S~  
]\nG1+ta  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN da@y*TO#i  
WriteFile hTmpFile, BMP1, 2&, BytesWrite, ByVal 0& ,8( %J3J  
BfOG e!Si  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN !2x"'o  
WriteFile hTmpFile, BMP1.FileLength, Len(BMP1) - 2, BytesWrite, ByVal 0& KmV>tn BQ  
#SY8Zv  
SetFilePointer hTmpFile, Len(BMP1), 0&, FILE_BEGIN GS{:7%=j  
WriteFile hTmpFile, pBuffer(1), pBufferSize, BytesWrite, ByVal 0& ^_<>o[qE  
;>=hQC{f>  
If BytesWrite < pBufferSize Then v)JQb-<  
  ArrayToBMP1 = False l,/q# )5[  
End If K*J8(/WkD  
:C42yQAP  
CloseHandle hTmpFile rL URP2~  
 OU=9fw  
End Function PiB)pUYj  
T[)) ful  
'使用该过程建立的文件要求在用后关闭 RCt)qh+  
Public Function ArrayToBMP2(File As String) As Boolean T JY$<:  
QnxkD)f*0  
Dim BytesWrite As Long T 4 SByX9  
|D^Q}uT  
ArrayToBMP2 = True Fg a9  
^&uWAQohL  
hTmpFile = CreateFile(File, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, _ U]sU b3  
  CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, 0&) o,) p*glO  
i:#R U^R  
If hTmpFile = 0 Then -b@E@uAX /  
   ArrayToBMP2 = False Cu({%Gy+  
   Exit Function :Puv8[1i  
End If ;hs:wLVa"  
hBsjO3n  
SetFilePointer hTmpFile, 0&, 0&, FILE_BEGIN Fc}wu W  
WriteFile hTmpFile, BMPHeader, 2, BytesWrite, ByVal 0& 2h&pm   
ZP)=2'RY  
SetFilePointer hTmpFile, 2&, 0&, FILE_BEGIN EpGe'S  
WriteFile hTmpFile, BMPHeader.FileLength, Len(BMPHeader) - 2, BytesWrite, ByVal 0& BN4dr9T  
,Ucb)8a  
SetFilePointer hTmpFile, Len(BMPHeader), 0&, FILE_BEGIN :0T]p"y4  
WriteFile hTmpFile, pFRAME(1, 1), pFrameSize, BytesWrite, ByVal 0& pb%#`2"  
}jd[> zk  
If BytesWrite < pFrameSize Then `n-e.{O((  
  ArrayToBMP2 = False s)=L6t^a6  
End If i/xPO  
v%3)wD  
CloseHandle hTmpFile #py7emu  
:kZ2N67  
End Function gx[#@ (  
@6*<Xs =  
Private Function TESTSignal() As Boolean wri[#D {  
Dim extsign As Long, videotype As Long, scanlines As Long, fieldfrq As Long 6o;lTOes  
:&)RK~1m_  
extsign = okGetSignalParam(hBoard, SIGNAL_VIDEOEXIST) z!Kadqns  
7\ff=L-b  
If extsign = 1 Then K=sQ_j.&Z  
   TESTSignal = True 5d}PrYa  
Else u\qyh9s  
    If extsign = 0 Then E08AZOY&g  
        MsgBox "无视频输入信号,检查摄像机电源!", vbOKOnly S=aXmz<  
        TESTSignal = False dab>@z4  
        Exit Function `@.YyPxX\  
    End If qe(X5 ?#;  
End If `M>{43dj  
e;3$7$n Pv  
'测试视频输入类型 P[P!WLr""  
'video type ,h/0:?R KW  
okWaitSignalEvent hBoard, EVENT_ODDFIELD, 40 \)BKuIP  
videotype = okGetSignalParam(hBoard, SIGNAL_VIDEOTYPE) glHag"(  
If videotype = 1 Then q){]fp.,@  
        '"隔行信号(Interlaced)" 54F([w  
Else !^axO  
   If videotype = 0 Then W&06~dI1!  
       '"逐行信号(Non-interlaced)" B_5q}Bp<  
   Else mKpUEJ<a  
     If videotype = -1 Then Q,\lS  
       ' "不支持" >mF`XbS  
     End If >\DXA)nc  
   End If 4)j<(5  
End If |[34<tIN  
XQ(`8Jl&^  
'测试垂直扫描线数 ZuS+p0H"  
'video scanlines Rl5}W\&  
scanlines = -1 %n}.E30 4  
scanlines = okGetSignalParam(hBoard, SIGNAL_SCANLINES) hQGZrZK#  
    If scanlines = -1 Then +G/~v`Bv  
        ' "不支持" '%RMpyK~  
    Else ;JL@V}L,  
        'Trim(Str(ScanLines)) + " 行数/幅" s* 9tWSd  
    End If n^Z?u9VR  
mA^>Y_:  
'测试帧频 \yG_wZs  
'video field frequency !W$Br\<  
    fieldfrq = okGetSignalParam(hBoard, SIGNAL_FIELDFREQ) =r0!-[XCa  
    If fieldfrq = -1 Then /HzhgMV3  
        'lblSignal(8) = "不支持" |P? 8<8p  
    Else YSrFHVq  
        'lblSignal(8) = Trim(Str(FieldFRQ)) + " 场数/秒" 0^(.(:  
    End If q/OraPAB  
End Function }Pb!u9_  
q=?"0i&V  
h]EXD   
Sub PicIdentify() D'nV &m  
'本程序完成从文件中按顺序读出一幅图像并完成图像识别 Zl,K#  
'根据固定位置判断透过车皮连接处接收的对面的立柱影像。出现立柱后该帧前1-2帧与后1-2帧分别为车号信息与车皮信息 tW=0AtZl]  
'判定标准:如果在立柱位置上有明显的模式反差,则视为车皮之间的间隔 )%j)*Ymz;  
'方法:对立柱标志区进行平均值二值化,面积为32*40,亮区(255)与暗区(0)的亮度平均值理论差大于200倍,实际差值应不小于100倍 r)j#Skh].  
i0AC.]4e"  
  Dim fPTR As Long, cFrame As Long X_!mZ\H7  
  Dim i As Long, j As Integer, pTotal As Long, pAV As Integer ^\+6*YE 4  
     Jy|Mfl%d  
%\b5)p  
cFrame = 0 ; wHuL\  
%oor7 -l  
WZ&#O#(eO`  
Do While cFrame < tFrames La9@h"  
   wFqz.HoB  
  fStatus = SetFilePointer(hFile, cFrame * pFrameSize, 0&, FILE_BEGIN) }Xc|Z.6  
  fStatus = ReadFile(hFile, ByVal hMEM, ByVal pFrameSize, bytesRW, ByVal 0&) *fd` .}  
  MoveMemory pFRAME(1, 1), ByVal hMEM, pFrameSize b1*6 )  
   M.OWw#?p:_  
  frmRecord.RText.Text = Str(cFrame) ?tA- `\E  
  frmRecord.RText.Refresh jilO%  "  
       LnJ7i"Q  
  If CheckMark = True Then rkD4}jV  
   ArrayToBMP TmpBMP 3F.O0Vz  
   frmRecord.Picture1.Picture = LoadPicture(TmpBMP) t*}<v@,  
   frmRecord.RText.Text = "第" & Str(cFrame) & "帧" +V'r >C:  
   d'3'{C|kk  
   DrawSlice }p- %~ Y  
   U'lmQrF!  
   'i = MsgBox("检测到立柱:第" & Str(cFrame) & "帧", vbYesNo) SbI,9<  
   'If i = vbNo Then :m$%D]WY  
   '  Exit Do Ej34^*m9k  
   'End If k6Tpaf^  
   'cFrame = cFrame + 1 {Zseu$c  
   +mxYz#reX  
  End If kT$4X0}  
  DoEvents ;%k%AXw  
  cFrame = cFrame + 1 =kc{Q@Dk  
Loop 4x C0Aw  
End Sub 8 dZH&G@;  
JnsXEkM)  
e@,L~ \  
Function CheckMark(Optional iBlk As Integer = 30, Optional iWhite As Integer = 230) As Boolean 15eHddd  
#&8 Opo(  
'如标志区模式反差存在则为TRUE,否则返回FALSE Mvcl9  
WG}QLcP  
Dim i As Integer, j As Integer, mTotal As Long, mAV As Single, mTop As Long, mBot As Long HdnSs0 /  
CheckMark = True 9MYt4  
   d?{2A84S  
'复制标志区 *(k=!`4(  
For i = 1 To mkH &0C!P=-p  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW nVM`&azD  
Next i / 9;Pbxn  
(Iq\+@xE=  
For j = 1 To PilarW * PilarH / 2 50R+D0^mh  
   mTop = mTop + MKpilar(j) AT9SD vJ  
Next j ^#t<ILUa  
[&`>&u@MK  
For j = PilarW * PilarH / 2 + 1 To PilarW * PilarH E Fv+[  
   mBot = mBot + MKpilar(j) sIy$}_  
Next j 11-uJVO~*  
/gdo~  
mTop = mTop / PilarW / PilarH * 2 v Cmh3TQ  
mBot = mBot / PilarW / PilarH * 2 pF !vW  
eD(a +El}  
mAV = (mTop + mBot) / 2 + (mBot - mTop) / 4 '标志区平均亮度 x) U;  
Y zvtxX*  
'平均值极值化 g1{wxB FE  
  For j = 1 To PilarH * PilarW R;.WOies4  
    MKpilar(j) = IIf(MKpilar(j) > mAV, 255, 0) Bpp9I;)c  
  Next j (@#Lk"B  
   L"-&B$B:  
mTop = 0: mBot = 0 w6yeX<!ll  
For j = 1 To PilarH * PilarW / 2 %4 -pw|':  
  mTop = mTop + MKpilar(j) 7r;A wa  
Next j 'Qfy+_0  
plIx""a^h  
For j = PilarH * PilarW / 2 + 1 To PilarH * PilarW v4.V%tg!  
  mBot = mBot + MKpilar(j) AdYQhF##  
Next j QA9vH'  
:|A db\b  
H Z}'W<N  
  mTop = mTop / PilarH / PilarW * 3 UD(#u3z  
  mBot = mBot / PilarH / PilarW * 3 2bC%P})m  
   Q$zlxn 7\  
_k@l-Bj  
If mBot > iWhite And mTop < iBlk Then pxC5a i  
  CheckMark = True h/VYH(Tj  
Else U{}7:&As  
  CheckMark = False r 1a{Y8?  
End If 2M1mdkP3  
End Function yTvK)4&  
F>Oh)VL,Ev  
Sub Capture1Frame() .R"L$V$RU.  
   okCaptureTo hBoard, BUFFER, 0, 1 'single 1 M{#"t{6  
   okGetCaptureStatus hBoard, True $.cGRz  
   MoveMemory pFRAME(1, 1), ByVal mBufferAddr, pFrameSize `&6]P:_qp  
End Sub 3gh^a;uC  
_ o(h]G1].  
^KF'/9S   
Sub CopyMark(iBlk As Integer, iWhite As Integer) ]a%Kn]HI&2  
'复制标志区并返回标志区暗区与亮区的亮度平均值 Y'~&%|9+T  
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 ;lEiOF+d  
   ;$/G T  
'复制标志区 18HHEW{  
For i = 1 To mkH Smu x&e  
   MoveMemory MKpilar((i - 1) * PilarW + 1), pFRAME(PilarX, PilarY + i), PilarW &tOD  
Next i +~v(*s C  
bDNd m-  
For j = 1 To mkW * mkH / 2 a RwBxf  
   mTotal = mTotal + MKpilar(j) 0cbF.Um8  
Next j c8s/`esA  
}<S2W\,G  
iBlk = mTotal / (mkW * mkH / 2)  '标志区上部白区平均亮度 !{XO#e  
NEH$&%OV?  
mTotal = 0 x M[#Ah)  
For j = mkW * mkH / 2 + 1 To mkW * mkH xd.C&Dx5  
   mTotal = mTotal + MKpilar(j) .0ZvCv:>  
Next j .KS Gma6]  
$ g^;*>yr  
iWhite = mTotal / (mkW * mkH / 2) '标志区下部黑区平均亮度 [P,nW/H  
ou- ;k }  
'背景亮度 cA \W|A)  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW ]>,|v,i =  
  For i = 1 To 4 * FrameW Dw[Q,SE   
    bsTotal = bsTotal + BsLine(i) ;Vy' y  
  Next i 1mV0AE538  
  bsAV = bsTotal / FrameW / 4 {XCrjO|  
`ouzeu9}  
End Sub ]]ZBG<#  
5`DH\VD.j  
F{+`F<r  
Sub AdjIMGbright(Optional bInit As Boolean = True) !R@4tSu  
"8]170  
  '自动调节亮度与对比度,此时处于无车辆状态(白天特别高,而夜间特别暗) $F%?l\7j  
  '图像平均亮度白天不高于200(当车辆通过时可能会下降到100左右),不低于100 J)-> 7h =  
  '            夜间不高于80(过高时通常是由于雪花噪声引起),但立柱不低于30 B;Z^.3  
     "F}Ip&]hAG  
  Dim bsTotal As Long, i As Integer, iBlack As Integer, iBright As Integer y_&XF>k91  
   FHC7\#p/9Z  
  '按标准亮度与对比度采集一帧,确定背景亮度 gD\}CxtG  
  currentContr = 128   '初始对比度 qQ'@yTVN  
  currentBr = 128   '初始亮度 (Vv]:Y]  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 7q=0]Hrg(D  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 5S? yj  
  DoEvents *S4P'JSY  
  Capture1Frame 3Cl9,Z"&6$  
  '获得图像上缘4行象素 }{y$$X<:  
  MoveMemory BsLine(1), pFRAME(1, 1), 4 * FrameW iT"Itz-^#  
  CopyMark iBlack, iBright   '图像标志区亮度 8(;i~f:bCW  
  For i = 1 To 4 * FrameW u\wd<<I']  
    bsTotal = bsTotal + BsLine(i) IA4(^-9  
  Next i 3"n8B6  
  bsAV = bsTotal / FrameW / 4    '图像上缘基线亮度 p'4P2   
   w1b <>A?87  
  Select Case bsAV jFv<]D%A[  
     Case 0 To 60    '夜间通过灯光照明,完全没有背景 &O,$l3 P  
       currentBr = 150 SAJ=)h~  
       currentContr = 60 }+J@;:  
     Case 61 To 80   '有可见背景 T1&H!  
       currentBr = 140 R2s>;V.:  
       currentContr = 70 VLN3x.BY  
     Case 81 To 100  '有清晰背景 t} M3F-NZ  
       currentBr = 128 CQ[-Cp7  
       currentContr = 80 : \OvVS/  
     Case 100 To 150  '有明亮背景 do,X{\  
       currentBr = 140                '5:30-6:00钟实测数据 $C/Gn~k 5  
       currentContr = 50 nSiNSLv  
     Case 151 To 180 S@)bl  
       currentBr = 130 %R>S"  
       currentContr = 60 }"Cn kg  
     Case 181 To 220  '背景全为白色 <hbbFL}|%  
       currentBr = 110 zJ`(L nV  
       currentContr = 130 6zWvd  
     Case 221 To 255  '背景全为白色 buXG32;  
       currentBr = 100 A'8K^,<  
       currentContr = 100 6f!mk:\T.  
  End Select SI9hS4<j  
   k]iS3+nD  
  Select Case (iBlack + iBright) / 2   '图像反射光强度修正 L />GYx  
        Case 100 To 150 Gp+XM  
          currentBr = currentBr - 10 #VE$C3<  
        Case 151 To 255 MvmP["%J4_  
          currentBr = currentBr - 20 Se`N5hQ  
  End Select O2dgdtm  
   z-G (!]:  
  okSetVideoParam hBoard, VIDEO_BRIGHTNESS, currentBr '亮度 gEsR-A!m  
  okSetVideoParam hBoard, VIDEO_CONTRAST, currentContr '对比度 R.T-Ptene  
End Sub r|@?v,  
i#=X#_ +El  
Sub CopyCorner(rowID As Integer, diffL As Integer, diffR As Integer) vBx^zDe  
    Dim i As Integer, j As Integer, L1 As Long, L2 As Long, R1 As Long, R2 As Long Se8y-AL6x>  
     7p$*/5fk  
    For i = 1 To 8 6%#'X  
      MoveMemory LeftBK((i - 1) * 128 + 1, rowID), pFRAME(1, i), 128& y~jIA p  
      MoveMemory RightBK((i - 1) * 128 + 1, rowID), pFRAME(640, i), 128& B_2>Yt"  
    Next i a)Ek~{9  
     )M 0O=Cl1  
    For j = 1 To 1024 Rp*t"HSaAW  
      L1 = L1 + LeftBK(j, 0) yFo5pKF.J  
      L2 = L2 + LeftBK(j, 1) ={ '($t%|T  
      R1 = R1 + RightBK(j, 0) PEIr-qs%D  
      R2 = R2 + RightBK(j, 1) `qz5rPyZ  
    Next j !?/bK[ P,  
    diffL = Abs(L1 - L2) / 1024 eb\`)MI/  
    diffR = Abs(R1 - R2) / 1024 *Rh .s!@4  
End Sub bicL %I2h  
9A(K_d-!H  
Function CheckSlice() As Boolean [#Vr)\n  
  CopySlice avSL, avSLR, avSLL Q8oo5vqQ#C  
  If Abs(avSL - avSLL) > (Abs(avSLL - avSLR) + 5) * 4 Then \k_3IP?o=  
    CheckSlice = True w"iZn  
  Else *Mc\7D  
    CheckSlice = False 4?& a?*M  
  End If T} [vfIJD  
End Function R <\Yg3m8  
5I,X#}K[  
Sub CopySlice(avSL As Integer, avSLR As Integer, avSLL As Integer) E 5{)d~q  
  Dim i As Long, j As Long, total As Long, totalL As Long, totalR As Long s= fKAxH  
  For i = 1 To FrameH e~;)-Z  
    MoveMemory Slice(1, i), pFRAME(sPos, i), sSize jt--w"|-r  
    MoveMemory SliceL(1, i), pFRAME(sPosL, i), sSize MlE~ gCD  
    MoveMemory SliceR(1, i), pFRAME(sPosR, i), sSize %Qz`SO8x?  
  Next i x^2/jUc#B  
  For i = 1 To FrameH e&4u^'+K  
    For j = 1 To sSize v6\2m c.  
       total = total + Slice(j, i) Zr;=p"cXr  
       totalL = totalL + SliceL(j, i) dRa<,@1"  
       totalR = totalR + SliceR(j, i) i%8&g2  
    Next j q: EQ,  
  Next i 66^t[[  
  avSL = total / FrameH / sSize J9.p8A^^2  
  avSLR = totalR / FrameH / sSize s.)w A `&&  
  avSLL = totalL / FrameH / sSize 63Yu05'  
End Sub z{L;)U B^  
FF~4y>R7u  
Sub DrawSlice() )\Q|}JV  
   frmRecord.Picture1.Line (sPosL, 0)-(sPosL + sSize, FrameH), RGB(255, 0, 0), B m0\}Cc  
   frmRecord.Picture1.Line (sPos, 0)-(sPos + sSize, FrameH), RGB(0, 255, 0), B O Zm[i H  
   frmRecord.Picture1.Line (sPosR, 0)-(sPosR + sSize, FrameH), RGB(0, 0, 255), B {~g  
   frmRecord.RText.Text = Str(avSLL) & "/" & Str(avSL) & "/" & Str(avSLR) 3y B6]U  
End Sub _PXo'*j  
Sub DrawMark(pic As Control) 3uG5b8?  
   Dim i As Long, j As Long EsB'nf r  
   pic.Line (PilarX, FrameH - PilarY)-(PilarX + PilarW, FrameH - PilarY - PilarH / 2), RGB(255, 0, 0), B R7c)C8/~  
   pic.Line (PilarX, FrameH - PilarY - PilarH / 2 - 1)-(PilarX + PilarW, FrameH - PilarY - PilarH), RGB(0, 0, 255), B d<? :Q  
   For i = 1 To PilarH $yFuaqG`Wo  
     For j = 1 To PilarW -yGm^EwP  
       pic.PSet (PilarX + PilarW + 10 + j, FrameH - PilarY - i), RGB(MKpilar((i - 1) * PilarW + j), 0, 0) E]?HCRa5R  
     Next j {WOfT6y+  
   Next i g GT,PP(k  
End Sub SkRQFm0a~  
%esZ}U   
Function avIMG() As Integer gGml c:/J%  
  Dim i As Long, j As Long, totalIMG As Long G%R`)Z]8&  
  MoveMemory pBuffer(1), pFRAME(1, 1), pFrameSize 5)NBM7h  
  For i = 1 To pFrameSize F)ld@Ydk=  
    totalIMG = totalIMG + pBuffer(i) NOp=/  
  Next i t~K!["g  
  avIMG = totalIMG / pFrameSize Q]UYG(  
End Function X]"OW  
WCTW#<izm  
Function avRegion(barCol As Integer, barWidth As Integer) As Integer kGV`Q  
  Dim i As Long, j As Long, totalIMG As Long wg_CI,Kq  
  For i = 1 To FrameH RmV/wY  
     MoveMemory pBuffer((i - 1) * barWidth + 1), pFRAME(barCol, i), barWidth < DZ76  
  Next i d|+jCTKS  
  For i = 1 To FrameH * barWidth nvVsO>2{ o  
    totalIMG = totalIMG + pBuffer(i) vcU\xk")  
  Next i @~G`~8   
  avRegion = totalIMG / pFrameSize %P,^}h7  
End Function p Y>-N  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
91楼  发表于: 2015-09-06   
'VB 6.0 版 qgsE7 ]  
'这不是我写的,它更强悍了。因为可以直接读写物理扇区(CHS),而不是逻辑扇区。 @/NZ>.  
6ilC #yyp  
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 OVSq8?L  
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long [HiTR!o*  
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 /1#Q=T  
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 ixHZX<6zYT  
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long ||ZufFO  
'如果用绝对扇区写,那么文件的建立打开都不能用VB的 open 语句了。 vP)~j1  
9OT4j Am  
*Q120R  
Private Const GENERIC_READ = &H80000000 p<fgUVR  
Private Const GENERIC_WRITE = &H40000000 LNxE-Dp  
FK > 8kC  
Private Const FILE_SHARE_READ = &H1 ^_h7!=W  
Private Const FILE_SHARE_WRITE = &H2 )u/ ^aK53^  
Private Const OPEN_EXISTING = 3 Zi@+T  
`Mp7 })  
Private Const INVALID_HANDLE_VALUE = -1 xj q7%R_,  
L{%a4 Ip  
'//file seek ~2DV{dyj  
Private Const FILE_BEGIN = 0 T1!Gr!=  
Private Const FILE_CURRENT = 1 FDs^S)B  
Private Const FILE_END = 2 y{I[}$k  
#33RhJu5,  
Private Const ERROR_SUCCESS = 0& f%[ukMj&  
yxWMatZ2  
'//device io control *([)X2A@+  
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 UMi`u6#  
b<V./rWIB  
Private Const IOCTL_DISK_GET_DRIVE_GEOMETRY As Long = &H70000   '458752 bok 74U]  
Private Const IOCTL_STORAGE_GET_MEDIA_TYPES_EX  As Long = &H2D0C04 9.OwH(Ax7  
Private Const IOCTL_DISK_FORMAT_TRACKS As Long = &H7C018 @&xaaqQ-  
Private Const FSCTL_LOCK_VOLUME As Long = &H90018 }d\Tk(W  
Private Const FSCTL_UNLOCK_VOLUME As Long = &H9001C G$|;~'E  
Private Const FSCTL_DISMOUNT_VOLUME As Long = &H90020 c1AG3Nb  
Private Const FSCTL_GET_VOLUME_BITMAP = &H9006F xXxh3 k\  
[67E5 rk-  
'//type =/QU$[7X(  
Private Type LARGE_INTEGER }%FuL5Tx  
    lowpart As Long 8Y~=\(5>  
    highpart As Long (s@tU>4U  
End Type 1 u_2 4  
S}Y|s]6  
Private Enum MEDIA_TYPE x`6^+>y^  
    Unknown n ,:.]3v%  
    F5_1Pt2_512 zpr@!76  
    F3_1Pt44_512 -@V"i~g<e  
    F3_2Pt88_512 jo3}]KC !  
    F3_20Pt8_512 %x8`fm  
    F3_720_512 mS~ ]I$  
    F5_360_512 I&fh  
    F5_320_512 dt net_j  
    F5_320_1024 DcR}pQ(e  
    F5_180_512 `CEj 4  
    F5_160_512 -YjgS/g  
    RemovableMedia <6O _t,K]  
    FixedMedia <CKmMZ{  
End Enum h 4.=sbzZ  
kxqc6  
Private Type DISK_GEOMETRY A r7mH4M  
    Cylinders           As LARGE_INTEGER l8AEEG8>  
    MediaType           As MEDIA_TYPE +\8krA  
    TracksPerCylinder   As Long [H:GKhPC`  
    SectorsPerTrack     As Long BS,5W]ervE  
    BytesPerSector      As Long /< 7C[^h{-  
End Type , 64t  
ssyd8LC#  
'//private vars ;, v L  
Private hDisk           As Long             'disk handle ]F* a PV  
Private lpGeometry      As DISK_GEOMETRY    'disk info x gT~b9  
Private lBufferSize     As Long             'the buffer size of read/write ^0tf1pV2  
27 145  
Public Function OpenDisk(ByVal FileName As String) As Boolean K _+;"G  
'// 打开磁盘 zPh\3B  
    hDisk = CreateFile(FileName, _ i$^B-  
                        GENERIC_READ Or GENERIC_WRITE, _ b801O F  
                        FILE_SHARE_READ Or FILE_SHARE_WRITE, _ =_m9so  
                        ByVal 0&, _ mV*/zWh_  
                        OPEN_EXISTING, _ |~b R.IA  
                        0, _ l*\~ew   
                        0) =6:L+ V  
    OpenDisk = Not (hDisk = INVALID_HANDLE_VALUE) [kuVQ$)  
End Function 'Ywpdzz[  
d:<H?~  
Public Function CloseDisk() As Boolean .F$|j1y  
'//关闭磁盘 "(\) &G  
    CloseDisk = CloseHandle(hDisk) hN_f h J  
End Function !MJe+.   
mh#FY Sp  
Public Function GetDiskGeometry() As Boolean ,WB_C\.#XN  
'//获取磁盘参数 ;y~{+{{Ow  
    Dim dwOutBytes      As Long 9kX=99kf[  
    Dim bResult         As Boolean +5t bK  
     Tq\~<rEo  
    bResult = DeviceIoControl(hDisk, _ )dIfr  
                                IOCTL_DISK_GET_DRIVE_GEOMETRY, _ sId(PT^  
                                ByVal 0&, 0, _ Jg|cvu-+  
                                lpGeometry, Len(lpGeometry), _ P h+X{|  
                                dwOutBytes, _ >g>`!Sf  
                                ByVal 0&) pjHRV[`AP  
     bA< AG*  
    If bResult Then lBufferSize = lpGeometry.BytesPerSector * lpGeometry.SectorsPerTrack  $S=~YzO  
    GetDiskGeometry = bResult Ph#F<e(9  
End Function 2Jo~m_  
24jtJC,7  
Public Sub GetDiskInfo(MediaType As Long, _ ./&zO{|0]  
                        Cylinders As Long, _ ImV]}M~_  
                        TracksPerCylinder As Long, _ ^>X)"'0+  
                        SectorsPerTrack As Long, _ 'uKkl(==%  
                        BytesPerSector As Long) $# !UGY  
'//返回磁盘的参数 I' ! r  
    MediaType = lpGeometry.MediaType ZG@M%|>  
    Cylinders = lpGeometry.Cylinders.lowpart {s8U7rmML  
    TracksPerCylinder = lpGeometry.TracksPerCylinder pPyvR;NJ  
    SectorsPerTrack = lpGeometry.SectorsPerTrack puS&S *  
    BytesPerSector = lpGeometry.BytesPerSector 4d e]?#=  
3 IWLBc  
End Sub =0PRAc  
Yb%-tv:  
Public Property Get BufferSize() As Long ?)' 2l6  
'//返回每次读/写的缓冲大小 bKuj po6  
    BufferSize = lBufferSize { 8f+h  
End Property ^K.u ~p   
phgexAq  
GT'7,+<?N  
Public Function LockVolume() As Boolean 5Z9~ &U  
'// 将卷锁定 ! FR%QGn1  
    Dim dwOutBytes  As Long _}e7L7B7g  
    Dim bResult     As Boolean fzS`dL5,W  
     0Ws;|Yg  
    bResult = DeviceIoControl(hDisk, _ B+Y5b5+wOQ  
                                FSCTL_LOCK_VOLUME, _ R>d@tr  
                                ByVal 0&, 0, _ Jh43)#G-  
                                ByVal 0&, 0, _ iO*`(s  
                                dwOutBytes, _ Y8%0;!T  
                                ByVal 0&) jWXR__>.  
    LockVolume = bResult P1i*u0a  
End Function s s`P QN  
gE@$~Q >M  
\6lh `U  
Public Function UnlockVolume() As Boolean (rr}Pv%yb  
'// 将卷解锁 x*h?%egB!p  
    Dim dwOutBytes As Long @GG(7r\/B  
    Dim bResult As Boolean yOWOU`y?  
     .~q)eV  
    bResult = DeviceIoControl(hDisk, _ /Fe:h >6  
                                FSCTL_UNLOCK_VOLUME, _ G` ,u40a  
                                ByVal 0&, 0, _ !6zyJc @01  
                                ByVal 0&, 0, _ 79SqYe=&uy  
                                dwOutBytes, _ ok`]:gf  
                                ByVal 0&) SLtSqG7~  
    UnlockVolume = bResult L\}Pzxn  
End Function !8Z2X!$m{<  
w{3Q( =&  
6X7 s 4  
Public Function DismountVolume() As Boolean ,{?q^"  
'// 将卷卸下,使系统重新辨识磁盘,等效于重新插盘 -]Q(~'a  
    Dim dwOutBytes As Long ' :\fl.b  
    Dim bResult As Boolean F<Hqo>G  
     gwSN>oj &  
    bResult = DeviceIoControl(hDisk, _ sn-)(XU!  
                                FSCTL_DISMOUNT_VOLUME, _ ieo|%N{'  
                                ByVal 0&, 0, _ 0%s3Mp6H  
                                ByVal 0&, 0, _ g/8.W  
                                dwOutBytes, _ 3ar=1_Ar  
                                ByVal 0&) Q PFeBl  
    DismountVolume = bResult ?0rOcaTY  
End Function J]}FC{CD!  
s) Cpi  
hojHbmm4  
Public Function ReadDisk(ByVal Cylinders As Long, _ kDzj%sm!  
                    ByVal Tracks As Long, _ EJZ@p7*Oj  
                    db() As Byte) As Boolean =2 &hQd   
'//按柱面和磁道来读取磁盘数据 xMD rE?  
    Dim iPos    As Long ?wd|G4.Vo  
    Dim lRead   As Long z wL3,!t  
     }iilzE4oH#  
    iPos = Cylinders * Tracks * lBufferSize >[ug zJ  
     7L=T]W  
    If SeekAbsolute(0, iPos) Then 8FzH NG  
        ReadDisk = ReadBytes(lBufferSize, db(), lRead) z,{e]MB)M  
    End If 5M%,N-P^  
End Function JbE?a[Eg?  
>dpbCPJ9[  
Public Function WriteDisk(ByVal Cylinders As Long, _ -<^jGrb  
                     ByVal Tracks As Long, _ iOT)0@f'  
                     db() As Byte) As Boolean ~ww?Emrw  
'//按柱面和磁道来写磁盘数据 r^$\t0h(U8  
    Dim iPos    As Long ^ <qrM  
    Dim lRead   As Long Ue(r} *  
     [N)#/ 6j  
    iPos = Cylinders * Tracks * lBufferSize E'5Ajtw;  
     x*.Ye 5Jb  
    If SeekAbsolute(0, iPos) Then  YywEZ?X  
        WriteDisk = WriteBytes(lBufferSize, db()) 1GtOA3,~;-  
    End If ajn-KG!A  
End Function E: 9o;JU  
"~u_\STn <  
F =XF]  
'///////////////////////////////////////////////////////////////////////////////////// iQt!PMF.  
'//file system ,>;!%Ui/p  
R? O-x9  
Private Function SeekAbsolute(ByVal HighPos As Long, ByVal LowPos As Long) As Boolean 2B7h9P.NB  
'//seek file TH |?X0b  
    '//Notice: when you set LowPos=5, the read/write will begin with the 6th(LowPos+1) byte 3p=vz'  
    LowPos = SetFilePointer(hDisk, LowPos, HighPos, FILE_BEGIN) izCaB~{/  
    If LowPos = -1 Then "JkZJ#  
        SeekAbsolute = (Err.LastDllError = ERROR_SUCCESS) '_B_&is  
    Else m CM|&u  
        SeekAbsolute = True 31~hlp;  
    End If 7zD- ?%  
     tbq|,"  
End Function Zta$R,[9h  
6Wj@r!u  
 Lf >YdD  
Private Function ReadBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte, ByRef ActuallyReadByte As Long) As Boolean 9Z&?R++?  
'//read data to array x6LjcRS|  
    Dim RetVal    As Long YgCc|W3{  
    RetVal = ReadFile(hDisk, DataBytes(0), ByteCount, ActuallyReadByte, 0) Kw )K A^KF  
    'ActuallyReadByte =>> if the bytesRead=0 mean EOF [?-]PZ  
    ReadBytes = Not (RetVal = 0) o2DtCU-A  
     *^'wFbaBO  
End Function RfKc{V  
$#5klA  
Private Function WriteBytes(ByVal ByteCount As Long, ByRef DataBytes() As Byte) As Boolean VS?dvZ1cC  
'//write data from array hM~eJv  
    Dim RetVal As Long jOs H2^  
    Dim BytesToWrite As Long }w G,BB%N  
    Dim BytesWritten As Long lDo(@nM  
     Fse['O ~  
    RetVal = WriteFile(hDisk, DataBytes(0), ByteCount, BytesWritten, 0) #wr2imG6  
     a`#S|'oatC  
    WriteBytes = Not (RetVal = 0) ?^|QiuU:n  
End Function W. ^Ei\w/t  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
90楼  发表于: 2015-09-05   
//从指定扇区号dwSector开始,写dwLength长度的数据 rJu[ N(2k  
BOOL WriteDisk( HANDLE hpartition, DWORD dwSector, DWORD dwLength, char* lpBuffer){ &.zj5*J  
DWORD dwCB; ~z5@V5 z  
LARGE_INTEGER  offset; @r F/]UJ  
offset.QuadPart  =  UInt32x32To64(dwSector ,  512); sGSsUO:@j;  
SetFilePointer(hpartition,  offset.LowPart,  &offset.HighPart,  FILE_BEGIN); \/!ZA[D|E\  
if(!WriteFile(hpartition, lpBuffer, dwLength * 512, &dwCB, NULL)){ RcQ>eZHl  
DWORD error = GetLastError(); 8Jr1_a  
MessageBox(NULL,"写入文件失败!",NULL,IDOK); <"?*zx&  
return FALSE; gI)u}JX  
} i^WIr h3a  
return TRUE; G*B$%?n  
} rJ DnuR  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
89楼  发表于: 2015-09-05   
引用
引用第46楼清水于03-03-2011 14:50发表的  : B oqJ   
'<7S^^ax  
介个真的看不懂。 4}i*cB `  
你说你老啦,喜欢怀旧了,才想起来填坑。 EWA;L?g|A  
提醒我也想想,是不是也老啦,是不是也有坑没填呢。 X8b|]Nr  
Ea4_Qmn  
~].ggcl`w  
你肯定有许多坑没有填,但是我挖的坑更多,但同是我也在你的某个坑里等你填埋呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
88楼  发表于: 2015-09-05   
Re:回 38楼(伍胥之) 的帖子
引用
引用第39楼suehan234于01-22-2011 08:00发表的 回 38楼(伍胥之) 的帖子 : K"\MU  
佩服,玩也玩得这么专业! 6):Xzx,  
',{7% G9  
s]H^wrg&  
只是票友而已,算不上专业的。
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
87楼  发表于: 2015-09-05   
引用
引用第25楼猪小秘于01-20-2011 20:51发表的  : vfwA$7N  
伍SIR,再次抱拳佩服 r &%.z*q  
v+=k-;-  
"NzD1k6.L  
小秘倒是好久不见了呢!宝贝几岁了?很健康活泼吧?
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
86楼  发表于: 2015-09-05   
引用
引用第21楼阿散于06-14-2010 22:33发表的  : SDYv(^ f ,  
引用第19楼伍胥之于06-14-2010 12:33发表的  : /nZ;v4  
'91".c,3?  
{gsdG-  
我平生唯一参加的计算机考试就是职称考试,任选4个模块。 kKiA  
3y A2WW  
我连一级也没有考过。 xW_yLbE  
.
P0Z! ?`e=M  
feX^~gM  
引用
&dR=?bz-A  
矬子里拔将军... @|\R}k %(  
你们那里的俗语是吧? ZA(T  
=f1B,%7G+5  
我们这里说"矮子里拔长脚"..应该是同一个意思... cz/Q/%j$/  
8VQ 24r  
有趣....各地有表达意思一样却方式不同的俗语.... RJ4. kt  
(Yb[)m>fQ}  
:+rUBYWx  
你的文章写的有脸皮,没屁眼的, a9U_ug58  
让看客大为不满... IQH[Q9%  
:G5RYi  
你等着,,估计你以后接到的午夜凶铃就多了... =ll=)"O  
8K"+,s(%R  
v [njdP  
我到现在也没有接到你的午夜凶铃呢! atF?OP|{,w  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
85楼  发表于: 2015-09-05   
引用
引用第17楼阿散于06-13-2010 22:29发表的  :  vZj`|  
每个人的故事对其他人都是故事, [ ho (z30k  
自己的故事也是其中之一. v(]]_h  
跳出来看, ~b~2 >c9  
不过是众人中的一个人的故事. I=DxRgt  
zDTv\3rZ4X  
所以,接着听故事. ?.=}pAub  
K(}AX+rIg  
女人们有兴趣的就等老伍开个新帖或者跟贴, bG F7Zh9  
听他痛说恋爱革命历史.... :4gLjzL  
.;7> y7$*  
杂家接着听他自学程序员历史, Zw1U@5}A  
高级程序员考了吗? 9W ^xlid6  
Cq)IayD@  
gJ$K\[+  
这个恋爱革命史还是等你痛改前非换个新ID来讲吧! t2HJsMX  
^wb:C[r!V  
我什么程度员也没有考过,连大学生的计算机应用等级证明都没有。 kgdT7  
_~u2: yl (  
我唯一考过的计算机科目是职称评审时要求有证书,所以我用了半小时考了word, powerpoint,和internet基础。都是小儿科的东东。如果没有用VBA写个Word的宏,我都觉得对不起微软了。 >slm$~rv  
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
84楼  发表于: 2015-09-05   
引用
引用第16楼阿平于06-13-2010 22:25发表的  : yRp "jcD  
哦, 打倒忽悠大家的家伙.      QrO\jAZ{Ag  
H]4Hj  
BH]Ynu&o  
阿平姐,这可不是忽悠,我可是认真交待经历呢!
杺栫杣杊椌柮栬,䒴蓉艿芖。
伍胥之 离线
级别: 军区司令员

显示用户信息 
83楼  发表于: 2015-09-05   
引用
引用第10楼卡拉于06-13-2010 21:49发表的  : jKt7M>P  
老伍,对不住,我把你原来的英文标题改了,太不吸引人眼球了,有些人还当是英文的都不会去点击。我通篇读了一下,改成了现在的标题。如果你不喜欢,可以改回来。 tcxcup%  
Ua!aaq&  
2eMTx wt*S  
其实标题没有什么,卡总既然改了就不必再改回了。 D!7`CH+  
}&_/ PA0j  
主要是当初写的时候真是顶着锅盖写的。 J:V?EE,\-  
mI74x3 [  
阿散说得对。我就是把一堆鸡毛蒜皮的小事,用了一个big title.
杺栫杣杊椌柮栬,䒴蓉艿芖。
描述
快速回复

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