delphi_分隔字符串_多间隔字符
procedure mc_SplitStr(sourStr:String;splitChar:String;desLst:TStringList);
var
tmpStr:String;
sValue:String;
iStart,iPos:Integer;
begin
try
desLst.Clear; //很重要,否则,会一直是第一个值
tmpStr:=sourStr;
iStart:=1;
iPos:=Pos(splitChar,tmpStr);
if iPos>0 then
begin
while iPos>0 do
begin
sValue:=MidBStr(tmpStr,iStart,iPos-iStart);
desLst.Add(sValue);
iPos:=iPos+length(splitChar); //跳过多分隔符情况下的剩余分隔字节
tmpStr:=midbstr(tmpStr,iPos,Length(tmpStr)-iPos+1);
iPos:=Pos(splitChar,tmpStr);
if iPos<=0 then //处理最后一个元素
desLst.Add(tmpStr);
end;
end
else
begin
if (iPos=0) and (trim(tmpStr)<>'') then
desLst.Add(tmpStr);
end;
except
end;
end;
相关文档:
Delphi编写系统服务三:编写两栖系统服务 收藏
采用下面的方法,可以实现一个两栖系统服务(既系统服务和桌面程序的两种模式)
工程代码:
program FleetReportSvr;
uses
SvcMgr,
Forms,
SysUtils,
Windows,
SvrMain in 'SvrMain.pas' {FleetReportService: TService}, ......
Delphi编写系统服务二:系统服务和桌面程序的区别 收藏
Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:
系统服务不用登陆系统即可运行;
系统服务是运行在System Idle Process/System/smss/winlogon/services下的,而桌面程序是运行在Explorer下的;
......
delphi中的DLL中的声明原码如下:
这里声明了输出性参数分别为数字与字符类型
library dll1;
uses
SysUtils,
Classes;
{$R *.res}
Function mymax(x, y: Integer; out jj: Integer; out abc: PChar): Integer; stdcall;
begin
jj := x * y;
abc := PChar(StrPas(abc) + '这是传出的' ......
由于需要在窗体中设定一个日期时间,出去通用型考虑,采用了TDateTimePicker控件。
因为这个控件的默认状态只能显示日期,造成使用上的不便,所以需要做如下的设定:
在控件的format属性栏里设置如下值:yyyy-mm-dd hh:mm:ss;
设定完成后的时间为当前的系统时间,不能通过弹出日历设定,只能在文本框中设定。 ......
在项目中,需要做一个日期的提醒功能,挺郁闷的,对日期的计算:
很幸运的是在delphi 中有现有的计算函数,DateUtils单元;
路径:*\Delphi7\Source\Rtl\Common 目录下。
贴出一部分:
function IncYear(const AValue: TDateTime;
const ANumberOfYears: Integer = 1): TDateTime;
// function Inc ......