blob: 8dc89c6b8db1937bda7c0016e54646c361d7cdbe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "orcus/format_detection.hpp"
#include "orcus/exception.hpp"
#include "orcus/stream.hpp"
#include <cstdlib>
#include <iostream>
#include <string>
using namespace orcus;
using namespace std;
int main(int argc, char** argv) try
{
if (argc != 2)
return EXIT_FAILURE;
const char* filepath = argv[1];
file_content content(filepath);
if (content.empty())
{
cerr << "file is empty" << endl;
return EXIT_FAILURE;
}
format_t detected_type = detect(content.str());
cout << "type: ";
switch (detected_type)
{
case format_t::csv:
cout << "plain text format";
break;
case format_t::gnumeric:
cout << "Gnumeric";
break;
case format_t::ods:
cout << "OpenDocument Spreadsheet";
break;
case format_t::xls_xml:
cout << "Microsoft Excel XML";
break;
case format_t::xlsx:
cout << "Microsoft Office Open XML Excel 2007+";
break;
case format_t::parquet:
cout << "Apache Parquet";
break;
case format_t::unknown:
default:
cout << "unknown";
}
cout << endl;
return EXIT_SUCCESS;
}
catch (const std::exception& e)
{
cerr << e.what() << endl;
return EXIT_FAILURE;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|