/// <summary> /// Reads the next sentence. /// </summary> /// <returns>Sentence or null if reached the end of file.</returns> public string ReadSentence() { if (_disposed) { throw new ObjectDisposedException("Segmenter disposed."); } int len; if ((len = GrammarApi.sol_FetchSentence(_hObject)) < 0) { CanRead = false; return(null); } if (len == 0) { return(string.Empty); } var b = new StringBuilder(len + 2); GrammarApi.sol_GetFetchedSentence(_hObject, b); return(b.ToString()); }
public List <string> SplitSentences(string input) { var broker = GrammarApi.sol_CreateSentenceBrokerMemW(_engine, input, (int)Languages.RUSSIAN_LANGUAGE); var result = new List <string>(); int len; while ((len = GrammarApi.sol_FetchSentence(broker)) >= 0) { if (len > 0) { var b = new StringBuilder(len + 2); GrammarApi.sol_GetFetchedSentence(broker, b); result.Add(b.ToString()); } } GrammarApi.sol_DeleteSentenceBroker(broker); return(result); }