- ベストアンサー
アカウント登録についてのプログラム作成方法
- Rubyでアカウントがない場合に新しくアカウントを作るプログラムを作成したいです。登録ができた場合と既にアカウントがある場合で表示を変えたいです。
- アカウントの登録についてわからないことがあります。Rubyを使ってアカウントがない場合に新しく作成するプログラムを作成したいです。
- Rubyでアカウント登録についてのプログラムを作成したいです。登録ができた場合と既にアカウントがある場合で表示を変えたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下の行を追加してください。 ---------------------------------------------- print "*** ログインしてください。自分のアカウント名とパスワードを入力してください。 ***\n" print "アカウント:" account = gets.chop print "パスワード:" password = gets.chop if hash_account.has_key? account print "アカウントはすでにあります。別なアカウント名を使ってください。\n" else #そのアカウントとパスワードをファイルへ追加する fo = open("accountData.txt", "a") fo.printf("%s %s\n",account,password) fo.close print "アカウントを作成しました。\n" end --------------------------------------------------------- >rubyのバージョンはruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32]です。 これを見る限り、windowsのrubyのように見えます。 もし、windowsで実行しているなら $KCODE = "s" としてください。 そのほうが、漢字のアカウント名も登録できると思います。 こちらでの動作確認は、 ruby 1.8.5 (2006-08-25) [x86_64-linux]で行なっています。 (windowsのrubyのバージョンがruby 1.9.2p180 (2011-02-18) [i386-mingw32]のため)
その他の回答 (2)
- ki073
- ベストアンサー率77% (491/634)
NAo.1の修正です。 open("accountData.yaml", "w"){|fo| fo.puts hash_account} だとエラーがでるだけですね。 正しくは open("accountData.yaml", "w"){|fo| fo.puts hash_account.to_yaml} です。
- ki073
- ベストアンサー率77% (491/634)
runa3829さん、こんばんは ずっと見ていますが、ずいぶん進歩してきましたね。 新しいアカウントの情報をaccountData.txtに書き加えないと保存されません。 新しいアカウントだけを書くのでしたら、 open("accountData.txt", "a"){|fo| puts ????} のような感じで書き込むと、ファイルの最後に加えてくれます。 また古いものも含めて全部を書き換えるのでしたら open("accountData.txt", "w") で、putsで値をひとつずつ全部書いてきます。 ここでちょっとアドバイスですが、YAMLを使うといろいろなデータを1発で保存や読み込みができます。 例えばhash_accountに全部のアカウントが書き込まれていとすると require "yaml" open("accountData.yaml", "w"){|fo| fo.puts hash_account} でhash_accountの内容全部をそのまま書き込んでくれます。 読み込む時には require "yaml" hash_account=YAML.load_file("accountData.yaml") で保存した状態そのままで読み込めます。 accountData.yamlをテキストエディタで開けば分かると思いますが、テキストで保存されていますので、修正も簡単にできます。 ご参考に。
お礼
yamlというコマンドがあるのは初耳でした! 使ってみたいと思います!
お礼
いつも、お答えいただいてありがとうございます。 動作確認の方なんですが、ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]こちらのほうでした。 間違えてしまって、すみません。