自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (3)
  • 收藏
  • 关注

原创 golang png等图片转ico或bmp格式

我记得以前图片转换很快,不止有免费软件使用,还有很多在线转,也是免费,速度也快。不知道什么时间开始,图片转换开始变了,需要关注公众号,需要注册,然后还要充VIP才能免费转换……由于我这个是用gin接收图片文件后,调用Convert2ImageByFile函数进行转换,所以参数是sourceFile multipart.File。刚开始搜了下,说只能转BMP格式,要么转换完后,背景变黑,不好看;这里我是写死转换类型为ICO,大小为48*48,有需要的朋友可以根据传入参数,增加转换类型和ICO大小。

2024-05-09 16:35:45 131 1

原创 golang在goland编译时获取环境变量失效

goland在启动时,会加载环境变量,并在运行时缓存这些变量,导致在系统上操作缓存变更后,os包读到值不会变。我只用过goland编译器,不知道其他编译器会不会出现这种问题,或是哪位大神有其他解决办法,可以发评论告知下!且,重启某个项目是无效的,需要关闭所有项目,把goland都关闭后,重新打开,才能生效。但这个,其实很麻烦,每次一修改,就需要重启所有项目。修改后,读到的还是修改前的值。去更新环境变量,然后再去掉代码(是有点麻烦)新增后,读到的值还是空值;

2023-09-14 09:55:29 619

原创 logstash日志换行处理小解

logstash换行处理\\n 替换成\n

2023-08-10 09:44:59 1630

原创 go-zero超时Timeout配置的小坑

go-zero超时Timeout配置

2023-04-24 19:47:36 1956 2

原创 go-zero goctl常用命令简介

goctl 常用命令介绍说明,方便程序员快速开发go-zero项目,提高开发效率和格式规范

2022-06-21 17:11:39 3198

原创 golang 微信支付介绍

golang微信支付介绍

2022-02-11 16:35:31 5860 6

原创 goland编译golang生成linux执行程序

现在Windows使用率还很高,我们平常开发使用的电脑都是Windows系统。所以我们在写代码、调试、测试等,都是在Windows系统下。所以我们常用的goland编译配置的,都是Windows环境,生成也的EXE执行程序但我们很多部署服务器都是linux,所以要部署的时候,需要生成linux环境下的执行程序网上有说,修改配置后再编译,如:set CGO_ENABLED=0set GOOS=linuxset GOARCH=amd64但,生成完,需要把配置改回来后,才能再用.

2021-11-01 17:33:45 4796

原创 golang图片属性orientation在image.Decode后丢失,导致图片上传后旋转

通常图片web上传后,会进行image.Decode() 解码、resize.Reszie()图片压缩、jpeg.Encode()编码保存等处理。但部分图片在处理过后,图片显示会被旋转。通常在于苹果手机拍出的照片,而安卓手机正常。这是苹果手机等设备拍照后,图片文件上带有orientation方向属性,系统打开显示时会自动根据方向属性进行调整,让我们看起来是正常的。而后台处理后,orientation方向属性丢失(类似安卓手机拍的照片),导致保存后的新图片被旋转。可以通过github.com.

2021-07-27 11:53:18 1041 1

转载 golang微服务框架go-zero系列-1

为什么使用go-zero 可以有第三个选择 golang圈子不大,微服务框架框架屈指可数:除了go-micro、go-kit,几乎没有其他选择。go-zero为此提供第三个可能。go-micro 对webapi支持并不友好,需要运行micro指令,难以定制 创业产品需要一款支持...

2021-03-10 15:34:20 2149 2

转载 DELPHI的BPL使用

