如何从记事本中读取文字?

时间:2009-11-25 10:48:10

标签: c# asp.net

我有一个带有修复格式句子的记事本,如

name...
Image...
Text...

我需要从记事本中读取给定条件的所有文本选项。

首先,我需要计算所有以#开头的单词。

其次我需要计算重复的单词,不包括a,an,the,is,am,are,do,did。

我该如何计算?

4 个答案:

答案 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,但这是在文本文件中使用这些行的一种非常简单的方法。

一旦你完成了数组,你所描述的很简单 - 处理数组中的每个项目,按照你的需要进行计数和处理。