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); }
public TagEntry(ITagEntry aTagEntry, uint aOffset) { iTagEntry = aTagEntry; iOffset = aOffset; }