[sword-svn] r3700 - trunk/examples/classes

scribe at crosswire.org scribe at crosswire.org
Sat Feb 8 11:13:00 MST 2020


Author: scribe
Date: 2020-02-08 11:13:00 -0700 (Sat, 08 Feb 2020)
New Revision: 3700

Added:
   trunk/examples/classes/versevalid.cpp
Modified:
   trunk/examples/classes/Makefile
Log:
added new example to show how to check if a string is a valid verse reference.


Modified: trunk/examples/classes/Makefile
===================================================================
--- trunk/examples/classes/Makefile	2020-02-05 21:39:18 UTC (rev 3699)
+++ trunk/examples/classes/Makefile	2020-02-08 18:13:00 UTC (rev 3700)
@@ -1,4 +1,4 @@
-TARGETS= ciphercng swmgrex verseranges lastVerseInChapter verseposition simplechapter flatapilookup flatapiparsekey flatapisearch versenorm flatapiinstallmgr
+TARGETS= ciphercng swmgrex verseranges versevalid lastVerseInChapter verseposition simplechapter flatapilookup flatapiparsekey flatapisearch versenorm flatapiinstallmgr
 all: $(TARGETS)
 
 clean:

Added: trunk/examples/classes/versevalid.cpp
===================================================================
--- trunk/examples/classes/versevalid.cpp	                        (rev 0)
+++ trunk/examples/classes/versevalid.cpp	2020-02-08 18:13:00 UTC (rev 3700)
@@ -0,0 +1,77 @@
+/******************************************************************************
+ *
+ *  versevalid.cpp -	This example demonstrates how to check if a string
+ *			is a valid verse reference
+ *
+ * $Id: verseranges.cpp 2980 2013-09-14 21:51:47Z scribe $
+ *
+ * Copyright 2011-2013 CrossWire Bible Society (http://www.crosswire.org)
+ *	CrossWire Bible Society
+ *	P. O. Box 2528
+ *	Tempe, AZ  85280-2528
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation version 2.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ */
+
+#include <iostream>
+
+#include <swmgr.h>
+#include <swmodule.h>
+#include <versekey.h>
+#include <localemgr.h>
+
+
+using namespace sword;
+using namespace std;
+
+
+int main(int argc, char **argv) {
+
+	if (argc == 1) {
+		std::cerr << "usage: " << argv[0] << " <test string> [locale name] [Bible]\n\n";
+		exit(-1);
+	}
+	cout << "\n";
+
+	const char *testString = argv[1];
+	const char *localeName = argc > 2 ? argv[2] : 0;
+	const char *bibleName  = argc > 3 ? argv[3] : 0;
+
+	VerseKey *vk = 0;
+
+	if (localeName) {
+		LocaleMgr::getSystemLocaleMgr()->setDefaultLocaleName(localeName);
+	}
+	if (bibleName) {
+		SWMgr manager;
+		SWModule *bible = manager.getModule(bibleName);
+		if (!bible) {
+			cout << bibleName << " not installed for example.  Please install.\n\n";
+			exit(-2);
+		}
+		vk = (VerseKey *)bible->createKey();
+	}
+
+	if (!vk) vk = new VerseKey();
+
+	vk->setText(testString);
+
+	std::cout << "error: " << (int)vk->popError() << "\n\n";
+
+	std::cout << "parsed: " << vk->getText() << "\n\n";
+
+	delete vk;
+
+	cout << endl;
+
+	return 0;
+}
+




More information about the sword-cvs mailing list