zoukankan      html  css  js  c++  java
  • C++ 解析CSV文件

    1.XCFileStream的ReadData基本能用,需要加个 if(__ptr == '') break 的判断。(此时字符集为 未设置,假如是unicode编译不过)

    WriteData 已做测试,可用。只能写入xxx.csv文件,不能直接写入Excel文件,Excel文件需要Office接口才能写.

    优化:可以只读某几行的内容。

    注意:

    在简体中文环境下,EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编码方式为utf-8、Unicode等编码可能就会出现文件乱码的情况。

    2.读取配置文件内容

    配置文件内容如下:

    [COLOR]

    TOOLBAR_BG = "#ABCDEF"

    dlgback = 2000

    TCHAR szFileName[256];

    ::GetModuleFileName(NULL, szFileName, 256);

    CString strFileName = szFileName;

    strFileName.Replace(".exe", ".ini");

    TCHAR cBuf[32] = {0};

    CString strContent;

    int num = 0;

    //读取字符串

    num = ::GetPrivateProfileString("COLOR", "TOOLBAR_BG", "D8E9EC", cBuf, sizeof(cBuf), strFileName);

    strContent = cBuf;

    //读取数字

    int color = ::GetPrivateProfileInt("COLOR", "dlgbak", "12345", strFileName);

    3.获取指定文件夹中的所有文件名(递归获取)

    1>弹出 选择文件夹对话框,获取到文件夹路径

    2>朴素贝叶斯算法

    void BayesCategoryTest(CString tp)

    {

      CString szPath = tp;

      szPath += _T("\*.*"); //搜索所有文件,假如是想只搜索本级目录下的csv,则改为*.csv

      

      CFileFind fd;

      BOOL bFind = fd.FindFile(szPath);

      while(bFind)

      {

        bFind = fd.FindNextFile();

        if (fd.IsDirectory() && !fd.IsDots()) //是目录则递归

        {

          BayesCategory(fd.GetFilePath());

        }

        else //再判断是否为*.csv文件

        {

          CString fileName = fd.GetFileName();

          int dotPos = fileName.ReverseFind('.');

          CString fileExt = fileName.Right(fileName.GetLength() - dotPos);

          if (fileExt == _T(".csv")) //若是csv文件,则保存在vector中

          {

            m_vecStr.push_back(fileName);

          }

        }

      }

      

    }

  • 相关阅读:
    牛逼哄哄的 RPC 框架,底层到底什么原理?
    你只会用 StringBuilder?试试 StringJoiner,真香!
    厉害了,淘宝千万并发,14 次架构演进…
    微服务中 Zookeeper 应用及原理
    牛逼哄哄的零拷贝是什么?
    排名前 16 的 Java 工具类,哪个你没用过?
    Spring Boot 2.4 正式发布,重大调整!!!
    pl/sql 实例精解 07
    ArcGIS 符号和样式
    SQL Server系统视图有什么用?
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/5411765.html
Copyright © 2011-2022 走看看