资源简介
VC++6.0编译通过的读写CSV文件的代码及实例
在VC++6.0中编译通过,实测可用
通用性很不错
包含CSV读取的实例

代码片段和文件信息
#include “CSVOperator.h“
//////////////////////////////////////////////////////////////////////////
//CSV operator
// Download by http://www.codefans.net
CCSVOperator::CCSVOperator(const char* path)
{
LoadCSV(path);
}
bool CCSVOperator::LoadCSV(const char* path)
{
FILE* pfile = fopen(path “r“);
if (pfile)
{
fseek(pfile0SEEK_END);
u32 dwsize = ftell(pfile);
rewind(pfile);
char* filebuffer = new char[dwsize];
fread(filebuffer 1 dwsize pfile);
std::map StringMap;
char* pBegin = filebuffer;
char* pEnd = strchr(filebuffer ‘\n‘);
u32 uiIndex = 1;
while (pEnd != NULL)
{
std::string strbuff;
strbuff.insert(0 pBegin pEnd-pBegin);
if (!strbuff.empty())
{
StringMap[uiIndex] = strbuff;
}
pBegin = pEnd + 1;
pEnd = strchr(pEnd + 1 ‘\n‘);
++uiIndex;
}
delete[] filebuffer;
std::map::iterator iter = StringMap.begin();
for (; iter != StringMap.end(); ++iter)
{
std::vector StringVec;
std::map l_StringMap;
StringParser::GetParamFromString(iter->second StringVec);
for (int i = 0; i < StringVec.size(); ++i)
{
l_StringMap[i+1] = StringVec.at(i);
}
m_StringKeyMap[iter->first] = l_StringMap;
}
fclose(pfile);
m_CSVName = path;
return true;
}
return false;
}
bool CCSVOperator::GetInt(u32 uiLine u32 uiRow int& iValue)
{
std::string* pKey = GetString(uiLine uiRow);
if (pKey)
{
iValue = atoi(pKey->c_str());
return true;
}
else
{
return false;
}
}
bool CCSVOperator::GetFloat(u32 uiLine u32 uiRow float& fValue)
{
std::string* pKey = GetString(uiLine uiRow);
if (pKey)
{
fValue = atof(pKey->c_str());
return true;
}
else
{
return false;
}
}
std::string* CCSVOperator::GetString(u32 uiLine u32 uiRow)
{
std::map >::iterator iterLine = m_StringKeyMap.find(uiLine);
if (iterLine != m_StringKeyMap.end())
{
std::map& rStringMap = iterLine->second;
std::map::iterator iterRow = rStringMap.find(uiRow);
if (iterRow != rStringMap.end())
{
return &iterRow->second;
}
else
{
return NULL;
}
}
else
{
return NULL;
}
}
bool CCSVOperator::SetNumber(u32 uiLine u32 uiRow int iValue)
{
std::string* pKey = GetString(uiLine uiRow);
if (pKey)
{
char buffer[100];
memset(buffer 0 sizeof(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-08 10:03 csvdx\
文件 4708 2017-09-08 09:43 csvdx\CSVOperator.cpp
文件 789 2009-07-11 02:14 csvdx\CSVOperator.h
文件 808 2017-09-08 09:47 csvdx\CSV_OP.cpp
目录 0 2017-09-08 09:47 csvdx\Debug\
文件 335708 2017-09-08 09:43 csvdx\Debug\CSVOperator.obj
文件 298462 2017-09-08 09:47 csvdx\Debug\CSV_OP.obj
文件 614456 2017-09-08 09:47 csvdx\Debug\csvdx.exe
文件 931872 2017-09-08 09:47 csvdx\Debug\csvdx.ilk
文件 7564852 2017-09-08 09:30 csvdx\Debug\csvdx.pch
文件 1295360 2017-09-08 09:47 csvdx\Debug\csvdx.pdb
文件 222208 2017-09-08 09:53 csvdx\Debug\vc60.idb
文件 200704 2017-09-08 09:47 csvdx\Debug\vc60.pdb
文件 2484 2009-07-14 22:56 csvdx\StringParser.h
文件 125 2009-07-14 23:20 csvdx\config.csv
文件 4674 2017-09-08 09:33 csvdx\csvdx.dsp
文件 518 2017-09-08 09:29 csvdx\csvdx.dsw
文件 50176 2017-09-08 10:03 csvdx\csvdx.ncb
文件 48640 2017-09-08 10:03 csvdx\csvdx.opt
文件 119084 2017-09-08 09:47 csvdx\csvdx.plg
相关资源
- VC++6.0番茄西红柿VAXvirsual assist X完美破
- VC++6.0 绿色版,免安装,非常好用。
- VC++6.0汉化包
- 车站计算机联锁vc++6.0程序代码
- 成绩管理系统VC++6.0
- VC++6.0技术内幕第五版中文版+英文版
- MFC多人聊天室
- VC++6.0 简体中文版 msdn
- VC++6.0编程实现MIF文件点集读取与凸壳
- Visual Assist X西红柿插件VC++6.0通用安装
- 用vc++6.0实现的银行账户管理系统
- 番茄助手vc++6.0+破解版
- 学生信息管理系统基于VC++6.0
- VC++6.0 MFC AGV绘轨迹
- VC++6.0小番茄助手(绿色版可用)173
- 基于VC MFC的数据分析系统
- VC++6.0 MFC串口编程上位机程序代码.
- VC++6.0多人网络小游戏-支持多人联机网
- 精美时钟VC++6.0源代码)
- vc++6.0 与access管理系统
- 模拟生态系统
- VC++6.0 双人五子棋游戏
- VC++ MFC编写的2048小游戏工程及源代码
- VC++6.0 MFC 基于对话框编写的扫雷源程
- 基于TCP协议VC++6.0实现的聊天程序
- Microsoft vc++6.0代码提示插件
- 数据结构课程设计 山东大学版 文件
- 遗传算法代码NSGA-II
- 基于VC++6.0的UDP通讯
- VC++6.0番茄西红柿助手VAXvirsual assist
评论
共有 条评论