C#中读取txt文件列数据并存入int数组中

我有一个空间绘图的C#程序,txt文件中有三列点的坐标,每行数据由空格隔开,现在需要定义三个x,y,z 一维int数组并将txt文件中列数据赋给x,y,z,txt数据量很大,可能有上千组,希望能够得到代码并在程序中直接调用x[i],y[i],z[i]

把txt文件当作数据库读取。
string cs = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 文件路径含表名 + @";Extended Properties=""text;HDR=Yes;FMT=Delimited""" ;
System.Data.OleDb .OleDbConnection con = new System.Data.OleDb.OleDbConnection(cs) ;
con.Open() ;
try
{
string sql = String.Format("SELECT * FROM [{0}] ",文件名) ;
System.Data.DataSet ds = new System.Data.DataSet() ;
System.Data.OleDb.OleDbDataAdapter ada = new System.Data.OleDb.OleDbDataAdapter(sql , con) ;
ada.Fill(ds , 文件名) ;
}
然后对dataset操作,就很简单了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-31
一次读一行:
string line = streamRead.ReadLine();
//如果数据间是“,”分隔:
a[i]= int.Parse(line.Split(',')[i]);
//数据如果使用不等的空格分隔
a[i]= int.Parse(line.Split(' ')[i]);
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
第2个回答  2015-04-13
这个写一个结构体或类来当容器就很容易实现啊
第3个回答  2015-04-12
这个属于基本的文件输入,没什么难度
第4个回答  2015-04-12
把文件放出来啊,有前几行就行追问

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace 绘制圆柱体
{
class DrawCylinderClass
{
public Device device;//定义设备

追答

我指的是你要读的txt文件,我不关心你的代码。

追问

101 201 2
102 202 3
103 203 4
104 204 5
105 205 6
106 206 7
107 207 8
108 208 9
109 209 10
110 210 11
111 211 12
112 212 13
113 213 14

先这些数据吧,实际数据量比这个大的多

追答                 List<int> arrX,arrY,arrZ;
                arrX=new List<int>();arrY=new List<int>();arrZ=new List<int>();
            using (var fs=File.Open("str.txt",System.IO.FileMode.Open)) {
                var reader=new StreamReader(fs);
                string temp;
                System.Text.RegularExpressions.Regex regex=new System.Text.RegularExpressions.Regex("(\\d+)\\s+(\\d+)\\s+(\\d+)");
                System.Text.RegularExpressions.Match m;
                while ((temp= reader.ReadLine())!=null) {
                    m=regex.Match(temp);
                    if (m.Success) {
                        arrX.Add(int.Parse( m.Groups[1].Value));
                        arrY.Add(int.Parse( m.Groups[2].Value));
                        arrZ.Add(int.Parse( m.Groups[3].Value));
                    }
                    
                }
            }

str.txt 代表文件地址,List<int>() 用起来和数组差不多,也能调用ToArray方法转成数组。using System.Collections.Generic;using System.IO;

追问

在之后的程序中怎么调用这几个数组?

追答

arrX,arrY,arrZ就是这几个数组,你可以把他们声明为全局变量,或者作为参数传递。

相似回答