コード例 #1
0
        /////////////////////////////////////////////////////////////////////////////////////////////////////
        /// private functions
        ///
        private void ReadLinkDatabaseXml(string filePath)
        {
            XmlDocument xml = new XmlDocument();

            xml.Load(filePath);
            XmlNode root = xml.DocumentElement;

            foreach (XmlNode node in root.ChildNodes)
            {
                int countChildern = node.ChildNodes.Count;

                TransElem te = new TransElem();
                te.enUri = node["enUri"].InnerText;
                te.deUri = node["deUri"].InnerText;

                foreach (XmlNode textPairNode in node.ChildNodes)
                {
                    // skip the two uri nodes
                    if (textPairNode.Name != "Trans")
                    {
                        continue;
                    }

                    // every textPairNode is expected to have exactly
                    // two children en and de
                    TransPair tp = new TransPair();
                    tp.en = NormalizeText(textPairNode["en"].InnerText);
                    tp.de = textPairNode["de"].InnerText;
                    te.textPairs.Add(tp);
                }

                _topicDict.Add(ToWikiTopic(te.enUri), te);
            }
        }
コード例 #2
0
    //private bool tryGetValue(int _key, out BasicFnct _fnct)
    //{
    //    bool result = false;
    //    _fnct = null;

    //    for (int i = 0; i < m_transitions.Count; ++i)
    //    {
    //        TransPair p = m_transitions[i];
    //        if ((getTo(p.m_key) & getTo(_key)) > 0 && (getFrom(p.m_key) & getFrom(_key)) > 0)
    //        {
    //            _fnct = p.m_fnct;
    //            result = true;
    //            break;
    //        }
    //    }


    //    return result;
    //}

    private bool tryGetValue(int _key, out BasicFnct _fnct, out int _index)
    {
        bool result = false;

        _fnct  = null;
        _index = -1;
        int bestMatch = int.MaxValue;

        //Debug.Log("searching for: from " + getFrom(_key) + " to " + getTo(_key));
        for (int i = 0; i < m_transitions.Count; ++i)
        {
            TransPair p = m_transitions[i];
            if ((getTo(p.m_key) & getTo(_key)) > 0 && (getFrom(p.m_key) & getFrom(_key)) > 0)
            {
                if (p.m_key <= bestMatch)
                {
                    _index    = i;
                    bestMatch = p.m_key;
                    _fnct     = p.m_fnct;
                    result    = true;
                }
            }
        }

        return(result);
    }