Esempio n. 1
0
        public ITagEntry Find(string aTag)
        {
            ITagEntry entry = iTags.Find(aTag);

            if (entry == null)
            {
                // Scan back for trailing number in name
                for (int i = aTag.Length; i > 0; i--)
                {
                    char c = aTag[i - 1];

                    if (c >= '0' && c <= '9')
                    {
                        continue;
                    }
                    else
                    {
                        string prefix = aTag.Substring(0, i);

                        entry = iTags.Find(prefix);

                        if (entry != null)
                        {
                            try
                            {
                                uint index = Convert.ToUInt32(aTag.Substring(i));

                                if (index < entry.Count)
                                {
                                    return(new TagEntry(entry, index));
                                }
                            }
                            catch (OverflowException)
                            {
                            }

                            return(null);
                        }
                    }
                }
            }

            return(entry);
        }
Esempio n. 2
0
 public TagEntry(ITagEntry aTagEntry, uint aOffset)
 {
     iTagEntry = aTagEntry;
     iOffset   = aOffset;
 }