读文件选取部分字段写入excel

207人阅读 评论(0) 收藏 举报
分类:
文件根据自己的格式去解析,本文只是一个示例,读取方式是按行读取
#include "stdafx.h"
#include <string>
#include <vector>
#include <map>
#include <fstream>
#include <iostream>
#include <streambuf>

void trim(std::string& s)
{
	std::vector<char> v;
	for (const auto& c : s)
	{
		if (isalnum(c) || c=='.')
		{
			v.push_back(c);
		}
	}
	s.replace(s.begin(), s.end(), v.begin(), v.end());
}

int main()
{
	std::vector<std::map <std::string, std::string>> logs;
	auto fp = fopen("ELC_2017-09-22_19-05-44.log","r");
	if (fp)
	{
		std::map<std::string, std::string> m;
		for (char buf[1024] = { 0 }; fgets(buf, 1024, fp) != nullptr; )
		{
			std::string line(buf);
			if (line.find("{") != std::string::npos)
			{
				m.clear();
			}
			else if (line.find('}') != std::string::npos)
			{
				logs.push_back(std::move(m));
			}
			else
			{
				auto pos = line.find(":");
				if (pos != std::string::npos)
				{
					auto k = line.substr(0, pos);
					trim(k);

					auto v = line.substr(pos + 1);
					trim(v);

					m[k] = v;
				}
			}
		
			memset(buf, 0, 1024);
		}

		fclose(fp);
	}

	std::ofstream ofs;
	ofs.open("elc.csv", std::ios::out | std::ios::trunc);
	for (const auto& m : logs)
	{
		std::string addr, recv, send;

		auto it = m.find("address");
		addr = (it != m.end()) ? it->second : "";

		it = m.find("Received");
		recv = (it != m.end()) ? it->second : "";

		it = m.find("Sented");
		send = (it != m.end()) ? it->second : "";

		ofs << addr << "," << recv << "," << send << std::endl;
	}
	ofs.close();

    return 0;
}

查看评论

怎样将Excel中的某一部分字段内容导入到SQL Server 2000的某个表的某些字段中

 很简单,使用opendatasource就可以实现了insert into tablenameselect * from opendatasource(Microsoft.Jet.OLEDB.4.0...
  • itzhiren
  • itzhiren
  • 2006-10-13 14:15:00
  • 1821

本地list相关信息写入excel

  • 2016年01月09日 13:32
  • 9KB
  • 下载

Python对excel写入数据操作实例代码(只供参考)

#coding=utf8 ''' 把buffer中的信息,写入到excel中。 并按照要求,构造表格样式 ''' #导入readCSV模块,用来获取buffer数据 from readCSV impo...
  • henni_719
  • henni_719
  • 2017-03-22 12:51:23
  • 587

如何从DataTable选取某几个字段组合成新的表

就是如下的一行代码: DataTable newTable = MyDataTable.DefaultView.ToTable(false, new string[] ...{ "ColumnName...
  • zhanglei5415
  • zhanglei5415
  • 2007-07-17 17:14:00
  • 924

高级SQL

  第三部分  操作数据:SQL            本部分内容          n  SQL基础          n  中级SQL          n  高级SQL     第10章  SQ...
  • web718
  • web718
  • 2005-06-17 09:01:00
  • 1832

sql 如何提取某一字段记录的部分数据

今天写程序,需要提取查询出来的记录的部分数据,使用JAVA可以实现,然后考虑sql方法是否也有同样的函数可供调用呢?查看了一下sql server2000 帮助文档,在字符串函数下找到了这个方法,原来...
  • aloie
  • aloie
  • 2007-01-26 18:41:00
  • 6197

解析excel写入xml

  • 2015年08月25日 20:37
  • 23.93MB
  • 下载

读写文件到指定位置

  • 2017年08月02日 15:25
  • 12KB
  • 下载

java8 POI 读取写入EXCEL

poi
  • weixin_29135773
  • weixin_29135773
  • 2017-01-18 15:15:16
  • 1008

【Excel】复制的时候,只选择筛选的部分,不选择隐藏的部分

 选定要复制的区域,按F5 --定位条件--可见单元格 --确定,之后复制--粘贴。...
  • pkubird
  • pkubird
  • 2016-06-29 15:37:05
  • 539
    个人资料
    等级:
    访问量: 1597
    积分: 65
    排名: 161万+
    文章存档