文本读取的问题,如何自动获得文本的行数???

yinwu2003 2005-11-21 09:18:10
在这里例子中是使用了NumberOfLines 等于5行,怎么才可以让程序自动在知道一共有多少行呢?

class Init
{
TextReader tr = new StreamReader("word.txt",Encoding.GetEncoding( "gb2312" ));

public int NumberOfLines = 5;

public string[,] ListLines;
public string[] aryTemp;

public void init()
{

ListLines = new string[NumberOfLines,2];

for (int i = 0; i < NumberOfLines; i++)
{
aryTemp = tr.ReadLine().Split('|');

//Console.WriteLine(aryTemp[0]);

ListLines[i,0] = aryTemp[0];
ListLines[i,1] = aryTemp[1];


//Console.WriteLine(ListLines[0,0]);
//Console.WriteLine(ListLines[0,1]);

Console.ReadLine();

tr.Close();

}
}
...全文
177 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordragon 2005-11-21
  • 打赏
  • 举报
回复
读取文本文件之前,程序不会自动知道行数。

使用while的话,必须每次都要重新重新定义数组的大小,而C#中没有提供类似vb的ReDim的方法。

可不可以考虑一下别的变通的方法?
比如把文本文件的内容放到一个DataTable中?

以下是把文本文件的内容放入记事本的源代码,希望对你有用:
int intColCount = 0;
//bool blnFlag = true;
DataTable mydt = new DataTable("myTableName");

DataColumn mydc;
DataRow mydr;

string strpath = "";
string strline;
string [] aryline;

System.IO.StreamReader mysr = new System.IO.StreamReader(strpath);

mydc = new DataColumn("column1");
mydt.Columns.Add(mydc);

mydc = new DataColumn("column2");
mydt.Columns.Add(mydc);

while((strline = mysr.ReadLine()) != null)
{
aryline = strline.Split(new char[]{'|'});

/*
if (blnFlag)
{
blnFlag = false;
intColCount = aryline.Length;
for (int i = 0; i < aryline.Length; i++)
{
mydc = new DataColumn(aryline[i]);
mydt.Columns.Add(mydc);
}
}
*/

mydr = mydt.NewRow();
for (int i = 0; i < intColCount; i++)
{
mydr[i] = aryline[i];
}
mydt.Rows.Add(mydr);
}
yinwu2003 2005-11-21
  • 打赏
  • 举报
回复
用while语句的话,数组里的数据怎么添加?i没有了
lovvver 2005-11-21
  • 打赏
  • 举报
回复
用StreamReader把文件都读出来,按换行符拆可以算出来。
FileInfo fi = new FileInfo("c:\xx.txt");
FileStream fs;
fs = fi.OpenRead();
StreamReader sr = new StreamReader(fs);
string strAllFile = sr.ReadToEnd();

char[] chr = new char[]{'\n'};
string[] arraAllFile = strAllFile.Split(chr);
arraAllFile.Length;//文件总行数
mbh0210 2005-11-21
  • 打赏
  • 举报
回复
你使用while语句不就可以了吗?

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