C++
_东门吹雪
你存在我茫茫的代码里!
展开
-
c++大数据量压缩方法——基于数据位的数据解析方法
在项目中用到了基于数据库的大数据量存取时,我们要考虑的是数据读取速度,及数据存储大小,往往数据存储量大的话,数据读取速度也会随之降低,所以我们降低数据存储大小的方法,一是,使用位单位来存储数据,尽量压缩数据大小;二是,在将数据量控制在最小后,数据依旧大,那么我们需要使用压缩算法进行压缩; 在这次项目中我们使用Redis存储数据,使用一个key存储了张图像(二维数组),然而redis数据量越大,在查询的时候速度越慢,所以我们要将数据尽量压缩,直接方式是存储为二进制,但是二进制的...原创 2022-03-21 14:53:54 · 3059 阅读 · 0 评论 -
c++大数据量压缩方法——基于zlib的gzip解压缩方法
在项目中用到了基于数据库的大数据量存取时,我们要考虑的是数据读取速度,及数据存储大小,往往数据存储量大的话,数据读取速度也会随之降低,所以我们降低数据存储大小的方法,一是,使用位单位来存储数据,尽量压缩数据大小;二是,在将数据量控制在最小后,数据依旧大,那么我们需要使用压缩算法进行压缩; 在这次项目中我们使用了gzip压缩算法来压缩数据存储到redis中,然后我们使用c++开发一个数据中间件对数据进行统计分析,所以我们使用到了zlib对获取出来的大数据块进行解压缩,解压缩代...原创 2022-03-21 11:58:10 · 5066 阅读 · 0 评论 -
c++ win32控制台,输出文字颜色控制
此方法借鉴网络上的方法,本人进行了简单封装。可以在windows控制台下,控制输出内容的颜色。consoleutils.h/************************************************************//* File: consoleutils.h *//* Author: Yangze DateTime: 2021-02-07 17:22 *//原创 2021-03-01 16:52:46 · 622 阅读 · 1 评论 -
去除std::string,char *,QString字符串中的空格方法
//去除字符串中的空格符号void CommonUtils::SkipWhitespace(char * str){ char *p1 = str; char *p2 = str; while ('\0' != *p2) { while (((' ' == *p2) || ('\t' == *p2) || ('\n' == *p2)) && ('\0' != *p2)) { ++p2; .原创 2021-02-07 10:46:15 · 313 阅读 · 0 评论 -
QT 清理日志代码
/** * @brief onClearLogFile 清理日志目录 * @param path 目录 * @param keepLogDays 保留最近天数 */void onClearLogFile(QString path, int keepLogDays){ QStringList fileList; //需要清理文件的类型 QStringList filterList; QString fileType = "*.txt"; filterLi.原创 2021-02-07 10:16:11 · 575 阅读 · 0 评论 -
改写SimpleLogger支持C++10
SimpleLogger这个轻量级的log记录库,里面用到了一些c++11的一些特性,我要在项目中使用,我的项目是基于c++10的,所以对它的内容做了一些修改。未修改的SimpleLogger:https://github.com/juzzlin/SimpleLoggersimple_logger.hpp// MIT License//// Copyright (c) 2018 Jussi Lind <jussi.lind@iki.fi>//// https://githu原创 2020-08-15 16:08:23 · 241 阅读 · 0 评论 -
c++ 基于Mysql原生库二次封装的轻量级库
一 、前言 在C++项目中经常要使用Mysql数据库,在QT项目中使用Mysql还需要 Mysql驱动,但是在QT4.7,4.8版本中,mysql驱动需要自己编译,在编译过程中会遇到很多问题,需要花很多时间来解决,所以我们要想别的办法;一是,不直接使用mysql驱动来操作mysql数据库,可以使用odbc的方式来操作数据库,并且使用ODBC操作数据之前需要配置ODBC源;二是,可以绕开QT的数据库框架,直接使用mysql原生的库来操作mysql;所以我们基于原生的库进行了二次封装。二、源...原创 2020-05-31 10:47:06 · 683 阅读 · 0 评论 -
Boost的编译方法与QT中的使用
Boost的编译方法与QT中的使用前言编译编译32位编译64位QT中使用加载库使用结束语前言Boost是为C++语言标准库提供扩展的一些C++程序库的总称。作为扩展库,它是非常强大的,在平常项目中运用也非常广泛。编译编译32位编译64位QT中使用加载库使用结束语...原创 2019-11-26 16:11:47 · 402 阅读 · 0 评论 -
c++之大数据采用数据切分批量插入数据库的方法
最近在做一个数据导入功能,数据量为360W,按照我们通常的比较笨的方法则的遍历数据一条条的往数据库插入;经实验证明这个方法确实可以完成这个工作,但是它的插入数据的速度太慢,尤其当随着数据库的数据增加,速度会越来越慢。所以有的人会说我可以使用事务的方式,确实使用事务的方式可以优化数据的插入速度,一般是可以满足我们的要求;但是我们知道使用事务,是会导致锁表的,当执行事务过程中,数据库会锁表,导致其...原创 2019-10-19 12:38:43 · 802 阅读 · 0 评论 -
QT使用QTableView基于Sqlite的数据库查看,翻页,添加、修改、删除
在此特别感谢刘大师(Qt侠),本文实现的功能是基于他实现的“Qt编写数据库通用翻页demo”基础上修改而成的。本文借鉴Demo博客:https://blog.csdn.net/feiyangqingyun/article/details/82530643刘大师有许多作品,非常值得去学习,他的博客和开源项目地址如下:csdn:https://blog.csdn.net/feiyangqi...原创 2019-10-17 11:49:53 · 4744 阅读 · 4 评论 -
QT5.9.3高仿探探雷达扫描控件 扫描+回波
闲来无事,简单做了一个基于QT的仿“探探”雷达扫描控件,效果图如下核心代码1,绘制扫描void QTanTanScanning::drawScanning(QPainter *painter){ painter->save(); QConicalGradient conical(0, 0, arc); scannigColor.setAlp...原创 2019-08-27 13:07:07 · 3276 阅读 · 1 评论 -
qt加载EChart并动态交互数据及动态设置大小的方法
QT有图表库,用来展示数据,比如QWT,QCustomPlot,QChart。QCustomPlot是一相对好用的轻量级的控件,QChart虽然说是QT框架内的,可是听说性能极差,完全比不上QCustomPlot,而QWT是一个性能比较好的,且样式也相比其它两个来说,是相对丰富,重量级的库,可是需要自己编译配置环境,如果感兴趣可以查看我其它的博客怎么来编译它。这里我都不讲以上三个库,下面我相讲的是...原创 2019-05-23 17:06:24 · 10348 阅读 · 31 评论 -
QT5.9.3 使用vlc-qt
上一篇文章已经和大家详细介绍了VLC-QT的编译方法,最后我得到VLC-QT的QT 5.9.3+VS2015 的win32,Release和Debug版本,那么这次我给大家讲解怎么使用它。一、环境部署通过编译并安装后,我们得到了以下所示的VLC-QT库。我们将bin目录下的所有dll文件拷贝到QT的bin目录下(如:D:\Qt\Qt5.9.3\5.9.3\msvc2015\bin)...原创 2018-09-03 08:21:26 · 9620 阅读 · 0 评论 -
VS2015+QT5.9.3+vlc-qt 完全编译
最近做了一个分屏软件,开如使用的FFMPEG进行开发,开发完成后,经测试发现视频卡顿得很,我是将一帧帧视频用QImage的的方式在屏幕上画出来,可以这种效率太低了,无奈找不到好的办法解决,只能放弃寻找其它的出路,然后我了解到了VLC,在开发过程中,我发现,VLC的效率还可以,可是有一个弊端,那就是在切换视频时无法全屏化显示,本人的能力有限,不想耗费太多精力去做这些事情,我查阅资料,发现有一个国外大...原创 2018-08-26 16:31:30 · 6040 阅读 · 16 评论 -
GDAL编译 win10 VS2015 WIN32与X64 的 debug与release编译(终极修正)
最新GDAL下载GDAL Source下载,这里下载对应的GDAL版本 http://download.osgeo.org/gdal编译方法:本编译环境是在VS2015下进行的 Win32版本的编译 1、打开VS2015 x86 本机工具命令提示; 开始菜单->Visual Studio VS2015->VS2015x86 本机工具命令提示 2、...原创 2017-05-03 08:20:45 · 4813 阅读 · 0 评论 -
geos 3.6.1编译 win10 vs2015
1.下载geos 3.6.1百度云盘:http://pan.baidu.com/s/1hr4S21Y 密码:rwxj2.WIN32编译1)打开VS2015 x86 本机工具命令提示; 开始菜单->Visual Studio VS2015->VS2015x86 本机工具命令提示2)通过cd 命令行命令 设置到geos资源目录3)设置到geos目录后,以此...原创 2017-05-07 09:08:05 · 2008 阅读 · 0 评论 -
QCA+OPENSSL QT5.7.1 VS2015 WIN10 编译
从学QGIS开始,我就一直在考虑怎么自己编译QGIS 64位DEBUG版本的库,无奈一直无法自己编译出QCA的库,我看过很多人的博客,但是一直没法编译,一次偶然的测试,让我明白了过来,原来QCA可以这样简单的编译出来,一直被别人的博客误导了!什么也不说了,说多了都是泪啊!直接上方法!一、编译准备1.下载安装编译必须的ActivePerl我的百度云盘:链接:http://pan.ba原创 2017-07-13 08:54:48 · 3082 阅读 · 3 评论 -
GDAL读取shp文件VS2015+GDAL2.1
因为项目需要,我们想从SHP文件中,读取给定的某个区域内的所有建筑物信息。本来想用QGIS来实现,但是很不巧,我们的一个服务器和我的工作电脑先后驾崩,没有QGIS的环境了。所以我想用别的办法解决,然后想到了GDAL开源库,前面我已经写了一篇关于GDAL的编译方法了,再在正好派上用场。一、编译GDAL编译方法我就不说了,请查看我的博客。http://blog.csdn.net/o...原创 2017-07-04 14:42:37 · 5684 阅读 · 2 评论 -
proj.4编译 win10 vs2015
1.下载proj.4然后解压链接:http://pan.baidu.com/s/1dFEcrrb 密码:wk382.WIN32编译1)打开VS2015 x86 本机工具命令提示; 开始菜单->Visual Studio VS2015->VS2015x86 本机工具命令提示2)通过cd 命令行命令 设置到proj.4资源目录3)设置到proj.4目录后,以...原创 2017-05-07 09:47:14 · 1726 阅读 · 0 评论 -
基于ASCII码的通讯协议解析与数据存储技术——经验之谈
做了通讯已经有好几年了,一直用QT做开发,对于C的很多东西都不是很训练的运用了,其实做程序开发,就是要讲究简单、高效、稳定,C做为C++的基础,是最容易体现这些特点的!对于QT进行ASCII码的字符串解析,我们通常是怎样解析的呢?以NMEA0183协议为例:"$GPRMC,173843,A,3349.896,N,11808.521,W,000.0,360.0,230108,013.4,原创 2017-07-30 11:21:35 · 4886 阅读 · 0 评论 -
基于GDAL的OGRPolygon网格化
在使用GDAL做开发的过程中,我需要对有的面进行网格化,如:建筑物面等;在shp文件中建筑物面都是以多边形的形式进行描述的,使用GDAL读取SHP文件中的建筑物面会得到一个个OGRPolygon对象,依据这个对象进行网格化。需要注意的是,我的这种网格化的方法只针对平面坐标系统有效果,我是基于QT5进行开发的。首先第一步需要根据多边形建立最大矩形,所以我们需要获得该多边形的最大坐标和最小坐标原创 2017-08-11 16:04:19 · 2031 阅读 · 1 评论 -
GDAL 获取多边形OGRPolygon的方法
GIS是一门很大的学问,就拿怎么在SHP文件中获得一个多边形来说,我看了很多的人的博客都是这样的:OGRFeature *cityOutsideBuildingPoFeature;while ((cityOutsideBuildingPoFeature = mLayer->GetNextFeature()) != NULL){ OGRGeometry *rdPoGeometry = ci原创 2017-08-22 09:50:07 · 5243 阅读 · 0 评论 -
sql语句快速清空表
对于sql清空表有三种清空方式1.delete------ 是逐行删除速度极慢,不适合大量数据删除2.truncate---- 删除所有数据,保留表结构,不能撤消还原3.drop-------- 删除表,数据和表结构一起删除,快速但是在实践过程中我发现,1,2这两种方法在处理大量数据的时候都比较慢,往往要等待许久才能清空完成。所以我考虑还有没有其他的方法达到清空表的作用呢。后来我从原创 2017-08-15 10:55:59 · 42131 阅读 · 0 评论 -
QT 多线程(QThread)里调用线程池(QThreadPool )与主界面进行通讯
QT 多线程(QThread)里调用线程池(QThreadPool )与主界面进行通讯在最近的一个项目中,遇到了一个问题,就是主界面调用一个线程,然后再线程中开启一个线程池进行数据生成,线程池调用的线程对象必须继承自QRunable类,这个类有个缺点,就是因为它无法继承QObject,所以不能向外面发送信号,但是我们需要在主界面显示它输出的信息。怎么办呢?编写一个QRunable子类编写一个QT原创 2017-08-25 22:33:52 · 5005 阅读 · 2 评论 -
QT写的自定义控件
最近一直在做JS方面的开发,没有时间写QT,真的好累啊,学的语言太杂了,先发个最截图,是我这前写的几个控件,一直没有时间整理,功能实现了但是还有些乱,后续整理好了,看能不能开源出来,第一个里面的图标后面会改成SVG,PNG格式一放大就失真,后面还有一个仿朋友圈人加载控件,暂时就不展示了。...原创 2018-03-07 15:56:54 · 515 阅读 · 0 评论 -
在QT中使用图标字体库
之前研究过在UI中加载什么样的图标而不失真,然后我找到了SVG文件,加载到UI中后不会造成失真;最近研究了一个在某位大神用QT写的UI,有了新的收获,原来存在另外一种更方便的方法,那就是使用图标字体库。使用图标字体库的优点在于,一个图标字体库中包含了许多图标,同时它可以像字体一样很方便的加载到项目中,使用简单。但是图标字体库资源比较少,免费的就更难找了,下面我介绍一两个免费的图标字体库,一个是:f...原创 2018-05-15 10:55:32 · 6232 阅读 · 3 评论 -
expat win10+vs2015编译
Expat是一个用C语言开发的、用来解析XML文档的开发库,它最初是开源的、Mozilla 项目下的一个XML解析器。1.下载expat安装文件 百度云盘:http://pan.baidu.com/s/1hsMdEhm 密码:pg1e2.安装expat-win32bin-2.2.0.exe 安装目录随自己设置,最好不要在C盘,因为C盘有权限问题。3.在安装目录找到V...原创 2017-05-07 00:05:31 · 1199 阅读 · 0 评论