コード例 #1
0
        public void MakeChain(string line)
        {
            //Match m = Regex.Match( strLine, chain, RegexOptions.Compiled );
            //if( m.Success )
            //{
            Hashtable bounds = Boundary.Boundaries(line);

            foreach (ArrayList depth in bounds.Values)
            {
                string dLine     = "";
                int    index     = 0;
                int    lastIndex = 0;
                foreach (Boundary b in depth)
                {
                    dLine += line.Substring(index, (b.start - index) + 1);
                    if (b.end > index)
                    {
                        index     = b.end;
                        lastIndex = b.end;
                    }
                }
                if (lastIndex < line.Length - 1)
                {
                    dLine += line.Substring(lastIndex, line.Length - lastIndex);
                }
                string chainLine   = GetChainPart(dLine);
                int    periodCount = CountPeriod(chainLine);
                if (periodCount > 3)
                {
                    if (!m_htMessageChains.ContainsKey(chainLine))
                    {
                        m_htMessageChains[chainLine] = new MessageChainComponent(chainLine, periodCount);
                    }
                    MessageChainComponent comp = (MessageChainComponent)m_htMessageChains[chainLine];
                    comp.Count++;
                }
            }
        }