我希望这是一个简单的问题.在下面的示例中,如何检查是否已定义常量?
#this works
var = var||1
puts var
var = var||2
puts var
#this doesn't
CONST = CONST||1
puts CONST
CONST = CONST||2
puts CONST
=> 1
1
uninitialized constant CONST (NameError)
Run Code Online (Sandbox Code Playgroud) 我需要浏览一个包含大约一万个文件的文件夹.我的旧vbscript在处理这个问题时非常缓慢.从那时起我就开始使用Ruby和Python,我在三种脚本语言之间做了一个基准测试,看看哪种语言最适合这项工作.
以下测试的结果是共享网络上4500个文件的子集
Python: 106 seconds
Ruby: 5 seconds
Vbscript: 124 seconds
Run Code Online (Sandbox Code Playgroud)
Vbscript会是最慢的并不奇怪,但我无法解释Ruby和Python之间的区别.我对Python的测试不是最佳的吗?有没有更快的方法在Python中执行此操作?
thumbs.db的测试仅用于测试,实际上还有更多的测试要做.
我需要一些东西来检查路径上的每个文件,并且不会产生太多输出而不会干扰时序.结果每次运行都有点不同,但不是很多.
#python2.7.0
import os
def recurse(path):
for (path, dirs, files) in os.walk(path):
for file in files:
if file.lower() == "thumbs.db":
print (path+'/'+file)
if __name__ == '__main__':
import timeit
path = '//server/share/folder/'
print(timeit.timeit('recurse("'+path+'")', setup="from __main__ import recurse", number=1))
Run Code Online (Sandbox Code Playgroud)
'vbscript5.7
set oFso = CreateObject("Scripting.FileSystemObject")
const path = "\\server\share\folder"
start = Timer
myLCfilename="thumbs.db"
sub recurse(folder)
for each file in folder.Files
if lCase(file.name) = myLCfilename then
wscript.echo file
end if
next …
Run Code Online (Sandbox Code Playgroud) 我有一个Ruby脚本,可以完成一些长期的工作.它只是命令行,我想表明脚本仍在运行而不是停止.我以前喜欢所谓的"旋转光标",我设法在Windows下用Ruby重现它.
问题:这在其他操作系统中有效吗?如果没有,是否有与操作系统无关的方法来实现这一目标?
请不要IRB解决方案.
10.times {
print "/"
sleep(0.1)
print "\b"
print "-"
sleep(0.1)
print "\b"
print "\\"
sleep(0.1)
print "\b"
print "|"
sleep(0.1)
print "\b"
}
Run Code Online (Sandbox Code Playgroud) 我试图将一些内容垂直居中放置在bounding_box中.使用单个文本,这没有问题:
bounding_box([0, bounds.top], :width => pdf.bounds.right, :height => pdf.bounds.top) do
text "vertically aligned in the surrounding box", :valign => :center
end
Run Code Online (Sandbox Code Playgroud)
但是如果我的边界框中有多个元素,我该怎么办:
bounding_box([0, bounds.top], :width => pdf.bounds.right, :height => pdf.bounds.top) do
text "vertically aligned in the surrounding box", :valign => :center
text "vertically aligned in the surrounding box", :valign => :center
end
Run Code Online (Sandbox Code Playgroud)
这不起作用,当你尝试这个时,文本被重叠......
我正在寻找一种方法来分组bounding_box的整个内容,然后垂直对齐整个组.有没有办法用大虾做这个?
非常感谢你的帮助!克里斯
我想制作一个工具,将一些文件名作为参数,但是当我使用这段代码时:
ARGV.each do|a|
puts "Argument: #{a}"
end
Run Code Online (Sandbox Code Playgroud)
我在Windows中使用拖放或"发送到",我得到短文件名.所以像文件一样"C:\Ruby193\bin\test\New Text Document.txt"
成为
C:\Ruby193\bin\test\NEWTEX~1.TXT
参数.
从命令行运行脚本时没有问题,longfilenames作为参数.
当我使用拖放或发送到时,如何获得长文件名?
我想开始一个项目,我需要绘制图表,包括用线条连接的圆角矩形和点击某些元素时的JavaScript动作.这需要适用于所有现代浏览器.
SVG和HTML5 Canvas似乎都能够做到这一点,所以我想知道什么是最好的.
此外,我不想重新发明轮子,所以如果有图书馆做我想知道的事情; 我看了一下Raphaël和其他一些JavaScript绘图库,但是它们没有提供我需要的所有功能.在Google的API中有一个这样的工具,但它非常有限.
在控制台中,您可以打印"\b"
以擦除光标左侧的字符(退格键)
print "the last char is going to be erased\b" # the last char is going to be erased
Run Code Online (Sandbox Code Playgroud)
如何只向左移动一个位置而不是擦除(左箭头)?
好奇......你怎么用JS写这个Ruby?
Array.new(3, Array.new(3, 0))
Run Code Online (Sandbox Code Playgroud)
返回
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
我尝试过各种各样的东西,但它们看起来都很混乱.我想有些东西不能像Ruby一样干净,但你会怎么做呢?
也许我会学习一两个JS技巧;)
编辑 据透露,这个Ruby代码实际上并没有创建3个数组.它创建了1个数组,其他引用.这不是意图.我正在寻找一种方法来轻松地映射具有X个元素的2维数组,以及JS中的Y个嵌套元素.
还......这是一个人为的例子.内涵是能够用任何数字代替3.这只是一个使用3的例子.
我有一个复杂的Oracle SQL查询,我希望在图表中可视化,以使我的同事可以理解.我试过http://snowflakejoins.com,但它只是呛到它.
有人有更好的建议吗?我更喜欢互联网上的网络应用程序,如果不是Windows的桌面应用程序.
with
logs as (
select
l.job_id,
l.subjob,
sum(l.verwerkt) verwerkt,
sum(l.errors) errors,
max(l.datum) laatst
from
dinf_monitor_logs l,
dinf_monitor_jobs j
where
l.datum>sysdate-j.dagen
and j.job_id=l.job_id(+)
group by
l.job_id,
l.subjob
),
alllogs as (
select job_id, subjob, max(datum) laatst from dinf_monitor_logs group by job_id, subjob
)
select row_number() over(order by alllogs.job_id, alllogs.subjob) r,
alllogs.job_id,
alljobs.naam,
alllogs.subjob,
logs.verwerkt,
logs.errors,
alllogs.laatst datum,
alljobs.wikilink,
alljobs.loglink,
alljobs.contact,
case
when alllogs.laatst is null then 1
when round(sysdate-(alllogs.laatst+alljobs.dagen))<0 then 0
else round(sysdate-(alllogs.laatst+alljobs.dagen))
end overtijd,
case …
Run Code Online (Sandbox Code Playgroud)