LoadRunner 脚本学习 -- 读取文件内容

随便创建个txt文档  输入点内容,例如

读取文件内前N个字符:

Action()
{
    long myfile;
    int count, total=0;
    char buffer[50];
    char *filename = "E:\\kkk.txt";

    if((myfile=fopen(filename,"r"))==NULL)
    {
        lr_error_message("%s文件不能打开",filename);
        return -1;
    }

    while(!feof(myfile))
    {
        count = fread(buffer,sizeof(char),5,myfile);
        total = total + count;

        if(total>=5)
        {
            fclose(myfile);
            lr_output_message("前5个字符为%s",buffer);    
            break;
        }
    }
    return 0;
}

LR不支持FILE类型。

fread 函数返回一个整形,表示读取了多少个字符。

 

取前6行,每行取前5个字符:

(感谢 朱杰 对以下代码指导)

 

Action()
{
    char buffer[1024];
    char head[10];
    int n=1;
    long myfile;
    char *filename = "E:\\kkk.txt";

    if((myfile = fopen(filename,"r"))==NULL)
    {
        lr_error_message("文件%s不能打开",filename);
        return -1;
    }

    while(!feof(myfile)&&n<=6)

    {

        fgets(buffer,1024,myfile);
        strncpy(head,buffer,5);
        
            
        lr_output_message("%s文件第%d行的前5个字符为:%s",filename,n,head);
        n++;
            
    }
    fclose(myfile);


    return 0;
}

 

fgets(存哪个字符数组,几位,从哪个文件取),整行取,根据循环一行行往下取

strncpy(存哪个字符数组,从哪个字符数组copy字符,几位)

 

取前6行,每行从第3个字符开始取5个字符:

    while(!feof(myfile)&&n<=6)

    {
        fseek(myfile,2,1);
        fgets(buffer,1024,myfile);
        strncpy(head,buffer,5);
        
            
        lr_output_message("%s文件第%d行的5个字符为:%s",filename,n,head);
        n++;
            
    }
    fclose(myf

fseek函数 操作文件 (文件参数,偏移量,1为指针当前位置)  ,从3个开始,那就偏移2。 1为指针当前位置,0为文件开始,2为文件结束。

 

取前6行,每行取末尾5个字符:

通过指针位移来满足需求

 

    while(!feof(myfile)&&n<=6)

    {
        fgets(buffer,1024,myfile);
        strncpy(head,buffer+strlen(buffer)-6,5);
        
            
        lr_output_message("%s文件第%d行的5个字符为:%s",filename,n,head);
        n++;
            
    }

 

buffer+strlen(buffer)-6 : 先用strlen取buffer的长度,然后正位移这个长度,但行为换行符,再-6,负位移6位,就指向每行末尾第5个字符了。高大上。

 

 

 

 

posted @ 2014-03-10 13:52  KK&TT  阅读(2733)  评论(0)    收藏  举报
AmazingCounters.com