我有一个带有修复格式句子的记事本,如
name...
Image...
Text...
我需要从记事本中读取给定条件的所有文本选项。
首先,我需要计算所有以#开头的单词。
其次我需要计算重复的单词,不包括a,an,the,is,am,are,do,did。
我该如何计算?
答案 0 :(得分:4)
tempAccounts = GlobusFileHelper.ReadFiletoStringList(Path);
foreach (string AcctData in tempAccounts)
{
string[] tempArray = AcctData.Split(':');
foreach (string accounts in tempAccounts)
{
DecaptchaAccounts.Add(accounts);
}
}
答案 1 :(得分:0)
对于文件中的每个单词,将它们添加到C#列表中。 当你添加它们时,如果List.Contains(要添加的项目),则将其标记为重复,(除非它是您要排除的单词之一)
答案 2 :(得分:0)
这可能是一个很长的过程,要从打开的记事本实例获取文本,您需要使用Windows API:
首先,您需要获取记事本的运行实例:
Process[] processes = Process.GetProcessesByName("notepad");
然后迭代它们
foreach (Process p in processes)
{
IntPtr pFoundWindow = p.MainWindowHandle;
....
P / Invoke GetNextWindow找到包含文本的顶部窗口..
HWND GetNextWindow(HWND hWnd, UINT wCmd );
然后将WM_GETTEXT消息发送到该窗口,该窗口应检索文本..
然后你可以解析文本并计算单词。
答案 3 :(得分:0)
所以,你想阅读一个文本文件,查找该文本文件中的特定行,并用你从中读取的文本做些什么,对吗?
这里有很多选择,但目前尚不清楚你是否看过它们中的任何一个。您可以使用各种Stream / TextReader类之一来阅读此文件,但我想(现在)您想要一个非常简单的API来执行此操作。
查看System.IO.File类及其公开的成员......
http://msdn.microsoft.com/en-us/library/system.io.file_methods.aspx
文件公开了一个ReadAllLines方法,这是一个非常简单的API,用于将文本文件中的所有行读取到数组中。
http://msdn.microsoft.com/en-us/library/system.io.file.readalllines.aspx
如果您有大量文件,这可能不是最好的API,但这是在文本文件中使用这些行的一种非常简单的方法。
一旦你完成了数组,你所描述的很简单 - 处理数组中的每个项目,按照你的需要进行计数和处理。