canyiyuan 发表于 2016-3-8 09:54

*vwrite*vread写入读取数据文件

  使用*vwrite写入数据文件

  Menu Paths

  Utility Menu>Parameters>Array Parameters>Write to File

  *vwrite命令用于把数组中的数据按照指定的格式(表格式)写入数据文件中。它一次最多可以写入19个参数,并写到由*cfopen命令打开的文件中。写出的格式由*vwrite命令行下一行的FORTRAN77数据描述符的确定(注意:该操作不能通过ansys命令输入窗口进行执行)。数组矢量要指定起始元素位置(如MYARRAY(1,2,1))。可以用表达式来计算数据文件中每一行的位置。关键字SEQU将从1开始写一个连续的整数列。

  *vwrite命令的使用格式如下:

  *VWRITE, Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9, Par10, Par11, Par12, Par13, Par14, Par15, Par16, Par17, Par18, Par19

  其中par1~par19是依次写出的19个参数或者常数,某个空值表示忽略,所有都忽略则输出一空行。允许写出的数据包括常数,变量与数组,包括数值型和字符型数据。

  在*vwrite之前需利用*cfopen打开的一个数据文件,表示其后的并将*cfopen和*cfclos之间所有的*vwrite写出的数据都输入到该数据文件中。

  *cfopen命令的使用格式:*cfopen,fname,ext,--,loc

  其中:fname是带路径的文件名(两者允许至多250字符长度),缺省路径为工作目录,文件名缺省为jobnmae。ext是文件的扩展名(至多是8个字符长度)。如果fname为空,那么扩展名缺省为cmd。--表示该域是不需要使用的值域。loc用于确定打开的文件已经存在时,缺省表示采用覆盖方式写数据到文件中,设置成append表示采用追加方式写数据到文件中。

  与*cfopen成对使用的另外一个命令时*cfclos命令,总是在*cfopen命令与一序列数据*vwrite命令之后,用于关闭用*cfopen命令打开的文件。

  *cfclos命令的使用格式如下:*cfclos

  在*vwrite命令行之后必须紧跟写出数据的格式说明行,规定*vwrite所写出的每项的数据的格式描述符。注意:格式行前面不需要format格式标识字,直接填写一序列的格式描述符,所有的格式描述符必须用一对圆括号括起来。常用的格式描述符的说明用法如下:

  *create,temple,mac

  finish

  /clear

  item='weight:'

  data=234.56

  unit='kg'

  *dim,aa,array,4,1,1

  aa(1)=10.2,324.5,123.7,908

  *dim,bb,char,3,1,1

  bb(1)='i am','a good','man'

  *cfopen,byb,dat

  *vwrite

  (5x,'*vwrite demo')

  *vwrite,

  ('***********************')

  *vwrite,item,data,unit

  (a8,f10.2,a8)

  *vwrite,

  (/'******array parameter output demo******')

  *vwrite,

  ('float format/sequ keyword:')

  *vwrite,sequ,aa(1)

  (f3.0,f10.4)

  *cfclos

  *end

  temple

  运行结果,byb.dat文件中的内容为:

  *vwrite demo

  ***********************

  weight: 234.56kg

  ******array parameter output demo******

  float format/sequ keyword:

  1. 10.2000

  2. 324.5000

  3. 123.7000

  4. 908.0000

  使用*vread命令读取数据文件填充数组

  Menu Paths

  Utility Menu>Parameters>Array Parameters>Read from File

  可以读取数据文件中的数据并用来填充已经定义的数组参数。数据文件必须是ASCII格式文件,并按指定下标将读入的数据赋值给数组参数。读取文件时候,必须在*vread命令行的下一行指定数据读入的格式说明,控制从文件中读取数据信息的格式,数据格式说明必须括在一对圆括号中。

  使用格式如下:

  *VREAD, ParR, Fname, Ext, --, Label, n1, n2, n3, NSKIP

  其中:parr是读入数据的赋值对象数组,必须是已经存在的数组参数;fname是带路径的文件名(允许最多为250字符长度),缺省路径为工作目录,文件名缺省为jobname;ext是文件的扩展名(至多为8字符长度);--表示该域是不需要使用的值域;label是取值顺序标识字IJK,IKJ,JIK,JLI,KIJ,KJI,空值表示IJK;n1,n2,n3是当label=KIJ,n2和n3缺省等于1时按照格式(((parR(i,j,k),k=1,n1),i=1,n2),j=1,n3)读入数据;NSKIP是读入数据文件时需要跳过的开始行数,表示从下一行开始读入数据文件中的数据,缺省值时0,表示从第一行开始读入数据。

  eg:数据文件data.dat存储内容如下,读入该数据文件中数据并赋值给数组aa。

  1.5 7.8 12.3

  15.6 -45.6 42.5

  命令流如下:

  *create,byb,mac

  *dim,aa,,2,3

  *vread,aa(1,1),data,dat,,jik,3,2

  (3f6.1)

  *end

  byb



转自:http://blog.sina.com.cn/s/blog_e23f4d720102w830.html
页: [1]
查看完整版本: *vwrite*vread写入读取数据文件