Вам необходимо поместить реализацию в файл csv.cpp
, за исключением шаблонов:
const std::string CsvData::extensie{".csv"};
// Scheidingsteken: teken in vlottendekommagetallen
// Voor een Nederlandstalige excel, scheidingsteken ',' opgeven
CsvData::CsvData(const std::string& bestandsnaam, char scheidingsteken, char delimiter)
: scheidingsteken{scheidingsteken}, delimiter{delimiter}, bestandsnaam{bestandsnaam}
{
if (bestandsnaam.empty())
{
throw "Lege bestandsnaam";
}
int begin_extensie = bestandsnaam.rfind(extensie);
if (begin_extensie == 0)
{
throw "Ongeldige bestandsnaam";
}
if ((begin_extensie == std::string::npos) || (begin_extensie != (bestandsnaam.size() - extensie.size())))
{
this->bestandsnaam.append(extensie);
}
}
void CsvData::voeg_data_toe(const std::vector<double>& nieuwe_data)
{
data.push_back(nieuwe_data);
int kolom_grootte = nieuwe_data.size();
if (kolom_grootte > max_kolom_grootte)
{
max_kolom_grootte = kolom_grootte;
}
}
std::string CsvData::to_string() const
{
std::stringstream out;
for (int i = 0; i < max_kolom_grootte; i++)
{
for (int j = 0; j < data.size(); j++)
{
if (i < data[j].size())
{
out << std::setprecision(precisie) << std::scientific << data[j][i];
}
if (j == (data.size() - 1))
{
out << '\n';
}
else
{
out << delimiter;
}
}
}
std::string content = out.str();
std::replace(content.begin(), content.end(), '.', scheidingsteken);
return content;
}
std::string CsvData::geef_bestandsnaam() const
{
return bestandsnaam;
}
void CsvData::write_to_file() const
{
std::ofstream out(bestandsnaam);
assert(out);
out << to_string();
}
Ознакомьтесь с Haystack Search - новый уровень абстракции поиска на основе модели, который в настоящее время поддерживает Xapian , Solr и Свист . Похоже, он хорошо поддерживается и документирован.
Возможно, вы захотите посмотреть Поиск Джанго Солра (он же «Соланго»), который поставляется с Хорошая документация для начала ...
Я нашел Djoosh , который опирается на внешнюю поисковую систему исключительно на python Whoosh , чтобы хорошо работать с моим мозгом Python.
Возможно, вы захотите позволить Yahoo выполнить всю тяжелую работу со своей собственной службой поиска (BOSS). Вот отличная запись в блоге, которая проведет вас через этот процесс: http://www.peterkrantz.com/2008/yahoo-search-in-django/
Кодовая страница Google для djangosearch указывает, что она больше не находится в активной разработке, и предлагает haystack или соланго .
Думаю, мне придется отдать должное Джапиану.
Это надежно ... просто достаньте дистрибутив исходного кода и загляните внутрь. Первоклассный код, не очень много комментариев, хотя ..
Это еще молодой программный проект, но я думаю, что сообществу django следует поддержать его.