2017-12-30 46 views
0

Aus irgendeinem Grund CSV Juwel ist CSVs mit Unix EOL (siehe Screenshot) hier zu erzeugen: https://www.dropbox.com/s/4re7tpp4pj9psov/ice_screenshot_20171230-162304.png?dl=0 Screenshot gemacht in Notepad ++ (Alle Charaktere)Gibt es eine Möglichkeit, Ruby CSV gem CSVs mit Windows (CR LF) End Of Lines zu erstellen?

-Code verwende ich:

require 'csv' 

all_the_things = [] 

all_the_things << ["item1.1","item1.2","item1.3"] 
all_the_things << ["item2.1","item2.1","item2.1"] 
all_the_things << ["item3.1","item3.1","item3.1"] 

CSV.open("test.csv", "wb") do |row| 
    row << ["Column1", "Column2", "Column3"] #just headers 
    all_the_things.each do |data| 
     row << data 
    end 
end 

Gibt es eine Möglichkeit um Windows EOL (CR LF) anstelle von UNIX (LF) zu verwenden?

Ich bin mit 10 Windows und wenn ich nur Ausgabe einiger Linien nur gut in Datei arbeiten bringt alles mit (albeight ohne CSV gem richtige Datenstruktur der Verwaltung ist Alptraum):

.... 
    File.open("test.csv", "w") do |line| 
    myarray.each do |data| 
     line.puts data 
    end 
end 

Danke im Voraus für irgendwelche Ideen und guten Rutsch ins Neue Jahr!

+0

Was ist "Ruby CSV gem"? – mudasobwa

Antwort

1

Wie es deutlich in the documentation angegeben ist, so könnte man die row_sep Option verwenden, um die Zeilentrenn angeben:

require 'csv' 
#        ⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓ here 
CSV.open("/tmp/file.csv", "wb", row_sep: "\r\n") do |csv| 
    csv << %w|1 2 3 4| 
    csv << %w|a b c d| 
end 

Auch gibt kein „CSV Juwel,“ es Rubin Standard-Bibliothek ist.

+0

Vielen Dank! – AKarpun

+1

'csv' ist beides. [Seit 2.5 ist es ein sogenanntes Standard-Juwel.] (Https://github.com/ruby/ruby/blob/v2_5_0/NEWS#stdlib-compatibility-issues-excluding-feature-bug-fixes) – cremno

Verwandte Themen