Создание веб-приложения, сочетающего в себе проектирование и создание баз данных, работу со сторонними форматами данных, программирование в NET и веб-разработку, страница 3

Запись в CSV файле состоит из двух частей: основные данные с разделителями и маркера конца записи (Рис.1.3).

CSV record structure

Рисунок 1.3 - Структура записей в CSV-файле.

. Есть два управляющих символа ASCII, которые обычно используются для формирования EOR - символ возврата каретки (CR - ASCII 0x0D) и символ перевода строки (LF - ASCII 0x0A). Эта спецификация дает 3 варианта завершения записи: CR + LF, LF или CR.

CSV, как правило, используются для хранения однородных табличных данных. При просмотре в таблице, данные внутри CSV визуально расположены в несколько строк (записей) и столбцов (полей), разделенными специальными маркерами – разделителями. На (Рис.1.4) показано, где используются символы разделения (SEP) в записи.

CSV record structure

Рисунок 1.4 – Формат записи в CSV.

Пример CSV файла со статистикой матча:

Period,Time,Goal/Penalty,Team,Player Name,Note

1,01:15,PEN,MAG,Mozyakin Sergei,Tripping (Minor)

1,01:31,SHG (1:0),MAG,Malkin Evgeny,Unassisted

1,05:30,SHG (2:0),MAG,Zuccarello Mats,Tverdovsky Oleg

1,19:15,GOAL (3:0),MAG,Kulyomin Nikolai,"Zhafyarov Damir, Yakubov Mikhail"

2,01:10,GOAL (4:0),MAG,Mozyakin Sergei,Malkin Evgeny

2,06:40,PEN,MAG,Lecavalier Vincent,Tripping (Minor)

2,08:03,SHG (5:0),MAG,Zuccarello Mats,"Hodgman Justin, Antipin Viktor"

2,08:32,SHG (6:0),MAG,Malkin Evgeny,"Biryukov Evgeny, Gonchar Sergei"

2,11:25,PEN,NIZ,Yakupov Nail,Tripping (Minor)

3,02:21,PEN,NIZ,Mamashev Renat,Cross checking (Minor)

3,11:24,GOAL (7:0),MAG,Hodgman Justin,Porejs Martins

3,15:36,PEN,NIZ,Blokhin Evgeny,Tripping (Minor)

3,16:15,PEN,MAG,Malkin Evgeny,Tripping (Minor)

3,18:24,GOAL (8:0),MAG,Tverdovsky Oleg,Unassisted

3,20:00,PEN,NIZ,Belov Nikolai,Tripping (Minor)

3,20:00,PPG (9:0),MAG,Malkin Evgeny,Unassisted

Пример CSV файла со статистикой игроков:

Player Name,Team,Pos,Time,Goal,Asst,PIMS,+/-,PPG/GA,SHG/ENG,Shoot/SA,Hits,Player ID

O'Reilly Cal,MAG,Player,19:20,0,0,0,1,0,0,3,0,3862

Malkin Evgeny,MAG,Player,22:58,2,2,15,0,1,0,6,1,1703

Gonchar Sergei,MAG,Player,27:43,0,3,0,0,0,0,1,7,718

Lecavalier Vincent,MAG,Player,21:49,0,0,0,1,0,0,1,2,1180

Hodgman Justin,MAG,Player,08:47,0,0,0,-1,0,0,1,0,2265

….

Пример CSV файла со статистикой команд:

"",Team,Goal,Shot,SH goal,Breakaway,Onetimers,Onetimer goal,Faceoff,Hits,Penalties,EN goal,GP1,GP2,GP3,GOT,PP

Home,MAG,7,38,0,2,9,0,25,24,2,0,2,1,4,0,5/7

Away,NIZ,2,10,0,1,0,0,5,36,9,0,0,1,1,0,0/0

Из примеров видно, что помимо самих данных в файле присутствует описание заголовков столбцов. Она всегда занимает первую строчку файла. Поэтому очень важно учитывать, что поля в записи должны находиться заданном порядке. Запись заголовка позволяет узнавать какие поля и в каком порядке записаны в файле.

1.1.2  Формат Лог-файлов

Лог-файлы игры представляют собой текстовый документ с разрешением .log. Данные файлы сохраняются программой в зашифрованном виде, для невозможности внесения изменений в информацию, хранимую в лог-файлах.

В них содержится информация о различных показателях игроков каждой из команд, настроек игры с каждой стороны и прочая техническая информация, предназначенная для сравнения по окончанию игры для того, что бы убедиться, что игроки находились в равных условиях (т.е. использовали одни и те же настройки). Проверка данных файлов предусмотрена в программе NHL09GamePlayCenter (Рис. 1.5). В окне предоставляется возможность загрузить вручную свой лог игры и лог соперника, после чего программа проведет сравнение всех показателей и выдаст информацию о возможных расхождениях, либо полном соответствии логов. Данная проверка проводится администрацией вручную, поэтому проверка осуществляется выборочно, либо по заявлению одного из игроков матча, поэтому лог-файлы так же являются обязательными ля загрузки, хотя и никакой дальнейшей работы программа с ними не ведет, лишь записывая имя каждого файла в соответствующее поле БД.

Рисунок 1.5 – Окно для проверки логов игры.

1.2  Хранилище данных