delphi 分割字符串求教

作者&投稿:羊易 (若有异议请与网页底部的电邮联系)
delphi 怎么能以逗号为准把字符串拆分~

var
stl:Tstringlist;
s:string;
i:integer;
begin
s:='1,2,3,4';
stl:= Tstringlist.Create();
stl.Delimiter:=',';
stl.CommaText:=s;
for i:=0 to stl.Count-1 do
begin
showmessage((stl.Strings[i]));
end;


end;

我用C#的,里面有split,我相信delphi里面也有类似的函数:
string str='2011-3-17';
string[] listStr=str.split('-');

-------------------------------------
我找了一下,不知道是delphi里面的系统函数还是人家写,你可以拿去用吧:
//根据字符串,拆分字符串,相当于vb中的split函数
function SplitString(const Source,ch:string):TStringList;
var
temp:String;
i:Integer;
begin
Result:=TStringList.Create;
//如果是空自符串则返回空列表
if Source=''''''''
then exit;
temp:=Source;
i:=pos(ch,Source);
while i0 do
begin
Result.add(copy(temp,0,i-1));
Delete(temp,1,i);
i:=pos(ch,temp);
end;
Result.add(temp);
end;

------------------------------------
日期不知道你是取的是哪一部分,应该按顺序来:
temp[0]:2011
temp[1]:3
temp[2]:17

function CenterStr(Src: string; Before, After: string): string;
var
Pos1, Pos2: WORD;
begin
Pos1 := Pos(Before, Src);
Pos2 := Pos(After, Src);
if (Pos1 = 0) or (Pos2 = 0) then
begin
Result := '';
Exit;
end;
Pos1 := Pos1 + Length(Before);
if Pos2 - Pos1 = 0 then
begin
Result := '';
Exit;
end;
Result := Copy(Src, Pos1, Pos2 - Pos1);
end;
这是一个已知前串和后串,取前后串之间的字符串处理函数
根据你的情况,你可以这样使用,S:=CenterStr(s1,'<li>','</li>');s1就是你要处理的文本串.
但是你的字符串中,有多个<li></li>,这就不能简单的使用S:=CenterStr(s1,'<li>','</li>')了,必须每个要分割的串中只含有一对<li></li>,看了一下这HTML文本,如果复制到memo的TEXT中,它的每个自然段刚好是一行.这就好办了,首先,在界面上放一个MEMO控件,并使它无限小,然后设置它的可见属性为假,然后把你要分割的文本赋给MEMO,然后再来一行一行处理或者分割,这个函数可以处理查找很多问题,比如.S:=CenterStr(s1,'class="time">','</span')就可以得到2013-01-15.很有用的,你还可以配合POS,COPY函数使用使其功能更加强大.

var
match: TMatch;
VL: TStrings
begin
VL := TStringList.Create;
for match in TRegEx.Matches(html, '<li>.*?</li>') do
begin
VL.Add(match.Value);
end;

//Delphi 2009以后的版本才有这种原生正则表达式支持

直接使用复制功能不结了?
VAR X,Y:字符串;
X:=复制(S,4,3);
Y:=拷贝(S,9,3);

用正则表达式分解


通江县17848941199: delphi中怎样把字符串分解? -
宫亚醋酸: var strlist:TStringList; begin strlist:=TStringList.Create; strlist.Delimiter :='*'; strlist.DelimitedText :='10.4*84*87'; ShowMessage(strlist[0]); ShowMessage(strlist[1]); ShowMessage(strlist[2]); strlist.free; end;

通江县17848941199: delphi 字符串分割成单个字符 -
宫亚醋酸: var i:integer; st:string; c:char; begin st:=edit1.text; for i:=1 to length(st) do begin c:=st[i]; //c就是一个个的字符 end; end;

通江县17848941199: 在delphi中如何把大的字符串分成固定大小的几个小字符串 -
宫亚醋酸: 用Copy啊.给你随手写了一个:procedure TForm1.Button1Click(Sender: TObject); var s: String; s1, s2, s3, s4: String; i: Integer; begin s := '1234567890'; i := 1; s1 := Copy(s, i, 3); ShowMessage(s1); Inc(i, 3); s2 := Copy(s, i, 3); ShowMessage(s2); ...

通江县17848941199: delphi 请问在DELPHI中用什么函数来实现切分字符串?
宫亚醋酸: function SplitString(const source,chtstringlist;var temp:string; i:integer;begin result:=tstringlist.Create; temp:=source; i:=pos(ch,source); while i<>0 do begin result.Add(copy(temp,0,i-1)); delete(temp,1,i); i:=pos(ch,temp); end; result.Add(temp);end;...

通江县17848941199: delphi如何按固定的分隔符来分割字符串,并且把分割出来的字符串放到数组中?具体的代码如何实现? -
宫亚醋酸: Delphi的Tstringlist直接就可以拿来分割了varlist : TStringlist; beginlist := TStringlist.Create;list.Delimiter := '-';list.DelimitedText := '1987-11-16'; showmessage(list.Strings[0]); //1987showmessage(list.Strings[1]); //11showmessage(list.Strings...

通江县17848941199: delphi中 怎样截取字符串 -
宫亚醋酸: 我的思路是一直用POS函数,查到一个删除一个/,当没有查到/时,那上一次的pos位置就是最后出现的位置,给你写了个函数,function PosEnd(const substr,str : string) : integer; var tmp : string; i,j,flag : integer; begin flag := -1; tmp := str; i := pos(...

通江县17848941199: 在Delphi中如何从一条字符串中截取我要的字符串?青高手指教.
宫亚醋酸: function ZsGoto(mStr: string; mSysCharSet: TSysCharSet): string;var I: Integer;begin Result := ''; for I := 1 to Length(mStr) do begin if mStr[I] in mSysCharSet then Break; Result := Result + mStr[I]; end;end; { ZsGoto }function ZsTogo(mStr: string; ...

通江县17848941199: Delphi的瓜分字符串或提取字符串?
宫亚醋酸: 1var ss: Tstringlist;然后在法度榜样中ss := tstringlist.Create; ExtractStrings([','], [' '], pchar(S), ss);很简单然后你须要的字符就会被瓜分到ss.Strings[0]至ss.Strings[ ss.Count - 1]之间的数组中,再怎么放入x和y不消写了吧.

通江县17848941199: Delphi的分割字符串或提取字符串问题 -
宫亚醋酸: var StrList : TstringList; i : integer; begin StrList := TStringList.Create; StrList.DelimitedText := '123,456,789'; StrList.Delimiter := ','; for i := 0 to StrList.Count -1 do begin showmessage(StrList[i]); end;

通江县17848941199: delphi 如何分割文本 -
宫亚醋酸: function split(s: string; Ch: string):TStringList ; //前一个参数是操作的字符串,后一个是分隔符 var Temp:String; I:Integer; chLength:Integer; begin Result:=TStringList.Create; //如果空字符串则返回空列表 if s='' then Exit; Temp:=s; I:=Pos(ch,s); ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网