详细解读Ruby输出文件信息实现方式

Ruby语言的用途比较广泛,可以轻松灵活的帮助我们实现许多功能需求。编程人员可以很容易熟悉这项语言的应用。在这篇文章中,我们为大家带来了Ruby输出文件信息的一些技巧应用。

数据是随机的,所以每次的记录都会不同。

Ruby输出文件信息代码示例:

  1. #!/usr/bin/env ruby  
  2. COUNT = 10 
  3. require 'benchmark'  
  4. $account_chars = ('A'..'Z').
    to_a.delete_if {|c| 
    c =~ /[AEIOUY]/ }  
  5. #$password_chars = ('0'..'9').to_a  
  6. $password_chars = Array.new  
  7. $password_chars[0..9] = ('0'..'9').to_a  
  8. $password_chars[10..36] = ('A'..'Z').to_a  
  9. def account_char  
  10. $account_chars[rand($account_chars.length)]  
  11. end  
  12. def password_char  
  13. $password_chars[rand($password_chars.length)]  
  14. end  
  15. def account_chars  
  16. account_chars = []  
  17. 6.times {|c| account_chars 
    << account_char }  
  18. account_chars  
  19. end  
  20. def password  
  21. begin  
  22. begin  
  23. password = '' 
  24. password << password_char 
  25. end while password == '0'  
  26. 4.times { password << password_char }  
  27. end while password =~ /^(.)1111$/  
  28. password  
  29. end  
  30. accounts = {}  
  31. lines = []  
  32. puts Benchmark::CAPTION  
  33. puts Benchmark.measure {  
  34. COUNT.times do  
  35. i = 0 
  36. account_chars.inject(accounts) do |a, c|  
  37. i += 1  
  38. i == 6 ? a[c] = password : a[c] ||= {}  
  39. end  
  40. end  
  41. }  
  42. puts Benchmark.measure {  
  43. accounts.each do |char, chars|  
  44. account = [char]  
  45. chars.each do |char, chars|  
  46. account << char 
  47. chars.each do |char, chars|  
  48. account << char 
  49. chars.each do |char, chars|  
  50. account << char 
  51. chars.each do |char, chars|  
  52. account << char 
  53. chars.each do |char, password|  
  54. account << char 
  55. lines << "#{account.join}t#
    {password}rn"  
  56. account.pop  
  57. end  
  58. account.pop  
  59. end  
  60. account.pop  
  61. end  
  62. account.pop  
  63. end  
  64. account.pop  
  65. end  
  66. end  
  67. }  
  68. puts Benchmark.measure {  
  69. open 'account.txt', 'wb' do |f|  
  70. f.print lines.delete_at(rand(lines.length))
     until lines.empty?  
  71. end  

运行后输出到: account.txt文件中。

相关推荐