Hey,

In addition to what Mark said you might want to look at using a trie.

http://groups.google.com/group/android-developers/browse_thread/thread/e7857f4eaf2856fd/ff84d0a6bf64da83?lnk=gst&q=trie#ff84d0a6bf64da83

A few of the other developers seem to be using this technique.

Gav


On Wed, Jun 10, 2009 at 2:27 PM, kaloer <mkal...@gmail.com> wrote:

>
> I think you are right. I'll look at it,
> Thank you very much
>
> //Kaloer
>
> On 2 Jun., 13:05, kaloer <mkal...@gmail.com> wrote:
> > Btw, this is how the app works:
> >
> > There is a text view and a button. The user will enter a single word,
> > and when he presses the button, the application checks whether this is
> > actually a real word.
> >
> > On 2 Jun., 09:27, kaloer <mkal...@gmail.com> wrote:
> >
> > > It is a list of english words, that shall be used as a spell checker.
> > > I have tried to use a txt file and put the data to a List, but this is
> > > too slow because it needs to read all the data. But Maybe I should
> > > create a table in the database for each letter (and every second, if
> > > necessary) , so that it doesn't need to read all the data.
> >
> > > On 1 Jun., 18:28, Raphael <r...@android.com> wrote:
> >
> > > > This begs to a different kind of question: do you really need to
> store
> > > > this data in an sqlite3 database?
> >
> > > > There are other alternatives, it all depends on your data and how you
> > > > want to use it so you might want to help us here.
> >
> > > > Example: you mention "words", just not any string, so your data might
> > > > be a dictionary.
> > > > Then in this case you could simply use a binary file, in your own
> > > > format, packaged in your project/res/raw directory, which you can
> > > > retrieve withhttp://
> d.android.com/reference/android/content/res/Resources.html#ope...)
> > > > -- the file is added uncompressed to your APK but the APK itself is a
> > > > zip file, which is why you get an input stream. That also means if
> you
> > > > need direct random access you'll probably want to write it somewhere,
> > > > such as on the sdcard.
> > > > Make sure to write an index for fast lookup, for example the offset
> of
> > > > words starting by A, by B, etc. You will probably need to experiment
> a
> > > > bit to get a tradeof between simplicity of the index and lookup time,
> > > > e.g. a tree will have faster lookup times but is more tricky to get
> > > > right, etc.
> >
> > > > R/
> >
> > > > On Sun, May 31, 2009 at 6:11 AM, kaloer <mkal...@gmail.com> wrote:
> >
> > > > > Okay, I'll look at it..
> > > > > Thank you very much for your help
> >
> > > > > On 31 Maj, 14:59, Mark Murphy <mmur...@commonsware.com> wrote:
> > > > >> kaloer wrote:
> > > > >> > Well, of course I shouldn't. This only adds one line when it's
> called.
> > > > >> > Should I call it before the while-loop begins?
> >
> > > > >> You're right -- I skimmed it too quickly.
> >
> > > > >> It's actually a bit more complicated than that. The flow is:
> >
> > > > >> begin-transaction
> > > > >> insert 100 rows worth of stuff
> > > > >> set-transaction-successful
> >
> > > > >> and do that whole block 1000 times for 100,000 words.
> >
> > > > >> So you're probably going to wind up with something like:
> >
> > > > >> while ((line=input.readLine())!=null) {
> > > > >>     DB.beginTransaction();
> > > > >>     DB.execSQL(...);
> >
> > > > >>     for (int i=0;i<99 && (line=input.readLine())!=null; i++) {
> > > > >>         DB.execSQL(...);
> > > > >>     }
> >
> > > > >>     DB.setTransactionSuccessful();
> >
> > > > >> }
> >
> > > > >> plus an appropriate try/catch in there.
> >
> > > > >> However, bear in mind that this will still take a very long time,
> so
> > > > >> unless you're trying this for educational purposes, I'd move along
> to
> > > > >> one of the other options.
> >
> > > > >> --
> > > > >> Mark Murphy (a Commons Guy)http://commonsware.com|
> http://twitter.com/commonsguy
> >
> > > > >> _The Busy Coder's Guide to Android Development_ Version 2.0
> Available!
> >
> >
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to android-beginners@googlegroups.com
To unsubscribe from this group, send email to
android-beginners-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to