关闭

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

106人阅读 评论(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;
}

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

C#读取Excel五种方式体会(二)

上一篇文章中,我们找到了三种处理的方式,分别对其优缺点进行了
  • dapengbusi
  • dapengbusi
  • 2014-07-25 15:17
  • 47759

C#.net读取Excel表中的数据时,有些字段内容(字符串、数字)读取不到的解决办法

导入Excel时,会丢失一些手机号,或者固定电话号 问题出在于,他们将数据填入Excel时,有些格式是数值类型,有些是文本类型 当用OLEDB读取Excel的时候,在Extended P...
  • GUO_LOVER
  • GUO_LOVER
  • 2016-09-01 10:49
  • 4378

用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码

用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码 举报|  分享| 2013-10-20 11:12香蕉核里的虫 | 浏览 1862 次 是一...
  • evilcry2012
  • evilcry2012
  • 2016-04-08 16:40
  • 2477

python:从excel中读出接口协议,将部分响应结果写入另一个excel文件

这两天看了requests的简单用法,结合实际情况练练手。已知excel文件requestData.xlsl中写了4个协议请求,完成的操作就是读取这个几个请求,然后将部分响应结果和已知的一些信息写入另...
  • CatherineC20150619
  • CatherineC20150619
  • 2016-05-17 18:38
  • 809

iReport导出Excel文件一个字段要占用多列问题的解决

发布于 2012年06月27日 问题背景: 在JavaEE开发中,我们少不了做一些报表导出工作,但最苦恼的莫过于报表的设计,一个像素一个像素的调整给我们带来很多不便。今天一客户指出,我们系统中...
  • u013474104
  • u013474104
  • 2015-04-21 14:18
  • 1219

用Python将shp文件的字段写入到word的表格中

  • 2017-11-16 16:44
  • 4KB
  • 下载

使用OleDb写入Excel异常,"字段太小而不能接受所要添加的数据的数量" "the field is too small to accept the amount of data "

解决方法: excel是根据第一行数据来判断数据类型的,所以你需要在第一行相应字段添加足够长的字符串(随便写长一点就行,导入后可以删除的嘛). 这个问题是字段默认长度是250,而你添加的数据操作250...
  • u010032207
  • u010032207
  • 2016-08-10 14:50
  • 1236

使用POI读取和写出EXCEL文件(写出部分待完善)

Excel文件在工作中运行非常多,有时候需要我们结合数据读取和写出相应的数据,在这里写一个简单的demo方便以后的调用和学习: 读取文件部分: 首先,导入相应的JAR包 1、do...
  • dsiori
  • dsiori
  • 2016-12-13 17:33
  • 86

Java通过poi读取word,excel,ppt文件中文本(word部分)

一:认识POI  Apache POI是一个开源的利用Java读写Excel、WORD等微软OLE2组件文档的项目。3.5以后加入了对采用OOXML格式的Office 2007支持,如xlsx、doc...
  • RunningTerry
  • RunningTerry
  • 2015-07-27 16:15
  • 2367

JXL网络导出excel部分机器出现文件乱码的解决办法

前不久使用jxl导出Excel,
  • shenlan18446744
  • shenlan18446744
  • 2014-11-04 11:23
  • 943
    个人资料
    • 访问:953次
    • 积分:59
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档