/
c_Transformation.cpp
70 lines (60 loc) · 3.17 KB
/
c_Transformation.cpp
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
#include "c_Transformation.h"
// _____ _ _______ __ _ _
// | __ \ | | |__ __| / _| | | (_)
// | | | | __ _| |_ __ _ | |_ __ __ _ _ __ ___| |_ ___ _ __ _ __ ___ __ _| |_ _ ___ _ __
// | | | |/ _` | __/ _` | | | '__/ _` | '_ \/ __| _/ _ \| '__| '_ ` _ \ / _` | __| |/ _ \| '_ \
// | |__| | (_| | || (_| | | | | | (_| | | | \__ \ || (_) | | | | | | | | (_| | |_| | (_) | | | |
// |_____/ \__,_|\__\__,_| |_|_| \__,_|_| |_|___/_| \___/|_| |_| |_| |_|\__,_|\__|_|\___/|_| |_|
//
//
float c_Transformation::wordcount(std::string text) {
float spaces = 0; // start with assumption of 0 spaces in the article
for (size_t j = 0; j < size(text); ++j) // for each character in the text
{
if (text[j] == char(32)) // check to see if it is a space
{
++spaces; // if it is, advance space counter
}
}
++spaces; // add one more to space counter (to account for first word)
return spaces; // send wordcount onward
};
void c_Transformation::transformVector()
{
// Create basic structure
currentCopy.documentID = inputInstance.edition[0].documentID;
for (int i = 0; i < inputInstance.edition[inputInstance.edition.size() - 1].page; i++)
{
currentCopy.pages.push_back(emptyPage);
currentCopy.pages[i].position = i + 1;
for (int j = 0; j < inputInstance.edition[inputInstance.edition.size() - 1].column; j++)
{
currentCopy.pages[i].columns.push_back(emptyColumn);
currentCopy.pages[i].columns[j].position = j + 1;
}
}
// Fill in details
for (size_t i = 0; i < inputInstance.edition.size(); i++)
{
size_t currentPage = inputInstance.edition[i].page - 1;
size_t currentColumn = inputInstance.edition[i].column - 1;
size_t currentSnippet = inputInstance.edition[i].snippet;
if (currentSnippet > currentCopy.pages[currentPage].columns[currentColumn].articles.size())
{
currentCopy.pages[currentPage].columns[currentColumn].articles.push_back(emptyArticle);
currentCopy.pages[currentPage].columns[currentColumn].articles[currentSnippet - 1].position = currentSnippet;
currentCopy.pages[currentPage].columns[currentColumn].articles[currentSnippet - 1].type = inputInstance.edition[i].type;
currentCopy.pages[currentPage].columns[currentColumn].articles[currentSnippet - 1].key_value = inputInstance.edition[i].key_value;
if (inputInstance.dataFlag == "T")
{
currentCopy.pages[currentPage].columns[currentColumn].articles[currentSnippet - 1].text = inputInstance.edition[i].text;
currentCopy.pages[currentPage].columns[currentColumn].articles[currentSnippet - 1].wc = wordcount(inputInstance.edition[i].text);
}
else if (inputInstance.dataFlag == "N")
{
currentCopy.pages[currentPage].columns[currentColumn].articles[currentSnippet - 1].text = "";
currentCopy.pages[currentPage].columns[currentColumn].articles[currentSnippet - 1].wc = inputInstance.edition[i].wordcount;
}
}
}
}