[转] web_reg_save_param得到的数组的处理

方法一:

函数(sprintf,web_reg_save_param),其中红色字体是本文档最重要的
#include "web_api.h"

Action()
{
int i,iloop;
char idParam[200];
char idValue[200];
...
web_reg_save_param("topicarray", "LB=topic_", "RB=.html","Notfound=warning", "Search=body","Ord=All",LAST);
//注意Ord=All
web_url("访问指定XXX",
"URL=指定要访问的页面",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);


for ( i =1 ; i < atoi(lr_eval_string("{topicarray_count}"))+1; i++){


    sprintf(idParam, "{topicarray_%d}", i);
    sprintf(idValue, "%s", lr_eval_string(idParam));
    lr_save_string(idValue,"topicid");//这个也比较实用的函数,放入参数,后续调用就比较简单了,
    lr_message("The value argument is : %s", lr_eval_string("{topicid}"));


    for ( iloop = 0; iloop < 5 ; iloop++){
        web_submit_data("add_reply.do",
        "Action=xxxxxxxxxxxx.do",
        "Method=POST",
        "RecContentType=text/html",
        "Referer=xxxxxxx_{topicid}.html",
        "Mode=HTTP",
        ITEMDATA,
        "Name=allow_guest", "Value=on", ENDITEM,
        "Name=url", "Value=xxxxxxxxx{topicid}.html", ENDITEM,
        "Name=Username", "Value=2007", ENDITEM,
        "Name=Title", "Value=null", ENDITEM,
        "Name=Content", "Value={topicid}", ENDITEM,
        "Name=aaaa", "Value=aaa", ENDITEM,
        LAST);
     }

方法二:

如何使用web_reg_save_param方法保存的多个参数?

web_reg_save_param方法中,如果参数部分指明"ORD=ALL",则可以保存多个参数。例如“web_reg_save_param("flight_num","LB=<input type=/"checkbox/" name=/"","RB=/" value=/"on/">","ORD=ALL",LAST)”,将会根据实际情况查找符合条件的内容,然后把找到的结果依次保存在参数flight_num_1flight_num_2flight_num_3、……中。如果要使用这些参数,可以借助数组来完成。

下面的示例演示了在订票程序中,如何把找到的票号保存到数组中,然后利用循环语句生成参数名称并保存到数组中。得到参数列表后,接下来就能进行其它操作,例如删除订票等。

Action()

{  int i;

   int  count;

   char param[10][20];

   web_reg_save_param("flight_num","LB=<input type=/"checkbox/" name=/"","RB=/" value=/"on/">","ORD=ALL",LAST);

       web_url("com.mercurytours.servlet.IteneraryServlet",

              "URL=http://localhost/servlets/com.mercurytours.servlet.IteneraryServlet",

              "TargetFrame=",

              "Resource=0",

              "RecContentType=text/html",

              "Referer=http://localhost/servlets/com.mercurytours.servlet.ReservationServlet",

              "Snapshot=t3.inf",

              "Mode=HTML",

              LAST);

    count=atoi(lr_eval_string("{flight_num_count}"));

    lr_error_message("已经订票的数量:%d",count);

     for(i=1;i<=count;i++){

       sprintf(param[i],"{flight_num_%d}",i);//参数名称存到数组中

       lr_error_message(param[i]);

      }

     for(i=1;i<=count;i++){     

       lr_error_message(lr_eval_string(param[i]));//使用参数

      }

       return 0;

}

原文地址:https://www.cnblogs.com/shengs/p/4155271.html