delphi 获取字符串之间多个字符内容
例如:‘你好:嗯;你好:好;多谢:谢谢;知道:不知道;好了:没有;’字符串中‘:’和’;‘之间的字符也是是‘嗯.好.谢谢.不知道.没有‘回去这些字...
例如: ‘你好:嗯;你好:好;多谢:谢谢;知道:不知道;好了:没有;’
字符串中‘:’和’;‘之间的字符
也是是‘嗯. 好. 谢谢 . 不知道 .没有‘ 回去这些字 展开
字符串中‘:’和’;‘之间的字符
也是是‘嗯. 好. 谢谢 . 不知道 .没有‘ 回去这些字 展开
4个回答
展开全部
可通过函数POS及COPY配合使用弯明银实现该功能。
一、函数说明:
POS:获取特定字符所处字符串的位置,返回数据类型为整型。POS共有两个参数:POS(特定字符或字符串,源字符串)。
COPY:字符串截取,返回数据类型为字符型。COPY共有三个参数:COPY(源字符串,起始截取位(整型,可为变量),截取位数(整型,可为变量))。埋宴
二、实例演示(笔者以截取特定字符‘.'前5位为例),操作如下:
1、添加TEDIT及TBUTTON控件各一个;
2、在TBUTTON控件的单击事件中,写入代码:ShowMessage(Copy(Trim(ed2.Text),Pos('.',Trim(ed2.Text))-6,5));
3、在TEDIT中随便输入一串字符,点击TBUTTON控件,效槐渣果如下图:
展开全部
var
sPos,ePos :integer;
str :WideString;
sl :TStringList;
begin
sl := TStringList.Create;
try
str := '你好:嗯;你好:好;多谢:谢谢;知道:不知道;好了:没有;';
repeat
sPos := Pos('缺知:',str); //查找":"的位置
if sPos > 0 then //判断字符串中是否含有":"
begin
ePos := Pos(';',str); //查找";"的位置
if ePos > 0 then //判断字符串中是否含有";"
sl.Add(Copy(str,sPos + 1,ePos - sPos - 1)) //含有";"就获取":"到";"的字符串
else
begin //不含塌野";" 就直接获取全部字符串 并赋值0给sPos 结伏衫消束循环
sl.Add(str);
sPos := 0;
end;
str := Copy(str,ePos + 1,Length(str) - ePos);
end;
until sPos = 0;
ShowMessage(sl.Text);
finally
FreeAndNil(sl);
end;
end;
sPos,ePos :integer;
str :WideString;
sl :TStringList;
begin
sl := TStringList.Create;
try
str := '你好:嗯;你好:好;多谢:谢谢;知道:不知道;好了:没有;';
repeat
sPos := Pos('缺知:',str); //查找":"的位置
if sPos > 0 then //判断字符串中是否含有":"
begin
ePos := Pos(';',str); //查找";"的位置
if ePos > 0 then //判断字符串中是否含有";"
sl.Add(Copy(str,sPos + 1,ePos - sPos - 1)) //含有";"就获取":"到";"的字符串
else
begin //不含塌野";" 就直接获取全部字符串 并赋值0给sPos 结伏衫消束循环
sl.Add(str);
sPos := 0;
end;
str := Copy(str,ePos + 1,Length(str) - ePos);
end;
until sPos = 0;
ShowMessage(sl.Text);
finally
FreeAndNil(sl);
end;
end;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议用正则表达式计算,方便、快捷、简单。
回答完毕,谢谢。
回答完毕,谢谢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-12-06
展开全部
如果是汉字,建议将字符串转换为 widestring 然后用pos函数就可以直接去出来了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询