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编写系统服务六:在服务中使用COM组件 收藏
在服务中调用COM组件不能像在桌面程序中直接创建,在每次创建之前先调用CoInitialize(nil),释放的时候调用CoUninitialize。例如:调用ADO组件
var
Qry: TADOQuery;
begin
CoInitialize(nil);
Qry := TADOQuery.Create(nil);
tr ......
Delphi编写系统服务二:系统服务和桌面程序的区别 收藏
Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:
系统服务不用登陆系统即可运行;
系统服务是运行在System Idle Process/System/smss/winlogon/services下的,而桌面程序是运行在Explorer下的;
......
比如操作
CSDN的登录
先用WebBrowser定位到登录页面
WebBrowser1.Navigate('http://passport.csdn.net/UserLogin.aspx?from=http://community.csdn.net/');
然后,看其HTML源代码,发现
名字为 ctl00$CPH_Content$tb_LoginNameOrLoginEmail的元素就是 其用户名的输入框了。
此时
使用
(WebBrowser1.Documen ......
procedure Delay(msecs:integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(msecs);
while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <&g ......