private void ReadKeyWords(Stream s) { keywordarea = new byte[Header.typeStringTableSize]; s.Read(keywordarea, 0, Header.typeStringTableSize); MemoryStream m = new MemoryStream(keywordarea); m.Seek(0, 0); keyWordDic = new List <KeyWordDicStruct>(); long start = m.Position; while (m.Position < m.Length) { long pos = m.Position; string keyword = Helpers.ReadNullString(m); int hash = Helpers.HashFNV1(keyword); bool found = false; foreach (KeyWordDicStruct st in keyWordDic) { if (st.hash == hash) { found = true; break; } } if (!found) { KeyWordDicStruct st = new KeyWordDicStruct(); st.keyword = keyword; st.hash = hash; st.offset = (int)(pos - start); keyWordDic.Add(st); } } }
private void ReadKeyWords(Stream s) { keywordarea = new byte[Header.typeStringTableSize]; s.Read(keywordarea, 0, Header.typeStringTableSize); MemoryStream m = new MemoryStream(keywordarea); m.Seek(0, 0); keyWordDic = new List<KeyWordDicStruct>(); long start = m.Position; while (m.Position < m.Length) { long pos = m.Position; string keyword = Helpers.ReadNullString(m); int hash = Helpers.HashFNV1(keyword); bool found = false; foreach (KeyWordDicStruct st in keyWordDic) if (st.hash == hash) { found = true; break; } if (!found) { KeyWordDicStruct st = new KeyWordDicStruct(); st.keyword = keyword; st.hash = hash; st.offset = (int)(pos - start); keyWordDic.Add(st); } } }