lovoo 发表于 2007-1-31 11:38:51

如何进行文档间的比较

问题:
1)有N个*.txt文件,如何将它们完全合并在一个文档(N个*.txt文件里存储的都是词组)
2)从合并完的文件里,如何取出词,来和标准词库进行比较,查看该词是否正确(标准词库已经整理出来)

如何使用脚本来实现

lsy325 发表于 2007-1-31 12:00:57

1、在WinRunner中有提供的文件操作函数
file_getline ( file_name, out_line ); 读取文件下一行,并将其分配给一个变量
file_printf ( file_name, format, exp1 [ , exp2,... exp30 ] ); 按格式打印文件
可完成文件合并.
2、不知合并完成的文件与标准词库对比有什么样的关系?

lovoo 发表于 2007-2-1 09:52:50

文档比较

有2个非常类似的文档,一个是标准词库,一个是有问题的词库,如何进行比较,并且把不同的词,提取出来,存储在另外一个文档里。
如何实现啊,请赐教,最好帮偶写个脚本啊

lsy325 发表于 2007-2-1 10:19:34

文件合并脚本
file_open("E:\\test\\test1.txt",FO_MODE_READ);
file_open("E:\\test\\test2.txt",FO_MODE_APPEND);
i=0;
while(file_getline("E:\\test\\test1.txt",line)==0)
{
    i++;
    file_printf("E:\\test\\test2.txt","%s\r\n",line);
}
file_close("E:\\test\\test1.txt");
file_close("E:\\test\\test2.txt");
文件对比:
file_compare ( file1, file2 [ , save_file, ignore_white_chars ] );

ignore_white_chars   是否进行对比 像"","\r","\n", 和 "\ t"这样的特殊字符,

                     0:进行对比;1:不进行对比。


如:file_compare("E:\\test\\test1.txt","E:\\test\\test2.txt","save",1);
程序依次比对文件中每行的内容.
运行结果中查看时
两个文件的内容不同时,会在左右两侧窗口中显示,内容不同的会以黄色显示,双击内容就会只显示内容不同的部分.

[ 本帖最后由 lsy325 于 2007-2-1 10:30 编辑 ]

lovoo 发表于 2007-2-1 10:23:17

谢谢楼上

能不能将不同的都提取出来,保存在另一个文档,这可是词库啊,有30多万行!

lsy325 发表于 2007-2-1 10:43:40

在结果中查看内容,可以只显示内容不同的,不需要再写文件吧.

要是写文件的话,你可以把像合并文件那样写成循环,读取两个文件的内容,比较变量值,不相同的再写到别一个文件中就行了.
file_getline ( file_name, out_line );读取文件下一行,并将其分配给一个变量
file_printf ( file_name, format, exp1 [ , exp2,... exp30 ] );按格式打印文件

jackiepsq 发表于 2007-2-7 00:22:16

to:lsy325,file_compare("E:\\test\\test1.txt","E:\\test\\test2.txt","save",1);只是依次比对文件中每行的内容.不能实现文件A中存在的单词是否在文件B中存在,之前我也做了相关的例子。

[ 本帖最后由 jackiepsq 于 2007-2-7 00:23 编辑 ]

lsy325 发表于 2007-2-7 09:32:00

你这是要查询A文件中的单词是否存在B文件中,可以借用记事本来完成操作。
参考一下:
      text="合并后的文件内容";   #text是从A文件中读取的内容
#用记事本打开B文件
# B.txt - 记事本
      set_window ("B.txt - 记事本", 4);
      obj_type ("Edit","<kCtrl_R-kHome_E>");    #把光标定位到文件开头
      menu_select_item ("编辑(E);查找(F)... Ctrl+F");
      win_wait_info("查找","enabled",1,5);
# 查找
      set_window ("查找", 4);
      edit_set ("查找内容(N):", text);
      button_press ("查找下一个(F)");
      if(win_wait_info("记事本","enabled",1,5)==E_OK)   #“记事本”是指查找不到时弹出的确定窗口
      {               
                report_msg(text);      #该内容不存在于文件B中,可用WinRunner中提供的文件操作,存放到另外一个文件中。
                set_window ("记事本", 4);
                win_close ("记事本");      
      }
      win_close ("查找");
页: [1]
查看完整版本: 如何进行文档间的比较