在delphi中怎么截取字符串???(在线等待.....(100分)

  • 主题发起人 主题发起人 fengyunpiao2006
  • 开始时间 开始时间
F

fengyunpiao2006

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在遇到了这样的问题,就是有一串字符串,如123#456#,我想编个函数来截取里面的东西,用两个变量来得到,如s=123,b=456,意思就是截取#之间的数,即是用#来隔开的,请大佬门帮忙,
 
我靠 太简单了 用 pos函数定位 在用 copy 函数截取了
 
能帮我写下不??
我想用个函数来编写,,
 
var
aStr,s,b : string;
position : integer;
aStr := '123#456#';
position := pos('#',aStr);
if Position > 0 then

begin
s := copy(aStr,1,position - 1);
Delete(aStr,1,position);
end;
position := pos('#',aStr);
if Position > 0 then

begin
b := copy(aStr,1,position - 1);
Delete(aStr,1,position);
end;
要灵活一点,请参照自写函数
 
str:='123#456#';
i:=pos(str,'#');
if i>0 then

begin
s:=copy(str,1,i-1);
delete(str,1,i);
end;
i:=pos(str,'#');
if i>0 then
begin
b:=copy(str,1,i);
end;
 
晕! 比你慢了40秒
 
如果我有几十个#号参差在里面,那不要几十个IF哦
 
接分,呵呵
copy(str1,1,pos('#',str1)-1)=123
copy(str1,pos('#',str1)+1,length(str1)-pos('#',str1))=456
 
给分吧!快
function GetMyStr(Str:String):string;
var
i:integer;
Resultstr,Astr:String;
begin
Resultstr:='';
if str='' then
exit;
i:=pos('#',str);
Astr:=copy(str,i+1,length(str)-i);
i:=pos('#',Astr);
Resultstr:=copy(Astr,1,i-1);
Result:=ResultStr;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetMyStr('123#452346#123'))
end;
 
应该够详细了。。呵呵
 
可能大家还没明天我的意思,
我觉得是要用数组:因为我要截取里面的数据,
如123#456982#4565985#2652656
我分别要得到a=123,b=456982,c=4565985,d=2652656这些数据,
因为数据大,不可能按bjaman的那种方法,
请大佬们帮我写写,,
 
本来可以帮你写个函数的,现在你都结贴了阿
算了
 
后退
顶部