public List <string> GetDrawing() { var results = new List <string>(); foreach (var cr in creationLines.ToList()) { //create empty lines int numberHeight = 4; for (int i = 0; i <= numberHeight; i++) { results.Add(""); } // Number from one line in creationList - all numbers in cr needs to be in one string line foreach (int num in cr.ToList()) { //get string drawing for number var drawing = NumberDefinitions.GetNumberDefinitionByNumber(num, NumberDefinitions.CreateNumberDefinitions()); //if null, numberdefinition not found if (drawing != null) { //drawing number max length int maxLength = drawing.GetMaxLength() + numSpaces; //horizontal spaces here // for (int drawingLine = drawing.lines.Count - 1; drawingLine >= 0; drawingLine--) for (int drawingLine = 0; drawingLine <= drawing.lines.Count - 1; drawingLine++) { string s = drawing.lines[drawingLine]; if (s.Length < maxLength) { while (s.Length < maxLength) { s += " "; } } results[results.Count - 1 - (drawing.lines.Count) + drawingLine] = results[results.Count - 1 - (drawing.lines.Count) + drawingLine] + s; } } } } return(results); }
public RecognitionEgine(List <string> searchStringList) { NumberDefinitionList = NumberDefinitions.CreateNumberDefinitions(); var numberFindResults = new List <FindResult>(); Content.Add(""); foreach (NumberDefinition nd in NumberDefinitionList) { numberFindResults.AddRange(GetNumbersInDrawing(searchStringList, nd)); } var lineNum = 0; foreach (var nfr in numberFindResults.OrderBy(s => s.Line).ThenBy(x => x.CharPos)) { bool skip = false; if (nfr.Line != lineNum) { //condition: numbers need to be 4 lines in height! if (nfr.Line > lineNum + 3) { //Console.WriteLine(); Content.Add(""); lineNum = nfr.Line; } else { skip = true; } } if (!skip) { //Content.Add(nfr.Number); Content[Content.Count - 1] += nfr.Number.ToString(); //Console.Write(nfr.Number); } } }