示例#1
0
        static async Task ComposeTextResultBlock(TextWriter writer, Func<int> lineNumberGetter, Action<int> lineNumberSetter, TextResult result)
        {
            var lineNumber = lineNumberGetter();

            //(lijn 1:)#Rb positie 1-3:duidt begin aan van verslag)
            lineNumber++;
            await writer.WriteLineAsync("#Rb");

            //(lijn 2:) evt identificatie van de analyse (positie 1-56)
            //formaat: '!'gevolgd door trefwoord
            lineNumber++;
            await writer.WriteLineAsync(string.Concat("!", result.Name?.TrimToMaxSize(56)));

            //(lijn 3: vanaf hier begint het eigenlijke verslag)
            using (var sr = new StringReader(result.Text))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    lineNumber++;
                    await writer.WriteLineAsync(line/*.TrimToMaxSize(75)*/);
                }
            }

            lineNumber++;
            await writer.WriteLineAsync("#R/");

            lineNumberSetter(lineNumber);
        }
示例#2
0
        static async Task<TextResult> ParseTextResultBlock(TextReader reader, Func<int> lineNumberGetter, Action<int> lineNumberSetter, IDictionary<int, IList<string>> parserErrors)
        {
            //(lijn 1:)#Rb positie 1-3:duidt begin aan van verslag)
            var result = new TextResult();
            var lineNumber = lineNumberGetter();

            //(lijn 2:) evt identificatie van de analyse (positie 1-56)
            //formaat: '!'gevolgd door trefwoord
            lineNumber++;
            var line = await reader.ReadLineAsync();
            if (line.StartsWith(@"!"))
            {
                result.Name = line?.Trim();
                lineNumber++;
                line = await reader.ReadLineAsync();
            }

            //(lijn 3: vanaf hier begint het eigenlijke verslag)
            var sb = new StringBuilder();
            do
            {
                sb.AppendLine(line);
                lineNumber++;
            }
            while ((line = (await reader.ReadLineAsync())) != null && !line.StartsWith(@"#R/"));
            result.Text = sb.Length > 0 ? sb.ToString() : null;

            lineNumberSetter(lineNumber);
            return result;
        }