求高人指教,我是C#初学者,想提取txt文件中的内容
具体问题:我在窗体中有一个按钮,我想按按钮实现用正则表达式从txt文件中读取所选择相关内容,比如从硬盘某一位置读取txt文件,文件中有名字如hello的字符串,可以读出在我另一个控件中显示,谢谢啦!!!
[解决办法]
streamreader的ReadLine,ReadToEnd等
[解决办法]
string str = System.IO.File.ReadAllText("D:\\1.txt");
[解决办法]
//文件位置 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();
[解决办法]
//文件位置 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();
[解决办法]
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"));//读取文件 } }
[解决办法]
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被的列数。你如果直接用字符串往表里面存可以借用这个方式。具体代码就不写了,楼主多思考,多自己揣摩啊!