2017-03-16 61 views
0

我写一个程序,将日记用户写的,但是我有一个有点麻烦......这里是我的代码:鞋写入文件时出错

Shoes.app :title => "Diario", :width => 640, :height => 430 do 
name = ask("Name") 

n1 = ask("Yesterday's Date") 

n2 = ask("Today's Date") 

n3 = ask("Tommorow's Date") 

w1 = ask("Yesterday's weather") 
w2 = ask("Today's Weather") 

w3 = ask("Tommorow's Weather") 

a1 = ask("Yesterday's Activity") 
a2 = ask("Today's Activity") 

a3 = ask("Tommorow's Activity") 

m = ask("Mood") 

tw = ask("Today was...") 
sn = ask("Special Notes") 

@entry 
para "Dear diary, The date is " + n2 + ". It is " + w2 + ". I will go to " + a2 + "." 
para "Yesterday was " + n1 + ". It is " + w1 + ". I will go to " + a1 + "." 
para "Tomorrow is " + n3 + ". It is " + w3 + ". I will go to " + a3 + "." 
para "Today was " + tw + ". " + sn + "I am feeling " + m + "." 
end 

button "Save", :width => 85 do 
    file = ask_save_file 
    File.open(file, "w+") do |f| 
     @file.text = File.write(@entry.text) 
    end 
end 

- 但是当我运行我得到这个代码 -

Error in <unknown> line 0 | 2017-03-15 20:44:14 -0400 
undefined method `button' for main:Object 

我知道这是一个ametuer错误,但请无论如何帮助我吗? 谢谢Daniel M

更新: 问题解决了;我只需将第一个'END'移动到最后 - 它正在关闭应用程序块。但是,当我现在保存到文件时,它会保存为空白文件...任何想法?

+2

这缩进正确可能有助于使上下文的错误更明显之外。您可能需要将主应用程序块内的最后一段代码移出。 – tadman

+0

如果你解决了你的问题,你可以写一个答案,而不是编辑。 – Blackbam

+0

当您写入文件时,在调用“text”之前,您不会将任何内容分配给“@ entry”。你在期待什么? – coreyward

回答

2

按钮Shoes.app块

require 'shoes' 

Shoes.app :title => "Diario", :width => 640, :height => 430 do 
    name = ask("Name") 

    n1 = ask("Yesterday's Date") 

    n2 = ask("Today's Date") 

    n3 = ask("Tommorow's Date") 

    w1 = ask("Yesterday's weather") 
    w2 = ask("Today's Weather") 

    w3 = ask("Tommorow's Weather") 

    a1 = ask("Yesterday's Activity") 
    a2 = ask("Today's Activity") 

    a3 = ask("Tommorow's Activity") 

    m = ask("Mood") 

    tw = ask("Today was...") 
    sn = ask("Special Notes") 

    @entry 
    para "Dear diary, The date is " + n2 + ". It is " + w2 + ". I will go to " + a2 + "." 
    para "Yesterday was " + n1 + ". It is " + w1 + ". I will go to " + a1 + "." 
    para "Tomorrow is " + n3 + ". It is " + w3 + ". I will go to " + a3 + "." 
    para "Today was " + tw + ". " + sn + "I am feeling " + m + "." 

    button "Save", :width => 85 do 
    file = ask_save_file 
    File.open(file, "w+") do |f| 
     @file.text = File.write(@entry.text) 
    end 
    end 
end 
+0

谢谢,这已在评论中得到解答,但无论如何感谢。我有一个描述我遇到的其他问题的新线程。看到它[这里](http://stackoverflow.com/questions/42846676/shoes-file-writing-errors) –