2012-10-10 45 views
3

有沒有什麼辦法可以增加一個數字。每次文件在ruby中執行。 我在這件事上沒有找到任何東西。 我想申報一個no。然後每當執行它所在的文件時它就會增加。 我可以使用文件來跟蹤最後一個號碼。使用,但沒有任何簡單的解決辦法有沒有什麼辦法可以在ruby中每次執行文件時增加一個數字

+0

你在哪裏要保持這個數字,每次給我的未來? – Bohdan

+0

不,我認爲你必須使用數據庫或文件,因爲你已經完成 – Salil

+0

@Bohdan我不想跟蹤它的功能,我只會問函數什麼是下一個否。 –

回答

0
# 0 TIMES 
def get_no 
    me = File.read(__FILE__) 
    me.sub!(/ \d+ TIMES/) { |s| " #{s[/\d+/].to_i + 1} TIMES" } 
    l=me.split("\n") 
    File.open(__FILE__,'w') { |f| f.write(me) } 
    return l[0][/\d+/] 
end 

這個方法沒有我調用它,並且也將保持它的軌道感謝Alex d

2

如果你是load從長期運行Ruby進程內反覆荷蘭國際集團的文件,那麼這是很容易的:

$times_loaded ||= 0 
$times_loaded += 1 

如果你正在運行在一個新的Ruby文件解釋器每次處理,那麼你將不得不使用一個文件(它不能以其他方式工作)。你可以做的紅寶石文件自修改:

# THIS FILE HAS RUN 0 TIMES 
me = File.read(__FILE__) 
me.sub!(/THIS FILE HAS RUN \d+ TIMES/) { |s| "THIS FILE HAS RUN #{s[/\d+/].to_i + 1} TIMES" } 
File.open(__FILE__,'w') { |f| f.write(me) } 
+0

順便說一句,我還沒有測試過這個代碼呢...它只是給你這個想法。 –

+0

請注意,這是一個非常瘋狂的事情!但是,如果你真的想,你可以做到。 –

+1

感謝他幫助.. –

相關問題