“未来的世界:方向比努力重要,能力比知识重要,健康比成绩重要,生活比文凭重要,情商比智商重要! ”    ——清华大学校长留给毕业生的一段话

Tcl编程简介(四)

上一篇 / 下一篇  2007-07-09 17:37:39

Tcl编程简介(四)51Testing软件测试网[rw5z'h2bl
 51Testing软件测试网 D,Vy }1V ]!F2O

  Error命令 51Testing软件测试网"P)Uji Y)g\

51Testing软件测试网KCpndg
error message
hg;Cr'gnU0 error message info 51Testing软件测试网"a%E:{.hr
error message info code

^)h(^)z,sH0

5f"^ `'[y C f8z_U0 51Testing软件测试网'z/H4IE rpy

4t5g)G]E J0  返回一个错误,引起解释器停止运行。info用于初始化全局变量errorInfo。code被付给errorCode。

W{/ew*[tG R0 51Testing软件测试网~8IZ*R)@pwu|l

eval arg ... 51Testing软件测试网[3[l+knqe]

mC`j.KR0

-n:A0v:` SJ+A0  将所有的参数连起来作为命令语句来执行。

n9dn7Z!D@V0

$Sk ?W2G0exec arg ...
YS&zM,r$T_r#n0 51Testing软件测试网f4vq~3i"n4\4Q

51Testing软件测试网ae Or o(P

  仿佛是在shell下执行一条命令。

6lS%dR:OZ0 51Testing软件测试网(R8mqc~E+x


L;G4L/~ l;m:]"w0 exec ls --color 51Testing软件测试网 QAR {h @F3G$A!|
exec cat /etc/passwd > /tmp/a

"AwMA*]P0

@2j3o[ ybp0exit 51Testing软件测试网Lt/E;|&l6wmv
exit returnCode

)kF*{*nBJ[8y)a0 51Testing软件测试网/x|R){6b0H*@ Gm

51Testing软件测试网Zx/h g.@#g(o9g9k

*bd RzgjK'X0  中断执行。

NNN5c:T%\\0G0

+? p(BQ?,u6^h&I0expr arg 51Testing软件测试网H,f8RL:Vu7yUW
51Testing软件测试网%YK`7g h

51Testing软件测试网e`3VE%F

  处理表达式。

8W*]:ew ^n0

C(u#E:DP6|Y]0
chg*]9c0N0 set a [expr 1+1]
ZS"pR _G"c0q I0 //a=2

,so!fv'R6o0

2T3qXowlp0file subcommand name

W DC~ s"Hs0l0

"M^:z+^Q0 51Testing软件测试网Ba)Le-p8x

51Testing软件测试网5a6Zj1Q&[n

  一组用于文件处理的命令。

U'h(\G~O4X0

b:]1qmg H5k051Testing软件测试网f+D#MU{ a0g%B
file subcommand name arg ...
|s]th%}d0 file atime name

Y-f8e8zhb0

U5c@Pr$GE0 51Testing软件测试网N$E DK-lE

51Testing软件测试网Q6z@FA

  返回文件的最近存取时间。

s] op{6aR&XZ0

4I]9k Qs0file dirname name 51Testing软件测试网2UZ.P'k5c w*d L
51Testing软件测试网%s)y/t1F8_"N

51Testing软件测试网Qul3et t S;rG-R5e

  返回name所描述的文件名的目录部分。

FoMF-j#l0 51Testing软件测试网aI%zv h

file executable name
O.w_n+K[9Q0 51Testing软件测试网&@p,J.\/\ wn{n-t

51Testing软件测试网 o"U5DQ A']/q+og

  返回文件是否可被执行。51Testing软件测试网 ?!aEhg]_

:^ Hy5x"f2L0file exists name
z~ pv FZ0

4oE,u a&Q@0Ad0

/N7ST%Uvv w0  返回1 表示文件存在,0 表示文件不存在。51Testing软件测试网Y#Nlj#O;NIr

c} eY9L:d'x0file extension name 51Testing软件测试网 mZp,eWz.\
51Testing软件测试网} cnj!u3_dP7x#x

4hA/hl'b5V E/zj_0  返回文件的扩展名。51Testing软件测试网$j;[bZ'u%q7Bt

51Testing软件测试网!Q0Tr#S ~}5m2c K

