Формат даних CSV
Сторінки роботи





зміст роботи
Міністерство освіти і науки України
Державна бюджетна установа вищої професійної освіти
Новосибірський державний технічний університет
"Мережеві інформаційні технології"
Виконав: Гоголі А.Г.
2. Загальні відомості. 5
3. Структура даних у файлі. 6
3.2. Поля (стовпці) 6
3.2 Розділювачі. 7
3.3 Маркер кінця запису. 7
4. Запис заголовка. 9
5. Захист поля даних. 9
5.1 Подвійні лапки для захисту.
5.2 Двомісний подвійні лапки. 10
6. Приклад реалізації. 11
7. Бібліотеки для роботи з форматом.
8. Тестова програма. 13
1. Вивчити та написати огляд формату CSV.
2. Написати огляд наявних у мережі безкоштовних бібліотек, що реалізують читання/запис даних у зазначеному форматі/мові опису або пересилання даних для зазначеного протоколу або інтерфейсу I/O і стикуються з модулями на С/С++.
3. Написати процедуру читання даних у вказаному форматі.
4. Написати процедуру запису даних у зазначеному форматі.
5. Написати функцію прийому/передачі даних за допомогою зазначеного протоколу або інтерфейсу I/O.
6. Скласти тестові набори даних для перевірки всіх видів елементів даних, що використовуються у вказаному форматі.
1. Введення
CSV(від англ.Comma-Separated Values- значення, розділені комами) - текстовий формат, призначений для представлення табличних даних. Кожен рядок файлу – це один рядок таблиці. Значення окремих колонок поділяютьсярозділовим символом (delimiter) - ком ( , ).
CSV-файл можна розглядати як сховище даних від програми виробника до зчитування програмою споживача. Їхня основна функція полягає у зберіганні текстових даних і не призначені для двійкових даних.
2. Загальні відомості
CSV файл складається з двох типів даних: корисних даних та маркерів. Корисні дані це те, що записується у додатку виробника та зчитується у додатку споживача. Маркери використовуються для організації корисних даних у файлі CSV.
Наступні правила застосовуються для всіх файлівCSV:
1 Розширення файлу має бути *.csv незалежно від типу маркерів.
2 Дані, що містяться у файлі, повинні бути 8-бітними, розділені символами 7-бітного кодування ASCII.
Це гарантує правильне зчитування файлу разом із маркерами. Три загальні 8-бітові кодування: 1252, ISO/IEC 8859-1 та UTF-8.
3 Крім маркерів нічого не повинно бути записано у кодуванні ASCII.
CSV-файл не призначений для зберігання двійкових даних. Це правило забороняє використання більшості керуючих символів ASCII.
4 CSV-файл повинен містити хоча б один запис.
CSV файл не повинен бути порожнім (мати нульову довжину) або складатись тільки з логічного кінця. Мінімальна кількість записів, які має містити CSV файл, це один запис - заголовок, за яким може йти 0 і більше записів даних.
3. Структура даних у файлі
Запис у файлі CSV складається з двох частин: основні дані з роздільниками та маркера кінця запису. (Рис.1)

Малюнок 1. Структура записів у файлі CSV.
3.2. Поля (стовпці)
При фіксованій довжині поля відносне розташуваннякожного поля всередині запису має бути фіксовано. Однак CSV це формат файлів, який дозволяє записувати змінну довжину. Це дозволяє заощадити значні простори в порівнянні з форматами фіксованої довжини. Для реалізації цього підходу використовується маркер розподілу корисних даних, який вказує на перехід від одного поля до іншого. Розділювачем полів є один символ.
Також присутній запис заголовка. Тому дуже важливо, щоб поля в записі йшли в заданому порядку.
На рис.2 показано, де використовуються символи поділу (SEP) у записі. Весь запис може складатися лише з роздільників.

Малюнок 2. Формат запису у файлі CSV.
3.2 Розділювачі
Хоча ім'я файлу форматуComma-Separated Values— значення, розділені комами передбачає у вигляді роздільника полів кому, деякі програми використовують інші символи.
Наступні правила застосовуються для роздільника:
1 Роздільник полів має бути одним символом.
2 Після вибору символу, той самий символ має використовуватись протягом усього файлу.
3 Виробник додаток повинен використовувати кому (ASCII 0x2C) як роздільник полів.
Це правило порушує одне з найскладніших питань, з якими стикаються розробники при реалізації коду для обробки CSV-файлу: роздільники, вбудовані в корисні дані.