C# winform程序读取txt文件问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform程序读取txt文件问题相关的知识,希望对你有一定的参考价值。

C盘 test.txt 文档里面有 “aaa,bbb,ccc,ddd,eee” 这样一些内容,如何分别把aaa,bbb这些内容根据逗号分别取出来,然后分别赋给定义的变量,比如:string name1,string name2,string name3等等。

参考技术A 通过File或者FileStream取到这个“aaa,bbb,ccc,ddd,eee
”字符串
然后 对这个字符串分割,分割时必须确保逗号一致性,(中文和英文逗号)

例如:string str="aaa,bbb,ccc,ddd,eee";
string[] arr=str.split(',');
然后通过arr[i]取值(i是arr数组的索引,即:index)追问

有问题

追答

我的口口 1。7.1,8~3-9,2;1"9

双引号换成单引号

参考技术B 写了个方法,最后得出的lstStr里面的就是你需要的变量了。只需要将值赋给变量name1, name2...就OK. string name1=lstStr[0];
public void ReadTxtFile()

FileStream fs = new FileStream(@"C:\a.txt", FileMode.Open);
StreamReader streamReader = new StreamReader(fs);
streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
string strLine = streamReader.ReadLine();
List<string> lstStr = new List<string>();
do

string[] split = strLine.Split(',');
foreach (string item in split)

lstStr.Add(item);

strLine = streamReader.ReadLine();

while (strLine != null && strLine != "");
streamReader.Close();
streamReader.Dispose();
fs.Close();
fs.Dispose();
参考技术C string path = @"c:\\Test.txt";
string[] readText = File.ReadAllLines(path)[0].Split(',');

readText[0]就是aaa,readText[1]为bbb,依次类推

追问

有问题

追答

你写错了当然有问题,注意看上面是Split(',')不是Split(",")
另外路径是@"c:\Test.txt"不是@"c:/Test.txt"

本回答被提问者采纳

C#处理文本文件TXT实例详解

本文实例讲述了C#处理文本文件TXT的方法。分享给大家供大家参考。具体分析如下:


1. 如何读取文本文件内容:

这里介绍的程序中,是把读取的文本文件,用一个richTextBox组件显示出来。要读取文本文件,必须使用到”StreamReader”类,这个类是由名字空间”System.IO”中定义的。通过”StreamReader”类的”ReadLine()”方法,就可以读取打开数据流当前行 的数据了。下面代码实现的功能就是读取”C:\file.txt”并在richTextBox1组件中显示出来:

FileStreamfs=newFileStream("C:\\file.txt",FileMode.Open,FileAccess.Read);
StreamReaderm_streamReader=newStreamReader(fs);
//使用StreamReader类来读取文件
m_streamReader.BaseStream.Seek(0,SeekOrigin.Begin);
//从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容
this.richTextBox1.Text="";
stringstrLine=m_streamReader.ReadLine();
while(strLine!=null)
{
this.richTextBox1.Text+=strLine+"\n";
strLine=m_streamReader.ReadLine();
}
//关闭此StreamReader对象
m_streamReader.Close();


2. 如何改变文本文件中数据内容:

下面的程序中,改变文本文件数据内容的功能是通过改变richTextBox1中的内容来实现的,当richTextBox1这的内容改变后,按动”另存为”,就把richTextBox1中内容存储到指定的文本文件中了。要想改变文本文件内容,要使用到”StreamWriter”类,这个类 和”StreamReader”一样,都是由”System.IO”名字空间来定义的。通过”StreamWriter”类的”Write()”方 法,就可以轻松实现文本文件内容的更改了。下面代码的功能是:如果”C”盘存在”file.txt”,则把richTextBox1中的内容写入 到”file.txt”中,如果不存在,则创建此文件,然后在写入文本数据。

//创建一个文件流,用以写入或者创建一个StreamWriter
FileStreamfs=newFileStream("C\\file.txt",FileMode.OpenOrCreate,FileAccess.Write);
StreamWriterm_streamWriter=newStreamWriter(fs);
m_streamWriter.Flush();
//使用StreamWriter来往文件中写入内容
m_streamWriter.BaseStream.Seek(0,SeekOrigin.Begin);
//把richTextBox1中的内容写入文件
m_streamWriter.Write(richTextBox1.Text);
//关闭此文件
m_streamWriter.Flush();
m_streamWriter.Close();

从上面这二个代码可以,写入数据比起读取数据要显得容易些。


3. 如何实现打印预览:

打印预览是通过打印预览对话框来实现的,实现对读取得文本文件的打印预览,最为重要的就是要通知打印预览对话框所要预览的文件的内容。下面代码就是把richTextBox1中显示的内容,通过打印预览对话框显示出来:

stringstrText=richTextBox1.Text;
StringReadermyReader=newStringReader(strText);
PrintPreviewDialogprintPreviewDialog1=newPrintPreviewDialog();
printPreviewDialog1.Document=ThePrintDocument;
printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D;
printPreviewDialog1.ShowDialog();


4. 如何打印文件:

在名字空间”System.Drawing.Printing”中定义了一个类”PrintDocument”,通过调用此类的”Print”方法就可 以触发在此名字空间中封装的另外一个事件”PrintPage”。在此事件中设定要打印的文档内容,从而实现队文本文件的打印操作。下面代码是调 用”PrintDocument”的”Print”方法,和调用事件”PrintPage”来打印richTextBox1中的内容:

ThePrintDocument.Print();//其中ThePrintDocument是"PrintDocument"类的一个对象

下列代码是设定打印内容即打印richTextBox1中的内容:

floatlinesPerPage=0;
floatyPosition=0;
intcount=0;
floatleftMargin=ev.MarginBounds.Left;
floattopMargin=ev.MarginBounds.Top;
stringline=null;
FontprintFont=richTextBox1.Font;
SolidBrushmyBrush=newSolidBrush(Color.Black);
//计算每一页打印多少行
linesPerPage=ev.MarginBounds.Height/printFont.GetHeight(ev.Graphics);
//重复使用StringReader对象,打印出richTextBox1中的所有内容
while(count<linesPerPage&&((line=myReader.ReadLine())!=null))
{
//计算出要打印的下一行所基于页面的位置
yPosition=topMargin+(count*printFont.GetHeight(ev.Graphics));
//打印出richTextBox1中的下一行内容
ev.Graphics.DrawString(line,printFont,myBrush,leftMargin,yPosition,newStringFormat());
count++;
}
//判断如果还要下一页,则继续打印
if(line!=null)
ev.HasMorePages=true;
else
ev.HasMorePages=false;
myBrush.Dispose();


注释:

由于在上述的代码中省掉了这些类所对于地名字空间,所以要想成功的编译和运行上述代码,就要在程序头部要导入所使用的名字空间。

希望本文所述对大家的C#程序设计有所帮助。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#处理文本文件TXT实例详解

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23148.html






相关内容





















以上是关于C# winform程序读取txt文件问题的主要内容,如果未能解决你的问题,请参考以下文章

c#写对象来读取TXT文本文件

C#读取大容量Txt文件的问题

我用c#winform操作文本文件遇到了问题

怎么解决读取txt文件读取时中文乱码问题

C# 如何读取一个文件夹下的多个文件内容

C# 从 .txt 读取并拆分为结构数组