Delphi
文章平均质量分 78
僵哥
Delphi
展开
-
Delphi使用Zlib、C++Builder使用Zlib
2010-10-06 修正解压缩代码uses zlib;//将Src使用Zlib压缩后存入Dst当中 procedure PackStream(const Src:TStream; Dst:TStream);var CompStream: TCompressionStream;begin //增加“断言”以防止输入参数有误 Assert(Src <原创 2008-03-10 23:14:00 · 5801 阅读 · 5 评论 -
Base64Encode With 12Bits-CoderTable
Delphi嵌入汇编版Base64编码过程,采用有效位为12位的16位码表原创 2010-09-28 19:07:00 · 1010 阅读 · 0 评论 -
Base64编码(汇编版,未做过多优化,性能自认为还可以)
采用8位码表的Base64编码过程(Delphi嵌入汇编代码)原创 2010-09-28 11:24:00 · 2512 阅读 · 3 评论 -
人民币中文大写转金额
type MoneyType = Currency; //这里可以是Double,但是浮点数存在误差,也可以是Currency,但是大小有限制 function ChineseCapital2Money(Capital:WideString): MoneyType;var szNum:PWideChar; Sign: MoneyType; dblCur原创 2008-11-09 20:29:00 · 1888 阅读 · 0 评论 -
Delphi版金额大写(人民币大写读数)代码
首先非常感觉xxaacc 发现了原来写的那份Delphi代码当中的问题(测试数据:1000100011.12).原来的代码是03年写的了,最初的代码也是用C++写的,然后转换成Delphi代码.当是发布以C++Builder,从而为了速度优化等,得到了tiegerium(/*唐秀观*/)支持,而得以完善. uses math;const mnUn原创 2008-11-08 23:52:00 · 5488 阅读 · 1 评论 -
Delphi/C++Builder在没有做任何代码修改,重新编译后CRC不一致的解决方案。
Delphi/C++Builder在没有做任何代码修改,只要重新编译后,再计算CRC,就会与原来不一致的。经同事的朋友查得是时间戳在做怪。解决方案见贴子:http://topic.csdn.net/u/20080613/11/9fa12d6b-473d-4ac9-a091-0b02f4ffcac6.html下面只贴出代码:function FileDateToDateTime_UT原创 2008-06-16 22:53:00 · 2220 阅读 · 0 评论 -
基于CRC20散列的百万账号快速查找模拟
基于数以百万级的账户信息里面进行账号的校验并不是一件容易的事,关键点在于具体账户信息的定位.本文的主题仅仅只是为了应用的实现,就不再去做散列和排序各种算法之间的对比.对于一百万的账户信息,使用多大的散列表进行存储,是需要考量的.对于散列腹得最多的应该属256桶的Hash Table,但是在最好的情况下一百万账户信息在256桶的散列表当中重合率达到了近4000,而再从这当中进行二次搜索,同样也是一个原创 2008-09-03 23:35:00 · 2580 阅读 · 1 评论 -
让BDS2007(Delphi2007&C++Builder2007)编译出一个个性的文件名,而不是以Project的名称来命名
在BDS2007当中调用的是MSBuild来完成最终的编译,而其实MSBuild支持来指定文件名,但是BDS2007却对它“视而不见”,虽然你可以手工去编辑Delphi/CB的project源文件,来指定一个,但是编译是可以生成一个际定的文件名,却无法在IDE当中通过Run或F9来执行,并且也无法在IDE当中完成改名。不过,很有意思的是,在工程选项的Application当中,却可以指定文件的原创 2008-06-08 16:34:00 · 2800 阅读 · 0 评论 -
在Delphi当中调试COM+组件
How to debug a COM+ component in Delphi. 如何在Delphi当中调试COM+组件 Abstract: Debugging a COM+ component on Windows 2000. 摘要:在Windows 2000当中调试一个COM+组件(WinXP/Win2003适用) Assuming you have already created a COM翻译 2008-05-28 23:22:00 · 2769 阅读 · 3 评论 -
DCOM当中保证异步作业不因远端COM客户断开而中止的解决方案(Delphi)
问题起源:最近开发了一个DCOM服务器,内部有个队列任务。客户端可以连接调用以添加任务到队列。现在有个问题是当客户端调用完断开连接后,DCOM服务器的队列任务还没执行完毕DCOM就退出了。请问有什么办法可以让队列执行完才退出呢?简单的解决方案演示:演示是通过增加一个方法Method1,被用户调用后,记下自己当前的ThreadID(GetCurrentThradId获得),然后调用_Addref原创 2008-05-28 16:40:00 · 1466 阅读 · 0 评论 -
对TServerSocket实行IP绑定之一(辗转方式,只用于演示,除非必要不推荐使用)
BDS(Delphi/C++Builder)当中的TServerSocket估计是基于简单应用或者学习的目的考虑,所以直接就绑定了泛地址,而不支持针对性的IP地址绑定,这也就使得一些特殊的环境让人感觉有点不舒服,甚至有点无奈。本文就简单介绍一种“曲线破解”法来解决这个绑定的问题。本示例主要是基于BDS2007的TServerSocket,其它版本请根据实际情况进行调整未必都能实现。//简单演示原创 2008-05-27 10:56:00 · 2112 阅读 · 1 评论 -
对TServerSocket实行IP绑定之二(继承方式,只用于演示,除非必要不推荐使用)
BDS(Delphi/C++Builder)当中的TServerSocket估计是基于简单应用或者学习的目的考虑,所以直接就绑定了泛地址,而不支持针对性的IP地址绑定,这也就使得一些特殊的环境让人感觉有点不舒服,甚至有点无奈。本文就简单介绍一种“曲线破解”法来解决这个绑定的问题。本示例主要是基于BDS2007的TServerSocket,其它版本请根据实际情况进行调整未必都能实现。//基于继承原创 2008-05-27 10:59:00 · 1262 阅读 · 1 评论 -
Delphi版Ocx制作CAB
unit UnitMakeCAB;interface uses ActiveX , SysUtils , Classes , Windows;//.inf文件模板const Templete = ; %Title%#13#10+ ; File Name %DLLName% File Version= %DllVersion%#13#10+原创 2008-05-25 23:54:00 · 4615 阅读 · 5 评论 -
TMS套件当中TAdvMemo对多字节文字(MultiByte)-中文支持的修正
//--------------------------------------------------------------// MOVE CURSOR//--------------------------------------------------------------procedure TAdvCustomMemo.MoveCursor(dX, dY: integ原创 2008-05-21 09:54:00 · 3681 阅读 · 0 评论 -
一个性能还不错的DES加密库(转换自同事改写的一份C++代码)
由于项目需要将日志进行加密,并且合同附件写明是使用DES,不得已而做了下来,经过测试,性能仅为原来没有加密前的九至十分之一,而现成的东西不确定是否为线程安全的,即便是使用DLL库,进行线程分离加载也算大废周章。难耐之下,取来一C++的DES加密单元进行了代码转换,直接将其中公共变量(存在线程安全问题)声明改为threadval,调入程序当中,发现性能还不错,是原来加密库的四至五倍,接近不加密时的4原创 2008-03-19 11:41:00 · 2982 阅读 · 2 评论 -
Base64Decode With 16Bits-CoderTable
采用三个码表来完成,码表的范围是0x2B2B~0x7A7A,考虑到寄存器的有限性,故将三个码表合并为同一个数组,在程序当中通过偏移量分段检索。原创 2010-10-01 17:46:00 · 1643 阅读 · 1 评论