C#怎样把得到的txt文件数据导入DataTable里面!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#怎样把得到的txt文件数据导入DataTable里面!相关的知识,希望对你有一定的参考价值。
读取txt文件里面的数据,然后像操作数据库表那样,根据ID查找, 例如txt文件里面数据时这样的, A B C D 1,34,ff,56 2,34,dd,78 3,20,tr,77 ABCD是假设给一个字段! 我的txt里面有很多条数据,我只举出3行数据! 我用下面的那个方法得到txt数据, 想导入到DataTable 再实现根据查找B=34得到所有数据! 请高手指点一下,最好给点代码,谢谢!
参考技术A c#读写txt文件的两种方法:1.添加命名空间
system.io;
system.text;
2.文件的读取
(1).使用filestream类进行文件的读取,并将它转换成char数组,然后输出。
byte[]
bydata
=
new
byte[100];
char[]
chardata
=
new
char[1000];
public
void
read()
try
filestream
file
=
new
filestream("e:\\test.txt",
filemode.open);
file.seek(0,
seekorigin.begin);
file.read(bydata,
0,
100);
//bydata传进来的字节数组,用以接受filestream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
decoder
d
=
encoding.default.getdecoder();
d.getchars(bydata,
0,
bydata.length,
chardata,
0);
console.writeline(chardata);
file.close();
catch
(ioexception
e)
console.writeline(e.tostring());
(2).使用streamreader读取文件,然后一行一行的输出。
public
void
read(string
path)
streamreader
sr
=
new
streamreader(path,encoding.default);
string
line;
while
((line
=
sr.readline())
!=
null)
console.writeline(line.tostring());
3.文件的写入
(1).使用filestream类创建文件,然后将数据写入到文件里。
public
void
write()
filestream
fs
=
new
filestream("e:\\ak.txt",
filemode.create);
//获得字节数组
byte[]
data
=
system.text.encoding.default.getbytes("hello
world!");
//开始写入
fs.write(data,
0,
data.length);
//清空缓冲区、关闭流
fs.flush();
fs.close();
(2).使用filestream类创建文件,使用streamwriter类,将数据写入到文件。
public
void
write(string
path)
filestream
fs
=
new
filestream(path,
filemode.create);
streamwriter
sw
=
new
streamwriter(fs);
//开始写入
sw.write("hello
world!!!!");
//清空缓冲区
sw.flush();
//关闭流
sw.close();
fs.close();
怎样将C#生成的数据导出
我不是专业学计算机的,咱就学过C#基础。
但是必须要用C#做作业。
做了之后要检查结果是否正确。但是上万个数据。。。望天。
我总不能手动把C#得到的一个上万行的2维数组手动抄下来吧。
所以需要把数据导出然后用其他数学软件检验结果的正确性。
请问如何将一个C#程序做出来的一个2维数组输出到其他文件(比如excel, txt等格式的文件)
上网查了好多,好复杂啊,咱就大学里这个学期学了2月的C#,实在搞不来。
希望各位高手指点啊,简简单单的让它们排着队出来就成啦~
谢~~
/// <summary>
/// 将超链接、下拉框等样式去掉
/// </summary>
/// <param name="gv"></param>
private void DisableControls(Control gv)
Literal l = new Literal();
string name = String.Empty;
for (int i = 0; i < gv.Controls.Count; i++)
if (gv.Controls[i].GetType() == typeof(LinkButton))
l.Text = (gv.Controls[i] as LinkButton).Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);
else if (gv.Controls[i].GetType() == typeof(DropDownList))
l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);
else if (gv.Controls[i].GetType() == typeof(HyperLink))
l.Text = (gv.Controls[i] as HyperLink).Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);
if (gv.Controls[i].HasControls())
DisableControls(gv.Controls[i]);
/// <summary>
/// 将GridView中的内容导出成Excel文件
/// 如文件名为空,则使用规则生成文件默认
/// </summary>
/// <param name="FileName">扩展名必须为xls,而不能是xlsx,否则不能直接在Excel中打开</param>
public void ToExcel(string FileName)
if (string.IsNullOrEmpty(FileName))
string filename = DateTime.Now.Ticks.ToString() + ".xls";
FileName = this.Parent.Page.Server.MapPath("~/Temp/" + filename);
//去除分页、排序
this.AllowPaging = false;
this.AllowSorting = false;
this.AutoDataBind();
//生成html
this.DisableControls(this);
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName);
this.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
this.RenderControl(hw);
string str = tw.ToString();
str = (Regex.Replace(str, @"(<a(.|\s)*?>)|</a>", "", RegexOptions.IgnoreCase));
HttpContext.Current.Response.Write(str);
HttpContext.Current.Response.End();
//还原分页、排序
this.AllowPaging = true;
this.AllowSorting = true;
this.AutoDataBind();
#endregion 参考技术A 以下代码以CSV格式保存,以逗号分隔方式保存数据,保留数组的原模原样,可以使用记事本或者Excel直接打开。
int[][] array = new int[] 1, 2, 3 , new int[] 4, 5, 6 , new int[] 7, 8, 9 ;
OpenFileDialog openFile = new OpenFileDialog();
openFile.Multiselect = false;
openFile.Filter = "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*.*";
if (openFile.ShowDialog() == DialogResult.OK)
string str = "";
StreamWriter writer = new StreamWriter(openFile.FileName, false, Encoding.Default);
for (int i = 0; i < array.Length; i++)
for (int j = 0; j < array[i].Length; j++)
str += array[i][j] + ",";
str = str.TrimEnd(',');
writer.WriteLine(str);
str = "";
writer.Close();
参考技术B 先用数组的sort()函数排序,然后
int[] aarray = new int[10000];
string input = "";
foreach (int a in aarray)
input += a + "\r\n";
//写入文本
StreamWriter sw = new StreamWriter(pathname);
sw.Write(input);
sw.Close();本回答被提问者采纳
以上是关于C#怎样把得到的txt文件数据导入DataTable里面!的主要内容,如果未能解决你的问题,请参考以下文章
向C# winform 的DataDridView 导入数据库文件的步骤是怎样的?(就是把一个信息表添加进去)