ארכיון יומי: 7 דצמבר, 2012

טעינת קובץ csv ברובי

אם יש לכם צורך לייבא מידע מקובץ csv, זה יכול להיות כאב ראש. בייחוד אם עובדים מול אנשי ווינדוז החושבים כי אקסל זה כלי יעיל (בהשוואה לLibreOffice Calc).

רובי מביא עימו כחלק מהספריות הסטנדרטיות שלו, ספרייה בשם csv. למראית עין היא פשוטה מידי ולא תומכת בכלום, אבל למעשה יש בה המון יכולות, אבל צריך לדעת ולהבין כיצד לעבוד עם הספרייה. לדעתי האישית, הAPI שלה בעייתי מעט בגישה שלו, אבל בכל זאת הספרייה שימושית מאוד.

הטעינה הפשוטה ביותר היא כזו:

require 'csv'
CSV.foreach('path/to/file.csv') do |row|
  # use row here...
end

הערך ש row מכיל, הוא מערך של טקסט אשר היה מופרד בפסיקים. אבל במידה והוא אינו מופרד בפסיקים, יש בעיה.
לשם כך, אפשר להוסיף עוד פרמטר שהוא בעצם hash ומאפשר לנו להגדיר את המפריד: להמשיך לקרוא