51Testing软件测试论坛

标题: 在当前窗体打开.txt文本用什么函数 [打印本页]

作者: yemen126459    时间: 2007-6-20 15:52
标题: 在当前窗体打开.txt文本用什么函数
各位赐教!!!!!!!!!!!!!!!!

脚本中执行在当前窗体自动打开.txt文本用什么函数??
是用ddt_open()函数吗??
保存和关闭是用ddt_save(),ddt_close()吗?
E_ok起 到什么作用,具体含义是什么?

ddt_open()和file_open (  )有什么区别吗?

脚本如下:

test = "D:\\winrunner script\\test.txt";
table = "D:\\winrunner script\\default.xls";
rc = ddt_open(table);
if(rc!=E_OK)
{
ddt_close(table);
pause("ERROR");
}

file_open (test,2);
set_window ("Shell_TrayWnd",3);
toolbar_button_press ("ToolbarWindow32_1","test.txt - 计事本");
type ("作者:MadDuck!"&"<kReturn>");
for(i=1;i<4;i++)
{
type(ddt_val_by_row(table,i,"user")&"<kTab>");
type(ddt_val_by_row(table,i,"pass")&"<kReturn>");
}
wait(1);
ddt_close(table);
file_close(test);

[ 本帖最后由 yemen126459 于 2007-6-20 17:32 编辑 ]
作者: shiwomyw    时间: 2007-6-20 16:38
使用"file_open ( file_name, mode );"这个函数,使用file_close();可以关闭并保存文件.
"E_OK"就是操作成功的意思.函数相关的使用可以看帮助.
作者: yemen126459    时间: 2007-6-20 16:46
标题: 回复 #2 shiwomyw 的帖子
那ddt_open()和file_open ( file_name, mode )有什么区别吗?
我帮助上写不是很清楚,麻烦帮忙解释下~
作者: yemen126459    时间: 2007-6-20 17:20
标题: 回复 #2 shiwomyw 的帖子
test = "D:\\winrunner script\\test.txt";
table = "D:\\winrunner script\\default.xls";
rc = ddt_open(table);
if(rc!=E_OK)
{
ddt_close(table);
pause("ERROR");
}

file_open (test,2);
set_window ("Shell_TrayWnd",3);
toolbar_button_press ("ToolbarWindow32_1","test.txt - 计事本");
type ("作者:MadDuck!"&"<kReturn>");
for(i=1;i<4;i++)
{
type(ddt_val_by_row(table,i,"user")&"<kTab>");
type(ddt_val_by_row(table,i,"pass")&"<kReturn>");
}
wait(1);
ddt_close(table);
file_close(test);

改完脚本之后还是不行。

[ 本帖最后由 yemen126459 于 2007-6-20 17:29 编辑 ]
作者: way    时间: 2007-6-21 10:05
ddt_open ( data_table_name [ , mode ] );打开或创建一个可以访问的数据表
file_open ( file_name, mode );打开或创建指定的文件:file_open("e:\\a1.txt",FO_MODE_READ);
打开记事本还有一种方法,直接调用:
invoke_application("notepad","","",SW_SHOW);

[ 本帖最后由 way 于 2007-6-21 10:07 编辑 ]
作者: lsy325    时间: 2007-6-21 10:27
用file_open ( file_name, mode );打开的文件,要写入的话,是使用命令file_printf ( file_name, format, exp1 [ , exp2,... exp30 ] );按格式打印文件。
作者: lsy325    时间: 2007-6-21 10:35
set_window ("Shell_TrayWnd",3);
toolbar_button_press ("ToolbarWindow32_1","test.txt - 计事本");
type ("作者:MadDuck!"&"<kReturn>");
for(i=1;i<4;i++)
{
type(ddt_val_by_row(table,i,"user")&"<kTab>");
type(ddt_val_by_row(table,i,"pass")&"<kReturn>");
}



