在当前平台化的趋势下,就算是协议层测试依然需要适配各种各样的项目,也需要处理各类型的文件,那我们如何对文件进行读取、写入、修改等类型的操作呢?今天我们就会介绍此类型的函数,主要适用于text、bin文件的处理。
功能:打开文件名为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.");
}
功能:打开文件进行读取访问
说明:必须将文件名传递给此函数。通过搜索过程确定绝对文件名。首先进行搜索以确定给定文件是否位于数据库的目录中。如果找不到所需的文件,则使用活动配置目录。
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.");
}
功能:打开文件进行写入访问
说明:在调用此函数之前,必须由函数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.");
}
功能:关闭指定文件
fileHandle:常见的文件句柄
返回值:
0:关闭指定文件失败返回0;
1:关闭指定文件成功返回1;
功能:以二进制格式从指定文件中读取字符,打开文件的方式必须是二进制格式打开。
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.");
}
功能:从指定文件读取字符串
说明:该函数将指定文件中的字符串读入缓冲区缓冲区;读取字符,直到到达行尾或读取的字符数等于缓冲区大小-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.");
}
功能:从指定文件读取字符串
说明:该函数将指定文件中的字符串读入缓冲区缓冲区;读取字符,直到到达行尾或读取的字符数等于缓冲区大小-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.");
}
功能:在指定文件中写入字符串
功能:从指定文件写入字符串
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.");
}