51Testing软件测试论坛

标题: 如何进行文档间的比较 [打印本页]

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

如何使用脚本来实现
作者: lsy325    时间: 2007-1-31 12:00
1、在WinRunner中有提供的文件操作函数
file_getline ( file_name, out_line ); 读取文件下一行,并将其分配给一个变量
file_printf ( file_name, format, exp1 [ , exp2,... exp30 ] ); 按格式打印文件
可完成文件合并.
2、不知合并完成的文件与标准词库对比有什么样的关系?
作者: lovoo    时间: 2007-2-1 09:52
标题: 文档比较
有2个非常类似的文档,一个是标准词库,一个是有问题的词库,如何进行比较,并且把不同的词,提取出来,存储在另外一个文档里。
如何实现啊,请赐教,最好帮偶写个脚本啊
作者: lsy325    时间: 2007-2-1 10:19
文件合并脚本
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
标题: 谢谢楼上
能不能将不同的都提取出来,保存在另一个文档,这可是词库啊,有30多万行!
作者: lsy325    时间: 2007-2-1 10:43
在结果中查看内容,可以只显示内容不同的,不需要再写文件吧.

要是写文件的话,你可以把像合并文件那样写成循环,读取两个文件的内容,比较变量值,不相同的再写到别一个文件中就行了.
file_getline ( file_name, out_line );读取文件下一行,并将其分配给一个变量
file_printf ( file_name, format, exp1 [ , exp2,... exp30 ] );按格式打印文件
作者: jackiepsq    时间: 2007-2-7 00:22
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
你这是要查询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 ("查找");




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2