CSV
Comma-separated values (CSV) הוא צורה לשמירת טבלאות בטקסט פשוט. בפורמט זה כל רשומה מופרדת באמצעות שבירת שורה וכל רשומה מורכבת משדות המופרדים באמצעות תו מוגדר, כאשר בדרך כלל נעשה שימוש בפסיק או בטאב (פורמט זה נקרא tsv).
פורמט csv נמצא בשימוש נרחב ונתמך על ידי תוכנות רבות ובהן תוכנות גיליון אלקטרוני, בסיסי נתונים ותוכנות מדעיות. בשפות תכנות שונות, כדוגמת R, פייתון, Ruby ו-PHP קיימת תמיכה בספרייה הסטנדרטית המאפשרת לקרוא ולכתוב קובצי csv בקלות. הודות לפשטותו ולתמיכה הרבה בו בתוכנות מגוונות, ובשל מגבלות של פורמטים מסחריים שנתמכים רק בתוכנות מסוימות, משתמשים ב-csv לעיתים כדי להעביר מידע מתוכנה אחת לאחרת.
לא קיים סטנדרט אחיד ל-csv, אך RFC 4180 מגדיר את השימוש הנפוץ ב-csv:
- שבירת שורה נעשית בצורת CR/LF כאשר שבירת שורה היא אופציונלית בשורה האחרונה
- השורה הראשונה עשויה להיות כותרת. אין דרך לקבוע האם השורה הראשונה משמשת ככותרת או כרשומת נתונים.
- כל רשומה צריכה להכיל מספר זהה של שדות
- כל שדה ניתן לעטוף במירכאות כפולות
- שדה המכיל תו שמור (מירכאות, פסיק, שבירת שורה) חובה לעטוף במירכאות
- כאשר יש בתוכן השדה מירכאות, חובה להכפילן
רוב הצרכנים שיודעים לקלוט ולעבד CSV מוכנים לקבל סטיות מהתקן המקורי: כך למשל, למרות שהתקן מגדיר שבירת שורה כ-CR/LF, בדרך כלל ניתן להשתמש ב-LF בלבד (שבירת שורה סטנדרטית במערכת הפעלה UNIX ונגזרותיה, ובפרט לינוקס), ובחלקם גם CR בלבד (תקן שבירת שורה בגרסאות מסוימות של מערכת ההפעלה של מחשב מקינטוש).
חלקם מוותרים על הדרישה הקשיחה למספר שדות שווה, ומסתפקים בדרישה צנועה יותר: באף רשומה אין יותר שדות ממספרם ברשומה הראשונה (בדרך כלל שורת הכותרות).
קיימים מספר תקנים דומים נוספים, כשההבדל העיקרי הוא התו שמשמש להפרדה. בסביבה בה פסיק משמש "נקודה עשרונית", כמו גרמניה, משתמשים גם בתקן "dmv", שזהה בעיקרון ל-CSV, אך מחליף את הפסיק בנקודה ופסיק, כלומר התו ;
, כדי לשחרר את הפסיק לשימוש בשדות מספריים, בלי צורך להקיף במירכאות כל מספר כזה.
דוגמה
ניתן לייצג באמצעות קטע CSV טבלה כמו בדוגמה הבאה:
שנה,יצרן,מכונית 1960,אוטוקרס,סוסיתא 1997,פורד,E350
תוצאה:
שנה | יצרן | מכונית |
1960 | אוטוקרס | סוסיתא |
1997 | פורד | E350 |
33520143CSV