C语言读取指定行文本

来源:互联网 发布:玩数码频道淘宝店铺 编辑:程序博客网 时间:2024/06/05 18:25

当Loadrunner参数文件,每行取值文件过长且难以保存成功时,可以尝试使用读取文件行的方式取参数。

参考的函数如下:

#include <stdio.h> char * ReadSpeacialLine(int i) {     char filename[] = "test.c"; //文件名    FILE *fp;     int WhichLine=i;             //指定要读取哪一行    int CurrentIndex=0;             //当前读取的行    char StrLine[1024];             //每行最大读取的字符数,可根据实际情况扩大    if((fp = fopen(filename,"r")) == NULL) //判断文件是否存在及可读    {         printf("error!");         return NULL;     }     while (!feof(fp))     {             if (CurrentIndex==WhichLine)        {            fgets(StrLine,1024,fp);  //读取一行            printf("%s", StrLine); //输出            return StrLine;        }        fgets(StrLine,1024,fp);  //读取一行,并定位到下一行        CurrentIndex++;        //printf("%s", StrLine); //输出    }     fclose(fp);                     //关闭文件    return NULL; }

Loadrunner中的实现如下:

以下为从一个总行数为10的文件中随机取一行的实现方法,以下内容放在Action.c中即可:

    char filename[] = "trainInfo.txt"; //文件名    long file;     int WhichLine=rand()%10;        //<strong>生成0到9的随机数</strong>    int CurrentIndex=0;             //当前读取的行    char StrLine[2000];             //每行最大读取的字符数,可根据实际情况扩大    lr_output_message("WhichLine---%d",WhichLine);//     if((file = fopen(filename,"r")) == NULL) //判断文件是否存在及可读    {         printf("error!");         return NULL;     }     while (!feof(file))     {             if (CurrentIndex==WhichLine)        {            fgets(StrLine,2000,file);  //读取一行            //printf("%s", StrLine); //输出    break;        }        fgets(StrLine,2000,file);  //读取一行,并定位到下一行        CurrentIndex++;        //printf("%s", StrLine); //输出    }     fclose(file);     //printf("StrLine--%s",StrLine); //输出    lr_save_string(StrLine,"trainInfo");    //lr_output_message("trainInfo---%s",lr_eval_string("{trainInfo}"));

0 0
原创粉丝点击