![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67)
No.3ベストアンサー
- 回答日時:
以下のようにしてください。
-------------------------------------------
# 単語の配列を初期化
words = Array.new
# tanogo.txt のオープン
File.open("tango.txt","r") do |file|
# 1行単位で読み込む
while line = file.gets
#改行を削除
line.chomp!
# wordsへ登録
words << line
end
end
#単語の数を求める
kazu = words.length
# 乱数(整数)を求める
# 0~単語の数-1 の範囲に乱数が収まるようにする
word = words[rand(kazu)]
print word,"\n"
---------------------------------------------
単語が書いてあるファイルをtango.txtとします。
このスクリプトをtest.rb とします。
スクリプトと単語のファイルは同じディレクトリにおいてください。
コマンドプロンプトで、そのディレクトリに移動し、
そこで
ruby -Ks test.rb
と入力してください。
毎回、異なる単語が表示されます。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67)
No.2
- 回答日時:
補足要求です。
質問1.テキストファイルには
苺
コーヒー
花
・・・
のように1行に1単語があるのですか?
それとも
「苺 コーヒー 花 美人 宇宙見物」のように
1行に各単語がスペース区切りであるのでしょうか。
質問2.環境はwindowsですか、それともlinuxですか。
質問3.rubyのバージョンは1.9以上ですか?
このサイトで質問をする場合は、実行環境とrubyのバージョンは最初に
提示しておいたほうが、回答がつきやすくなります。
この回答への補足
足りないところがありました。申し訳ないです。
1 一行に一単語です。
2 windowsを使っています。
3 バージョンは1.8.7です。
引き続き回答をお待ちしています。
No.1
- 回答日時:
>スクリプトのうまい書き方
初心者ということであれば、「うまい」ということよりも、まずは「正しく動く」ということに重きを置いたほうがよいかと。
そのうえで、自分のスクリプトのどこに不明点・不満点があるかを明示したほうが、回答が得られやすいと思います。
まずは今時点で、mot-nghinさんが書かれてるスクリプトを晒してみては。
あと、参考:
http://www.google.co.jp/search?hl=ja&q=ruby+arra …
この回答への補足
ご回答ありがとうございます。
書き方がよくなかったですね。
とりあえず今書いているものは以下のとおりです。
array=gets(nil)
array[rand(array.length)]
puts(array)
これを実行してもsample.txtの中身がそのまま出てきてしまい、ランダムに1こ選び出すことができないのです。
どんな風に書けば「sample.txtの中からランダムでひとつ取り出して表示する」ことができるようになるのでしょうか。
*項目が少なければスクリプトにそのまま書いてもいいと思うのですが、膨大な量の項目からランダムでn個取り出したいときに不便なので、選び出す候補を別ファイルに用意して、それを読み込んで実行するようにしたいのです。
引き続き回答をお待ちしています。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム 外付けHDDの初期化について 4 2023/03/05 20:00
- Ruby ruby 1 2022/06/10 13:31
- Mac OS MacOSのLaunchAgentsってなんですか?使い方など教えてください。 前の質問でLaunc 1 2022/04/24 02:06
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- システム 外付けHDDの初期化について 4 2023/03/05 21:19
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Java JavaでWebページ作成 7 2023/07/21 21:09
- ドライブ・ストレージ CrystalDiskmarkの測定結果の判定をお願いします 1 2023/02/11 17:42
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1、Rstudioで回帰直線を求める...
-
ビーリアルのユーザー名を変え...
-
教えてください
-
再起動後必ず2つのエラーが出...
-
英数字を含む文字列(0-9,A-Z)...
-
C言語の入力した文字を反転させ...
-
プログラミングの課題で1万円か...
-
Ruby on railsをrails sで立ち...
-
実行時エラー450:引数の数が一...
-
(再質問)エクセルのマクロボ...
-
エクセルvbaでチェックボックス...
-
100万件越えCSVから条件を満た...
-
これらは書誌情報だと思うので...
-
情報の表現。()内がどうしても...
-
pythonのerrorコード
-
三項でたとえば交換って
-
WinSCPで画像のように puttyを...
-
パソコンのスクリーンセーバー...
-
こういう問題分をよんだとき
-
バーチャルボックスが使えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ruby interpreter (CUI) 2.2.3 ...
-
RubyでNo such file or directo...
-
Rubyのソースを難読化すると「u...
-
rubyでコマンドプロンプトを使...
-
RubyでexeファイルをつくるExer...
-
Rubyでpdfファイルを読み込む方法
-
Rubyでローカルにあるファイル...
-
Ruby1.9.2でマジックコメントが...
-
Ruby interpreter (CUI) 2.2.3p...
-
rubyプログラムからrubyプログ...
-
【本物のハッカーさん大至急助...
-
Rubyのrandについて
-
rubyのforeach構文について
-
windows7で複数のrbファイルを...
-
プログラムに興味を持つ者です...
-
RubyとMeadow(Emacs)について
-
小文字wと大文字Wの区別
-
システムエンジニアの適正について
-
web上のhtmlファイルから文字デ...
-
VB.NETで階乗を求めるプログラ...
おすすめ情報