loadrunner 脚本开发-文件读写操作
脚本开发-文件读写操作
by:授客 QQ:1033553122
函数说明
函数原型:
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *file_pointer );
参数说明:
buffer:包含数据的缓冲区
size:缓冲区buffer的大小(字节为单位)
count:缓冲区中写入多少个size大小数据(The number of bytes to store in the buffer)
file_pointer:指向存放数据文件的文件指针
size_t: 际写入的数据块数目(每个数据块大小为size)
函数原型:
size_t fread( void *buffer, size_t size, size_t count, FILE *file_pointer );
参数说明:
同fwrite
函数原型:
int ferror( FILE *file_pointer );
功能:检查文件i/o错误
参数说明:
file_pointer:指向文件的文件指针
函数原型
int feof( FILE *file_pointer );
功能:检测流上的文件结束符
参数说明:
file_pointer:指向文件的文件指针
以下通过例子说明如何进行数据存取操作
例子1:
从d盘的readme.txt中读取文件内容并显示读取字节数
代码:
Action()
{
int count, total = 0;
char buffer[1000];
long file_stream;
char * filename = "d:\\readme.txt";
if ((file_stream = fopen(filename, "r")) == NULL )
{
lr_error_message ("Cannot open %s", filename);
return -1;
}
// Read until end of file
while (!feof(file_stream))
{
// Read 1000 bytes while maintaining a running count
count = fread(buffer, sizeof(char), 1000, file_stream);
lr_output_message ("= bytes read", count);
if (ferror(file_stream)) {
lr_output_message ("Error reading file %s", filename);
break;
}
total += count; // Add up actual bytes read
}
// Display final total
lr_output_message ("Total number of bytes read = %d", total );
// Close the file stream
if (fclose(file_stream))
{
lr_error_message ("Error closing file %s", filename);
}
return 0;
}
结果:
例子2:
将每个学生的数据(学号和成绩)保存到某个文件,然后从该文件读取存放的学生数据记录并展示
代码:
Action()
{
// 定义保存学生数据的文件名
#ifdef unix
char * filename = "/tmp/marks.txt";
#else
char * filename = "d:\\marks.txt";
#endif
// 保存学生数据(学号和成绩)
struct student_data
{
int student_id;
unsigned char marks[10];
};
struct student_data sd1; // 定义结构体,用于定义学生数据
struct student_data sd2; // 用于存放从文件中读取的学生数据
long file_handle = NULL; // 文件句柄
int i = 0;
int count = 0; // 统计每次读取学生记录个数
int total = 0; // 用于统计总的学生记录个数
//
打开、创建数据文件
if ((file_handle = fopen(filename, "w+")) == NULL)
{
lr_output_message ("Unable to create %s", filename);
return -1;
}
//
设置学号
sd1.student_id = 1001;
//
设置成绩(假设10门课程)
for (i = 0; i < 10; i++)
{
sd1.marks[i] = (unsigned char)(85 + i);
}
//
把学生记录写入数据文件
i = fwrite(&sd1, sizeof(struct student_data), 1,
file_handle);
if (i > 0) //
fwrite调用不成功则返回0
{
lr_output_message ("Successfully wrote %d record", i);
}
fclose(file_handle); //
关闭文件
if ((file_handle = fopen(filename, "r")) == NULL ) //
如果打开文件失败
{
lr_error_message ("Cannot open %s", filename);
return -1;
}
//
读取全部文件内容
while (!feof(file_handle))
{
count = fread(&sd2, sizeof(struct student_data), 1,
file_handle);
lr_output_message ("%d
个学生数据记录",
count);
//
检查文件I/O错误
if (ferror(file_handle))
{
lr_output_message ("Error reading file %s", filename);
break;
}
total += count; //
计算实际读取的总字节数
}
//
展示最后的数据
lr_output_message("学生的学号为:%d,成绩如下:",
sd2.student_id);
for(i=0; i<10; i++)
{
lr_output_message("%u", sd2.marks[i]);
}
lr_output_message ("Total number of student record = %d",
total);
//
关键文件流
if (fclose(file_handle))
{
lr_error_message ("Error closing file %s", filename);
}
return 0;
}
运行结果:
loadrunner 脚本开发-文件读写操作的更多相关文章
- loadrunder脚本篇——文件读写操作
函数说明 函数原型: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *file_pointer ); 参数说明 ...
- PHP文件读写操作之文件写入代码
在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发 ...
- Kotlin入门(27)文件读写操作
Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通过输入输出流中转,致使文件读写操作颇为繁琐.因此,开发者通常得自己重新封装一个文件存取的工具类,以便在日常开发 ...
- Loadrunner脚本开发规范
Loadrunner脚本开发规范 目录 1.一般约定... 3 2.代码注释约定... 4 3.格式化代码... 5 1.一般约定 1.1具体脚本规则,必须在具体代码中加注释,以便脚本开发人员阅读和理 ...
- Kotlin入门-文件读写操作
转 https://blog.csdn.net/aqi00/article/details/83241762 Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通 ...
- c语言文件读写操作总结
C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...
- [转]Android - 文件读写操作 总结
转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...
- Java 字节流实现文件读写操作(InputStream-OutputStream)
Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...
- Java 字符流实现文件读写操作(FileReader-FileWriter)
Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...
随机推荐
- Python 基础:分分钟入门
Python和Pythonic Python是一门计算机语言(这不是废话么),简单易学,上手容易,深入有一定困难.为了逼格,还是给你们堆一些名词吧:动态语言.解释型.网络爬虫.数据处理.机器学习.We ...
- HoloLens开发手记-全息Hologram
HoloLens使我们可以通过周边世界的光线和声音来创建全息场景和物体,使得它们像真实物体那样.全息场景能够响应你的凝视.手势和语音指令,同时还会和你周边世界的表面交互.借助全息场景,你可以在周边世界 ...
- PyTorch(二)Intermediate
Convolutional Neural Network import torch import torch.nn as nn import torchvision import torchvisio ...
- HDU 4570---Multi-bit Trie(区间DP)
题目链接 Problem Description IP lookup is one of the key functions of routers for packets forwarding and ...
- GraphX之Pregel(BSP模型-消息传递机制)学习
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...
- WTF小程序之animation
目录 animation 的几个关键方法 step 方法 export 方法 如何实现 infinate 动画 小程序的 animation 有一套怪异的 API,既不符合 css 的 keyfram ...
- Android 性能优化-启动时间
adb shell am start -W -n com.xxxx(包名)/xxx.xxxActivity(launch Activity)
- 【Eclipse】添加builder实现NDK的自动编译
最近在做NDK相关的东西,Eclipse里面java的自动编译很方便,每次改动后就能自己编译显示错误,而NDK的C/C++文件就需要保存后再手动点build. 研究了下发现java code的自动编译 ...
- solr入门
Solr采用Lucene搜索库为核心,提供全文索引和搜索开源企业平台,提供REST的HTTP/XML和JSON的API,如果你是Solr新手,那么就和我一起来入门吧!本教程以solr4.8作为测试环境 ...
- 十大经典排序算法的 JavaScript 实现
计算机领域的都多少掌握一点算法知识,其中排序算法是<数据结构与算法>中最基本的算法之一.排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大 ...