aboutsummaryrefslogtreecommitdiffstats
path: root/doc/api-documentation/html/gbf_8cpp-source.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/api-documentation/html/gbf_8cpp-source.html')
-rw-r--r--doc/api-documentation/html/gbf_8cpp-source.html749
1 files changed, 749 insertions, 0 deletions
diff --git a/doc/api-documentation/html/gbf_8cpp-source.html b/doc/api-documentation/html/gbf_8cpp-source.html
new file mode 100644
index 0000000..72513b7
--- /dev/null
+++ b/doc/api-documentation/html/gbf_8cpp-source.html
@@ -0,0 +1,749 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>gbf.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.2.15 -->
+<center>
+<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center>
+<hr><h1>gbf.cpp</h1><div class="fragment"><pre>00001 <font class="keyword">enum</font> TToken {
+00002 tokNull, tokEOF, tokHeader, tokContent, tokTail, tokStyle,
+00003 tokWord, tokSpace, tokSync, tokControl, tokChar, tokFont};
+00004
+00005 <font class="keyword">enum</font> TCharacterAttribute { caBold, caSmallCaps, caItalic, caOTQuote, caRed,
+00006 caSuperscript, caUnderline, caSubscript};
+00007
+00008 <font class="comment">// TCharAttribs = set of TCharacterAttribute;</font>
+00009
+00010
+00011 <font class="keyword">struct </font>TBookNameRec {
+00012 string Name, Abbr;
+00013 <font class="keywordtype">char</font> Num;
+00014 }
+00015
+00016 <font class="keyword">const</font> <font class="keyword">struct </font>TBookNameRec TBookAbbr[116] = {
+00017 {<font class="stringliteral">"1 Chronicles"</font>, <font class="stringliteral">"1CH"</font>, 13}, <font class="comment">//0</font>
+00018 {<font class="stringliteral">"1 Corinthians"</font>, <font class="stringliteral">"1CO"</font>, 70}, <font class="comment">//1</font>
+00019 {<font class="stringliteral">"1 Esdras"</font>, <font class="stringliteral">"1E"</font>, 52}, <font class="comment">//2</font>
+00020 {<font class="stringliteral">"1 John"</font>, <font class="stringliteral">"1J"</font>, 86}, <font class="comment">//3</font>
+00021 {<font class="stringliteral">"1 Kings"</font>, <font class="stringliteral">"1K"</font>, 11}, <font class="comment">//4</font>
+00022 {<font class="stringliteral">"1 Maccabees"</font>, <font class="stringliteral">"1M"</font>, 50}, <font class="comment">//5</font>
+00023 {<font class="stringliteral">"1 Peter"</font>, <font class="stringliteral">"1P"</font>, 84}, <font class="comment">//6</font>
+00024 {<font class="stringliteral">"1 Samuel"</font>, <font class="stringliteral">"1S"</font>, 9}, <font class="comment">//7</font>
+00025 {<font class="stringliteral">"1 Thessalonians"</font>, <font class="stringliteral">"1TH"</font>, 76}, <font class="comment">//8</font>
+00026 {<font class="stringliteral">"1 Timothy"</font>, <font class="stringliteral">"1TI"</font>, 78}, <font class="comment">//9</font>
+00027 {<font class="stringliteral">"2 Chronicles"</font>, <font class="stringliteral">"2CH"</font>, 14}, <font class="comment">//10</font>
+00028 {<font class="stringliteral">"2 Corinthians"</font>, <font class="stringliteral">"2CO"</font>, 71}, <font class="comment">//11</font>
+00029 {<font class="stringliteral">"2 Esdras"</font>, <font class="stringliteral">"2E"</font>, 56}, <font class="comment">//12</font>
+00030 {<font class="stringliteral">"2 John"</font>, <font class="stringliteral">"2J"</font>, 87}, <font class="comment">//13</font>
+00031 {<font class="stringliteral">"2 Kings"</font>, <font class="stringliteral">"2K"</font>, 12}, <font class="comment">//14</font>
+00032 {<font class="stringliteral">"2 Maccabees"</font>, <font class="stringliteral">"2M"</font>, 51}, <font class="comment">//15</font>
+00033 {<font class="stringliteral">"2 Peter"</font>, <font class="stringliteral">"2P"</font>, 85}, <font class="comment">//16</font>
+00034 {<font class="stringliteral">"2 Samuel"</font>, <font class="stringliteral">"2S"</font>, 10}, <font class="comment">//17</font>
+00035 {<font class="stringliteral">"2 Thessalonians"</font>, <font class="stringliteral">"2TH"</font>, 77}, <font class="comment">//18</font>
+00036 {<font class="stringliteral">"2 Timothy"</font>, <font class="stringliteral">"2TI"</font>, 79}, <font class="comment">//19</font>
+00037 {<font class="stringliteral">"3 John"</font>, <font class="stringliteral">"3J"</font>, 88}, <font class="comment">//20</font>
+00038 {<font class="stringliteral">"3 Maccabees"</font>, <font class="stringliteral">"3M"</font>, 55}, <font class="comment">//21</font>
+00039 {<font class="stringliteral">"4 Maccabees"</font>, <font class="stringliteral">"4M"</font>, 57}, <font class="comment">//22</font>
+00040 {<font class="stringliteral">"1 Chronicles"</font>, <font class="stringliteral">"1 CH"</font>, 13}, <font class="comment">//0</font>
+00041 {<font class="stringliteral">"1 Corinthians"</font>, <font class="stringliteral">"1 CO"</font>, 70}, <font class="comment">//1</font>
+00042 {<font class="stringliteral">"1 Esdras"</font>, <font class="stringliteral">"1 E"</font>, 52}, <font class="comment">//2</font>
+00043 {<font class="stringliteral">"1 John"</font>, <font class="stringliteral">"1 J"</font>, 86}, <font class="comment">//3</font>
+00044 {<font class="stringliteral">"1 Kings"</font>, <font class="stringliteral">"1 K"</font>, 11}, <font class="comment">//4</font>
+00045 {<font class="stringliteral">"1 Maccabees"</font>, <font class="stringliteral">"1 M"</font>, 50}, <font class="comment">//5</font>
+00046 {<font class="stringliteral">"1 Peter"</font>, <font class="stringliteral">"1 P"</font>, 84}, <font class="comment">//6</font>
+00047 {<font class="stringliteral">"1 Samuel"</font>, <font class="stringliteral">"1 S"</font>, 9}, <font class="comment">//7</font>
+00048 {<font class="stringliteral">"1 Thessalonians"</font>, <font class="stringliteral">"1 TH"</font>, 76}, <font class="comment">//8</font>
+00049 {<font class="stringliteral">"1 Timothy"</font>, <font class="stringliteral">"1 TI"</font>, 78}, <font class="comment">//9</font>
+00050 {<font class="stringliteral">"2 Chronicles"</font>, <font class="stringliteral">"2 CH"</font>, 14}, <font class="comment">//10</font>
+00051 {<font class="stringliteral">"2 Corinthians"</font>, <font class="stringliteral">"2 CO"</font>, 71}, <font class="comment">//11</font>
+00052 {<font class="stringliteral">"2 Esdras"</font>, <font class="stringliteral">"2 E"</font>, 56}, <font class="comment">//12</font>
+00053 {<font class="stringliteral">"2 John"</font>, <font class="stringliteral">"2 J"</font>, 87}, <font class="comment">//13</font>
+00054 {<font class="stringliteral">"2 Kings"</font>, <font class="stringliteral">"2 K"</font>, 12}, <font class="comment">//14</font>
+00055 {<font class="stringliteral">"2 Maccabees"</font>, <font class="stringliteral">"2 M"</font>, 51}, <font class="comment">//15</font>
+00056 {<font class="stringliteral">"2 Peter"</font>, <font class="stringliteral">"2 P"</font>, 85}, <font class="comment">//16</font>
+00057 {<font class="stringliteral">"2 Samuel"</font>, <font class="stringliteral">"2 S"</font>, 10}, <font class="comment">//17</font>
+00058 {<font class="stringliteral">"2 Thessalonians"</font>, <font class="stringliteral">"2 TH"</font>, 77}, <font class="comment">//18</font>
+00059 {<font class="stringliteral">"2 Timothy"</font>, <font class="stringliteral">"2 TI"</font>, 79}, <font class="comment">//19</font>
+00060 {<font class="stringliteral">"3 John"</font>, <font class="stringliteral">"3 J"</font>, 88}, <font class="comment">//20</font>
+00061 {<font class="stringliteral">"3 Maccabees"</font>, <font class="stringliteral">"3 M"</font>, 55}, <font class="comment">//21</font>
+00062 {<font class="stringliteral">"4 Maccabees"</font>, <font class="stringliteral">"4 M"</font>, 57}, <font class="comment">//22</font>
+00063 {<font class="stringliteral">"Acts"</font>, <font class="stringliteral">"AC"</font>, 68}, <font class="comment">//23</font>
+00064 {<font class="stringliteral">"Amos"</font>, <font class="stringliteral">"AM"</font>, 30}, <font class="comment">//24</font>
+00065 {<font class="stringliteral">"Prayer of Asariah and the Song of the Three Jews"</font>, <font class="stringliteral">"AZ"</font>, 47},
+00066 {<font class="stringliteral">"Baruch"</font>, <font class="stringliteral">"BA"</font>, 45}, <font class="comment">//26</font>
+00067 {<font class="stringliteral">"Bel and the Dragon"</font>,<font class="stringliteral">"BE"</font>, 49}, <font class="comment">//27</font>
+00068 {<font class="stringliteral">"Colossians"</font>, <font class="stringliteral">"CO"</font>, 75}, <font class="comment">//28</font>
+00069 {<font class="stringliteral">"Daniel"</font>, <font class="stringliteral">"DA"</font>, 27}, <font class="comment">//29</font>
+00070 {<font class="stringliteral">"Deuteronomy"</font>, <font class="stringliteral">"DE"</font>, 5}, <font class="comment">//30</font>
+00071 {<font class="stringliteral">"Deuteronomy"</font>, <font class="stringliteral">"DT"</font>, 5}, <font class="comment">//31</font>
+00072 {<font class="stringliteral">"Ecclesiasties"</font>, <font class="stringliteral">"EC"</font>, 21}, <font class="comment">//32</font>
+00073 {<font class="stringliteral">"Esther"</font>, <font class="stringliteral">"ES"</font>, 17}, <font class="comment">//33</font>
+00074 {<font class="stringliteral">"Exodus"</font>, <font class="stringliteral">"EX"</font>, 2}, <font class="comment">//34</font>
+00075 {<font class="stringliteral">"Ezekiel"</font>, <font class="stringliteral">"EZE"</font>, 26}, <font class="comment">//35</font>
+00076 {<font class="stringliteral">"Ezra"</font>, <font class="stringliteral">"EZR"</font>, 15}, <font class="comment">//36</font>
+00077 {<font class="stringliteral">"Galatians"</font>, <font class="stringliteral">"GA"</font>, 72}, <font class="comment">//37</font>
+00078 {<font class="stringliteral">"Genesis"</font>, <font class="stringliteral">"GE"</font>, 1}, <font class="comment">//38</font>
+00079 {<font class="stringliteral">"Genesis"</font>, <font class="stringliteral">"GN"</font>, 1}, <font class="comment">//39</font>
+00080 {<font class="stringliteral">"Ephesians"</font>, <font class="stringliteral">"EP"</font>, 73}, <font class="comment">//40</font>
+00081 {<font class="stringliteral">"Esther (Greek}"</font>, <font class="stringliteral">"GR"</font>, 42), <font class="comment">//41</font>
+00082 {<font class="stringliteral">"Habakkuk"</font>, <font class="stringliteral">"HAB"</font>, 35}, <font class="comment">//42</font>
+00083 {<font class="stringliteral">"Haggai"</font>, <font class="stringliteral">"HAG"</font>, 37}, <font class="comment">//43</font>
+00084 {<font class="stringliteral">"Hebrews"</font>, <font class="stringliteral">"HE"</font>, 82}, <font class="comment">//44</font>
+00085 {<font class="stringliteral">"Hosea"</font>, <font class="stringliteral">"HO"</font>, 28}, <font class="comment">//45</font>
+00086 {<font class="stringliteral">"Isaiah"</font>, <font class="stringliteral">"IS"</font>, 23}, <font class="comment">//46</font>
+00087 {<font class="stringliteral">"James"</font>, <font class="stringliteral">"JA"</font>, 83}, <font class="comment">//47</font>
+00088 {<font class="stringliteral">"Jeremiah"</font>, <font class="stringliteral">"JE"</font>, 24}, <font class="comment">//48</font>
+00089 {<font class="stringliteral">"Job"</font>, <font class="stringliteral">"JOB"</font>, 18}, <font class="comment">//49</font>
+00090 {<font class="stringliteral">"Joel"</font>, <font class="stringliteral">"JOE"</font>, 29}, <font class="comment">//50</font>
+00091 {<font class="stringliteral">"John"</font>, <font class="stringliteral">"JOH"</font>, 67}, <font class="comment">//51</font>
+00092 {<font class="stringliteral">"Jonah"</font>, <font class="stringliteral">"JON"</font>, 32}, <font class="comment">//52</font>
+00093 {<font class="stringliteral">"Joshua"</font>, <font class="stringliteral">"JOS"</font>, 6}, <font class="comment">//53</font>
+00094 {<font class="stringliteral">"Jude"</font>, <font class="stringliteral">"JUDE"</font>, 89}, <font class="comment">//54</font>
+00095 {<font class="stringliteral">"Judges"</font>, <font class="stringliteral">"JUDG"</font>, 7}, <font class="comment">//55</font>
+00096 {<font class="stringliteral">"Judith"</font>, <font class="stringliteral">"JUDI"</font>, 41}, <font class="comment">//56</font>
+00097 {<font class="stringliteral">"Lamentations"</font>, <font class="stringliteral">"LA"</font>, 25}, <font class="comment">//57</font>
+00098 {<font class="stringliteral">"Letter of Jeremiah"</font>,Abbr:<font class="stringliteral">"LET"</font>, 46}, <font class="comment">//58</font>
+00099 {<font class="stringliteral">"Leviticus"</font>, <font class="stringliteral">"LEV"</font>, 3}, <font class="comment">//59</font>
+00100 {<font class="stringliteral">"Luke"</font>, <font class="stringliteral">"LK"</font>, 66}, <font class="comment">//60</font>
+00101 {<font class="stringliteral">"Leviticus"</font>, <font class="stringliteral">"LV"</font>, 3}, <font class="comment">//61</font>
+00102 {<font class="stringliteral">"Luke"</font>, <font class="stringliteral">"LU"</font>, 66}, <font class="comment">//62</font>
+00103 {<font class="stringliteral">"Malachi"</font>, <font class="stringliteral">"MAL"</font>, 39}, <font class="comment">//63</font>
+00104 {<font class="stringliteral">"Prayer of Manasseh"</font>,Abbr:<font class="stringliteral">"MAN"</font>, 53}, <font class="comment">//64</font>
+00105 {<font class="stringliteral">"Mark"</font>, <font class="stringliteral">"MAR"</font>, 65}, <font class="comment">//65</font>
+00106 {<font class="stringliteral">"Matthew"</font>, <font class="stringliteral">"MAT"</font>, 64}, <font class="comment">//66</font>
+00107 {<font class="stringliteral">"Micah"</font>, <font class="stringliteral">"MI"</font>, 33}, <font class="comment">//67</font>
+00108 {<font class="stringliteral">"Nahum"</font>, <font class="stringliteral">"NA"</font>, 34}, <font class="comment">//68</font>
+00109 {<font class="stringliteral">"Nehemiah"</font>, <font class="stringliteral">"NE"</font>, 16}, <font class="comment">//69</font>
+00110 {<font class="stringliteral">"Numbers"</font>, <font class="stringliteral">"NU"</font>, 4}, <font class="comment">//70</font>
+00111 {<font class="stringliteral">"Obadiah"</font>, <font class="stringliteral">"OB"</font>, 31}, <font class="comment">//71</font>
+00112 {<font class="stringliteral">"Psalm 151"</font>, <font class="stringliteral">"P1"</font>, 54}, <font class="comment">//72</font>
+00113 {<font class="stringliteral">"Philemon"</font>, <font class="stringliteral">"PHILE"</font>, 81}, <font class="comment">//73</font>
+00114 {<font class="stringliteral">"Philippians"</font>, <font class="stringliteral">"PHILI"</font>, 74}, <font class="comment">//74</font>
+00115 {<font class="stringliteral">"Philemon"</font>, <font class="stringliteral">"PHM"</font>, 81}, <font class="comment">//75</font>
+00116 {<font class="stringliteral">"Philippians"</font>, <font class="stringliteral">"PHP"</font>, 74}, <font class="comment">//76</font>
+00117 {<font class="stringliteral">"Proverbs"</font>, <font class="stringliteral">"PR"</font>, 20}, <font class="comment">//77</font>
+00118 {<font class="stringliteral">"Psalms"</font>, <font class="stringliteral">"PS"</font>, 19}, <font class="comment">//78</font>
+00119 {<font class="stringliteral">"Revelation"</font>, <font class="stringliteral">"RE"</font>, 90}, <font class="comment">//79</font>
+00120 {<font class="stringliteral">"Romans"</font>, <font class="stringliteral">"RM"</font>, 69}, <font class="comment">//80</font>
+00121 {<font class="stringliteral">"Romans"</font>, <font class="stringliteral">"RO"</font>, 69}, <font class="comment">//81</font>
+00122 {<font class="stringliteral">"Ruth"</font>, <font class="stringliteral">"RU"</font>, 8}, <font class="comment">//82</font>
+00123 {<font class="stringliteral">"Sirach"</font>, <font class="stringliteral">"SI"</font>, 44}, <font class="comment">//83</font>
+00124 {<font class="stringliteral">"Song of Solomon"</font>, <font class="stringliteral">"SOL"</font>, 22}, <font class="comment">//84</font>
+00125 {<font class="stringliteral">"Song of Solomon"</font>, <font class="stringliteral">"SON"</font>, 22}, <font class="comment">//85</font>
+00126 {<font class="stringliteral">"Song of Solomon"</font>, <font class="stringliteral">"SS"</font>, 22}, <font class="comment">//86</font>
+00127 {<font class="stringliteral">"Susanna"</font>, <font class="stringliteral">"SU"</font>, 48}, <font class="comment">//87</font>
+00128 {<font class="stringliteral">"Titus"</font>, <font class="stringliteral">"TI"</font>, 80}, <font class="comment">//88</font>
+00129 {<font class="stringliteral">"Tobit"</font>, <font class="stringliteral">"TO"</font>, 40}, <font class="comment">//89</font>
+00130 {<font class="stringliteral">"Wisdom"</font>, <font class="stringliteral">"WI"</font>, 43}, <font class="comment">//90</font>
+00131 {<font class="stringliteral">"Zechariah"</font>, <font class="stringliteral">"ZEC"</font>, 38}, <font class="comment">//91</font>
+00132 {<font class="stringliteral">"Zephaniah"</font>, <font class="stringliteral">"ZEP"</font>, 36} <font class="comment">//92</font>
+00133 },
+00134
+00135 string BookFileName[91] = {
+00136 <font class="stringliteral">""</font>,<font class="stringliteral">"Genesis"</font>,<font class="stringliteral">"Exodus"</font>,<font class="stringliteral">"Lev"</font>,<font class="stringliteral">"Num"</font>,<font class="stringliteral">"Deut"</font>,<font class="stringliteral">"Joshua"</font>,<font class="stringliteral">"Judges"</font>, <font class="comment">// 0 - 7</font>
+00137 <font class="stringliteral">"Ruth"</font>,<font class="stringliteral">"1Sam"</font>,<font class="stringliteral">"2Sam"</font>,<font class="stringliteral">"1Kings"</font>,<font class="stringliteral">"2Kings"</font>,<font class="stringliteral">"1Chron"</font>,<font class="stringliteral">"2Chron"</font>, <font class="comment">// 8 - 14</font>
+00138 <font class="stringliteral">"Ezra"</font>,<font class="stringliteral">"Nehemiah"</font>,<font class="stringliteral">"Esther"</font>,<font class="stringliteral">"Job"</font>,<font class="stringliteral">"Psalms"</font>,<font class="stringliteral">"Proverbs"</font>, <font class="comment">// 15-20</font>
+00139 <font class="stringliteral">"Eccl"</font>,<font class="stringliteral">"Song"</font>,<font class="stringliteral">"Isaiah"</font>,<font class="stringliteral">"Jeremiah"</font>,<font class="stringliteral">"Lament"</font>,<font class="stringliteral">"Ezekiel"</font>, <font class="comment">// 21-26</font>
+00140 <font class="stringliteral">"Daniel"</font>,<font class="stringliteral">"Hosea"</font>,<font class="stringliteral">"Joel"</font>,<font class="stringliteral">"Amos"</font>,<font class="stringliteral">"Obadiah"</font>,<font class="stringliteral">"Jonah"</font>,<font class="stringliteral">"Micah"</font>, <font class="comment">// 27-33</font>
+00141 <font class="stringliteral">"Nahum"</font>,<font class="stringliteral">"Habakkuk"</font>,<font class="stringliteral">"Zeph"</font>,<font class="stringliteral">"Haggai"</font>,<font class="stringliteral">"Zech"</font>,<font class="stringliteral">"Malachi"</font>, <font class="comment">// 34-39</font>
+00142 <font class="stringliteral">"Tobit"</font>,<font class="stringliteral">"Judith"</font>,<font class="stringliteral">"Esther"</font>,<font class="stringliteral">"Wisdom"</font>,<font class="stringliteral">"Sirach"</font>,<font class="stringliteral">"Baruch"</font>, <font class="comment">// 40-45</font>
+00143 <font class="stringliteral">"Let"</font>,<font class="stringliteral">"Azar"</font>,<font class="stringliteral">"Susanna"</font>,<font class="stringliteral">"Bel"</font>,<font class="stringliteral">"1Mac"</font>,<font class="stringliteral">"2Mac"</font>,<font class="stringliteral">"1Esdras"</font>, <font class="comment">// 46-52</font>
+00144 <font class="stringliteral">"Man"</font>,<font class="stringliteral">"P1"</font>,<font class="stringliteral">"3Mac"</font>,<font class="stringliteral">"2Esdras"</font>,<font class="stringliteral">"4Mac"</font>,<font class="stringliteral">""</font>,<font class="stringliteral">""</font>,<font class="stringliteral">""</font>,<font class="stringliteral">""</font>,<font class="stringliteral">""</font>,<font class="stringliteral">""</font>, <font class="comment">// 53-63</font>
+00145 <font class="stringliteral">"Matthew"</font>,<font class="stringliteral">"Mark"</font>,<font class="stringliteral">"Luke"</font>,<font class="stringliteral">"John"</font>,<font class="stringliteral">"Acts"</font>,<font class="stringliteral">"Romans"</font>,<font class="stringliteral">"1Cor"</font>, <font class="comment">// 64-70</font>
+00146 <font class="stringliteral">"2Cor"</font>,<font class="stringliteral">"Gal"</font>,<font class="stringliteral">"Eph"</font>,<font class="stringliteral">"Philip"</font>,<font class="stringliteral">"Col"</font>,<font class="stringliteral">"1Thes"</font>,<font class="stringliteral">"2Thes"</font>,<font class="stringliteral">"1Tim"</font>, <font class="comment">// 71-78</font>
+00147 <font class="stringliteral">"2Tim"</font>,<font class="stringliteral">"Titus"</font>,<font class="stringliteral">"Philemon"</font>,<font class="stringliteral">"Hebrews"</font>,<font class="stringliteral">"James"</font>,<font class="stringliteral">"1Peter"</font>, <font class="comment">// 79-84</font>
+00148 <font class="stringliteral">"2Peter"</font>,<font class="stringliteral">"1John"</font>,<font class="stringliteral">"2John"</font>,<font class="stringliteral">"3John"</font>,<font class="stringliteral">"Jude"</font>,<font class="stringliteral">"Rev"</font>}; <font class="comment">// 85-90</font>
+00149
+00150 <font class="keyword">class </font>TReadGBF {
+00151 <font class="keyword">private</font>:
+00152 FILE *fp;
+00153 string FName, TokenLine;
+00154 <font class="keywordtype">int</font> TokenPos;
+00155 <font class="keywordtype">bool</font> fFileIsOpen, fParagraphEnd, fInTitle, fInPsalmBookTitle, fInHebrewTitle, fInSectionTitle;
+00156
+00157 <font class="keyword">public</font>:
+00158 string sBook, sChapter, sVerse, sMode;
+00159 string sContext; <font class="comment">// Last text type (header, body, or tail)</font>
+00160 string sTitle; <font class="comment">// Title of this book of the Bible</font>
+00161 string sPsalmBookTitle; <font class="comment">// Title of this Psalm book</font>
+00162 string sHebrewTitle; <font class="comment">// Psalm Hebrew title</font>
+00163 string sSectionTitle; <font class="comment">// Section headings</font>
+00164 string sDate;
+00165 string sFontName;
+00166 <font class="keywordtype">int</font> iTotalWords;
+00167 <font class="keywordtype">char</font> chJustification, chDirection;
+00168 <font class="keywordtype">bool</font> fIndent, fPoetry;
+00169 <font class="keywordtype">int</font> CharAttribs;
+00170 <font class="keywordtype">char</font> bBk, bChap, bVs, bWd;
+00171
+00172 <font class="keywordtype">bool</font> Init(<font class="keyword">const</font> string sFileName);
+00173 <font class="keywordtype">void</font> Done();
+00174 string GetToken(TToken &amp;TokenKind);
+00175 end;
+00176
+00177 <font class="keyword">class </font>TWriteGBF {
+00178 <font class="keyword">private</font>:
+00179 F: TextFile;
+00180 FName, LineOut: string;
+00181 fFileIsOpen: <font class="keywordtype">boolean</font>;
+00182 bBk, bChap, bVs, bWd: byte;
+00183
+00184 <font class="keyword">public</font>
+00185
+00186 function Init(<font class="keyword">const</font> sFileName: string): boolean;
+00187 function Done: <font class="keywordtype">boolean</font>;
+00188 procedure Out(<font class="keyword">const</font> s: string);
+00189 end;
+00190
+00191 function isletter(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): boolean;
+00192 function isinword(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): boolean;
+00193 function IsDigit(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): Boolean;
+00194 function IsUpper(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): Boolean;
+00195 function ConformCase(<font class="keyword">const</font> sPat, sSrc: string): string;
+00196 function BookNameToNumber(<font class="keyword">const</font> sBookName: string): byte;
+00197
+00198 implementation
+00199
+00200 function isletter(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): boolean;
+00201 begin
+00202 <font class="keywordflow">case</font> ch of
+00203 <font class="charliteral">'A'</font>..<font class="charliteral">'Z'</font>: isletter := <font class="keyword">true</font>;
+00204 <font class="charliteral">'a'</font>..<font class="charliteral">'z'</font>: isletter := <font class="keyword">true</font>;
+00205 <font class="keywordflow">else</font>
+00206 isletter := <font class="keyword">false</font>;
+00207 end;
+00208 end;
+00209
+00210 function isinword(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): boolean;
+00211 begin
+00212 <font class="keywordflow">case</font> ch of
+00213 <font class="charliteral">'-'</font>: isinword := <font class="keyword">true</font>;
+00214 <font class="charliteral">'A'</font>..<font class="charliteral">'Z'</font>: isinword := <font class="keyword">true</font>;
+00215 <font class="charliteral">'a'</font>..<font class="charliteral">'z'</font>: isinword := <font class="keyword">true</font>;
+00216 <font class="keywordflow">else</font>
+00217 isinword := <font class="keyword">false</font>;
+00218 end;
+00219 end;
+00220
+00221 function IsUpper(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): Boolean;
+00222 begin
+00223 <font class="keywordflow">case</font> ch of
+00224 <font class="charliteral">'A'</font>..<font class="charliteral">'Z'</font>: IsUpper := <font class="keyword">true</font>;
+00225 <font class="keywordflow">else</font>
+00226 IsUpper := <font class="keyword">false</font>;
+00227 end;
+00228 end;
+00229
+00230 function IsDigit(<font class="keyword">const</font> ch: <font class="keywordtype">char</font>): Boolean;
+00231 begin
+00232 <font class="keywordflow">case</font> ch of
+00233 <font class="charliteral">'0'</font>..<font class="charliteral">'9'</font>: IsDigit := <font class="keyword">true</font>;
+00234 <font class="keywordflow">else</font>
+00235 IsDigit := <font class="keyword">false</font>;
+00236 end;
+00237 end;
+00238
+00239
+00240 function MatchAbbrev(<font class="keyword">const</font> sName, sAbbrev: string): boolean;
+00241 var i: integer;
+00242 begin
+00243 <font class="keywordflow">if</font> Length(sName) &lt; Length(sAbbrev) then
+00244 Result := <font class="keyword">false</font>
+00245 <font class="keywordflow">else</font>
+00246 Result := <font class="keyword">true</font>;
+00247 i := 1;
+00248 <font class="keywordflow">while</font> (i &lt;= Length(sAbbrev)) and Result <font class="keywordflow">do</font>
+00249 begin
+00250 <font class="keywordflow">if</font> UpCase(sName[i]) &lt;&gt; sAbbrev[i] then
+00251 Result := <font class="keyword">false</font>;
+00252 inc(i);
+00253 end;
+00254 end;
+00255
+00256 function BookNameToNumber(<font class="keyword">const</font> sBookName: string): byte;
+00257 var i: integer;
+00258 begin
+00259 Result := 0;
+00260 <font class="keywordflow">try</font>
+00261 <font class="keywordflow">if</font> IsDigit(sBookName[Length(sBookName)]) and IsDigit(sBookName[1]) then
+00262 Result := StrToInt(sBookName);
+00263 except
+00264 Result := 0;
+00265 end;
+00266 i := 0;
+00267 <font class="keywordflow">while</font> (Result = 0) and (i &lt;= 115) <font class="keywordflow">do</font> <font class="comment">// Yuk! Linear search.</font>
+00268 begin
+00269 <font class="keywordflow">if</font> MatchAbbrev(sBookName,BookAbbr[i].Abbr) then
+00270 begin
+00271 Result := BookAbbr[i].Num;
+00272 end;
+00273 inc(i);
+00274 end;
+00275 end;
+00276
+00277 function BookNumberToName(<font class="keyword">const</font> bBookNum: byte): string;
+00278 begin
+00279 <font class="keywordflow">if</font> bBookNum &lt;= 115 then
+00280 Result := BookAbbr[bBookNum].Name
+00281 <font class="keywordflow">else</font>
+00282 Result := '';
+00283 end;
+00284
+00285 function ConformCase(<font class="keyword">const</font> sPat, sSrc: string): string;
+00286 var i: integer;
+00287 begin
+00288 Result := sSrc;
+00289 <font class="keywordflow">if</font> (Length(sPat) &gt; 0) and (Length(sSrc) &gt; 0) then
+00290 begin
+00291 Result := LowerCase(sSrc);
+00292 <font class="keywordflow">if</font> IsUpper(sPat[1]) then
+00293 Result[1] := UpCase(Result[1]);
+00294 <font class="keywordflow">if</font> (Length(sPat) &gt; 1) and (Length(sSrc) &gt; 1) then
+00295 begin
+00296 <font class="keywordflow">if</font> IsUpper(sPat[2]) then
+00297 begin
+00298 <font class="keywordflow">for</font> i := 2 to Length(Result) <font class="keywordflow">do</font>
+00299 Result[i] := UpCase(Result[i]);
+00300 end;
+00301 end;
+00302 end;
+00303 end;
+00304
+00305 function TReadGBF.Init(<font class="keyword">const</font> sFileName: string): boolean;
+00306 var s: string;
+00307 tok: TToken;
+00308 begin
+00309 <font class="keywordflow">try</font>
+00310 fParagraphEnd := <font class="keyword">false</font>;
+00311 bBk := 0;
+00312 bChap := 0;
+00313 bVs := 0;
+00314 bWd := 0;
+00315 iTotalWords := 0;
+00316 FName := sFileName;
+00317 Assign(F, FName);
+00318 reset(F);
+00319 readln(F, TokenLine);
+00320 TokenPos := 1;
+00321 fFileIsOpen := <font class="keyword">true</font>;
+00322 repeat
+00323 s := GetToken(tok)
+00324 until (tok = tokEOF) or ((tok = tokHeader) and (s[3] = <font class="charliteral">'0'</font>));
+00325 Init := <font class="keyword">true</font>;
+00326 except
+00327 Init := <font class="keyword">false</font>;
+00328 fFileIsOpen := <font class="keyword">false</font>;
+00329 end
+00330 end;
+00331
+00332 procedure TReadGBF.Done;
+00333 begin
+00334 <font class="keywordflow">if</font> fFileIsOpen then
+00335 begin
+00336 closefile(F);
+00337 fFileIsOpen := <font class="keyword">false</font>;
+00338 end;
+00339 end;
+00340
+00341 function TReadGBF.GetToken(var TokenKind: TToken): string;
+00342 var m: integer;
+00343 begin
+00344 Result := '';
+00345 TokenKind := tokNull;
+00346 <font class="keywordflow">if</font> TokenPos = 0 then
+00347 begin
+00348 <font class="keywordflow">if</font> (not fFileIsOpen) or EOF(F) then
+00349 TokenKind := tokEOF
+00350 <font class="keywordflow">else</font>
+00351 begin
+00352 ReadLn(F,TokenLine);
+00353 TokenPos := 1;
+00354 end;
+00355 end;
+00356 <font class="keywordflow">if</font> TokenKind &lt;&gt; tokEOF then
+00357 begin
+00358 m := Length(TokenLine);
+00359 <font class="keywordflow">if</font> TokenPos &gt; m then
+00360 begin
+00361 TokenKind := tokSpace;
+00362 <font class="keywordflow">if</font> fParagraphEnd then
+00363 fParagraphEnd := <font class="keyword">false</font>
+00364 <font class="keywordflow">else</font>
+00365 Result := <font class="charliteral">' '</font>;
+00366 TokenPos := 0;
+00367 end
+00368 <font class="keywordflow">else</font>
+00369 begin
+00370 <font class="keywordflow">if</font> (TokenLine[TokenPos] = <font class="charliteral">'&lt;'</font>) then
+00371 begin
+00372 fParagraphEnd := <font class="keyword">false</font>;
+00373 repeat
+00374 Result := Result + TokenLine[TokenPos];
+00375 inc(TokenPos);
+00376 until (TokenLine[TokenPos] = <font class="charliteral">'&gt;'</font>) or (TokenPos &gt; m);
+00377 Result := Result + <font class="charliteral">'&gt;'</font>;
+00378 inc(TokenPos);
+00379 <font class="keywordflow">case</font> result[2] of
+00380 <font class="charliteral">'B'</font>: begin <font class="comment">// File body text type</font>
+00381 TokenKind := tokContent;
+00382 sContext := Result;
+00383 end;
+00384 <font class="charliteral">'C'</font>: begin <font class="comment">// Special characters</font>
+00385 TokenKind := tokControl;
+00386 <font class="keywordflow">if</font> (Result[3] = <font class="charliteral">'M'</font>) or (Result[3] = <font class="charliteral">'L'</font>) then
+00387 fParagraphEnd := <font class="keyword">true</font>;
+00388 end;
+00389 <font class="charliteral">'D'</font>: begin <font class="comment">// Direction</font>
+00390 TokenKind := tokControl;
+00391 chDirection := Result[3];
+00392 end;
+00393 <font class="charliteral">'H'</font>: begin
+00394 TokenKind := tokHeader;
+00395 sContext := Result;
+00396 end;
+00397 <font class="charliteral">'F'</font>: begin <font class="comment">// Font attributes</font>
+00398 TokenKind := tokFont;
+00399 <font class="keywordflow">case</font> Result[3] of
+00400 <font class="charliteral">'B'</font>: CharAttribs := CharAttribs + [caBold];
+00401 <font class="charliteral">'C'</font>: CharAttribs := CharAttribs + [caSmallCaps];
+00402 <font class="charliteral">'I'</font>: CharAttribs := CharAttribs + [caItalic];
+00403 <font class="charliteral">'N'</font>: sFontName := copy(Result,4,Length(Result)-4);
+00404 <font class="charliteral">'O'</font>: CharAttribs := CharAttribs + [caOTQuote];
+00405 <font class="charliteral">'R'</font>: CharAttribs := CharAttribs + [caRed];
+00406 <font class="charliteral">'S'</font>: CharAttribs := CharAttribs + [caSuperscript];
+00407 <font class="charliteral">'U'</font>: CharAttribs := CharAttribs + [caUnderline];
+00408 <font class="charliteral">'V'</font>: CharAttribs := CharAttribs + [caSubscript];
+00409 <font class="charliteral">'b'</font>: CharAttribs := CharAttribs - [caBold];
+00410 <font class="charliteral">'c'</font>: CharAttribs := CharAttribs - [caSmallCaps];
+00411 <font class="charliteral">'i'</font>: CharAttribs := CharAttribs - [caItalic];
+00412 <font class="charliteral">'n'</font>: sFontName := '';
+00413 <font class="charliteral">'o'</font>: CharAttribs := CharAttribs - [caOTQuote];
+00414 <font class="charliteral">'r'</font>: CharAttribs := CharAttribs - [caRed];
+00415 <font class="charliteral">'s'</font>: CharAttribs := CharAttribs - [caSuperscript];
+00416 <font class="charliteral">'u'</font>: CharAttribs := CharAttribs - [caUnderline];
+00417 <font class="charliteral">'v'</font>: CharAttribs := CharAttribs - [caSubscript];
+00418
+00419 end;
+00420 end;
+00421 <font class="charliteral">'J'</font>: begin <font class="comment">// Justification</font>
+00422 TokenKind := tokStyle;
+00423 chJustification := Result[3];
+00424 end;
+00425 <font class="charliteral">'P'</font>: begin <font class="comment">// Poetry/prose, indent</font>
+00426 TokenKind := tokControl;
+00427 <font class="keywordflow">case</font> Result[3] of
+00428 <font class="charliteral">'I'</font>: fIndent := <font class="keyword">true</font>;
+00429 <font class="charliteral">'P'</font>: fPoetry := <font class="keyword">true</font>;
+00430 <font class="charliteral">'i'</font>: fIndent := <font class="keyword">false</font>;
+00431 <font class="charliteral">'p'</font>: fPoetry := <font class="keyword">false</font>;
+00432 end;
+00433 end;
+00434 <font class="charliteral">'R'</font>: begin <font class="comment">// References and footnotes</font>
+00435 TokenKind := tokControl;
+00436 end;
+00437 <font class="charliteral">'S'</font>: begin <font class="comment">// sync mark</font>
+00438 TokenKind := TokSync;
+00439 <font class="keywordflow">case</font> Result[3] of
+00440 <font class="charliteral">'B'</font>: begin <font class="comment">// Book</font>
+00441 sBook := system.copy(Result, 4, length(Result)-4);
+00442 sPsalmBookTitle := '';
+00443 <font class="keywordflow">if</font> sBook = '' then
+00444 begin
+00445 inc(bBk);
+00446 sBook := BookNumberToName(bBk);
+00447 end
+00448 <font class="keywordflow">else</font>
+00449 bBk := BookNameToNumber(sBook);
+00450 sTitle := sBook;
+00451 end;
+00452 <font class="charliteral">'C'</font>: begin <font class="comment">//chapter</font>
+00453 sChapter := system.copy(Result, 4, length(Result)-4);
+00454 <font class="keywordflow">if</font> sChapter = '' then
+00455 begin
+00456 inc(bChap);
+00457 sChapter := IntToStr(bChap);
+00458 end
+00459 <font class="keywordflow">else</font>
+00460 begin
+00461 <font class="keywordflow">try</font>
+00462 bChap := StrToInt(sChapter);
+00463 except
+00464 showmessage('Non-numeric chapter: '+sBook+<font class="charliteral">' '</font>+sChapter);
+00465 end;
+00466 end;
+00467 sHebrewTitle := '';
+00468 end;
+00469 <font class="charliteral">'V'</font>: begin <font class="comment">// Verse</font>
+00470 bWd := 0;
+00471 sVerse := system.copy(Result, 4, length(Result)-4);
+00472 <font class="keywordflow">if</font> sVerse = '' then
+00473 begin
+00474 inc(bVs);
+00475 sVerse := IntToStr(bVs);
+00476 end
+00477 <font class="keywordflow">else</font>
+00478 begin
+00479 <font class="keywordflow">try</font>
+00480 bVs := StrToInt(sVerse);
+00481 except
+00482 showmessage('Non-numeric verse: '+sBook+<font class="charliteral">' '</font>+sChapter+<font class="charliteral">':'</font>+sVerse);
+00483 end;
+00484 end;
+00485 end;
+00486 <font class="charliteral">'D'</font>: begin <font class="comment">// Date</font>
+00487 sDate := system.copy(Result, 3, length(Result)-4);
+00488 end;
+00489 end;
+00490 end;
+00491 <font class="charliteral">'T'</font>: begin <font class="comment">// Titles</font>
+00492 TokenKind := TokContent;
+00493 <font class="keywordflow">case</font> Result[3] of
+00494 <font class="charliteral">'B'</font>:
+00495 begin
+00496 sPsalmBookTitle := '';
+00497 fInPsalmBookTitle := <font class="keyword">true</font>;
+00498 end;
+00499 <font class="charliteral">'b'</font>: fInPsalmBookTitle := <font class="keyword">true</font>;
+00500 <font class="charliteral">'H'</font>:
+00501 begin
+00502 sHebrewTitle := '';
+00503 fInHebrewTitle := <font class="keyword">true</font>;
+00504 end;
+00505 <font class="charliteral">'h'</font>: fInHebrewTitle := <font class="keyword">false</font>;
+00506 <font class="charliteral">'S'</font>:
+00507 begin
+00508 sSectionTitle := '';
+00509 fInSectionTitle := <font class="keyword">true</font>;
+00510 end;
+00511 <font class="charliteral">'s'</font>: fInSectionTitle := <font class="keyword">false</font>;
+00512 <font class="charliteral">'T'</font>:
+00513 begin
+00514 sTitle := '';
+00515 fInTitle := <font class="keyword">true</font>;
+00516 end;
+00517 <font class="charliteral">'t'</font>: fInTitle := <font class="keyword">false</font>;
+00518 end;
+00519 end;
+00520 <font class="charliteral">'Z'</font>: begin <font class="comment">// File tail</font>
+00521 TokenKind := tokTail;
+00522 sContext := Result;
+00523 <font class="keywordflow">if</font> Result[3] = <font class="charliteral">'Z'</font> then
+00524 done;
+00525 end;
+00526 <font class="keywordflow">else</font>
+00527 TokenKind := TokControl;
+00528
+00529 end;
+00530 end
+00531 <font class="keywordflow">else</font> <font class="keywordflow">if</font> isletter(TokenLine[TokenPos]) then
+00532 begin {Word}
+00533 fParagraphEnd := <font class="keyword">false</font>;
+00534 TokenKind := tokWord;
+00535 repeat
+00536 Result := Result + TokenLine[TokenPos];
+00537 inc(TokenPos);
+00538 until (TokenPos &gt; m) or (not isinword(TokenLine[TokenPos]));
+00539 inc(bWd);
+00540 inc(iTotalWords);
+00541 end
+00542 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((TokenLine[TokenPos] = <font class="charliteral">' '</font>) or (TokenLine[TokenPos] = #9)) then
+00543 begin
+00544 fParagraphEnd := <font class="keyword">false</font>;
+00545 TokenKind := tokSpace;
+00546 Result := Result + TokenLine[TokenPos];
+00547 inc(TokenPos);
+00548 end
+00549 <font class="keywordflow">else</font>
+00550 begin
+00551 fParagraphEnd := <font class="keyword">false</font>;
+00552 TokenKind := tokChar;
+00553 Result := Result + TokenLine[TokenPos];
+00554 inc(TokenPos);
+00555 end
+00556 end;
+00557 end;
+00558 <font class="keywordflow">if</font> ((TokenKind = tokWord) or (TokenKind = tokSpace) or
+00559 (TokenKind = tokChar)) then
+00560 begin
+00561 <font class="keywordflow">if</font> fInTitle then
+00562 sTitle := sTitle + Result
+00563 <font class="keywordflow">else</font> <font class="keywordflow">if</font> fInPsalmBookTitle then
+00564 sPsalmBookTitle := sPsalmBookTitle + Result
+00565 <font class="keywordflow">else</font> <font class="keywordflow">if</font> fInHebrewTitle then
+00566 sHebrewTitle := sHebrewTitle + Result
+00567 <font class="keywordflow">else</font> <font class="keywordflow">if</font> fInSectionTitle then
+00568 sSectionTitle := sSectionTitle + Result;
+00569 end;
+00570 end;
+00571
+00572 function TWriteGBF.Init(<font class="keyword">const</font> sFileName: string): boolean;
+00573 begin
+00574 <font class="keywordflow">try</font>
+00575 bBk := 0;
+00576 bChap := 0;
+00577 bVs := 0;
+00578 bWd := 0;
+00579 LineOut := '';
+00580 FName := sFileName;
+00581 Assign(F, FName);
+00582 filemode := 1;
+00583 rewrite(F);
+00584 fFileIsOpen := <font class="keyword">true</font>;
+00585 Init := <font class="keyword">true</font>;
+00586 except
+00587 Init := <font class="keyword">false</font>;
+00588 fFileIsOpen := <font class="keyword">false</font>;
+00589 end
+00590 end;
+00591
+00592 function TWriteGBF.Done: <font class="keywordtype">boolean</font>;
+00593 begin
+00594 <font class="keywordflow">try</font>
+00595 <font class="keywordflow">if</font> fFileIsOpen then
+00596 begin
+00597 <font class="keywordflow">if</font> LineOut &lt;&gt; '' then
+00598 begin
+00599 WriteLn(F, LineOut);
+00600 LineOut := '';
+00601 end;
+00602 CloseFile(F);
+00603 end;
+00604 Done := <font class="keyword">true</font>;
+00605 except
+00606 Done := <font class="keyword">false</font>;
+00607 end;
+00608 end;
+00609
+00610 procedure TWriteGBF.Out(<font class="keyword">const</font> s: string);
+00611 var sPrint, sSave, sBook, sChapter, sVerse: string;
+00612 i: integer;
+00613 b: byte;
+00614 begin
+00615 <font class="keywordflow">if</font> (Length(s) &gt; 0) and IsLetter(s[1]) then
+00616 begin
+00617 inc(bWd);
+00618 LineOut := LineOut + s;
+00619 end
+00620 <font class="keywordflow">else</font> <font class="keywordflow">if</font> Length(s) &gt; 3 then
+00621 begin
+00622 <font class="keywordflow">if</font> (s[1] = <font class="charliteral">'&lt;'</font>) and (s[2] = <font class="charliteral">'S'</font>) then
+00623 begin
+00624 <font class="keywordflow">case</font> s[3] of
+00625 <font class="charliteral">'B'</font>: begin <font class="comment">// Book</font>
+00626 sBook := system.copy(s, 4, length(s)-4);
+00627 <font class="keywordflow">if</font> sBook = '' then
+00628 begin
+00629 inc(bBk);
+00630 LineOut := LineOut + s;
+00631 end
+00632 <font class="keywordflow">else</font>
+00633 begin
+00634 b := bBk;
+00635 bBk := BookNameToNumber(sBook);
+00636 <font class="keywordflow">if</font> b &lt;&gt; bBk then
+00637 LineOut := LineOut + s;
+00638 end;
+00639 end;
+00640 <font class="charliteral">'C'</font>: begin <font class="comment">//chapter</font>
+00641 sChapter := system.copy(s, 4, length(s)-4);
+00642 <font class="keywordflow">if</font> sChapter = '' then
+00643 begin
+00644 inc(bChap);
+00645 LineOut := LineOut + s;
+00646 end
+00647 <font class="keywordflow">else</font>
+00648 begin
+00649 <font class="keywordflow">try</font>
+00650 <font class="comment">// b := bChap;</font>
+00651 bChap := StrToInt(sChapter);
+00652 <font class="comment">// if b &lt;&gt; bChap then</font>
+00653 LineOut := LineOut + s;
+00654 except
+00655 showmessage('Non-numeric chapter: '+sBook+<font class="charliteral">' '</font>+sChapter);
+00656 end;
+00657 end;
+00658 end;
+00659 <font class="charliteral">'V'</font>: begin <font class="comment">// Verse</font>
+00660 bWd := 0;
+00661 sVerse := system.copy(s, 4, length(s)-4);
+00662 <font class="keywordflow">if</font> sVerse = '' then
+00663 begin
+00664 inc(bVs);
+00665 LineOut := LineOut + s;
+00666 end
+00667 <font class="keywordflow">else</font>
+00668 begin
+00669 <font class="keywordflow">try</font>
+00670 <font class="comment">// b := bVs;</font>
+00671 bVs := StrToInt(sVerse);
+00672 <font class="comment">// if b &lt;&gt; bVs then</font>
+00673 LineOut := LineOut + s;
+00674 except
+00675 showmessage('Non-numeric verse: '+sBook+<font class="charliteral">' '</font>+sChapter+<font class="charliteral">':'</font>+sVerse);
+00676 end;
+00677 end;
+00678 end;
+00679 <font class="keywordflow">else</font>
+00680 LineOut := LineOut + s;
+00681 end
+00682 end
+00683 <font class="keywordflow">else</font>
+00684 LineOut := LineOut + s; <font class="comment">// Not a sync mark</font>
+00685 end
+00686 <font class="keywordflow">else</font> <font class="comment">// other token, space, or punctuation</font>
+00687 LineOut := LineOut + s; <font class="comment">// Length &lt;= 3</font>
+00688 <font class="keywordflow">if</font> ((s = '&lt;CM&gt;') or (s = '&lt;CL&gt;')) then
+00689 begin
+00690 <font class="keywordflow">if</font> (Length(LineOut) &gt; 78) then
+00691 begin
+00692 i := 78;
+00693 <font class="keywordflow">while</font> (i &gt; 0) and (LineOut[i] &lt;&gt; <font class="charliteral">' '</font>) <font class="keywordflow">do</font>
+00694 dec(i);
+00695 <font class="keywordflow">if</font> i &lt; 1 then
+00696 begin
+00697 WriteLn(F,LineOut);
+00698 LineOut := '';
+00699 end
+00700 <font class="keywordflow">else</font>
+00701 begin
+00702 sPrint := system.copy(LineOut,1,i-1);
+00703 sSave := system.copy(LineOut,i+1,Length(LineOut)-i);
+00704 WriteLn(F,sPrint);
+00705 WriteLn(F, sSave);
+00706 LineOut := '';
+00707 end
+00708 end
+00709 <font class="keywordflow">else</font>
+00710 begin
+00711 WriteLn(F, LineOut);
+00712 LineOut := '';
+00713 end
+00714 end
+00715 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (Length(LineOut) &gt; 78) then
+00716 begin
+00717 i := 78;
+00718 <font class="keywordflow">while</font> (i &gt; 0) and (LineOut[i] &lt;&gt; <font class="charliteral">' '</font>) <font class="keywordflow">do</font>
+00719 dec(i);
+00720 <font class="keywordflow">if</font> i &lt; 1 then
+00721 begin
+00722 WriteLn(F,LineOut);
+00723 LineOut := '';
+00724 end
+00725 <font class="keywordflow">else</font>
+00726 begin
+00727 sPrint := system.copy(LineOut,1,i-1);
+00728 sSave := system.copy(LineOut,i+1,Length(LineOut)-i);
+00729 WriteLn(F,sPrint);
+00730 LineOut := sSave;
+00731 end
+00732 end
+00733 end;
+00734
+00735 end.
+</pre></div><hr><address align="right"><small>Generated on Thu Jun 20 22:12:59 2002 for The Sword Project by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0
+width=110 height=53></a>1.2.15 </small></address>
+</body>
+</html>