本文整理汇总了C++中VerseKey::setAutoNormalize方法的典型用法代码示例。如果您正苦于以下问题:C++ VerseKey::setAutoNormalize方法的具体用法?C++ VerseKey::setAutoNormalize怎么用?C++ VerseKey::setAutoNormalize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VerseKey
的用法示例。
在下文中一共展示了VerseKey::setAutoNormalize方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: processText
//.........这里部分代码省略.........
}
}
if (newText) {
textStart = from+1;
newText = false;
}
continue;
}
// if not a strongs token, keep token in text
text.appendFormatted("<%s>", token);
if (newText) {
textStart = text.c_str() + text.length();
newWord = false;
}
continue;
}
if (intoken) {
if ((tokpos < 2045) && ((*from != 10)&&(*from != 13))) {
token[tokpos++] = *from;
token[tokpos+2] = 0;
}
}
else {
switch (*from) {
case '\'':
case '\"':
case '`':
// quoteStack.handleQuote(fromStart, from, &to);
text += *from;
//from++; //this line removes chars after an apostrophe! Needs fixing.
break;
default:
if (newWord && (*from != ' ')) {
wordStart = text.c_str() + text.length();
newWord = false;
//fix this if required?
//memset(to, 0, 10);
}
if (!suspendTextPassThru) {
text += (*from);
lastspace = (*from == ' ');
}
}
}
}
VerseKey *vkey = SWDYNAMIC_CAST(VerseKey, key);
if (vkey) {
SWBuf ref = "";
if (vkey->getVerse()) {
ref.appendFormatted("\t\t<verse osisID=\"%s\">", vkey->getOSISRef());
}
if (ref.length() > 0) {
text = ref + text;
if (vkey->getVerse()) {
VerseKey *tmp = (VerseKey *)vkey->clone();
*tmp = *vkey;
tmp->setAutoNormalize(false);
tmp->setIntros(true);
text += "</verse>";
*tmp = MAXVERSE;
if (*vkey == *tmp) {
tmp->setVerse(0);
// sprintf(ref, "\t</div>");
// pushString(&to, ref);
*tmp = MAXCHAPTER;
*tmp = MAXVERSE;
if (*vkey == *tmp) {
tmp->setChapter(0);
tmp->setVerse(0);
// sprintf(ref, "\t</div>");
// pushString(&to, ref);
/*
if (!quoteStack.empty()) {
SWLog::getSystemLog()->logError("popping unclosed quote at end of book");
quoteStack.clear();
}
*/
}
}
delete tmp;
}
// else if (vkey->Chapter()) {
// sprintf(ref, "\t<div type=\"chapter\" osisID=\"%s\">", vkey->getOSISRef());
// }
// else sprintf(ref, "\t<div type=\"book\" osisID=\"%s\">", vkey->getOSISRef());
}
}
return 0;
}
示例2: main
int main(int argc, char **argv) {
SWCipher *zobj;
VerseKey key;
RawVerse *rawdrv;
int ofd[2], oxfd[2];
long tmpoff = 0, offset, loffset = 0, lzoffset = 0;
unsigned short size, lsize = 0, lzsize;
char *tmpbuf;
if (argc != 3) {
fprintf(stderr, "usage: %s <datapath> \"<key>\"\n", argv[0]);
exit(1);
}
rawdrv = new RawVerse(argv[1]);
zobj = new SWCipher((unsigned char *)argv[2]);
tmpbuf = new char [ strlen(argv[1]) + 11 ];
sprintf(tmpbuf, "%sot.zzz", argv[1]);
ofd[0] = FileMgr::createPathAndFile(tmpbuf);
sprintf(tmpbuf, "%sot.zzz.vss", argv[1]);
oxfd[0] = FileMgr::createPathAndFile(tmpbuf);
sprintf(tmpbuf, "%snt.zzz", argv[1]);
ofd[1] = FileMgr::createPathAndFile(tmpbuf);
sprintf(tmpbuf, "%snt.zzz.vss", argv[1]);
oxfd[1] = FileMgr::createPathAndFile(tmpbuf);
delete [] tmpbuf;
printf("\n");
write(oxfd[0], &lzoffset, 4);
write(oxfd[0], &lzsize, 2);
write(oxfd[1], &lzoffset, 4);
write(oxfd[1], &lzsize, 2);
key.setAutoNormalize(false);
key.setIntros(true);
for (key.setIndex(0); (!key.popError()); key++) {
rawdrv->findOffset(key.getTestament(), key.getIndex(), &offset, &size);
printf("%s: OLD offset: %ld; size: %d\n", (const char *)key, offset, size);
if ((offset == loffset) && (size == lsize)) {
printf("using previous offset,size %d\n", size);
offset = lseek(oxfd[key.getTestament() - 1], 0, SEEK_CUR);
printf("%ld %ld %d \n", offset, lzoffset, lzsize);
write(oxfd[key.getTestament() - 1], &lzoffset, 4);
write(oxfd[key.getTestament() - 1], &lzsize, 2);
}
else {
lsize = size;
loffset = offset;
if (size) {
SWBuf tmpbuf;
rawdrv->readText(key.getTestament(), offset, size, tmpbuf);
zobj->Buf(tmpbuf.c_str(), size);
unsigned long ulSize = size;
zobj->cipherBuf(&ulSize);
size = (unsigned int)ulSize;
}
offset = lseek(ofd[key.getTestament() - 1], 0, SEEK_CUR);
tmpoff = lseek(oxfd[key.getTestament() - 1], 0, SEEK_CUR);
printf("%s: (%ld) NEW offset: %ld; size: %d\n", (const char *)key, tmpoff, offset, size);
write(oxfd[key.getTestament() - 1], &offset, 4);
unsigned long ulSize = size;
if (size)
write(ofd[key.getTestament() - 1], zobj->cipherBuf(&ulSize), size);
size = (unsigned int)ulSize;
lzoffset = offset;
write(oxfd[key.getTestament() - 1], &size, 2);
lzsize = size;
}
}
delete zobj;
close(ofd[0]);
close(oxfd[0]);
close(ofd[1]);
close(oxfd[1]);
return 0;
}
示例3: main
int main(int argc, char **argv) {
// Let's test our command line arguments
if (argc < 2) {
// fprintf(stderr, "usage: %s <vpl_file> </path/to/mod> [0|1 - file includes prepended verse references]\n", argv[0]);
fprintf(stderr, "usage: %s <source_vpl_file> </path/to/output/mod/> [0|1 - prepended verse refs] [0|1 - NT only]\n\n", argv[0]);
fprintf(stderr, "\tWARNING: THIS IS CURRENTLY A KJV-VERSIFICATION-ONLY UTILITY\n");
fprintf(stderr, "\tWith no verse refs, source file must contain exactly 31102 lines.\n");
fprintf(stderr, "\tThis is KJV verse count plus headings for MODULE,\n");
fprintf(stderr, "\tTESTAMENT, BOOK, CHAPTER. An example snippet follows:\n\n");
fprintf(stderr, "\t\tMODULE HEADER\n");
fprintf(stderr, "\t\tOLD TESTAMENT HEADER\n");
fprintf(stderr, "\t\tGENESIS HEADER\n");
fprintf(stderr, "\t\tCHAPTER 1 HEADER\n");
fprintf(stderr, "\t\tIn the beginning...\n\n");
fprintf(stderr, "\t... implying there must also be a CHAPTER2 HEADER,\n");
fprintf(stderr, "\tEXODUS HEADER, NEW TESTAMENT HEADER, etc. If there is no text for\n");
fprintf(stderr, "\tthe header, a blank line must, at least, hold place.\n\n");
fprintf(stderr, "\tWith verse refs, source file must simply contain any number of lines,\n");
fprintf(stderr, "\tthat begin with the verse reference for which it is an entry. e.g.:\n\n");
fprintf(stderr, "\t\tgen 1:0 CHAPTER 1 HEADER\n");
fprintf(stderr, "\t\tgen 1:1 In the beginning...\n\n");
exit(-1);
}
// Let's see if we can open our input file
int fd = FileMgr::openFileReadOnly(argv[1]);
if (fd < 0) {
fprintf(stderr, "error: %s: couldn't open input file: %s \n", argv[0], argv[1]);
exit(-2);
}
// Try to initialize a default set of datafiles and indicies at our
// datapath location passed to us from the user.
if (RawText::createModule(argv[2])) {
fprintf(stderr, "error: %s: couldn't create module at path: %s \n", argv[0], argv[2]);
exit(-3);
}
// not used yet, but for future support of a vpl file with each line
// prepended with verse reference, eg. "Gen 1:1 In the beginning..."
bool vref = false;
if (argc > 3)
vref = (argv[3][0] == '0') ? false : true;
// if 'nt' is the 4th arg, our vpl file only has the NT
bool ntonly = false;
if (argc > 4)
ntonly = (argv[4][0] == '0') ? false : true;
// Do some initialization stuff
char *buffer = 0;
RawText mod(argv[2]); // open our datapath with our RawText driver.
VerseKey vk;
vk.setAutoNormalize(false);
vk.setIntros(true); // turn on mod/testmnt/book/chap headings
vk.setPersist(true);
mod.setKey(vk);
// Loop through module from TOP to BOTTOM and set next line from
// input file as text for this entry in the module
mod = TOP;
if (ntonly) vk = "Matthew 1:1";
int successive = 0; //part of hack below
while ((!mod.popError()) && (!readline(fd, &buffer))) {
if (*buffer == '|') // comments, ignore line
continue;
if (vref) {
const char *verseText = parseVReg(buffer);
if (!verseText) { // if we didn't find a valid verse ref
std::cerr << "No valid verse ref found on line: " << buffer << "\n";
exit(-4);
}
vk = buffer;
if (vk.popError()) {
std::cerr << "Error parsing key: " << buffer << "\n";
exit(-5);
}
string orig = mod.getRawEntry();
if (!isKJVRef(buffer)) {
VerseKey origVK = vk;
/* This block is functioning improperly -- problem with AutoNormalize???
do {
vk--;
}
while (!vk.popError() && !isKJVRef(vk)); */
//hack to replace above:
successive++;
vk -= successive;
orig = mod.getRawEntry();
std::cerr << "Not a valid KJV ref: " << origVK << "\n";
std::cerr << "appending to ref: " << vk << "\n";
orig += " [ (";
orig += origVK;
orig += ") ";
//.........这里部分代码省略.........
示例4: main
//.........这里部分代码省略.........
#define COM 3
int modType = 0;
if (inModule.getType() == "Biblical Texts") {
modType = BIBLE;
} else if (inModule.getType() == "Lexicons / Dictionaries") {
modType = LEX;
} else if (inModule.getType() == "Commentaries") {
modType = COM;
}
switch (compType) { // these are deleted by zText
case 1: compressor = std::make_unique<LZSSCompress>(); break;
case 2: compressor = std::make_unique<ZipCompress>(); break;
case 3: compressor = std::make_unique<Bzip2Compress>(); break;
case 4: compressor = std::make_unique<XzCompress>(); break;
}
if (compressor && compLevel > 0) {
compressor->setLevel(compLevel);
}
int result = 0;
switch (modType) {
case BIBLE:
case COM: {
SWKey *k = inModule.getKey();
VerseKey *vk = dynamic_cast<VerseKey *>(k);
result = zText::createModule(argv[2], iType, vk->getVersificationSystem().c_str());
break;
}
case LEX:
result = zLD::createModule(argv[2]);
break;
}
if (result) {
fprintf(stderr, "error: %s: couldn't create module at path: %s\n", argv[0], argv[2]);
std::exit(-3);
}
std::unique_ptr<SWModule> outModule;
switch (modType) {
case BIBLE:
case COM: {
SWKey *k = inModule.getKey();
VerseKey *vk = dynamic_cast<VerseKey *>(k);
outModule = std::make_unique<zText>(argv[2], nullptr, nullptr, iType, std::move(compressor),
ENC_UNKNOWN, DIRECTION_LTR, FMT_UNKNOWN, nullptr,
vk->getVersificationSystem().c_str()); // open our datapath with our RawText driver.
static_cast<VerseKey *>(inModule.getKey())->setIntros(true);
break;
}
case LEX:
outModule = std::make_unique<zLD>(argv[2], nullptr, nullptr, iType, std::move(compressor)); // open our datapath with our RawText driver.
break;
}
if (!cipherKey.empty())
outModule->addRawFilter(
std::make_shared<CipherFilter>(cipherKey.c_str()));
string lastBuffer = "Something that would never be first module entry";
SWKey bufferKey;
SWKey lastBufferKey;
auto const outModuleKey(outModule->createKey());
VerseKey *vkey = dynamic_cast<VerseKey *>(outModuleKey.get());
outModuleKey->setPersist(true);
if (vkey) {
vkey->setIntros(true);
vkey->setAutoNormalize(false);
}
outModule->setKey(*outModuleKey);
inModule.setSkipConsecutiveLinks(false);
inModule.positionToTop();
while (!inModule.popError()) {
bufferKey.positionFrom(*inModule.getKey());
// pseudo-check for link. Will get most common links.
if ((lastBuffer == inModule.getRawEntry()) &&(lastBuffer.length() > 0)) {
outModuleKey->positionFrom(bufferKey);
outModule->linkEntry(lastBufferKey); // link to last key
cout << "Adding [" << bufferKey.getText() << "] link to: [" << lastBufferKey.getText() << "]\n";
}
else {
lastBuffer = inModule.getRawEntry();
lastBufferKey.setText(inModule.getKeyText());
if (lastBuffer.length() > 0) {
cout << "Adding [" << bufferKey.getText() << "] new text.\n";
outModuleKey->positionFrom(bufferKey);
// outModule->getRawEntry(); // snap
// outModule->setKey(bufferKey);
outModule->setEntry(lastBuffer.c_str()); // save new text;
}
else {
cout << "Skipping [" << bufferKey.getText() << "] no entry in Module.\n";
}
}
inModule.increment();
}
}
示例5: main
int main(int argc, char **argv) {
SWMgr mymgr;
RawText::createModule(".");
RawText mod(".");
VerseKey vk;
vk.setIntros(true);
vk.setAutoNormalize(false);
vk.setPersist(true);
mod.setKey(vk);
vk.setVerse(0);
vk.setChapter(0);
vk.setBook(0);
vk.setTestament(0);
mod << "Module heading text";
vk.setVerse(0);
vk.setChapter(0);
vk.setBook(0);
vk.setTestament(1);
mod << "OT heading text";
vk.setTestament(1);
vk.setBook(1);
vk.setChapter(0);
vk.setVerse(0);
mod << "Gen heading text";
vk.setTestament(1);
vk.setBook(1);
vk.setChapter(1);
vk.setVerse(0);
mod << "Gen 1 heading text";
vk.setTestament(1);
vk.setBook(1);
vk.setChapter(1);
vk.setVerse(1);
mod << "Gen 1:1 text";
vk.setTestament(0);
vk.setBook(0);
vk.setChapter(0);
vk.setVerse(0);
std::cout << "Module heading text ?= " << (const char*)mod << std::endl;
vk.setTestament(1);
vk.setBook(0);
vk.setChapter(0);
vk.setVerse(0);
std::cout << "OT heading text ?= " << (const char*)mod << std::endl;
vk.setTestament(1);
vk.setBook(1);
vk.setChapter(0);
vk.setVerse(0);
std::cout << "Gen heading text ?= " << (const char*)mod << std::endl;
vk.setTestament(1);
vk.setBook(1);
vk.setChapter(1);
vk.setVerse(0);
std::cout << "Gen 1 heading text ?= " << (const char*)mod << std::endl;
vk.setTestament(1);
vk.setBook(1);
vk.setChapter(1);
vk.setVerse(1);
std::cout << "Gen 1:1 text ?= " << (const char*)mod << std::endl;
/* old introtest
SWModule *mhc = mymgr.Modules["MHC"];
if (mhc) {
VerseKey vk;
vk.setIntros(true);
vk.setAutoNormalize(false);
vk.setPersist(true);
vk = "jas 0:0";
std::cout << vk << ":\n";
mhc->setKey(vk);
std::cout << (const char *) mhc->Key() << ":\n";
std::cout << (const char *) *mhc << "\n";
}
*/
return 0;
}
示例6: main
int main(int argc, char **argv) {
const char * helptext = "addvs 1.1 Bible & Commentary module creation tool for the SWORD Project\nUse -a to add a new verse from standard input or a file, -d to delete a verse,\n-l to link two verses, -c to create a new module.\n usage:\n %s -a </path/to/module> <verse> [</path/to/file/with/verse>]\n %s -d </path/to/module> <key>\n %s -l </path/to/module> <first verse (already assigned)> <second verse>\n %s -c </path/to/module>\n";
long entrysize;
if (argc < 3) {
fprintf(stderr, helptext, argv[0], argv[0], argv[0], argv[0]);
exit(-1);
}
if (!strcmp(argv[1], "-a") && (argc == 4 || argc == 5)) {
// Do some initialization stuff
char buffer[65536]; //this is the max size of any entry
RawText * mod = new RawText(argv[2]); // open our datapath with our RawText driver.
VerseKey *vkey = new VerseKey;
vkey->setIntros(true);
vkey->setAutoNormalize(false);
vkey->setPersist(true); // the magical setting
*vkey = argv[3];
// Set our VerseKey
mod->setKey(*vkey);
if (!vkey->getChapter()) {
// bad hack >>
// 0:0 is Book intro
// (chapter):0 is Chapter intro
//
// 0:2 is Module intro
// 0:1 is Testament intro
int backstep = vkey->getVerse();
vkey->setVerse(0);
*mod -= backstep;
// << bad hack
FILE *infile;
// case: add from text file
//Open our data file and read its contents into the buffer
if (argc == 5) infile = fopen(argv[4], "r");
// case: add from stdin
else infile = stdin;
entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
mod->setEntry(buffer, entrysize); // save text to module at current position
}
else {
ListKey listkey = vkey->parseVerseList(argv[3], "Gen1:1", true);
int i;
bool havefirst = false;
VerseKey firstverse;
for (i = 0; i < listkey.getCount(); i++) {
VerseKey *element = SWDYNAMIC_CAST(VerseKey, listkey.getElement(i));
if (element) {
mod->setKey(element->getLowerBound());
VerseKey finalkey = element->getUpperBound();
std::cout << mod->getKeyText() << "-" << (const char*)finalkey << std::endl;
if (!havefirst) {
havefirst = true;
firstverse = *mod->getKey();
FILE *infile;
// case: add from text file
//Open our data file and read its contents into the buffer
if (argc == 5) infile = fopen(argv[4], "r");
// case: add from stdin
else infile = stdin;
entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
mod->setEntry(buffer, entrysize); // save text to module at current position
std::cout << "f" << (const char*)firstverse << std::endl;
(*mod)++;
}
while (*mod->getKey() <= finalkey) {
std::cout << mod->getKeyText() << std::endl;
*(SWModule*)mod << &firstverse;
(*mod)++;
}
}
else {
if (havefirst) {
mod->setKey(*listkey.getElement(i));
*(SWModule*)mod << &firstverse;
std::cout << mod->getKeyText() << std::endl;
}
else {
mod->setKey(*listkey.getElement(i));
havefirst = true;
firstverse = *mod->getKey();
FILE *infile;
// case: add from text file
//Open our data file and read its contents into the buffer
if (argc == 5) infile = fopen(argv[4], "r");
// case: add from stdin
else infile = stdin;
entrysize = fread(buffer, sizeof(char), sizeof(buffer), infile);
mod->setEntry(buffer, entrysize); // save text to module at current position
std::cout << "f" << (const char*)firstverse << std::endl;
}
}
//.........这里部分代码省略.........