不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           it is no use doing what you like, you have got to like what you do.

Robot中关于文件操作命令(转)

上一篇 / 下一篇  2006-12-22 15:44:40 / 个人分类:Robot技术

Rational Robot中提供了一个文件操作命令,语法如下:
AOT'Me4jb0Open filename$ [For mode] [Access access] [lock] As [#] filenumber% [Len = reclen]
&shM%Qq P#H0这里我们把它的语法分为两部分,因为这个文件操作命令有两种文件操作模式,一种是顺序文件,一种是随机文件。
lA2Xq2q5v w051Testing软件测试网~@g/F'Ak*~$y
下边是对顺序文件操作的语法:
1^&u3Ho2F [0Ff0Open filename$ [??For [Input |Output |Append] As [#]filenumber [Len = buffersize]
5i.D#j7Xd |0参数说明:
5` [A C/{9}J+pb0说明:51Testing软件测试网g[-IT#a S!r
51Testing软件测试网AF w"D!y `2O
  (1)参数filename$表示要打开的文件名,文件名可以包含有驱动器和目录
nL!z$["x8\aG0
euC*@C&a)@3[+q0  (2)Input Output 和Append用于设置顺序文件的打开方式。其中,Input表示从打开的文件中读取数据。以这种方式打开文件时,文件必须存在,否则会产生错误。 Output表示向打开的文件中写入数据。以这种方式打开文件时,文件中原有的数据将被覆盖,新的数据将从文件开始写入。如果文件不存在,则创建一个新文 件。Append表示向打开的文件中添加数据。以这种方式打开时,文件中原有的数据将被保留,新的数据将从文件为开始添加。如果文件不存在,则创建一个新 文件。
$s;WK+Fh'YL4D051Testing软件测试网NJ;mTL!Z;TZ
  (3)As[#]filenumber 子句用于为打开的文件指定文件号.对文件进行读写操作时,要用文件号表示该文件.文件号是介于1~511之间的整数,既可以是数字,又可以是变量.也可以省略不用.
8A `U"~~*j7@0
r K4@L?!i0  (4)当在文件与程序之间拷贝数据时,Len=buffersize子句指定缓冲区的字符数.51Testing软件测试网$B,a+wxP8mD
51Testing软件测试网_~7j uo}}
例子:
*R sBC3gBm0Open “c:\test.dat" For Output As 1
3M N \ V)r#}S0Open “c:\test.dat" For Output As 151Testing软件测试网_$cv2v[)O
  这两句代码在c盘所在目录下创建了一个名为test.dat的文本文件,分配文件号为1.
2P(g-X'QX3?0Open “c:\test.dat"??For Input As [#]filenumber  这条语句是从文本文件中读取数据.51Testing软件测试网1oRN9IG`m_
Open App.Path + "\test.dat" For Append As [#]filenumber?? 这条语句则是向文本文件中添加数据
8B.{|.o N{w m+_\h0随机文件的操作:
@-s I;d3|~7gB,T{0  操作随机文件之前,首先必须定义用于保存数据项的记录类型.该记录是用户自定义数据类型,他们是随机文件中存储数据的基本结构.例如:51Testing软件测试网%T~btn}L"Q

!BUP4Eq0Type Student51Testing软件测试网 mq"}8@z.w@
 No As Integer51Testing软件测试网 Q*i N-s5X/[t*{J1L
 Name As String * 20
L+g4^U0~o0 age As Integer51Testing软件测试网l[:PeE'f Qb&C
End Type
.n cF:Vl051Testing软件测试网"z2y q9FK.o
Dim Stud As Student ‘定义一个可以存放学生材料的变量51Testing软件测试网H)@ SGj+r*GdA
  随机文件中,所有的数据都将保存到若干个结构为Student类型的记录中, 而从随机文件中读出的数据则可以存放到变量Stud中.之后我们就可以打开并读写文件了.51Testing软件测试网0sd$^amo0ZsM
51Testing软件测试网(X [ Y_ B'P7Iw
随机文件的操作语法格式:
&dA"G9yuI:VCH0Open filename For Random as [#]filenumber Len = Reclength
SDOZi+t0  说明:
? t6\{:v xc0  (1)参数filename 和filenumber 分别表示文件名或文件号.51Testing软件测试网?S/l.V%Q{
  (2)关键字Random 表示打开的是随机文件
hecO e x/Qj'kU.E0  (3)Len子句用于设置记录长度,长度由参数Reclength指定.Reclength的值必须大于0,而且必须与定义的记录结构的长度一致.计 算记录长度的方法是将记录结构中每个元素的长度相加.例如前面声明的Student的长度应该是2+20+2=24字节.
i;b*r4Y4W$|B0打开一个记录类型为Student 的随机文件的方法是:51Testing软件测试网.w7gT"p!m
Open "c:\Student.txt " For Random As #1 Len = 25
'q){9~v,JOe051Testing软件测试网"?4HhkFYT
这里还有一种文件操作方式二进制文件,下边是他的语法格式:
C.J)vUU.d+qmO'fZ[0Open pathname For Binary As [#]filenumber51Testing软件测试网$\)D FXWy
  说明:51Testing软件测试网6Y6yzn7D7n
  (1) 参数filename 和filenumber 分别表示文件名或文件号.
@(ngYNF'?4A/V0  (2)关键字Binary 表示打开的是二进制文件
1f ]ag1g0V0  (3)对于二进制文件,不能指定字节长度.每个打开的二进制文件都有一个自己的指针,文件指针是一个数字值,指向下一次读写操作的文件中的位置.二进制文件中的每个”位置”对应一个数据字节,因此,有n个字节的文件,就有1到n个位置.51Testing软件测试网$J1SX4]2hn YR

n l4RNK8t0  我们可以用Seek()函数返回当前的文件指针位置(即下一个要读写的字节 );用Loc()函数返回上一次读写的字节位置,除非用Seek语句移动了指针,Loc()返回值总比Seek()的小1.我们来看下面的例子:51Testing软件测试网]j%|6N/t._
Open “路径:\student.txt” for Binary as #1? ? 该语句用二进制的方式打开了student.txt文件.51Testing软件测试网v+z*[}%h#~%Il

t eX;AP7WZ^'n0二)写文件51Testing软件测试网&i@6a4x UV%RNT
  1、 顺序文件
BZ(F4Sv0  写顺序文件我们可以用Write # 和Print #语句向一个已经打开的文件中写入数据.51Testing软件测试网ZVJ^1l
  下面是他们的格式和说明:
.Hh]6Uh3~!G051Testing软件测试网/l,iseA5A8G;h&od"K,Ob
  Print # 的语法格式:
+g gb G1q,M0
pisEK8~T0  Print # 文件号,变量列表51Testing软件测试网i$B)X2?+_/KT}
51Testing软件测试网#LhJYX(a h-i'h
  例如,将文本框中的文本写到文件中,代码如下:
o2^$N%mFJ-j1Y+~051Testing软件测试网-Qg2NdZ^8X^f
Open "file.txt" For Output As #filenum
7sR U-a |)l q0
`I)X1Sa dp.~z0Input #filenum, text1.text51Testing软件测试网-s\vkgX h4z(j&[d9k
51Testing软件测试网p;yh u*bSJE;R}w|
  Write # 语句的语法格式:51Testing软件测试网0eMWr S7D*l-RX ae
51Testing软件测试网!@n'Qv'RyC
Write # 文件号,变量列表
olS}2`'p+H051Testing软件测试网'b\f%rt
  说明:用Write # 语句写入的信息便于以后用Input #语句来读取数据,因为Write #语句自动将写入到文件中的信息用逗号分开,并为字符串数据加上双引号.例如:51Testing软件测试网'y-s9fcGu:Ab

P Q1d4oO4h5u*X\|0Open "student.txt" For Output As #filenum51Testing软件测试网 JT,n{6zuz

:h3^ H,V!X#n S!K|0Write #filenum, "张三", "初一年级", 14
hF M+dQV%X5I0Write #filenum, "李四", "职业高中", 18
6zsP8Q2gM0
)TJ'j+b i1~A2i0  2、 随机文件
+s,c3vn NXP*{w#k0
d,Y_)y&g2n0  向随机文件中写入数据,使用Put #语句.语法格式如下:51Testing软件测试网:@E7J5N;L z
51Testing软件测试网[0RUB(r~/ns9e#B,P
Put [#] FileNum ,[RecNum],UserType
:cQ^ ^EO[Vr051Testing软件测试网 y2H#]Uep
  说明:
%GTTQ4?;MA0
#N0C~_"]f+|0  (1) FileNum 是要打开的文件号;RecNum是要写入的记录号,若省略,则再上一次用Get 和Put语句所读写过的记录的后一条记录中写入,如果没有执行过Get 和Put语句,就从第一条记录开始
2u9K)D%Ga0\051Testing软件测试网0U/kH&q+_E:p`'r
  (2)UserType 是包含要写入数据的用户自定义的数据类型变量.例如:我们向前面的student.txt文件中的第5个记录写入数据,可用这些语句:51Testing软件测试网x R@(Yd\`

0iL(N4`i^0stud.No = 030151Testing软件测试网*x h ho+c
stud.Name = “王武”51Testing软件测试网R Vw@'mg8V2VY
stud.Age =20
%jGEWy)~9uNp z1f,r#j0Put #1 ,5,stud51Testing软件测试网g7m c8m*}4v1G
51Testing软件测试网y+@FMehh9i Z
  如果要插入的数据不只一两条的话,首先要确定文件和每条记录的长度,这样就可以计算出文件中究竟有多少条记录.我们可以用Lof()函数返回文件的长度,Len()函数返回每个记录的长度,计算文件中的记录个数可以用文件的长度除以给个记录的长度.示例如下:51Testing软件测试网uB.R0xl3B9Z|7a
51Testing软件测试网(Zy\9p-nH0\t
Nextrec= (Lof(1)\Len(UserType))+1
&n ]5V4mVi)d051Testing软件测试网4GYpcY
Put #1,Nextrec,UserType51Testing软件测试网;e {+j.ZKj5}]$m
51Testing软件测试网VkjF[am
  3、二进制文件
sx(pZ$SSrZ;Q1O051Testing软件测试网I;OTb].T9b G
  下面是以二进制方式写入文件的语句格式及其说明:
^9i9~j'j+Mc051Testing软件测试网Gu7P0igv7Jk
  格式:
KnLhwj f5@0
B j3`vNe&Y%|0Put [#]fileNumber ,[Pos], Var51Testing软件测试网#H7b@ q!lJ
51Testing软件测试网 PsD0k1pu7D1p+?}
  功能: 用二进制方式,从文件的中指定的位置开始写入,所给变量长度的数据
4l8Q Q.R)W0M&Pm}O0
&c D ie+r$\ K#P0  说明:
gF#`P]051Testing软件测试网 `2]|d9I {wYoZ
  (1)FileNumber是以二进制方式打开的文件号.51Testing软件测试网2pLO9Y6g` Cy3yjl
51Testing软件测试网ArlDa0jHD`
  (2)Pos用来指定写操作发生时的字节位置,若省略,则使用当前文件指针位置.51Testing软件测试网d hu7N{?

#f-I$Zc-rXp0  (3)Var是用来存放写入的数据的变量.该语句会自动根据var变量包含的字节长度写入文件,如果Var是一个可变长度的字符串变量,则传送的字节数等于Var中目前的字节数.51Testing软件测试网A.|g:E`:@

&Af;q\xlF0  使用方法可参考二进制文件的读操作.
~&Wr!G2c|s+~ |@0

TAG: Robot技术 软件测试技术

 

评分:0

我来说两句

Open Toolbar