问题秀红宝石鞋
问题描述:
first..sorry我的英语不好,我的大菜鸟question..the问题是内部的文本(从名称的文件)...问题秀红宝石鞋
我需要创建一个小鞋子应用不是显示了Excel一个文件夹中的文件(这只是其中的一部分)......我这样定义一个方法:
def show_proov
files = Dir.new(personal_folder).entries
xlsxfiles = files.find_all {|file| file.include?('.xlsx') }.map do |file| file.scan(/^\w+/) end
end
,如果我表现出一个警报it..it工作,并显示文件...越远越好: now..the问题是比我希望迭代这个名称,并创建一个菜单..当我尝试它我得到一个错误相关的“坏编码”(抱歉,但我已经尝试重新创建此代码,但我从来没有得到这个消息再次)
well..no问题...也许一个list_box可以做的工作:
我的鞋子里面程序,我定义list_box:项目=> show_proov 做that..nothing是渲染窗口内...不显示任何
相同的,如果我使用
@items=show_proov
#@items.class = array
list_box :items => @items
发生它并没有多大意义,但我必须有尝试...
感谢阅读并寻求帮助! :D
答
我认为你的问题可能是你的show_proov函数返回一个数组数组。
[["file1"], ["file2"], ["file3"]]
这是因为String.scan返回一个数组。试着增加。首先,像这样:
xlsxfiles = files.find_all {|file| file.include?('.xlsx') }.map do |file| file.scan(/^\w+/).first end
那么结果将是:
["file1", "file2", "file3"]
答
,如果你从Excel得到somethinbg编码是不同的,所以在使用
.force_encoding("UTF-8")
在操作之前从ecel中获得的字符串。 干杯
你能告诉我们'@ items.inspect'吗?我认为这不会是你想要的;它将是一串字符串数组。调用'scan'的目的是什么?我认为如果它们中有空格,它将会删除部分文件名。 –