有一个字符串string类型或PChar类型,其中的数据是以某个字符作为分隔,现需要取某个特定的域,谁有这样的函数?
例: 有一个字符串'111111-222222-33333-44444'
取其中以'-'作为分隔符的第二个域应为'222222'
例: 有一个字符串'111111-222222-33333-44444'
取其中以'-'作为分隔符的第二个域应为'222222'
解决方案 »
- delphi用了3d composer的activeX后,播动画时报floating point overflow,请问怎么解决?急
- 一简单的数据录入问题
- 这几天我的可用分,怎么一直没增加?是不是因为这个?http://community.csdn.net/Expert/topic/3069/3069678.xml?temp=.4146692
- 判断某一个控件是否有某一项属性的语句应该怎么写?
- [散分100]请大家试用我的小软件MySpy,但功能非常强大.......
- 关于数据库的问题
- 输入拼音首字母得到汉字
- fastreport怎样实现这样的报表
- 求购《delphi6 组件大全》这本书
- HELP !!!(急、急、急……)
- 问一下大家,用什么方法可以让程序在运行期间处于不可操作状态!
- 问题!
function getstr(s:string):string;
Var
sl:TStringList;
begin
sl:=TStringList.Create;
sl.Delimiter := '-';
sl.DelimiterText:= s;
result:=sl[1]; //sl[1]='222222'
sl.Free;
end;
TempStr:=GetSubstr(s,'-',2) ; 即可。第一个函数一般用来数分隔写作出现个数,你也会用的到的。//得到substr在str中出现的次数
function GetAppearTimes(Substr, Str: string): integer;
var
i: integer;
lstr: string;
begin
lstr := Str;
i := 0;
while Pos(Substr, lstr) > 0 do
begin
i := i + 1;
lstr := copy(lstr, Pos(Substr, lstr) + length(Substr), length(lstr) - length(Substr));
end;
Result := i;
end;//得到在s_str中的第po位字符串,以d_str为分隔。
function GetSubstr(s_str, d_str: string; po: integer): string; //s_str大字符串,d_str分隔符,po位置
var
i, j, k: integer;
begin
Result := '';
if po < 1 then
exit;
s_str := trim(s_str) + d_str;
i := 0;
while 1 = 1 do
begin
if Pos(d_str, s_str) > 0 then
begin
j := Pos(d_str, s_str) + length(d_str);
k := length(s_str) - (j - 1);
i := i + 1;
if i = po then
begin
j := Pos(d_str, s_str);
Result := copy(s_str, 1, j - 1);
break;
end;
s_str := copy(s_str, j, k);
end
else
break;
end;
end;