读取csv文件(C#,C++)

本文介绍了使用C++和C#两种编程语言从CSV文件中读取数据的方法。C++示例通过逐行读取并利用字符串操作来解析数据;而C#示例则展示了如何连接到CSV文件作为数据源,并通过DataTable进行数据处理。
部署运行你感兴趣的模型镜像

C++代码

#include <fstream>
#include <sstream>
#include <iostream>

using namespace std;
void ReadCSV()
{
    ifstream inf;
    inf.open("test.csv", ifstream::in);         
  
    string line;	
    int j=0;   
    size_t comma = 0;
    size_t comma2 = 0;
      
    getline(inf,line);//第一行是列名,排除
	while (!inf.eof())
	{
		getline(inf,line);
		comma = line.find(',',0);//默认行内分割符为逗号,若为空格,做相应调整
		while (comma < line.size() && j != marknum+2)
			{
				comma2 = line.find(',',comma + 1);				
			
				cout<<atof(line.substr(comma + 1,comma2-comma-1).c_str())<<endl;//读出一个列元素,并将其转化成float类型
				
				comma = comma2;
				j++;
			}			
			j = 0;
			
		}


	}
  
    inf.close();
}
C#代码

  private DataTable GetCsvData(string filePath, string fileName)
        {

            string path = filePath + "\\" + fileName + ".csv";

            string connString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};
            Dbq=" + filePath + ";Extensions=csv";
            try
            {
                using (OdbcConnection odbcConn = new OdbcConnection(connString))
                {

                    odbcConn.Open();

                    OdbcCommand oleComm = new OdbcCommand();

                    oleComm.Connection = odbcConn;

                    oleComm.CommandText = "select * from [" + fileName + "#csv]";

                    OdbcDataAdapter adapter = new OdbcDataAdapter(oleComm);

                    DataSet ds = new DataSet();

                    adapter.Fill(ds, fileName);

                    odbcConn.Close();

                    return ds.Tables[0];
                }
            }

            catch (Exception ex)
            {

                throw ex;
            }
        }
 private void ReadCSV()
        {
            DataTable dt = GetCsvData("path", "filename");
            int sidx = 0;           
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow drOperate = dt.Rows[i];
                for (int j = 0; j < drOperate.ItemArray.Length; j++)                   
                    {
                        cout<<drOperate[j])<<endl;
                    }                    
            }
        }

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

在Visual Studio中读取CSV文件有多种方式,以下为你介绍不同语言环境下的读取方法: ### C++ 在Microsoft Visual Studio环境下,可使用C++读取.csv文件数据并存入相应的数据结构,不过引用未给出具体代码实现。一般思路是使用文件流,打开CSV文件,按行读取数据,再用逗号分隔每行的数据存入相应的数据结构中。 ### C# - **使用文件流和DataTable** ```csharp //实例化一个datatable用来存储数据 DataTable dt = new DataTable(); //文件读取 System.IO.FileStream fs = new System.IO.FileStream("d:\\1.csv", System.IO.FileMode.Open); System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.GetEncoding("gb2312")); string tempText = ""; bool isFirst = true; while ((tempText = sr.ReadLine()) != null) { string[] arr = tempText.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //一般第一行为标题,所以取出来作为标头 if (isFirst) { foreach (string str in arr) { dt.Columns.Add(str); } isFirst = false; } else { //从第二行开始添加到datatable数据行 DataRow dr = dt.NewRow(); for (int i = 0; i < dt.Columns.Count; i++) { dr[i] = i < arr.Length ? arr[i] : ""; } dt.Rows.Add(dr); } } //展示到页面 dataGridView1.DataSource = dt; //关闭流 sr.Close(); fs.Close(); ``` 此代码通过文件读取CSV文件,将第一行作为表头添加到`DataTable`的列,后续行作为数据添加到`DataTable`的行,最后可将`DataTable`绑定到`DataGridView`展示数据,同时要记得关闭流以释放资源 [^4]。 - **使用资源包涵盖的方法** 在C#环境下,若使用Visual Studio 2010及以上版本,可参考相关资源包实现高效读取CSV文件到内存。该资源包实现了高效读取CSV文件到内存的功能,其原理和方法在更新版本的.NET环境中也适用 [^3]。 ### 通用注意事项 在操作前需确保已安装Visual Studio 2010或更高版本,并且在使用过程中要遵循相关法律法规,不得用于非法用途 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值