如何把一个包括3个TAB符号的字符串分成四个部分的子串?

ynduanlian 2010-07-22 12:35:10
VB中有一个现成的Split函数,Delphi什么好办法?
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQLDebug_Fan 2010-07-22
  • 打赏
  • 举报
回复
给你一个函数:

procedure SplitStringList(const source, ch: string; pList: TStrings);
var
pTmp: pchar;
pCh: PChar;
p: PChar;
i,j: integer;
s: string;
iChLen: Integer;
begin
if (Length(Source)= 0) or not Assigned(pList) then
exit;
i:= 0;
iChLen:= Length(ch);
pTmp := pchar(source+ ch);
pCh:= PChar(ch);

p:= StrPos(pTmp,pCh);
if p<> nil then
begin
Inc(p,iChLen);
i:= p- pTmp;
end;
pList.BeginUpdate;
while i> 0 do
begin
j:= i- iChLen;
SetLength(s,i- iChLen);
if j> 0 then
begin
s:= StrLCopy(PChar(s),pTmp,i- iChLen);
plist.Add(s);
end;
pTmp:= p;
p:= StrPos(pTmp,pCh);
if p<> nil then
begin
Inc(p,iChLen);
i:= p- pTmp;
end
else if pTmp<> nil then //保证最后一段字符也能被查找到
i:= StrLen(pTmp)+ iChLen
else
i:=0;
end;
pList.EndUpdate;
end;
scutLiu 2010-07-22
  • 打赏
  • 举报
回复
以tab键位分隔符分割字符串即可
SuperTitan005 2010-07-22
  • 打赏
  • 举报
回复
也可以用pos查找TAB的位置,然后copy
bdmh 2010-07-22
  • 打赏
  • 举报
回复
参考

var
list:TStringList;
begin
list.Delimiter := ':';
list.DelimitedText := 'a:b:c:';
ShowMessage(list.Text);
end;
Frank.WU 2010-07-22
  • 打赏
  • 举报
回复
y主席,请用 TStringList

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