Troy, >From: "Troy A. Griffitts" <[EMAIL PROTECTED]> >Reply-To: SWORD Developers' Collaboration Forum <sword-devel@crosswire.org> >To: SWORD Developers' Collaboration Forum <sword-devel@crosswire.org> >Subject: Re: [sword-devel] How do you select verses from a range? >Date: Fri, 15 Dec 2006 04:42:38 -0700 > >Jari, > The way multiple verses are rendered for the user is up to the client >software, not the engine. You can decide if you show verse number, >verse headings, etc. >
Do you mean that one way would be how you displayed the text for the console/terminal using cout << ? That much I do know but thank you for being clear! > Having said this, there is a Displayer concept in the engine which >allows you customize they way you want your output to display, associate >this with a book, then book->setKey(...), then book->Display(); I don't >have time to write an example for you right now, but if you still have >trouble in a few days (when the semester is over), I would be happy to >help you. In the mean time, see SWDisp. And for an example you can see >some of the other frontends, how they implement different types of >displayers. Here is the Chapter displayer for BibleCS, which, >accordingly displays an entire chapter and highlights the current verse: > >http://crosswire.org/svn/biblecs/trunk/swdisprtfchap.cpp > At the first glance it looks quite compilated. My current solution is like this: const char * BibleObject::getVerse(const char *keyStr) { ListKey result; VerseKey parserKey; result = parserKey.ParseVerseList(keyStr, parserKey, true); result.Persist(true); mBible->SetKey(result); char* returnBuffer = Con::getReturnBuffer(2024); *returnBuffer = 0; U32 numCharsInBuffer = 0; for(*mBible = TOP; !mBible->Error(); (*mBible)++) { const char *ns = mBible->StripText(); U32 strLength = dStrlen(ns); if(numCharsInBuffer + strLength >= 2024) { // Verse string was too long and was truncated break; } dStrcat(returnBuffer,ns); numCharsInBuffer += strLength; } return returnBuffer; } As you can see the result's length is limited. But of course I could and should use something like std::string and return that but I just wanted to make this in the right way. >Hope this helps. Glad you're making progress. > It sure does! Thanks. It's alright if I can't get a perfect solution for this now that I do have a code that works. May God bless you too Troy. Jari. > Blessings! > -Troy. > > > >Jari Strand wrote: > > Troy, > > thank you for the example, I was finally able to test it and it works >good. > > > > But I have one problem, you see when I used to select only one verse I >could > > return the string that was returned from RenderText() or StripText() but >now > > that you have to loop in the end in order to get all the strings you >can't > > just simply return the results from a function. So is there some other >way > > for this so that I don't have to create a return buffer my self? > > Maybe the loop isn't required if you select verse from a one range and >not > > from two or more like in the example? > > > > Thanks. > > > > > > Jari. > > > >> From: "Troy A. Griffitts" <[EMAIL PROTECTED]> > >> Reply-To: SWORD Developers' Collaboration Forum ><sword-devel@crosswire.org> > >> To: SWORD Developers' Collaboration Forum <sword-devel@crosswire.org> > >> Subject: Re: [sword-devel] How do you select verses from a range? > >> Date: Sun, 10 Dec 2006 13:58:47 -0700 > >> > >> Jari, > >> I've added a new example for you: > >> > >> >http://crosswire.org/svn/sword/trunk/examples/cmdline/verserangeparse.cpp > >> > >> Please let me know if this does not answer your question. > >> > >> -Troy. > >> > >> > >> > >> Jari Strand wrote: > >>> Hi, is there example showing how to select verses within a range? i > >> think > >>> there was some example but I cannot find it anymore. > >>> > >>> I only know how to select one verse using setKey("Mat 2:10"); > >>> > >>> Thanks! > >>> > >>> _________________________________________________________________ > >>> FREE pop-up blocking with the new MSN Toolbar - get it now! > >>> http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/ > >>> > >>> > >>> _______________________________________________ > >>> sword-devel mailing list: sword-devel@crosswire.org > >>> http://www.crosswire.org/mailman/listinfo/sword-devel > >>> Instructions to unsubscribe/change your settings at above page > >> > >> _______________________________________________ > >> sword-devel mailing list: sword-devel@crosswire.org > >> http://www.crosswire.org/mailman/listinfo/sword-devel > >> Instructions to unsubscribe/change your settings at above page > > > > _________________________________________________________________ > > Express yourself instantly with MSN Messenger! Download today it's FREE! > > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ > > > > > > _______________________________________________ > > sword-devel mailing list: sword-devel@crosswire.org > > http://www.crosswire.org/mailman/listinfo/sword-devel > > Instructions to unsubscribe/change your settings at above page > > >_______________________________________________ >sword-devel mailing list: sword-devel@crosswire.org >http://www.crosswire.org/mailman/listinfo/sword-devel >Instructions to unsubscribe/change your settings at above page _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ _______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page