易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Ruby

ruby调用DLL

 开源测试工具watir是采用的ruby语言进行开发的。在研究watir框架的时候,发现有一部分函数watir没有提供而且暂时没找到合适的gem包,而很多功能在我们原来的自动化测试框架中都通过c写的dll进行了实现,于是我们希望能够把这部分的dll无缝的移植到watir上,减少我们的工作量,而且可以更高效的实现我们需要的功能。
  在ruby的开源项目中,Win32Api这个gem可以实现我们需要的功能。通过以下方法 ,我们就可以调用外部dll中的函数。
Win32Api.new(dllname, proc, import, export)
参数说明
dllname:dll文件的名字,如果想只写dll的名字,可以将dll放到system32目录或者当前目录下,或者写上dll文件所在的路径
proc: dll中函数的名字
import:函数传入参数的参数类型,其中 "p" 对应指针,"n","l"对应long,"i"对应int,"v" 对应void,如果有多个参数,可以通过 ["p","n"]数组的方式来实现,其中置为nil可以表示没有参数
export:函数的返回值类型,参数类型同上
Win32API#call([args ...])
调用dll中的函数,参数和返回值应该与new申明中的一致,如果返回一个指针,需要事前初始化,否则可能会有内存溢出问题。
例子:
有个dll的头文件的申明为:
extern ......

RUBY EXCEL操作

 用ruby新建一个excel文件,并且设置一些值。
 require 'win32ole'
excel = WIN32OLE.new("excel.application")       
excel.Visible = true
excel.WorkBooks.Open("d:\\test.xls")
excel.WorkSheets("sheet1").Activate
excel.Cells(2,3).value = "张三"
excel.Cells(3,3).value = "王二"
excel.ActiveWorkbook.Close(0)  // 0 不保存推出,1 保存退出
excel.Quit() ......

Ruby 101:对象和方法


Ruby 101:对象和方法
Written by Allen Lee
从静态方法说起
      在上一篇文章末尾,我们提到了受保护的静态方法……受保护的静态方法??Ruby的protected不是用来向相同类型的不同实例开放受限方法的访问的吗(忘记protected的用法了?不要紧,回去上一篇文章复习一下吧。),如果把它用于静态方法,那么我该向参数传入什么?
      在回答这些问题之前,我们先来看看最简单的不带任何参数的静态方法,假设我有一个空的Class1类,如果我试图调用它的method1静态方法,那么我将会被告知没有这个方法:

图 1
在Ruby里,所有类最终都会继承自Object类(这个说法其实不够准确,但就目前而言,你大可放心这样理解),如果我试图调用它的method1静态方法,那么显然,我也将会被告知没有这个方法:

图 2
还记得Ruby允许我们重新打开并修改一个类吗,如果忘记了,不要紧,回去第一篇文章复习一下吧。下面,我们将会通过这种方式向Class类添加method1方法:

图 3
接着,我们再试一次Class1类及其基类的method1方法:

图 4
噢,买瓜!这到底是怎么一回事?
    ......

清楚VSS文件的批处理(Ruby版)

 
def delVss(path)
  if File.directory?(path)
    for f in d = Dir.open(path)
        fpath = File.join(path, f) 
      if(f!="."&&f!="..")      
        if(f=~/\w+\.scc/||f=~/\w+\.vssscc/||f=~/\w+\.vspscc/)
            print fpath," Has been delete","\n"
            File.delete(fpath)
            else
                if File.directory?(fpath)
                  delVss fpath
                  end
  & ......

ruby xml excel

require 'win32ole'
fns = Dir.glob("*.xls")
application = WIN32OLE.new("excel.application") 
application.visible = TRUE
f = File.new('errorCauseEN.xml','w')
f.puts('<?xml version="1.0" encoding="utf-8"?>')
f.puts('<!-- edited with XMLSPY v5 U (http://www.xmlspy.com) by et8 (et8) -->')
f.puts('<Category>')
fns.each do |file|
 workbook = application.WorkBooks.Open(Dir.pwd + '/' + file)
 sheet = workbook.WorkSheets(2)
 sheet.Activate
 i = 2
 
 loop do
  break if !sheet.Range('A'+ i.to_s).Value
  
  break if !sheet.Range('C'+ i.to_s).Value
  
  errname = sheet.Range('A'+ i.to_s).Value.to_s.hex.to_i.to_s.strip
  
  valuename = sheet.Range('C'+ i.to_s).Value.strip
  
  valuename.gsub!(/\"/,'\'')
  
  f.puts(' '*4 + '<ErrorCode name="' + errname + '" value="' + valuename +'"/>')
    ......

删除工程中svn文件的脚本(Ruby版和Python版)

两种不同的语言,不同的表达!
Python脚本实现.
""
"
    File Name : clean.py
    File Date : 2009/11/5 14:22:56
    Author     : DannyLai
    Purpose     : Clean the svn files
             All svn projects have an hide directory "
.
svn"
             The python script purpose is to clean the .svn directory in svn projects.
    
"
""
import
os
import
stat
SVNPROJECT_DIR =
"F:\\temp\\google-gdata"
def
findSVNDir(
path )
:
    for
file in
os.
listdir(
path )
:
        subpath =
os.
path.
join(
path,
file )
        if
os.
path.
i ......

删除工程中svn文件的脚本(Ruby版和Python版)

两种不同的语言,不同的表达!
Python脚本实现.
""
"
    File Name : clean.py
    File Date : 2009/11/5 14:22:56
    Author     : DannyLai
    Purpose     : Clean the svn files
             All svn projects have an hide directory "
.
svn"
             The python script purpose is to clean the .svn directory in svn projects.
    
"
""
import
os
import
stat
SVNPROJECT_DIR =
"F:\\temp\\google-gdata"
def
findSVNDir(
path )
:
    for
file in
os.
listdir(
path )
:
        subpath =
os.
path.
join(
path,
file )
        if
os.
path.
i ......
总记录数:146; 总页数:25; 每页6 条; 首页 上一页 [16] [17] [18] [19] [20] 21 [22] [23] [24] [25]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号