作者jackeyH (面包小男孩)
看板C_Sharp
标题Re: [问题] .txt存成阵列做比对
时间Sat Jul 5 14:13:54 2008
: [问题描述]
: 1.在C#有什麽方法可以把.txt存成阵列的吗?
应该是没有方法直接做这件事吧
不过你可以用读档的方式将读出来的资料存成阵列
而且如果你不确定你档案中资料比数的话建议可以改用一般化的串列
以下用一个范例说明一下
EX: 如果你的资料格式是以空白分隔,分别有ID以及Name的部份
023 断脚小明
024 中风大胖
025 爆炸小美
... .......
1. 我们先宣告一个存放资料的类别
Class Data
{
private int uid=-1;
public int ID
{
get { return uid; }
set { uid = value; }
}
private uname="";
public string Name
{
get { return uname; }
set { uname = value; }
}
}
2.然後在你程式中利用下面程式码以及上面宣告的资料类别
将档案中存放料转换成物件存放至List串列中,
以下是没有做例外处理的简单范例
List<Data> dataList=new List<Data>();
//自data_file.txt读取档案
StreamReader dataRead=new StreamReader("data_file.txt");
string dataLine="";
while(dataLine=dataRead.ReadLine()!=null)
{
//将每一行资料做分割存在字串阵列中
string[] dataArray=dataLine.Split(OB' ');
//将ID部分转型成int,一般都会做例外处理避免转型失败,这我就不做了
int uid = int.Parse(dataArray[0]);
//生成Data资料物件并将资料存放置相对硬的属性的属性中
Data dataObj=new Data();
dataObj.ID=uid;
dataObj.Name=dataArray[1];
//将生成完成的资料物件,存放至List<Data>中
dataList.Add(dataObj);
}
dataRead.Close();
3.然後要比较的话其实也跟你作法类似,值不过是traversal
List中的Data物件然後把它的ID及Name属性取出做你要的动作
这里我就不再写啦..XD
: 2.在这情况我是要写两个.txt档吗?( 1.txt存编号 2.txt存名字 )
: 还是写一个.txt档他会自己分别存成两行多列?
: 谢谢指教
其实都没差都可以达成你的需求,看你怎麽实作
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 134.208.2.196
1F:推 aluuser:谢谢 07/05 23:05