脚本开发-文件读写操作

by:授客 QQ1033553122

函数说明

函数原型:

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 脚本开发-文件读写操作的更多相关文章

  1. loadrunder脚本篇——文件读写操作

     函数说明 函数原型: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *file_pointer ); 参数说明 ...

  2. PHP文件读写操作之文件写入代码

    在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发 ...

  3. Kotlin入门(27)文件读写操作

    Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通过输入输出流中转,致使文件读写操作颇为繁琐.因此,开发者通常得自己重新封装一个文件存取的工具类,以便在日常开发 ...

  4. Loadrunner脚本开发规范

    Loadrunner脚本开发规范 目录 1.一般约定... 3 2.代码注释约定... 4 3.格式化代码... 5 1.一般约定 1.1具体脚本规则,必须在具体代码中加注释,以便脚本开发人员阅读和理 ...

  5. Kotlin入门-文件读写操作

    转 https://blog.csdn.net/aqi00/article/details/83241762 Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通 ...

  6. c语言文件读写操作总结

    C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...

  7. [转]Android - 文件读写操作 总结

     转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...

  8. Java 字节流实现文件读写操作(InputStream-OutputStream)

    Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...

  9. Java 字符流实现文件读写操作(FileReader-FileWriter)

    Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...

随机推荐

  1. Java学习笔记42(序列化流)

    对象中的数据,以流的形式,写入到文件中保存 过程称为写出对象,对象的序列化 ObjectOutputStream将对象写到文件中,实现序列化 在文件中,以流的形式,将对象读取出来, 读取对象,对象的反 ...

  2. python实现线性排序算法-计数排序

    计数排序假定输入元素的每一个都是介于0到k之间的整数,此处K为某个整数,当k=O(n)时,计数排序的运行时间为O(n) 它的基本思想是:根据每个输入元素x确定小于x的元素个数,根据这个信息把x直接放到 ...

  3. 机器学习基石笔记:08 Noise and Error

    噪声:误标.对同一数据点的标注不一致.数据点信息不准确...... 噪声是针对整个输入空间的. 存在噪声的情况下,VC bound依旧有用: 存在噪声,就是f------>p(y|x),f是p的 ...

  4. Mac-让 Finder 显示隐藏文件和文件夹

    打开「终端」,输入以下内容,然后「Return」键,这样就把隐藏的文件和文件夹显示了: defaults write com.apple.finder AppleShowAllFiles -boole ...

  5. [EXP]Cisco RV110W - Password Disclosure / Command Execution

    #!/usr/bin/env python2 ##### ## Cisco RV110W Password Disclosure and OS Command Execute. ### Tested ...

  6. List通过HashSet去重

    //JAVA中//使用hashset去重复,set为重复的集合,可以通过new ArrayList(set)转换成list HashSet<HashMap<String, String&g ...

  7. Oracle.ManagedDataAccess 提示ORA-01017 错误【解决方案】

    Oracle.ManagedDataAccess 提示ORA-01017 错误[解决方案] Oracle.ManagedDataAccess 提示ORA-01017 错误[解决方案] [HKEY_LO ...

  8. oc中的oop基础及类的基本介绍

    面向对象的(OOP)的基础知识 类(class):表示一组对象数据的结构体,对象通类来得到自身.类名首字母大写. 对象(objcet):是一种包含值和指向其类的隐藏指针的结构体.运行中的程序中通常会有 ...

  9. 【转】使用notepad运行python

    Notepad++是一个开源的文本编辑器,功能强大而且使用方便,一般情况下,Notepad++作为代码查看器,很方便,但是每次要运行的时候,总是需要用右键打开其他的IDE来编译和运行,总有些不方便.特 ...

  10. Java 动态生成 PDF 文件

    每片文章前来首小诗:   今日夕阳伴薄雾,印着雪墙笑开颜.我心仿佛出窗前,浮在半腰望西天.  --泥沙砖瓦浆木匠 需求: 项目里面有需要java动态生成 PDF 文件,提供下载.今天我找了下有关了,系 ...