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.

Reply via email to