记录键盘的文本已经记录一个月左右了,今天写了个统计的,看下我的按键的使用情况。
前提:文本内容都是[A][CTRL][ALT]等按键带中括号,此进程以后再贴
读取文本并根据关键字解析,并按使用率排序输出到文件:
public void ReadFile()
{
using (StreamReader readfile = new StreamReader("D:\\TestKeyboard.txt"))
{
int k = 0;
string allFile = readfile.ReadToEnd();
for (int i = 0; i < allFile.Length; i++)
{
if (allFile[i] == '[')
{
for (int j = i; j < allFile.Length; j++)
{
if (allFile[j] == ']')
{
string key = allFile.Substring(i+1, j - i-1);
if (!keycount.ContainsKey(key))
keycount.Add(key, 0);
else
{
int count = GetValueByKey(keycount, key);
count++;
keycount[key] = count;
}
break;
}
k = j;
}
i = k;
}
}
keycount = keycount.OrderByDescending(p => p.Value).ToDictionary(p => p.Key, o => o.Value);
}
using (StreamWriter sw=new StreamWriter("D:\\KeyCountResultDesc.txt"))
{
foreach (var item in keycount)
{
sw.WriteLine($"key:{item.Key},count:{item.Value}");
}
}
}
根据key查value:
public int GetValueByKey(Dictionary<string, int> dic, string key)
{
int result=0 ;
foreach (KeyValuePair<string, int> kvp in dic)
{
if (kvp.Key.Equals(key))
{
result = kvp.Value;
break;
}
}
return result;
}