Vector - CAPL - 文件处理函数

在当前平台化的趋势下,就算是协议层测试依然需要适配各种各样的项目,也需要处理各类型的文件,那我们如何对文件进行读取、写入、修改等类型的操作呢?今天我们就会介绍此类型的函数,主要适用于text、bin文件的处理。

Vector - CAPL - 文件处理函数_第1张图片

打开文件

Open

功能:打开文件名为filename的文件。

filename:要打开的文件名/路径

access:打开文件的方式

0:打开文件进行读取访问

1:打开文件进行写入访问

mode:打开文件的模式,是以text打开,还是以二进制打开

0:text模式打开文件

1:二进制模式打开文件

fileEncoding:用于编码文件的Microsoft代码页的标识符。

返回值:发生错误则返回0;成功打开文件则返回非零句柄。

示例代码:

glbHandle = Open("Data.Txt", 0, 0);

if ( glbHandle!=0 )
{
    write ("File 'Data.Txt' was opened for read access.");
}
else
{
    write ("File 'Data.Txt' was not opened for read access.");
}

openFileRead

功能:打开文件进行读取访问

说明:必须将文件名传递给此函数。通过搜索过程确定绝对文件名。首先进行搜索以确定给定文件是否位于数据库的目录中。如果找不到所需的文件,则使用活动配置目录。

filename:要打开的文件名/路径

mode:打开文件的模式,是以text打开,还是以二进制打开

0:text模式打开文件

1:二进制模式打开文件

fileEncoding:用于编码文件的Microsoft代码页的标识符。

返回值:发生错误则返回0;成功打开文件则返回非零句柄。

示例代码:

glbHandle = OpenFileRead ("Data.Txt",0);

if ( glbHandle!=0 )
{
    write ("File 'Data.Txt' was opened for read access.");
}
else
{
    write ("File 'Data.Txt' was not opened for read access.");
}

openFileWrite

功能:打开文件进行写入访问

说明:在调用此函数之前,必须由函数SetWritePath设置写入路径。否则将使用配置目录。必须将相对文件名传递给函数。

filename:要打开的文件名/路径

mode:打开文件的模式

0:text模式打开文件进行写入

1:二进制模式打开文件打开文件进行写入,已存的文件会被覆盖

2:以text模式打开文件,在文件末尾写入数据

3:以二进制模式打开文件,在文件末尾写入数据

fileEncoding:用于编码文件的Microsoft代码页的标识符。

返回值:发生错误则返回0;成功打开文件则返回非零句柄。

示例代码:

glbHandle = OpenFileWrite ("Data.Txt",2);

if ( glbHandle!=0 )
{
    write ("File 'Data.Txt' was opened for write access.");
}
else
{
    write ("File 'Data.Txt' was not opened for write access.");
}

Vector - CAPL - 文件处理函数_第2张图片

fileClose

功能:关闭指定文件

fileHandle:常见的文件句柄

返回值:

0:关闭指定文件失败返回0;

1:关闭指定文件成功返回1;


文件内容获取

fileGetBinaryBlock

功能:以二进制格式从指定文件中读取字符,打开文件的方式必须是二进制格式打开。

buff:存放读取数据的数组

buffsize:最大单次读取数据的大小

fileHandle:打开文件方式的句柄 - 打开文件函数的返回值

返回值:函数返回读取的字符数。

示例代码:

  glbHandle = OpenFileRead ("Data.Bin",1);

  if ( glbHandle!=0 )
  {
    while ( fileGetBinaryBlock(buffer,elcount(buffer),glbHandle)!=0 ) {};
    memcpy(glbData, buffer);
    write ("Last value %d.",glbData.value);
    fileClose (glbHandle);
  }
  else
  {
    write ("File 'Data.Bin' was not opened for read access.");
  }

fileGetString

功能:从指定文件读取字符串

说明:该函数将指定文件中的字符串读入缓冲区缓冲区;读取字符,直到到达行尾或读取的字符数等于缓冲区大小-1。

buff:存放读取字符串数据的缓冲区,这里需要注意,尽量定义超过使用文件单行内容最大的缓冲区+1,保证每次都能读取一整行,有利于减少代码bug

buffsize:读取字符串的长度

fileHandle:打开文件方式的句柄 - 打开文件函数的返回值

返回值:

0:获取数据失败

1:获取数据成功

示例代码:

glbHandle = OpenFileRead ("Data.Txt",0);

if ( glbHandle!=0 )
{
    while ( fileGetString(buffer,elcount(buffer),glbHandle)!=0 ) {};
    glbValue = atol (buffer);
    write ("Last value %d.",glbValue);
    fileClose (glbHandle);
}
else
{
    write ("File 'Data.Txt' was not opened for read access.");
}

fileGetStringSZ

功能:从指定文件读取字符串

说明:该函数将指定文件中的字符串读入缓冲区缓冲区;读取字符,直到到达行尾或读取的字符数等于缓冲区大小-1。

buff:存放读取字符串数据的缓冲区,这里需要注意,尽量定义超过使用文件单行内容最大的缓冲区+1,保证每次都能读取一整行,有利于减少代码bug

buffsize:读取字符串的长度

fileHandle:打开文件方式的句柄 - 打开文件函数的返回值

返回值:

0:获取数据失败

1:获取数据成功

示例代码:

glbHandle = OpenFileRead ("Data.Txt",0);

if ( glbHandle!=0 )
{
    while ( fileGetStringSZ(buffer,elcount(buffer),glbHandle)!=0 ) {};
    glbValue = atol (buffer);
    write ("Last value %d.",glbValue);
    fileClose (glbHandle);
}
else
{
    write ("File 'Data.Txt' was not opened for read access.");
}

文件写入

filePutString

功能:在指定文件中写入字符串

功能:从指定文件写入字符串

buff:写入字符串的数组

buffsize:写入字符串的长度

fileHandle:打开文件方式的句柄 - 打开文件函数的返回值

返回值:

0:获取数据失败

1:获取数据成功

示例代码:

glbHandle = OpenFileWrite ("Data.Txt",2);
if ( glbHandle!=0 )
{
    randomValue = random (32767);
    snprintf (buffer,elcount(buffer)," %d \n",randomValue);
    filePutString (buffer, elcount(buffer),glbHandle);
    setTimer (writeTimer,glbPeriod);
}
else
{
write ("Error, invalid file handle.");
}

你可能感兴趣的:(CAPL入门到入坑,CAPL,vTESTstudio,文件处理函数)