Class: LoaderCsv

Inherits:
FileIO show all
Defined in:
lib/loader_csv.rb

Class Method Summary collapse

Methods inherited from FileIO

encodePath, filesystem, readPath

Class Method Details

.makeMatrix(file, opts = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/loader_csv.rb', line 4

def self.makeMatrix(file, opts=nil)
  opts ||= {}
  opts[:offset] ||= 0
  opts[:encode] ||= 'Windows-31J'

#CSV読み込みメソッド
#1.9系ではFasterCSVを使えない
if(RUBY_VERSION =~ /1\.[^9]/)
  #1.8以下の場合
  require 'fastercsv'
  csv = FasterCSV
else
  #1.9以上の場合
  require 'csv'
  #Encoding.default_external = opts[:encode]
  csv = CSV
end
out = []
i= 0
syspath = self.encodePath(file)
#csv.foreach(syspath, {:row_sep => "\r\n", :encoding => opts[:encode]}) do |row|
  csv.foreach(syspath, {:encoding => opts[:encode]}) do |row|
  if(opts[:offset])
    if(opts[:offset] < i)
      next
    end
  end
  #「1,300台」などカンマが使われている場合、「"1,300台"」となってしまうので、カンマを無視する
  newRow = []
  row.each do |cell|
    cell = cell.to_s
    cell ||= ''
      p cell
    #cell = MyMatrix.toutf8(cell)
    #cell = cell.gsub(/^\"/, "")
    #cell = cell.gsub(/\"$/, "")
    #"
    newRow << cell
  end
  out << newRow
  i += 1
end
return out


end