private List <Item> ExtractItems(string path) { int idIndex = -1; int nameIndex = -1; int qualityIndex = -1; int sellPriceIndex = -1; var extractor = new CSVExtractor(); extractor.HeaderAction = () => { idIndex = extractor.FindIndex("ID"); nameIndex = extractor.FindIndex("Display_lang"); qualityIndex = extractor.FindIndex("OverallQualityID"); sellPriceIndex = extractor.FindIndex("SellPrice"); }; var items = new List <Item>(); Action <string> extractLine = line => { string[] values = line.Split(","); if (line.Contains("\"")) { values = extractor.SplitQuotes(line); } else { values = line.Split(","); } if (values.Length > idIndex && values.Length > nameIndex && values.Length > qualityIndex && values.Length > sellPriceIndex) { items.Add(new Item { Entry = int.Parse(values[idIndex]), Quality = int.Parse(values[qualityIndex]), Name = values[nameIndex], SellPrice = int.Parse(values[sellPriceIndex]) }); } }; extractor.ExtractTemplate(path, extractLine); return(items); }
private void ExtractContinent(string path, List <WorldMapArea> wmas) { int mapIdIndex = -1; int directoryIndex = -1; var extractor = new CSVExtractor(); extractor.HeaderAction = () => { mapIdIndex = extractor.FindIndex("ID"); directoryIndex = extractor.FindIndex("Directory"); }; Action <string> extractLine = line => { string[] values; if (line.Contains("\"")) { values = extractor.SplitQuotes(line); } else { values = line.Split(","); } if (values.Length > directoryIndex && values.Length > mapIdIndex) { int mapId = int.Parse(values[mapIdIndex]); var list = wmas.FindAll(x => x.MapID == mapId); foreach (var item in list) { item.Continent = values[directoryIndex]; } } }; extractor.ExtractTemplate(path, extractLine); }