惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
T
Tailwind CSS Blog
博客园_首页
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
J
Java Code Geeks
量子位
D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
C
Check Point Blog
V
Visual Studio Blog
H
Help Net Security
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta

博客园 - winterson

常见的内存错误及对策 共享一个完美的WR wordfile,让你的Script在UE中更方便阅读 - winterson - 博客园 侃侃男人的品位:Boy to Man to Real Man!!! - winterson 一首好动情的歌,我喜欢 软件测试相关的63个国外站点 (原创)WinRunner数据库检查解决方案(一) - winterson - 博客园 测试需求定义(参考RUP测试实践) 最全的DOS命令 - winterson - 博客园 国内部分高校FTP站点 美国杂志300强及其网址 (转自51testing BBS)成功或失败前 请先全力以赴 (转载)跨越软件测试术语“拦路虎” 测试用例设计的误区 (转载)软件测试效率(test efficiency) TestDirector数据库移植到SQL Server后出现的问题及解决(一) 舒伯的生涯发展理论(转贴) QuickTest Professional 8 Tutorial 中文版 二篇自動化測試的文章 ( 來自 IBM ) 自動化 Windows Forms ( 來自微軟 )
(原创)关于WR获取文件大小的解决方法
winterson · 2006-05-23 · via 博客园 - winterson

今天在论坛上看到有测友提出怎么获取文件大小的问题,在WR TSL ONLINE RERERENCE 上查file相关函数,没找到,就想自己写一个函数.

基本思路:
   对WR比较熟悉的人都会知道它可以调用动态库的功能,因此只要我们自己用其他编程语言写一个动态库(我选择了用delphi),然后WR中调用动态库去获取文件大小

方法一:
编写动态库,以下是我的代码:

library filesize;

uses
  SysUtils,
  Classes;

{$R *.res}

function getfilesize(filename:string):Longint;stdcall;
var
  f:file of Byte;
  nsize:Longint;
begin
  AssignFile(f,filename);
  Reset(f);
  nsize:=filesize(f);
  CloseFile(f);
  Result :=nsize;
end;

exports
getfilesize;
begin
end.  
编译成功后生成了一个动态库filesize.dll,在WR中调用此动态库,代码如下:

load_dll("D:\\getfilesize\\filesize.dll");
extern long getfilesize(string filename);

rc=getfilesize("D:\\getfilesize\\1.txt");成功地获取了1.txt的文件大小;

方法二:
      我到wr安装目录arch下去找一动态库filecomp.dll,利用dll函数查看器我找到了它有个叫ext_file_size的函数,从字面上理解应该是获取文件大小,于是我用WR调用试试,果然也能解决问题,我把他做成一个函数,供以后使用:

extern int ext_file_size(string);
public function getfilesize(in filename)
{
 auto size;
 load_dll(getenv("M_ROOT") & "
\\arch\\filecomp.dll");
 size=ext_file_size(filename);
 return(size);
}

rc=getfilesize("D:\\getfilesize\\1.txt");

结果同样返回了1.txt的文件大小;

总结:
   通过这两种方法,可以发散地想到以后假如再出现Tsl online reference没有要使用的函数时,可以采取以上做法来实现自己想要的结果;好了,该干活了!