public void OpenDelimitedFile(string rootNodePath, string filename, Encoding encoding = null) { using (var source = new FileStream(filename, FileMode.Open, FileAccess.Read)) { if (!SkipReadHeader) { var headerReader = new StreamReader(source); DefaultHeaderLine = headerReader.ReadLine(); } var mapNode = FormatReader.LoadHeaderLine(DefaultHeaderLine, _delimiter, _nodes, rootNodePath, _aliases); _mapSets[rootNodePath] = mapNode; _stream = new FileStream(filename, FileMode.Open, FileAccess.Read); _rows = new SharpRowStream { Nodes = _nodes, StreamNode = _nodes.GetNode(rootNodePath), StreamSource = new FlatReader(_stream, mapNode, encoding, SkipEmptyRows) }; // Create node rows for parents of map node var nodes = new List <SharpNode> { mapNode.Parent }; while (nodes[0].Parent != null) { nodes.Insert(0, nodes[0].Parent); } nodes.Remove(nodes.Last()); var rows = nodes.Select(n => new SharpNodeRow(n)).ToList(); _rows.AddRange(rows); } }
public void InsertAllOnSubmit(string nodePath, IEnumerable <ISharpObject> items) { _rows.AddRange(nodePath, items, true); }