Example #1
0
        private static void ConvertFile(string rootFolder, string inFile, string outFile)
        {
            var digitCodes = BuildDigitCodes(DigitPatterns);

            var config = new AsciiNumber.Config {
                NoOfDigits = 9,
                ValidChars = ValidChars,
                DigitCodes = digitCodes
            };

            var inPath  = Path.Combine(rootFolder, inFile);
            var outPath = Path.Combine(rootFolder, outFile);

            var lines     = File.ReadAllLines(inPath);  // read them all for now; can be read line line if file is big
            var lineCount = lines.Length;

            Console.WriteLine($"Processing '{inFile}' ({lineCount} lines) into '{outFile}'");

            if (lineCount % 4 != 0)
            {
                throw new ApplicationException($"Wrong line count {lineCount} in '{inFile}'; should be modulo of four");
            }

            var numbers = new List <string>();

            for (int next = 0; next < lineCount;)
            {
                var ascii = AsciiNumber.New(config, next); // number of 9 digits at next line no

                ascii.PushLine(lines[next++]);             // fragment of three line
                ascii.PushLine(lines[next++]);
                ascii.PushLine(lines[next++]);
                next++;                                 // skip empty line

                var number = ascii.Number;

                if (ascii.IsValid == false)
                {
                    number += " ILLEGAL";
                }

                numbers.Add(number);
            }

            Console.WriteLine($"Parsed {numbers.Count} numbers");

            File.WriteAllLines(outPath, numbers);
        }
Example #2
0
        public void parse_line_of_all_digits()
        {
            var patterns   = Program.DigitPatterns;
            var validChars = Program.ValidChars;

            var digitCodes = Program.BuildDigitCodes(patterns);

            var config = new AsciiNumber.Config {
                NoOfDigits = 10,
                ValidChars = validChars,
                DigitCodes = digitCodes
            };

            var ascii = AsciiNumber.New(config, 0);

            ascii.PushLine("    _  _     _  _  _  _  _  _ ");
            ascii.PushLine("  | _| _||_||_ |_   ||_||_|| |");
            ascii.PushLine("  ||_  _|  | _||_|  ||_| _||_|");

            var number = ascii.Number;

            Assert.That(number, Is.EqualTo("1234567890"));
        }