DELPHI的BPL使用 了解BPL和DLL的关系将有助于我们更好地理解DELPHI在构件制作、运用和动态、静态编译的工作方式。对初学DELPHI但仍对DELPHI开发不甚清晰的朋友有一定帮助。BPL vs. DLL(原文http://www.delphi3000.com/ 翻译:房客)第一部分:有关包的介绍一般我们编写编译一个DELPHI应用程序时,会产生

2015-12-29 09:51:56 8993

转载 让我们一起Go(十三)

前言:上篇,我们了解了Go语言接口的一些知识,在这篇中,我们将继续聊聊接口这东西。 Go语言空接口Go语言中定义一个空接口,也就是没有任何函数需要实现的接口就是一个空接口,作为一个空接口,因为对象无需实现它的函数,所以它可以指向任何对象,看下面的示例:上面的empty接口变量分别可以被赋值为int类型,string类型,结构类型和数组类型等等。最后,使用Pr

2015-06-29 10:27:55 476

转载 让我们一起Go(十二)

前言:上篇中,我们讲到了在Go语言中如何定义方法,今天,我们将进一步深入Go语言的面向对象编程。 一、Go语言中的接口首先来看一个最基本的接口: 和定义一个结构体类似,只不过将struct换成了interface,然后声明了两个函数:draw()和count()。就这么简单,一个接口就定义好了,那么如何实现接口呢?在java中我们会让一个类去实现接口,在实现

2015-06-29 10:27:19 618

转载 让我们一起Go(十一)

前言:今天又要继续了,当初自己的挖的坑必须得填啊,尽管天气非常滴热,但是丝毫无法阻挡我填坑的热情,那么,我们继续让我们一起Go!!! 定义方法:这里我们要来看看Golang中的(Methods)方法了。我们在让我们一起Go(九)中谈到过Go语言的函数(functions),这和今天说的方法不是一个概念哦。熟悉面向对象的同学应该知道,一般我们把类的成员函数叫做Meth

2015-06-29 10:26:48 784

转载 让我们一起Go(十)

前言:本系列还没流产,继续难产中,哈哈,只怪我没专心,在期间又偷偷去学了python,ruby,scala,haskell这几种语言,如果你不幸是本系列的读者,那么你得慢慢等后面的了,等不及可以过几年再来看看啊^_^。因为,Go语言没那么迫切需要用到,而且个人兴趣比较广泛,要玩的东西太多了,自然暂时无法一口气完成Go的学习。对于读者,只能说非常抱歉啦。废话不多说了,今天补上一篇。

2015-06-29 10:25:18 632

转载 让我们一起Go(九)

一、Go语言中的函数终于轮到函数了,其实也没有什么好说的,无非就是一个语法问题,c语言有c语言的语法,c#有c#的语法,那么Go语言的函数如何呢?在前面的文章中其实已经看到过一些简单的函数了,今天我们再来详细看看,所以请看下面: 在上述的代码中,我们一共声明并定义了两个函数,一个是say,另一个则是一个匿名函数,而且这里通过匿名函数,生成了一个函数闭包。在Go语言中使用fu

2015-06-29 10:17:22 664

转载 让我们一起Go(八)

Go语言中的运算符        上述表格(引自网络)已经很清楚的展示了Go语言的运算符已经它们的优先级,对于非常常见的这里就不一一介绍了,这里举几个运算符来玩玩。先看一例子:题目--给定一个int型数组,找出其中的奇数,打印出来?。大家动手试试,可以选择上面表格中的任意运算符完成。这题目很简单,如果一个数不能被2整除,那么就是奇数,好,我们试试%运算符,该运算符是取模,也

2015-06-29 10:15:51 414

转载 让我们一起Go(七)

一 不可变的字符串在上一篇中,我们在最开始的时候提到过这个特性,不过不小心后来给忘记说了,对此非常抱歉(= =||),所以就今天补上了。还是用例子来说明,比较容易,请看下面:  这里的例子很好的解释了,字符串的不可变性,当你把13行注释去掉后,编译该文件就会报错,因为不允许修改字符串内容。很多初学者可能认为第10行不是改变字符串内容了吗?这种理解是错误的,第10行只是将变量cat指

2015-06-29 10:15:20 415

转载 让我们一起Go(六)

一 Go语言之字符串  与大多数面向对象编程语言一样,Go语言也具有string(字符串)类型,只不过它与其它语言例如java中的String类型不一样的是它是值类型。并且注意声明的关键字是string,全部小写的哦,亲(java程序员尤其注意,c#程序员偷乐中......)。除此之外,它还有个特性就是不可变性,这里需要注意的是指字符串本身不可变并不是字符串变量不可变,稍后看例子就能明白。

2015-06-29 10:14:15 752

转载 让我们一起Go(五)

前言转眼间,已经2013年了,新的一年,还是继续学习Go啊,本系列不小心跨年了,哈哈哈。上篇中我们初步了解了Go语言的变量声明,今天我们首先还是要继续聊聊变量。文章更新较慢,请谅解,因为公司项目太忙,白天基本没时间,晚上抽空写的,且本人水平有限,难免有不对之处。一、再谈Go语言变量上篇中,我们知道在Go语言中是通过var 关键字来声明变量的,那么声明变量,我们没有给变量赋值,那些变

2015-06-29 10:06:25 719

转载 让我们一起Go(四)

一、如何Go语言中声明变量首先,我们创建一个新的Go语言的文件,命名为variable.go,这里你或许会问为什么叫这么个名字,如果你不认识这个单词可以立刻去查下。查完了相信你就知道意思了。建立好文件后,用你喜欢的文本编辑器或者ide开始跟着我一起练习吧。如果你还记得前几篇的内容,相信你已经会写Go语言的基本程序结构了,如果不记得了,再去复习下吧。或者你懒得回去再看,就继续往下看,不过建议

2015-06-29 10:05:19 631

转载 让我们一起Go(三)

在前几篇中,我们搭建好了Go语言的开发环境,从今天开始就正式进入Go语言的编程学习了。 一、Go语言程序基本结构与外部包的导入 首先来看Go语言程序的基本结构: 以上就是最基本的结构,主函数中就通过导入的fmt包,调用该包的Printf函数,向控制台打印字符串。其中import “fmt” 还可以为导入的包指定别名,像下面那样import format “fmt

2015-06-29 10:00:30 669

转载 让我们一起Go(二)

上一篇中,我们初次接触了Go这门语言,并配置了环境,在最后还动手编译并运行了第一个Go的程序。虽然对于运行的程序并没有解释里面的语法,因为对于初学者来说,这并不着急,因为我们要循序渐进,先动手实现一些你并不了解的东西之后再慢慢解释,可能比直接讲一大堆语法效果更好,给人的印象更深刻。今天,我们还得继续完善下我们的准备工作,因为,在上篇中我们看到,我们的条件有些艰苦,在编辑器中敲的代码,而且在命令行中

2015-06-29 09:59:15 876

转载 让我们一起Go(一)

前言:      近年来各种新的计算机编程语言不断出现,这对于我们程序猿来说,是一件多么欢乐的事情啊。特别是对于像笔者一样的多情者,更新欣喜万分。而最近一次偶然的机会笔者接触到了Go语言,于是再也忍不住其美妙的语法而写文于此。其实,Go语言在几年前就已经出现了,对于许多人来说,或许不是什么新东西,而对于像笔者这样刚接触或者第一次听说的人来说,确实是新事物,那么到底Go语言是怎么出现的?为什

2015-06-29 09:57:32 668

转载 FireDAC 下的 Sqlite [12] - 备忘录(草草结束这个话题了)

该话题的继续延伸主要就是 SQL 的语法了, 草草收场的原因是现在的脑筋已经进入了 IntraWeb 的世界.相关备忘会随时补充在下面://连接多个数据库的参考代码:FDConnection1.ExecSQL('ATTACH ''c:\hr.sdb'' AS hr');FDConnection1.ExecSQL('ATTACH ''c:\cust.sdb'' AS cu

2015-06-16 17:15:54 531

转载 FireDAC 下的 Sqlite [11] - 关于批量提交 SQL 命令的测试

可把下面代码直接贴在空白窗体上, 以快速完成窗体设计:object DBGrid1: TDBGrid  Left = 0  Top = 0  Width = 265  Height = 338  Align = alLeft  DataSource = DataSource1  TabOrder = 0  TitleFont.Charset = DEFAULT_

2015-06-16 17:15:22 756

转载 FireDAC 下的 Sqlite [10] - 使用 R-Tree 搜索

R-Tree 主要用于三维空间的搜索, 据说这种搜索算法非常之快, 哪怕百万条记录也是眨眼间的事!SQLite 支持 1-5 维, FireDAC 也提供了 TFDSQLiteRTree 控件以方便定义回调函数. 为了简单, 我用二维表进行了成功的测试.建立 R-Tree 表(索引)时需要使用特定语法, 譬如:FDConnection1.ExecSQL('CREATE VIRT

2015-06-16 17:14:16 838

转载 FireDAC 下的 Sqlite [9] - 关于排序

SQLite 内部是按二进制排序, 可以支持 ANSI; FrieDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序.下面的例子, 测试了这两种排序的不同.可把下面代码直接贴在空白窗体上, 以快速完成窗体设计:object DBGrid1: TDBGrid  Left = 0  Top

2015-06-16 17:13:17 869

转载 FireDAC 下的 Sqlite [8] - 自定义函数

Sqlite 本身没有这个功能, FireDAC 通过 TFDSQLiteFunction 增加了该功能; 尽管通过某些 SQL 语句或通过视图也可以达到类似效果, 但函数会更灵活些.本例先建了一个成绩表, 然后通过两个 TFDSQLiteFunction 实现了 "总分" 与 "平均分" 的计算.你可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成窗体设计:o

2015-06-16 17:11:58 912

转载 FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)

用 TFDSQLiteBackup 控件, 两三行代码即可完成 Sqlite 数据库的备份.procedure TForm1.Button1Click(Sender: TObject);begin  {先初始化目标}  FDConnection1.DriverName := 'SQLite';  FDConnection1.Params.Add('Database=C:\Temp\

2015-06-16 17:10:22 822

转载 FireDAC 下的 Sqlite [6] - 加密

主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单.const  dbPath = 'C:\Temp\SQLiteTest.sdb';{建立加密数据库, 密码是 mm123}procedure TForm1.FormCreate(Sender: TObject);const  strTable = 'CREAT

2015-06-16 17:09:38 816

转载 FireDAC 下的 Sqlite [5] - 数据的插入、更新、删除

先在空白窗体上添加: TFDConnection、TFDPhysSQLiteDriverLink、TFDGUIxWaitCursor、TFDQuery、TDataSource、TDBGrid(并在设计时关联好).你也可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成以上的添加过程:object DBGrid1: TDBGrid  Left = 16  Top

2015-06-16 17:09:05 1451

转载 FireDAC 下的 Sqlite [4] - 创建数据库

建立数据库的代码:{建立内存数据库的一般代码:}begin  FDConnection1.DriverName := 'SQLite'; //同 FDConnection1.Params.Add('DriverID=SQLite');//  FDConnection1.Params.Add('Database=:memory:'); //可省略这行, FireDAC 的源码显示, i

2015-06-16 17:06:15 1439

转载 FireDAC 下的 Sqlite [3] - 获取数据库的基本信息

在空白窗体上添加: TFDConnection, TFDPhysSQLiteDriverLink, TFDGUIxWaitCursor, TMemoprocedure TForm1.FormCreate(Sender: TObject);var  List: TStrings;  V: Variant;begin  FDConnection1.Open('DriverID=S

2015-06-16 17:04:48 1045

转载 FireDAC 下的 Sqlite [2] - 第一个例子

为了方便测试, 我把官方提供的 C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\data\FDDemo.sdb 复制了一份到 C:\Temp\FDDemo.sdb.{新建一个 VCL Forms Application, 然后添加如下控件(建议按 Ctrl + . 后用键盘输入添加):}TFDPhysSQLiteD

2015-06-16 17:03:13 719

转载 FireDAC 下的 Sqlite [1] - 前言

很长时间没静下心来写博客了, 现在回来, 是 Delphi 不断地进步让我感动、振奋.Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了.让我最高兴地是 FireDAC 对 Sqlite 的支持!优秀的 Sqlite 早就有很多 Delphi 的包装(http://www.sqlite.org/cvstrac/w

2015-06-16 17:02:11 911

原创 DevExpress14.1.2 xe XE6 快速安装

之前在在网上下载的DevExpress14.1.2 xe-XE6都是一个个包文件,需要一个个去查找编译安装,而且需要有一定的顺序要求。所以下载了好久了都没有安装。最近在网上找了个旧版的安装方法,以此来做参考,做了个快速安装的项目组文件,希望能帮到大家!下载地址:http://pan.baidu.com/s/1gdkW0Qf压缩包中包含了安装说明。

2014-10-15 11:22:41 1726

转载 SPComm的一点小诀窍 spcomm的问题导致数据丢失

最近几天完成了BiasDAC的程序编写。调试的过程还算比较顺利,除了几个有点bt的小问题。其中一个困扰了我两三天的时间,今天上午终于将其解决。由于BiasDAC是用RS232 Serial Port通信的,延用之前的程序,使用了Delphi的SPComm控件。在之前的使用中,SPComm控件一直工作正常,使用的是一般的string进行消息的传递。而BiasDAC由于通信协议的限制,

2014-02-12 15:00:34 1925

原创 Delphi 收缩Access数据库

<br />      我自己在做一个自己用的个人理财系统时,由于想方便程序,所以使用了Acess数据库,使用方便。本是没什么事,做完了之后就突然想到我之前做的一些使用SQL数据库的程序时,偶尔删除大量数据时要收缩下数据库,我就自己没事收缩下Acess数据库,没想到居然小了一半,这还只是我测试时使用的数据,如果长此以往那空间不是浪费太大了。<br />      之后我就去找了好多的用命令收缩数据库的方法,但是找了好多,大体都是两种,一种是CompactDatabase(原数据库文件,新数据库文件,原密码,

2011-01-26 17:33:00 1148

转载 SQL导出insert 语句

<br />最近需要导出一个表的数据并生成insert语句,发现SQL Server的自带工具并米有此功能。BAIDU一下得到如下方法(亲测OK)<br />用这个存储过程可以实现:<br /><br />CREATE PROCEDURE dbo.UspOutputData <br />@tablename sysname <br />AS <br />declare @column varchar(1000) <br />declare @columndata varchar(1000) <br />de

2010-11-04 11:06:00 864

转载 Delphi编码规范

<br />目录<br /> <br /> <br /> <br />1、前言... 2<br />2、源程序书写规范... 2<br />2.1通用源代码格式规范... 2<br />2.1.1缩进... 2<br />2.1.2边距... 2<br />2.1.3 Begin…End语句... 2<br />2.1.4注释... 3<br />2.2 Object Pascal语句格式书写规范与用法... 3<br />2.2.1括号... 3<br />2.2.2保留字和关键字... 3<br />2

2010-10-30 11:44:00 532

XE XE6 SPcomm 串口

将Delphi 7 的串口控件修改成XE6可用,XE5和XE7暂未测试,应该也能用。提醒:要将发送与接收关于命令处理中的string类型改为ansistring才能正常收发

2014-09-26

复制整个文件夹内所有内容

可以将源目录文件夹内所有内容(源目录下的文件和下属文件夹的文件,多层级)复制到目标目录下,还可勾选是否在目标目录上再创建一个跟原目录同名的文件夹。

2012-01-06

delphi设置判断共享文件夹

使用delphi设置共享文件夹,删除共享文件夹,还可以判断此文件夹是否已共享

2010-12-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除