diff options
Diffstat (limited to 'flashtools')
-rw-r--r-- | flashtools/csvconv.cpp | 11 | ||||
-rw-r--r-- | flashtools/flash.cpp | 59 |
2 files changed, 62 insertions, 8 deletions
diff --git a/flashtools/csvconv.cpp b/flashtools/csvconv.cpp index c6d67bd..9ff33e2 100644 --- a/flashtools/csvconv.cpp +++ b/flashtools/csvconv.cpp @@ -12,11 +12,16 @@ void processLine(SWBuf line) { line += "|"; const char *field = line.stripPrefix('|'); cout << "[" << field << "]\n"; - const char *keys[] = { "Language", "TWOT", "Form", "GkRelated", "FullerMeaning", "UnpointedHeb", "CALUnpointedAscii", "TABSUnpointedAscii", "PointedHeb", "Transliteration", "Phonetic", "Notes", "Meaning", "FullMeaning", "TranslationInAV", 0 }; + const char *keys[] = { "PointedHeb", "Language", "Meaning", "TWOT", "Form", "GkRelated", "FullerMeaning", "UnpointedHeb", "CALUnpointedAscii", "TABSUnpointedAscii", "Transliteration", "Phonetic", "Notes", "FullMeaning", "TranslationInAV", 0 }; for (int i = 0; keys[i]; i++) { field = line.stripPrefix('|'); if (!field) break; - cout << keys[i] << "=" << field << "\n"; + if (!strcmp("PointedHeb", keys[i])) { + cout << "UTF8=" << field << "\n"; + } + else { + cout << keys[i] << "=" << field << "\n"; + } } } @@ -28,7 +33,7 @@ int main(int argc, char **argv) { FileMgr fmgr; SWBuf line; - char *fname = "hebrewDiB.csv"; + char *fname = "STRONGSLIST.csv"; if (argc > 1) fname = argv[1]; diff --git a/flashtools/flash.cpp b/flashtools/flash.cpp index 48d7b72..6f2a578 100644 --- a/flashtools/flash.cpp +++ b/flashtools/flash.cpp @@ -36,6 +36,7 @@ using namespace sword; using namespace std; +namespace { // used to hold a KJV translation phrase for a greek/hebrew word // and any greek/hebrew words combined to make this KJV phrase // e.g. hO QEOS = QEOS: [+ hO ]: God @@ -102,6 +103,9 @@ public: string itoa(int v) { stringstream str; str << v; return str.str(); } +SWConfig greek("greek.conf"); +SWConfig hebrew("hebrew.conf"); + bool compareFreq(const Word &w1, const Word &w2) { if (w1.freq != w2.freq) return w1.freq > w2.freq; SWBuf s1 = w1.strong; @@ -175,13 +179,60 @@ SWBuf escapedUTF8(SWBuf inText) { return retBuf; } +} // END anonymous namespace + // output a simple CSV ('|' separated really) format for importing into OOo or excel void outputCSV(const vector<Word> &wordList) { + // output header + cout + << "FreqKJV|" + << "PointedHeb|" + << "Meaning|" + << "Strongs|" + << "Language|" + << "TWOT|" + << "Form|" + << "GkRelated|" + << "FullerMeaning|" + << "UnpointedHeb|" + << "CALUnpointedAscii|" + << "TABSUnpointedAscii|" + << "Transliteration|" + << "Phonetic|" + << "Notes|" + << "FullMeaning|" + << "TranslationInAV" + << "\n"; + for (vector<Word>::const_iterator it = wordList.begin(); it != wordList.end(); it++) { const Word &w = (*it); + SWBuf s = w.strong; + char gh = s[0]; + if (gh == 'G' || gh == 'H') { + s << 1; + } + s = itoa(atoi(s.c_str())).c_str(); // cout << w->freq << "|" << escapedUTF8(w->utf8).c_str() << "|" << w->strong << "|" << prettyKJVFreq(w->kjvFreq).c_str() << "\n"; - cout << w.freq << "|" << w.utf8.c_str() << "|" << w.strong << "|" << w.def << "\n"; + cout + << w.freq << "|" + << hebrew[s]["UTF8"] << "|" + << hebrew[s]["Meaning"] << "|" + << s << "|" + << hebrew[s]["Language"] << "|" + << hebrew[s]["TWOT"] << "|" + << hebrew[s]["Form"] << "|" + << hebrew[s]["GkRelated"] << "|" + << hebrew[s]["FullerMeaning"] << "|" + << hebrew[s]["UnpointedHeb"] << "|" + << hebrew[s]["CALUnpointedAscii"] << "|" + << hebrew[s]["TABSUnpointedAscii"] << "|" + << hebrew[s]["Transliteration"] << "|" + << hebrew[s]["Phonetic"] << "|" + << hebrew[s]["Notes"] << "|" + << hebrew[s]["FullMeaning"] << "|" + << hebrew[s]["TranslationInAV"] + << "\n"; } std::cout << std::endl; } @@ -272,9 +323,6 @@ void outputFlash(const vector<Word> &wordList, const char *outputDir = ".", bool vector<Word> processWords(const char *range, bool addAll = true) { SWMgr manager; map<SWBuf, Word> wordList; - - SWConfig greek("greek.conf"); - SWConfig hebrew("hebrew.conf"); SWModule *tmpBible = manager.getModule("KJV"); if (!tmpBible) { @@ -342,7 +390,7 @@ vector<Word> processWords(const char *range, bool addAll = true) { r = TOP; if (VerseKey(r).Testament() == 1) { for (SectionMap::iterator it = hebrew.Sections.begin(); it != hebrew.Sections.end(); it++) { - wordList[(SWBuf)"H"+it->first].utf8; // just access to be sure created. We'll add later. + wordList[(SWBuf)"H0"+it->first].utf8; // just access to be sure created. We'll add later. } } r = BOTTOM; @@ -357,6 +405,7 @@ vector<Word> processWords(const char *range, bool addAll = true) { for (map<SWBuf, Word>::iterator it = wordList.begin(); it != wordList.end(); it++) { // pull strongs key from map and populate Word SWBuf s = it->first; +//cout << s.c_str() << "\n"; it->second.strong = s; char gh = s[0]; if (gh == 'G' || gh == 'H') { |