摘要:
unit untDMPool;interfaceuses Classes, SyncObjs, SysUtils, DateUtils, untData;type PServerObject = ^TServerObject; TServerObject = record ServerObject: TdmData; InUse: Boolean; end; TDMPool = class private FCriticalSection: TCriticalSection; FServerObjects: TList; FPoolSize: int... 阅读全文
摘要:
procedure TForm1.Button1Click(Sender: TObject);var s, b: AnsiString; a: array[0..9] of Byte;begin s := 'test'; FillChar(a, SizeOf(a), ''); Move(s[1], a, SizeOf(a)); SetLength(b, SizeOf(a) + 1); Move(a, b[1], SizeOf(a)); Caption := b;end; 阅读全文
摘要:
// 移动短信接口(cmpp 2.0)//unit untYiDongInterface;interfaceusesSysUtils, untSocket, IdGlobal, MessageDigest_5, Types;const{$REGION 'Command_Id定义'}CMPP_CONNECT = $00000001; // 请求连接CMPP_CONNECT_RESP = $80000001; // 请求连接应答CMPP_TERMINATE = $00000002; // 终止连接CMPP_TERMINATE_RESP = $80000002; // 终止连接应答C 阅读全文
摘要:
对于一些小文件,用普通的文件流就可以很好的解决,可是对于超大文件,比如2G或者更多,文件流就不行了,所以要使用API的内存映射的相关方法,即使是内存映射,也不能一次映射全部文件的大小,所以必须采取分块映射,每次处理一小部分。先来看几个函数CreateFile :打开文件GetFileSize : 获取文件尺寸CreateFileMapping :创建映射MapViewOfFile :映射文件看MapViewOfFile的帮助,他的最后两个参数都需要是页面粒度的整数倍,一般机器的页面粒度为64k(65536字节),而我们实际操作中,一般都不是这样规矩的,任意位置,任意长度都是可能的,所以就要做一 阅读全文
摘要:
-procedure SplitFile(FileName : TFileName; FilesByteSize : Integer) ;// FileName == file to split into several smaller files// FilesByteSize == the size of files in bytesvarfs, ss: TFileStream;cnt : integer;SplitName: String;beginfs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;tr 阅读全文
摘要:
soap传输XML格式的字串,是明文,经过BASE64对XML格式字串编码后,不再是明文,增加传输的安全性。而且还可以彻底解决中文显示乱码的问题。所以WEBSERVICES可以考虑对所有的字串先进行BASE64编码,然后再通过网络传输。 阅读全文
摘要:
有两种方法,一种是把二进制对象转成base64码,返回字符串,应该是最简单的方法,另外一种就是返回二进制数组TByteArray服务器:function TFileSoap.getPic(out size:integer): TByteArray;varbuf:TMemoryStream;begintry if not FileExists('c:\1.bmp') then raise Exception.Create('file not found.'); buf:=TMemoryStream.create; buf.LoadFromFile('c:\ 阅读全文
摘要:
function CompressStrToBase64(sStr: string): string;var M1: TMemoryStream; M0, M2: TStringStream;begin Result := ''; if sStr = '' then Exit; M0 := TStringStream.Create(sStr); M1 := TMemoryStream.Create; M2 := TStringStream.Create(' '); try M0.Position := 0; M1.Position := 0; Z 阅读全文
摘要:
unit EncodingUtil;interfaceusesSysUtils, Classes, Types, EncdDecd;function BytesToBase64(const bytes : TByteArray) : string;function StreamToBase64(AStream: TStream) : string;implementationfunction BytesToBase64(const bytes : TByteArray) : string;varmemoryStream : TMemoryStream;beginmemoryStream := 阅读全文
摘要:
数据集数据转换为XMLfunction ReplaceString(AString: string): string;begin Result := StringReplace(AString, '&', '&', [rfReplaceAll]); Result := StringReplace(Result, '>', '>', [rfReplaceAll]); Result := StringReplace(Result, '<', '<& 阅读全文