我有一個文本檔案,我想先打開它進行讀取或寫入,但希望用戶首先手動輸入 text_file 名稱(打開檔案進行讀取),如下所示:
def read_in_albums
puts "Enter file name: "
begin
file_name = gets().chomp
if (file_name == "albums.txt")
puts "File is open"
a_file = File.new("#{file_name}", "r")
puts a_file.gets
finished = true
else
puts "Please re-enter file name: "
end
end until finished
end
從下面這段未完成的代碼中,選擇 1 將進入上述程序。我希望用戶首先選擇 1,如果他們選擇 2 而沒有通過 read_in_albums 他們只會收到某種訊息,例如“沒有選擇檔案并發送回選單螢屏。
def main()
finished = false
begin
puts("Main Menu:")
puts("1- Read in Album")
puts("2- Display Album Info")
puts("3- Play Album")
puts("4- Update Album")
puts("5- Exit")
choice = read_integer_in_range("Please enter your choice:", 1, 5)
case choice
when 1
read_in_albums
when 2
display_album_info
when 5
finished = true
end
end until finished
end
main()
我唯一能想到的是
when 2
if(read_in_albums == true)
display_album_info
并讓它從 read_in_albums 回傳 true。
我不想這樣做,因為它只是再次通過 read_in_albums,當我只希望它在用戶按下 1 時這樣做。
uj5u.com熱心網友回復:
您可以在選擇選項 1 時設定一個標志
has_been_read = false
...
when 1
read_in_albums
has_been_read = true
when 2
if has_been_read
display_album_info
else
puts "Select Option 1 first"
end
或者只是測驗您的檔案名是否是有效字串。
uj5u.com熱心網友回復:
您的應用程式的所有功能都取決于是否已讀取相冊資料。毫無疑問,您將這些資料作為物件存盤在某個變數參考的記憶體中。
$album_data = File.read 'album.txt'
您可以測驗此資料是否存在以確定檔案資料是否已被讀取:
if $album_data.nil?
# ask user for album file
else
# show album user interface
end
不需要單獨的標志。資料在記憶體中的存在本身已經可以作為一個標志。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/327735.html
下一篇:Python可逆函式
