Diese Klasse lässt sich nach dem Kompilieren von der Kommandozeile aus starten.
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Alphabetcounter
{
class Program
{
public Program()
{
}
static void Main(string[] args)
{
try
{
Program prog = new Program();
prog.Process();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void Process()
{
string location = System.Reflection.Assembly.GetExecutingAssembly().Location;
string appName = Path.GetFileName(location);
appName = appName.Substring(0, appName.LastIndexOf('.'));
Console.WriteLine(string.Format("# Wellcome to {0}", appName));
Console.WriteLine("# ");
Console.WriteLine("# Enter press will shift the counter.");
Console.WriteLine("# Other key press will close the program.");
Console.WriteLine("# Insert a start value like 'AAA' now!");
Console.WriteLine("");
string group = Console.ReadLine();
while (Console.ReadKey(true).KeyChar == 13)
{
Console.CursorTop = Console.CursorTop - 1;
group = NextGroup(group);
Console.WriteLine(string.Format("# Counted hits: {0}", group));
}
}
private string NextGroup(string group)
{
bool overflow = true;
List list = new List();
foreach (char letter in group.ToCharArray().Reverse())
{
char token = letter;
if (overflow)
{
token++;
}
if (token > 'J')
{
list.Insert(0, 'A');
overflow = true;
}
else
{
list.Insert(0, token);
overflow = false;
}
}
return new String(list.ToArray());
}
}
}