Это - хорошее осуществление для себя, чтобы продолжить работать:)
необходимо повредить библиотеку в три части
Так, чтобы можно было пользоваться библиотекой как это:
CSVDocument doc;
doc.Load("file.csv");
CSVDocumentBody* body = doc.GetBody();
CSVDocumentRow* header = body->GetRow(0);
for (int i = 0; i < header->GetFieldCount(); i++)
{
CSVDocumentField* col = header->GetField(i);
cout << col->GetText() << "\t";
}
for (int i = 1; i < body->GetRowCount(); i++) // i = 1 so we skip the header
{
CSVDocumentRow* row = body->GetRow(i);
for (int p = 0; p < row->GetFieldCount(); p++)
{
cout << row->GetField(p)->GetText() << "\t";
}
cout << "\n";
}
body->GetRecord(10)->SetText("hello world");
CSVDocumentRow* lastRow = body->AddRow();
lastRow->AddField()->SetText("Hey there");
lastRow->AddField()->SetText("Hey there column 2");
doc->Save("file.csv");
, Который дает нам следующие интерфейсы:
class CSVDocument
{
public:
void Load(const char* file);
void Save(const char* file);
CSVDocumentBody* GetBody();
};
class CSVDocumentBody
{
public:
int GetRowCount();
CSVDocumentRow* GetRow(int index);
CSVDocumentRow* AddRow();
};
class CSVDocumentRow
{
public:
int GetFieldCount();
CSVDocumentField* GetField(int index);
CSVDocumentField* AddField(int index);
};
class CSVDocumentField
{
public:
const char* GetText();
void GetText(const char* text);
};
Теперь просто необходимо восполнить пробелы отсюда:)
Верят мне, когда я говорю это - инвестирование Вашего времени в изучение, как сделать библиотеки, особенно те, которые имеют дело с загрузкой, управлением и сохранением данных, не только удалю Вашу зависимость от существования таких библиотек, но также сделаю Вас всесторонним лучшим программистом.
:)
РЕДАКТИРОВАНИЕ
я не знаю, сколько Вы уже знаете об обработке строк и парсинге; таким образом, если Вы застреваете, я был бы рад помочь.
You don't need JavaScript for this.
Some CSS would do it. Here is an example:
Lorem Ipsum