public string GetLineTextAtOffset(int offset) { FileStream stream = new FileStream (fileName, FileMode.Open, FileAccess.Read); try { ExtendedStreamReader streamReader = new ExtendedStreamReader (new StreamReader (stream)); streamReader.Position = offset; int lastPos; int b; do { lastPos = streamReader.Position; b = streamReader.ReadBack (); } while (b != -1 && b != 10 && b != 13); streamReader.Position = lastPos; StringBuilder sb = new StringBuilder (); b = streamReader.Read (); while (b != -1 && b != 10 && b != 13) { sb.Append ((char)b); b = streamReader.Read (); } return sb.ToString (); } finally { stream.Close (); } }
public ForwardTextFileIterator(IDocumentInformation document, string fileName) { this.document = document; this.fileName = fileName; stream = new FileStream (fileName, FileMode.Open, FileAccess.Read); streamReader = new StreamReader (stream); reader = new ExtendedStreamReader (streamReader); Reset(); line = lineStartOffset = 0; lineInSync = true; }