首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求高人指教,小弟我是C#菜鸟,想提取txt文件中的内容

2012-09-19 
求高人指教,我是C#初学者,想提取txt文件中的内容具体问题:我在窗体中有一个按钮,我想按按钮实现用正则表达

求高人指教,我是C#初学者,想提取txt文件中的内容
具体问题:我在窗体中有一个按钮,我想按按钮实现用正则表达式从txt文件中读取所选择相关内容,比如从硬盘某一位置读取txt文件,文件中有名字如hello的字符串,可以读出在我另一个控件中显示,谢谢啦!!!

[解决办法]
streamreader的ReadLine,ReadToEnd等
[解决办法]
string str = System.IO.File.ReadAllText("D:\\1.txt");

[解决办法]

C# code
//文件位置 string path = this.txtFilePath.Text;                       if (string.IsNullOrEmpty(path))            {                MessageBox.Show("文件位置必须填写");                return;            }               //创建读取流               StreamReader sr = new StreamReader(path);            try            {                显示的控件.Text = sr.ReadToEnd();            }            catch (IOException ex)            {                MessageBox.Show(ex.Message);            }                       sr.Close();
[解决办法]
C# code
//文件位置 string path = this.txtFilePath.Text;                       if (string.IsNullOrEmpty(path))            {                MessageBox.Show("文件位置必须填写");                return;            }               //创建读取流               StreamReader sr = new StreamReader(path);            try            {                显示的控件.Text = sr.ReadToEnd();            }            catch (IOException ex)            {                MessageBox.Show(ex.Message);            }                       sr.Close();
[解决办法]
C# code
string path = @"C:\\";                DirectoryInfo dir = new DirectoryInfo(path);                foreach (FileInfo file in dir.GetFiles(path))                {                    if (file.Extension.Equals("txt"))                    {                        string filePath = file.FullName;                        string txtContent = File.ReadAllText(filePath, Encoding.GetEncoding("GB2312"));//读取文件                    }                }
[解决办法]
探讨
那如果我想和txt内容中的某些字符串匹配呢?

[解决办法]
C# code
 string path = @"C:\\";                DirectoryInfo dir = new DirectoryInfo(path);                foreach (FileInfo file in dir.GetFiles())                {                    if (file.Extension.Equals(".txt"))//如果是txt文件                    {                        string filePath = file.FullName;                        string txtContent = File.ReadAllText(filePath, Encoding.GetEncoding("GB2312"));//读取文件                        if (txtContent.Contains("hello"))                        {                            //如果文件内容中包含hello                        }                    }                }
[解决办法]
呵呵,这你算问对人了,我喜欢一行一行的读,代码清晰简单,然后自己转换,我把我的经验心得分给你吧!

if (File.Exists("F:\\图书1.txt"))
{
string[] str = File.ReadAllLines("F:\\图书1.txt");
}
这样一个TXT就存在一个STR字符串数组里了,str[0]是第一行数据,一次类推。

有人问这样的话一行一行我想让他们分开啊 不想这样比如说我想把数据导入到LISTVIEW里面 怎么办。嘿嘿 你又找对人啦!
for (int i = 1; i < str.Length; i++)
{
char[] ch = new char[]{' '};
string[] row = str[i].Split(ch,StringSplitOptions.RemoveEmptyEntries); 
listView1.Items.Add(new ListViewItem (row));
}



一个FOR循环 完美导入 你自己把LISTVIEW设置为VIEW.DETAILS啊 然后自己加上列名自动对应进去了就。很随意的啦。

然后又有人说 要是把它导入一个二维表多好啊 哈哈 来吧 我把它导入一个二维数组里面你想怎么用怎么用

 bp = new string[x, 4];
for (int i = 0; i < x; i++)
{
bp[i, 0] = this.listView1.Items[i].SubItems[0].Text;
bp[i, 1] = this.listView1.Items[i].SubItems[1].Text;
bp[i, 2] = this.listView1.Items[i].SubItems[2].Text;
bp[i, 3] = this.listView1.Items[i].SubItems[3].Text;
}

TXT最复杂的模式不就是在里面建个表 然后取出对应位置的数据吗 看 就这样简单的出来啦,楼主你不要膜拜俺噢,俺也是刚学C#不到1个月啦。还有什么不懂的问我噢,我对TXT存读取小有研究啊,个人认为按行读看起来思路最清晰,整齐不乱,不知道您这样认为否?
[解决办法]
那不是更简单了吗 哈哈 我一般不用RICHTEXTBOX 我喜欢用TEXTBOX差不多吧 所有内容都显示到一个框里吗?
那你用一个FOR循环 从STR[0]开始一直到str.length的长度
然后里面这样写 textBox.text+=str[i];
注意写TEXTBOX+= 这个+是重点哦。嗯 我给代码给你写出来吧 方便你理解。

for(int i=0;i<str.Length;i++)
{
textBox.Text+=str[i];
}
这样就OK了 还有不明白的可以问我哈 对了 直接分割字符串可以不用借用LISTVIEW啊 思路是这样的 也告诉你我的经验心得吧,最近几天我一直在处理TXT文本文件,小有心得的 

分开后计算每一行是多少 然后需要添加时候这样 add (0+m*4) M是每一行可以存多少个4被的列数。你如果直接用字符串往表里面存可以借用这个方式。具体代码就不写了,楼主多思考,多自己揣摩啊!

探讨

引用:
呵呵,这你算问对人了,我喜欢一行一行的读,代码清晰简单,然后自己转换,我把我的经验心得分给你吧!

if (File.Exists("F:\\图书1.txt"))
{
string[] str = File.ReadAllLines("F:\\图书1.txt");
}
这样一个TXT就存在一个STR字符串数组里了,str[0]是第一行数据,一次类推。
……

[解决办法]
算了,那个方法的源码也给你说说,刚才顺便找到了那个程序
string[] row = temp.Split(' ');
int n = row.Length / 4;
for (int m = 0; m < n; m++)
{

listView.Items.Add(new ListViewItem(new string[] { row[0 + m * 4], row[1 + m * 4], row[2 + m * 4], row[3 + m * 4] }));

这样就可以处理直接将一行的任意你想要的数添加进表格了。其实读取TXT文本本身就是一个麻烦的过程,按行读出来之后就看你怎么处理了。处理好了肯定事半功倍。加油吧 楼主。

热点排行