file isdirectory name
._z*b^ Z0

V KVq4tV5eO0

1M:{Gw6X'l&@v/J3f0  判断是否为目录。

4j6AN6XZANV5\L0 51Testing软件测试网| eh)g]%P YJ1S

file isfile name 51Testing软件测试网$L s/q.KC Z
51Testing软件测试网b-^lF!ONc]

E;D!B$K9Z:a*\*zeK0  判断是否为文件。

.kmoW)P4f0

0\#RFR/ypf%f2d0file lstat name varName 51Testing软件测试网l/E4Y v$j5d'X
51Testing软件测试网 x$@)I` EF!b6d

51Testing软件测试网!W(ob@(r.`AX3[

  以数组形式返回。执行lstat系统函数。存储在varName。

-hR![UBa.mV0

{2Kd*k qsoJ0file mtime name 51Testing软件测试网1GY|+Ku`+y``'Pq

$GB?v1cx-m0 51Testing软件测试网WZ)`1V~.la_

  文件的最近修改时间。51Testing软件测试网e7w{4lc8@

w |oV1d4`0Ot0file owned name 51Testing软件测试网2_t*{!o2Q8}T l

o'qKWO(^)S f0 51Testing软件测试网3Y?k?+u+S-P` @/D"H%z

  判断文件是否属于你。51Testing软件测试网']:aZ^7w,K

51Testing软件测试网 ~$n klz"p

file readable name 51Testing软件测试网R\u a"t!]EJ
51Testing软件测试网`a5MJVD

51Testing软件测试网4Bu#H}?h0N4e'j

  判断文件是否可读。51Testing软件测试网s\:S.Y1Of1s

51Testing软件测试网Ws%W!O+YZ

file readlink name
o*{!Pr h;A0

@){}N:`0 51Testing软件测试网X\uPH

  都出符号连接的真正的文件名。51Testing软件测试网&ES$R+Z(|

)CP+r!\ a(`7n0file rootname name
#|xX3N6SM!?0 51Testing软件测试网/]3z^exeq+y

kx'}o8Wsdw4hO^0  返回不包括最后一个点的字符串。

@#?0dC5C o(l@0 51Testing软件测试网i9A0Df{][aC6X

file size name 51Testing软件测试网(\8C-p#k5RL

H-^D w;wG0 51Testing软件测试网4m6N"rP,[{

  返回文件的大小。

b(BhPH A+aw~0 51Testing软件测试网:U(IU@'h5E

file stat name varName 51Testing软件测试网6]!C*v&{)Cn
51Testing软件测试网 H!k F.R1GN.^cU:P

51Testing软件测试网$W9ty9p];wsu%}

  调用stat内和调用,以数组形式存在varName中。

s_aC;gE/aYsS B~0

k K+Jn rY0file tail name
'v nf4I)Z}0 51Testing软件测试网0FEpIr'?I

7k~:C;j%G%o$a7s0  返回最后一个斜线以后的部分。

7g B W g E.SM S m0

EWgW-F0file type name 51Testing软件测试网ml_2pvm5s0t/r

_(KA$uaJ0 51Testing软件测试网Q;r)S? p[%c\Y7m

  返回文件类型file, directory, characterSpecial, blockSpecial, fifo, link, 或socket。51Testing软件测试网~7pl'er/z&N

V-kS5EsH@/w q%R5n2I0file writable name 51Testing软件测试网ky1mlCU

&S'l[7x8b0 51Testing软件测试网N$zJ|;E8B

  判断文件是否可写。

#`6z ^b$k(MFr0 51Testing软件测试网[ oVppd

flush fileId
(RL ?"|h+o(N0 51Testing软件测试网0Kb*Q4X@K4t+bXXr

51Testing软件测试网hM8Eb0Jy,D,}

  立即处理由fileId描述的文件缓冲区。51Testing软件测试网o Gg\(sE5L^JN

K)R)h@3O'er V0for start test next body
n+Y{a[ [4[ o0 51Testing软件测试网8z4n'f(bT.O%{z7{

51Testing软件测试网9j$Ax'Ht/g,^

  for循环。同C总的一样。

[,{7f#NDX0 51Testing软件测试网S3`,o1O B8As

51Testing软件测试网y"M tA!w2mOV
for {set i 1} {$i < 10} {incr i} {puts $i} 51Testing软件测试网9Ik)hB t
foreach varname list body

u{jE*W'D-[(F!O0

(Dy4]0Z&ttHV6P)`i0

;_#u$MJSF0

(_"]!~"p c6Vs0  类似于C Shell总的foreach或bash中的for..in...51Testing软件测试网rA'e r?;T\J

51Testing软件测试网?p&nzM$Hy

51Testing软件测试网Omq&JwU"B$p x
format formatString 51Testing软件测试网/?"iZj8y ^ @F l
format formatString arg ... 51Testing软件测试网6k3[ a.w3s

51Testing软件测试网e)s8N3h2V9Ic3]

51Testing软件测试网.rXf#q JL iw

vq t0q2fE w^R0  格式化输出,类似于C中的sprintf。

!z6P`;Rb0L0

dqY5UMc(O0
\(m5Rg7x[0 set a [format "%s %d" hello 100]
lXc7G2O0d wg v#[-w0 //a="hello 100" 51Testing软件测试网'v3l!? J.{

7q^;]twZp x0gets fileId 51Testing软件测试网5k-L f]'y)EIU
gets fileId varName

'n|n0c$?c0 51Testing软件测试网.[2LIpK;J4I"ov

.Ws.T L R&u0

U4aE(|k`y ?0  从文件中读出一行。

"Kx w*w o0F~p0 51Testing软件测试网yCD*P*v6D~

51Testing软件测试网Af@&Z'G
set f [open /etc/passwd r] 51Testing软件测试网~+\Y A$Z
gets $f

J J ca%Y0

KJ)L8cy#ZW|0glob filename ... 51Testing软件测试网'V6x@%P3aG%z}D KL
glob -nocomplain filename ... 51Testing软件测试网fw9Hb5i(Pz,V\&Q;Pw

"p%?"@5Q^C@U'qK0

'K(V,ow4l2r Tq0

w E%^U1A@8I0  使用C Shell风格的文件名通配规则,对filename进行扩展。51Testing软件测试网]3dh#|W:A:{{)o

51Testing软件测试网/k,~%|t:@1B

51Testing软件测试网r$oDl9h
ls /tmp
QWI;gT A0 a b c 51Testing软件测试网@'Uw)\2i3vy

51Testing软件测试网2Q/kU s ID"S2i(M

tclsh>glob /tmp/* 51Testing软件测试网2ICh\b%wGn
a b c

*DIZG0SS0 51Testing软件测试网2I.I`R-^@:f^F

51Testing软件测试网qs2PdT

L+_1at8T^)Zm%x0  当加上参数 -nocomplain 时,如文件列表为空则发生一个错误。

5W a []B0 51Testing软件测试网D\n9Y8@g

global varname ... 51Testing软件测试网$fX_UAY#~ \Y;U
51Testing软件测试网3N^A%Ij w

3Sy Ow4GD9K q"E6fs6t0定义全局变量。51Testing软件测试网WZ&v6HQu}

51Testing软件测试网'd$B/_0H4m W*{${


"]c-MK$l2cM0 if test trueBody 51Testing软件测试网_8\'M-C] E1c;T/ib {
if test trueBody falseBody 51Testing软件测试网OBC+]Sx
if test then trueBody
1~!z9nSF p0 if test then trueBody else falseBody 51Testing软件测试网8e O*ioc9nblGC#se

51Testing软件测试网.JX3XGg7o

JC+d+i3_/G6P;w"X'C0 51Testing软件测试网o{.a9|!\~9S

  条件判断,是在没什么说的。

-~9A$OFA-b&?-s#eY0

&N[,j4vwrC,V0
"l.p'D7FD-Cz yO0 incr varName 51Testing软件测试网(uV_/Mf'j!I"w
incr varName increment

&q'wx S4eW2p0

%i'@,}$^/s'Qq&vk0

;NFu.pd R0 51Testing软件测试网$pB/Md)mof!q+}"M

  如果没有incremnet,将varName加一,反之将varName加上increment。

OP8\0B q I0

&h_ o-s`+M,^jk0t#u051Testing软件测试网N;v*\lF
set i 10 51Testing软件测试网q-]P(~ M2Ep k
incr i
Zm(n#e,e;U0 //i=11 51Testing软件测试网v~ }L2jX QS
incr i 10 51Testing软件测试网:avY!hq\-X
//i=21
'?2jcc}W0 info subcommand
Lh(r3s|.`"B3A0 info subcommand arg ...

XF8]qa4hD0 51Testing软件测试网b"T1p#o2\vO

{(CMn xd#F0 51Testing软件测试网-I D4V(p4z

  取得当前的Tcl解释器的状态信息。

^7{!j0^ x+s1Xf0

vJw6R4L4s,gJu0info args procname 51Testing软件测试网4e#g F+X!`?vq

ro8l[t G4q-O0

U8xb?#~}6qm+Vn0  返回由procname指定的命令(你自己创建的)的参数列表。51Testing软件测试网,y4Y |a4p ^q6f

51Testing软件测试网 B-Dp"j C xI5Zq

  如:51Testing软件测试网t3u"|k N ~ y+Au

51Testing软件测试网};T6~ k-k+v(_Vf(O

51Testing软件测试网#l ^2` ^eJ*W7s Sv
proc ff { a b c } {puts haha} 51Testing软件测试网KJi6@ {*j+lM
info args ff
n*Tl.o hi4r u0 //return "a b c" 

,X$o3U!k{(A/J R@6?(g0 51Testing软件测试网*Uo&\.`F'H

info body procname

"Dm w|5Cm`4td0 51Testing软件测试网s%A3oNkl pSH)Vt

51Testing软件测试网"F%@o#[aSxw0qX4QD

}g _ C i C-H } c0  返回由procname指定的命令(你自己创建的)的函数体。51Testing软件测试网!V p:UA(A

4C RIK ?,}.hh0  如:

I,~-y6oLm0y0 51Testing软件测试网2J)zD,wvWH

51Testing软件测试网n!Sf$S2g^
proc ff { a b c } {puts haha} 51Testing软件测试网g I;wf#y*\
info body ff 51Testing软件测试网K^%B!w4Y9M7MN`
//return "puts haha" 
Y\$J#?f f.l0 info cmdcount 51Testing软件测试网lK'k? I-R/U d|^

51Testing软件测试网,fMbI%o$z

6vQ(}"L$dI;^0 51Testing软件测试网 u8@1|7V:^$c{4FP

  返回当前的解释器已经执行的命令的个数。51Testing软件测试网1A#wNnEnCHG&b

51Testing软件测试网l#UI'}Ns g/E


R^5X,L-J{0 info commands
PE+]+d9C`7k/P0 info commands pattern 51Testing软件测试网im Gj;lF

51Testing软件测试网V9za-rm zS3A

4}0M&pWM6K0 51Testing软件测试网 p-]'zuwG~

  如果不给出模式,返回所有的命令的列表,内建和自建的。

|2w-N$y7Ws8FF9_0

0r+UKz#g0r[R0  模式是用C Shell匹配风格写成的。

Q3y Q.F?teX3s d0

P}5hI\'h ?051Testing软件测试网-Q0s6d5so"`J.L3?
info complete command

!f(H!hF7Z \5FM m I0 51Testing软件测试网?QZ o*L^ k.j!Sa

D-o4xU m/i0 51Testing软件测试网"Iq/zt7n'[

  检查名是否完全,有无错误。51Testing软件测试网kg"t0^w4yx

51Testing软件测试网N9u$HM)~T/\{

info default procname arg varname
m"@iz9p4Lf&pl,@0

{%H+d1yF5L/WO0

Zzy];k Ie0  procname的参数arg,是否有缺省值。51Testing软件测试网L5N!wFL*c0aMh

G X+Sg_)U0info exists varName
G'BWBiE-g0 51Testing软件测试网@F d1Q p6R$g$ux

51Testing软件测试网5j Y6s _#FL

  判断是否存在该变量。51Testing软件测试网$M |-ttEv`#D H(zU

&r#U\E{%@\0
0eGhe_2s;V,Y0 info globals
3F vPdIL,l0]0 info globals pattern

;s'le3fqcdm0 51Testing软件测试网 ug \4r%C$bJI Rl

51Testing软件测试网0| s-n9k#??([

,G F,`eZq0  返回全局变量的列表,模式同样是用C Shell风格写成的。

;Q'b*[-LnoB0 51Testing软件测试网;Jb:`lJ:A`Zx

info hostname 51Testing软件测试网g4s Je \4A TcV
51Testing软件测试网OK+a.|@pe

51Testing软件测试网8m0m8@-YL]

  返回主机名。51Testing软件测试网9giX5X*e1zK)w1w8E j

L:Hy3Bo1N051Testing软件测试网 A\"OMA)b tvv.I
info level 51Testing软件测试网%wh8_iN P]!Yp
info level number

%?J^'u3a'|;gi/Y0

(hh!]FsL0 51Testing软件测试网JG,[ ]FA9oz

C*vR$T/Y u"y'J2MS0  如果不给参数number则返回当前的在栈中的绝对位置,参见uplevel中的描述。如加了参数number,则返回一个列表包含了在该level上的命令名和参数。

3r B9?|0f-m#K,Z0 51Testing软件测试网XRV&UwJF

info library 51Testing软件测试网7N4HAJ;?-SR6n*gg

9Y}F5{AK4@ F\0

8V} b5} b_v$PR0  返回标准的Tcl脚本的可的路径。实际上是存在变量tcl_library中。

F9W"ra"d0[0 51Testing软件测试网T%yXv9Lv

51Testing软件测试网 Bb&{FG P
info locals 51Testing软件测试网/[t L*}M | o
info locals pattern

qF1^+Su3X?*U5|m6t0 51Testing软件测试网&A-G^im7o"h

1}-T l&Te,q2~0J0

uUC!nz k0  返回locale列表。51Testing软件测试网 ]2Hs.V8_r5k9_5a~

51Testing软件测试网!]b:UN(dHc;f


KD eU|0 info procs 51Testing软件测试网Q.U9CUO|t*M8a\F
info procs pattern

:},o8d'X3k:M)["L4}"UX[Q0

\"x v _Q*g0 51Testing软件测试网P7yTnyb Q_o |2Y

51Testing软件测试网(T+ONF]E

  返回所有的过程的列表。51Testing软件测试网V3m%nAD {2d$\1C6S

51Testing软件测试网6Zq-Q*t)KA1k

info scrīpt 51Testing软件测试网D)X)l`7VZb.L

V.k/Lxi.P"B d0

Gy;i;Vp9LmY$z!c0  返回最里面的脚本(用 source 来执行)的文件名。

Ze:b.a4P6A0

Zw2hI8XN.s~m;b @0info tclversion
x9K8G:e2w0 51Testing软件测试网&G&X9P o g

51Testing软件测试网bJ2~M\x*G

  返回Tcl的版本号。

&l$l4P)al9z `.S0 51Testing软件测试网"py?'Yp;sz

51Testing软件测试网Zz;yP I-o|9|
info vars 51Testing软件测试网,sZ jh3`|(v6aW
info vars pattern 51Testing软件测试网0PK'Ux~1k+\cFbZ

0M4`~KyJt{7WU0

;Io J~OV-? @6{0 51Testing软件测试网HR8P ^8~1Kv Ih"kSb

  返回当前可见的变量名的列表。51Testing软件测试网!hc/?e:_lw"f(\ j

4X$tI2?{5Y0  下面是一些用于列表的命令,范围可以是end。

/za!Km*r o0

qY.YaMP4[([0
&e$H9U:] H$L'P:S e0 join list 51Testing软件测试网/~] arygI!nS4@
join list joinString 51Testing软件测试网t+Imbg$F

P'ut0Q+m[0

2ft?fo/I3Fu,F+b0 51Testing软件测试网G;Kv7iU4Z$zhr

  将列表的内容连成一个字符串。51Testing软件测试网m3f@w'o ?

U9B._5y6^0
]+SZ7KL"r0 lappend varName value ... 51Testing软件测试网:l*SWU.E

w*G2]i{%@h0

^Z kx(rf0 51Testing软件测试网-P JE @~|.r![

  将value加入列表varName中。

|"]]Oaw ?0

A Su"Mn2B0lindex list index
9y|8Zx|#Ih_-E0 51Testing软件测试网(g N3H3^]2u

51Testing软件测试网+I:}WqP

  将list视为一个列表,返回其中第index个。列表中的第一个元素下标是0。

C,P+ru k$} rX0 51Testing软件测试网W L7@2QN)Q


rG,G2z+u'{NX t0 lindex "000 111 222" 1 51Testing软件测试网*_UR&^%cu8_
111
DX9rA/j,pj0 linsert list index element ... 51Testing软件测试网,y`MHT{T%x

51Testing软件测试网 ~\r{](UD(e

-[C|6H-j L0

b*|^F*D%z:J [1Gu0  在列表中的index前插入element。51Testing软件测试网7Jc.D/wo

f t6xu8p0L+r0list arg ...
](L`&kz8hIB0

3Q8^b~8m%jq#J.m0~0 51Testing软件测试网9L4r4~S7l"{*Xbzw

  将所有的参数发在一起产生一个列表。51Testing软件测试网S&V"XN$@ Q1|q!ZS8s\

51Testing软件测试网~x+J1? PkP6pm


y5Du.cKYM0 list friday [exec ls] [exec cat /etc/passwd]
z0I*u I'N_ ~0 llength list 51Testing软件测试网+Q5ga i'J {-r

51Testing软件测试网hD.O3wJ7Fq?{7n

0Hq(hmW(T(xB ~0

,p7F9R@{5^8o0  返回列表中元素的个数。

QY{p"G&s0

4C(F v\/c-a~"`P(A3K0
ta^kIxG%u3H0 set l [list sdfj sdfjhsdf sdkfj] 51Testing软件测试网2r)Qn$`XE7Z
llength $l
.H9jbN5j_9n0 //return 3

$O@*jS*S](ZsB*|0

y!W)r6C@Zt,Lr-W0lrange list first last

6G)E&O6I!n Hr0 51Testing软件测试网/`^a xH OWR4N R

51Testing软件测试网O*H@ Q;|;\1B%vK

ye7yK_:L0  返回列表中从frist到last之间的所有元素。51Testing软件测试网$u"W1p F$l HN9b

;J'r!L*P;iW*~&b051Testing软件测试网gG9}I)O1[g d|
set l [list 000 111 222 333 444 555]
Oxx/P6CZ|Y B~0 lrange $l 3 end 51Testing软件测试网*f9rX mB K
//return 333 444 555

cKI4C7FCo"Wy0

$iav6\p@0lreplace list first last 51Testing软件测试网g"W'I-y ~%vt
lreplace list first last element ... 51Testing软件测试网(M2U0jhO/I G p2B H

51Testing软件测试网 f6C.IV^5_,nE e%`

7P{5S8a,HS;x&x0 51Testing软件测试网1QRc/v-[

  替换列表中的从first到last的元素,用element。

?+Yq~.J!@5If8Vw0

? W:nf-uY?^051Testing软件测试网 Bn2i;b$j3Z)| uC$e
set l [list 000 111 222 333 444 555] 51Testing软件测试网W3q2f`-Ynv-SW
lreplace $l 1 2 dklfj sdfsdf dsfjh jdsf
Z6h6e Ax}:}0 000 dklfj sdfsdf dsfjh jdsf 333 444 555 51Testing软件测试网(v'\:G1qG8Y&D/Jv4m

51Testing软件测试网bb2g gh6[}p

lsearch -mode list pattern

:N e^:OS[:R0

'q$U8s&g6mqW:yR0 51Testing软件测试网?[mX1RLU$L

51Testing软件测试网+R qaX;PJ ^.c&t

  在列表中搜索pattern,成功返回序号,找不到返回-1。

ygSel0f)i&|0 51Testing软件测试网'N#t1]2[f {F;a[v

51Testing软件测试网"nhS1b,q~)hq2?`x
-mode : -exact 精确 51Testing软件测试网dF\O+o,[3SuX[
-glob shell的通配符 51Testing软件测试网1t8P*f/ow a%Q&v
-regexp 正则表达式 51Testing软件测试网-w8U)^!OD|

51Testing软件测试网 A1C2B(L-n s'_6K

lsearch "111 222 333 444" 111 51Testing软件测试网~o$yFK'U
//return 0
N [L/Y:J1c3p0 lsearch "111 222 333 444" uwe 51Testing软件测试网PK\%~4cf
//return 1

S n%nW.n0 51Testing软件测试网t1} M7RaHl

51Testing软件测试网#Fl;Q h-eg`gO@^T


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 57993
  • 日志数: 103
  • 图片数: 4
  • 文件数: 2
  • 建立时间: 2007-05-20
  • 更新时间: 2010-11-23

RSS订阅

Open Toolbar