zoukankan      html  css  js  c++  java
  • loadrunner 脚本开发-文件读写操作

    脚本开发-文件读写操作

    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;

    }

    结果:

    loadrunner <wbr>脚本开发-文件读写操作

    例子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 <wbr>脚本开发-文件读写操作

     

     

     

  • 相关阅读:
    Android 6.0以上动态获取权限
    大学实验3指导:利用单链表实现A-B
    大学课程实验2指导-二叉树的建立与遍历
    大学实验1 哈夫曼编码
    大学java教案之MySQL安装图解
    DrawableAnimation小练习
    Android学习第7天
    Android学习第6天
    There's no Qt version assigned to this project for platform Win32
    OpenBCI 开发环境配置
  • 原文地址:https://www.cnblogs.com/shouke/p/10158300.html
Copyright © 2011-2022 走看看