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 -~----------~----~----~----~------~----~------~--~---