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

时间:2023-03-09 16:01:08
LoadRunner 脚本学习 -- 读取文件内容

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

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

读取文件内前N个字符:

Action()
{
long myfile;
int count, total=;
char buffer[];
char *filename = "E:\\kkk.txt"; if((myfile=fopen(filename,"r"))==NULL)
{
lr_error_message("%s文件不能打开",filename);
return -;
} while(!feof(myfile))
{
count = fread(buffer,sizeof(char),,myfile);
total = total + count; if(total>=)
{
fclose(myfile);
lr_output_message("前5个字符为%s",buffer);
break;
}
}
return ;
}

LR不支持FILE类型。

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

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

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

Action()
{
char buffer[];
char head[];
int n=;
long myfile;
char *filename = "E:\\kkk.txt"; if((myfile = fopen(filename,"r"))==NULL)
{
lr_error_message("文件%s不能打开",filename);
return -;
} while(!feof(myfile)&&n<=) { fgets(buffer,,myfile);
strncpy(head,buffer,); lr_output_message("%s文件第%d行的前5个字符为:%s",filename,n,head);
n++; }
fclose(myfile); return ;
}

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

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

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

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

    {
fseek(myfile,,);
fgets(buffer,,myfile);
strncpy(head,buffer,); 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<=)

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

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