看你这段写的,你录制的时候test.txt文件已经打开了。
你在使用type命令前少了一条语句,set_window ( window [,time] );指定窗口接受输入,并确定等待时间。
把"test.txt-记事本"窗口指定为接受输入,才能正确执行type命令,把字符串输入的记事本中。
作者: yemen126459    时间: 2007-6-21 15:53
谢谢你们的回复,可都不能解决我所想解决的~~~~
说简单一点,就是在当前窗体打开一个文件,有什么语句!
我现在运行file_open()语句不能打开文件,运行完什么反应没有,而系统也没报错!
只要能在当前窗体打开指定目录的文件就好了!!!!!
作者: lsy325    时间: 2007-6-21 16:35
只要能在当前窗体打开指定目录的文件就好了

一、invoke_application ( file, command_option, working_dir, show );
使用该命令是以文件的默认打开方式进行打开文件的,同你在操作系统下双击打开文件一样,如果双击文件能在你所说的当前窗口打开,那么使用该命令就可以了。
二、你所说的当前窗口中能否执行打开操作,能做的话,直接录制打开操作不就行了。
作者: yemen126459    时间: 2007-6-21 16:50
标题: 回复 #9 lsy325 的帖子
我现在采用的方法就是用Record打开当前文件脚本后执行;
我觉得这样很麻烦,如果多次调用的话....................
实在不好意思,能麻烦你举个实际 的例子我看一下里面的参数是怎么设置;
现在看帮助说明英文的,太迷茫了~~~~~~
作者: way    时间: 2007-6-21 17:03
invoke_application("notepad","e:\\a2.txt","",SW_SHOW);

invoke_application ( file, command_option, working_dir, show );调用windows应用程序
file:应用程序的文件名,绝对路径;
command_option:应用程序的参数;
working_dir:应用程序工作路径;
show:程序运行时的显示模式;SW_SHOW,SW_SHOWMAXIMIZED,SW_SHOWMINNOACTIVE,SW_SHOWNA,SW_SHOWNOACTIVATE,SW_SHOWNORMAL
另外一种参数解释:
四个参数分别是 调用程序所在路径,执行路径,执行的命令参数,窗口状态
作者: yemen126459    时间: 2007-6-21 17:16
标题: 回复 #11 way 的帖子
那command_option都有什么参数呢?
working_dir是指我存放脚本的目录还是winrunner程序所目录!!!

麻烦了~~
作者: lsy325    时间: 2007-6-21 17:49
你现在是打开文件,不用设置上述的两个参数。
当你使用invoke_application 打开的是应用程序时,working_dir是指应用程序所在的目录。
使用invoke_application 打开的是应用程序时,working_dir不进行设置,可能会对程序的某些功能实现产生影响。
作者: yemen126459    时间: 2007-6-21 18:07
标题: 回复 #13 lsy325 的帖子
那file_open()到底有什么功能作用呢?

麻烦了~~~~
作者: lsy325    时间: 2007-6-21 18:14
不知怎样说明,用file_open()打开的文件是没有界面可以查看到的,使用该命令打开文件后,可以使用下面的两个命令对文件进行读写操作。
file_getline ( file_name, out_line );读取文件下一行,并将其分配给一个变量
file_printf ( file_name, format, exp1 [ , exp2,... exp30 ] );按格式打印文件

例如:

file_open("E:\\test\\test1.txt",FO_MODE_READ);
file_open("E:\\test\\test2.txt",FO_MODE_WRITE);
i=0;
while(file_getline("E:\\test\\test1.txt",line)==0)
{
    i++;
    file_printf("E:\\test\\test2.txt","%d "&toupper(line),i);
}
file_close("E:\\test\\test1.txt");
file_close("E:\\test\\test2.txt");
作者: yemen126459    时间: 2007-6-21 18:19
标题: 回复 #15 lsy325 的帖子
哦,这样,那么如果我用invoke_application 打开的文件已经写入完内容,
我想保存的话,那么我用什么命令将其关闭并且保存呢?????

那ddt_open()又有什么优点呢,那只是提供数据源查询的功能吗?

[ 本帖最后由 yemen126459 于 2007-6-21 18:20 编辑 ]




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