FYI, there is a tool called makedict can be used to create the binary format.
On Mon, Mar 22, 2010 at 2:00 PM, a a <harvey.a...@gmail.com> wrote: > i'm sorry, there is get child count after get the child address. > so it seam good. > > 2010/3/22 a a <harvey.a...@gmail.com>: >> Dear All, >> I met a big difficiult problem, i have researched more then 5 >> day's. Of course i read the LatinIME's algorithm for the suggestion. >> It following like that >> >> getSuggestions-->getWordsRec, and getWordsRec invoke itself when it >> have a child. So the key algorithm is where is it's child.And it is: >> intDictionary::getAddress(int *pos) // the pos is a father node >> { >> int address = 0; >> if ((mDict[*pos] & FLAG_ADDRESS_MASK) == 0) { //// The bit that >> decides if an address follows in the next 22 bits >> >> // #define FLAG_ADDRESS_MASK 0x40 >> >> // 22-bit address = ~4MB dictionary size >> limit, which on average would be about 200k-300k words >> >> *pos += 1; // so it looks never go into this branch when the >> dictionay is less then 4MB, and my dictionary is only 500KB >> } else { >> address += (mDict[*pos] & (ADDRESS_MASK >> 16)) << 16; // >> address += (mDict[*pos + 1] & 0xFF) << 8; >> // >> address += (mDict[*pos + 2] & 0xFF); >> // >> *pos += 3; >> } >> return address; //the address is child node's >> } >> For example, we typed "as", the first node is find the "a" at the root >> layler, and then find "s" on the "a" child. >> Anyone can tell me what's the getAddress() meanings? i really can't >> understand it well. My question is why >> the child address is always : >> >> address += (mDict[*pos] & (ADDRESS_MASK >> 16)) << 16; // >> address += (mDict[*pos + 1] & 0xFF) << 8; >> // >> address += (mDict[*pos + 2] & 0xFF); >> // >> >> If the "a" have more then two child, it will only get one child, >> because it always get it's child address like above. >> > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > > To unsubscribe from this group, send email to > android-developers+unsubscribegooglegroups.com or reply to this email with > the words "REMOVE ME" as the subject. > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe from this group, send email to android-developers+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.