我有一个字符串分别用{D},{P},{B},{N}作为分隔符,一个字符串内分隔符的个数,位置都不固定,例如:应拉开{D}{P}二次开关{N}组,或者应拉开{D}{P}二次开关{N}组{D}等,请问怎样把字符串按照分割符分开,
例如:应拉开{D}{P}二次开关{N}组{D}分解为:应拉开,{D},{P},二次开关,{N},组,{D}的形式?
例如:应拉开{D}{P}二次开关{N}组{D}分解为:应拉开,{D},{P},二次开关,{N},组,{D}的形式?
解决方案 »
- 请问如何使用oracle的SEQUENCE生成自动流水号
- TClientDataSet 动态添加计算字段
- 请问如何得到 RichEdit 的可见区域的内容?
- 请教开发KTV 的VOD点播思路
- 自己设计一个简单的报表编辑工具遇到的控件拖放问题
- 大家好,问个有关报表的问题.谢谢.
- 随机函数random的问题?
- 首次用ODAC就遇到问题……
- MM,有个难题急需解决(关于 DateTimePicker控件的)
- ActiveX签名以及与dll打包
- DBGrideh 能显示MEMO类型的数据 吗?
- @@@@@用indy的tcpserver和tcpclient控件进行数据的收发,因为发送端的发送频率很高,造成发送端在关闭的时候,还有一部分数据在缓冲中,
I:=pos('{', str);
j:=Pos('}', str);
i, j 中就有一對了, 然後, 一個一個處理過去就是了!
str:string;
i:integer;
newstr:string;
begin
str:='应拉开{D}{P}二次开关{N}组{D}';
i:=0;
while not length(str) do
begin
i:=pos('{',str);
if i=0 then begin listbox.items.add(str);break;end;
newstr:=copy(str,1,i-1);
listbox.items.add(newstr)//我用一个listbox来显示子串
listbox.items.add(copy(str,i,3));
str:=copy(str,i+3,(length(str)-i-2));
end;
end;
var
S: string;
begin
S := '应拉开{D}{P}二次开关{N}组{D}';
S := StringReplace(S, '{', ',{', [rfReplaceAll]);
S := StringReplace(S, '}', '},', [rfReplaceAll]);
S := StringReplace(S, ',,', ',', [rfReplaceAll]);
if (S <> '') and (S[1] = ',') then Delete(S, 1, 1);
if (S <> '') and (S[Length(S)] = ',') then Delete(S, Length(S), 1);
Caption := S; //显示
end;
ss: TStringList;ss:= TStringList.create;
ss.delimer:='d';
ss.sellimertext:=' ';等