0

我正在构建一个应用程序,它采用标准输入来保存用户及其偏好。我应该将标准输入写入文本文件并将用户输入保存在那里吗?

命令行.rb

class CommandLine
   def initialize(filename)
      @file = File.open(filename, 'w')   
   end

   def add_user(input)
      @file = File.open('new_accounts.txt', 'r+')
      @file.write(input)
      puts input
   end

   def run
      puts "Welcome to the Command Line Client!"
      command = ''
      while command != 'quit'
      printf "enter command: "
      input = gets.chomp
      parts = input.split
      command = parts[0]
      case command
          when 'quit' then puts 'Goodbye!'
          when '-a'   then add_user(parts[1..-1].join(" "))
          else
            puts 'Invalid command #{command}, please try again.'
          end
      end
   end
end

a = CommandLine.new('new_accounts.txt')
a.run

假设我希望用户在命令行中输入“ -a tommy like apples ”,我希望它输出:

tommy likes apples

同一个用户 tommy 也可以输入“ -a tommy likes oranges ”,然后更新他之前的偏好:

tommy likes oranges

任何帮助/方向表示赞赏,谢谢!

4

1 回答 1

0

如果您正在做一些简单的事情,我认为使用文本文件没有问题。替代方案很多,如果没有更多细节,恐怕我无法提出好的建议。

def add_user(input)
  File.open('new_accounts.txt', 'w') {|file| 
      file.write(input) 
  }
  puts input
end

仅供参考:这将使您的文本文件更新。:-)

编辑:更改了 add_user 方法。

于 2013-02-26T02:29:14.973 回答