新手问:如何得到指定的字符串 想问下各位大侠,若有一个字符串是:'234;23423;23423;456;5645RETE656'包含多个‘;’我如何从字符串的尾部开始定位最后一个‘;’从而得到该‘;’前的所有字符。如上例中应得到'234;23423;23423;456;' 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用数组循环一边,得到最后一个;的位置,然后用copy取得前面的字符。。或者你先把字符串倒叙,然后用POS取得第一个;的位置,然后用copy取得后面的字符。 用TStringList就可以了var sl:TStringList;begin sl:=TStringList.Create; sl.Delimiter:=';'; sl.DelimitedText:='234;23423;23423;456;5645RETE656'; sl.Strings[sl.Count-1]:=''; ShowMessage(sl.DelimitedText); sl.Free;end; 也可以把你的字符放到memo中,memo中有一个属性,具体记不清楚了,设置这个属性,例如设置";",memo可以把字符串自动按照;分开,然后你只保留前面的就可以了。。具体的自己多试验吧。 memo的和楼上的从根本上说是一样的代码:var sl:TStringList;begin sl:=TStringList.Create; sl.Delimiter:=';'; sl.DelimitedText:='234;23423;23423;456;5645RETE656'; sl.Strings[sl.Count-1]:=''; ShowMessage(sl.DelimitedText); sl.Free;end; liangqingzhi(老之),前辈,我按你的方法做了, ShowMessage后可是得到想要的字符串,但是会出现提示EAccessViolation异常 会有EAccessViolation异常?,不知你是怎么用的,看看你的代码 放一个memo再上面,memo的名字叫sl,用下面代码,就可以了 sl.Lines.delimiter:=';'; sl.lines.DelimitedText:='234;23423;23423;456;5645RETE656'; sl.lines.Strings[sl.lines.Count-1]:=''; ShowMessage(sl.lines.DelimitedText);D7,winxp下测试通过。 liangqingzhi(老之),又试了一下,没有出现异常了~谢谢俩位了~你们的方法都可以了~~~~ 好久不来了,发个个性帖嘿嘿~~ 手上无参考资料,问几个简单送分题 ★★★奇怪的问题!!!我的窗体以前打开很快,现在不知道怎么搞的打开很慢,要等半天,好像压了块石头一样!大家帮我看看!在线等!!! 求救!!求救!!! CPU窗口如何去掉?如何完全释放资源? 这个市什么意思? 用pop3读取邮件 查询问题!!!!!! delphi win32/trojan.multi.daf delphi 生成的exe 文件 360 报木马杀掉怎么办? 在线 大侠帮忙? SHFileOperation拷贝文件时,如果文件正在被别的任务写入时,怎样处理? mdi子窗体问题
begin
sl:=TStringList.Create;
sl.Delimiter:=';';
sl.DelimitedText:='234;23423;23423;456;5645RETE656';
sl.Strings[sl.Count-1]:='';
ShowMessage(sl.DelimitedText);
sl.Free;
end;
begin
sl:=TStringList.Create;
sl.Delimiter:=';';
sl.DelimitedText:='234;23423;23423;456;5645RETE656';
sl.Strings[sl.Count-1]:='';
ShowMessage(sl.DelimitedText);
sl.Free;
end;
sl.Lines.delimiter:=';';
sl.lines.DelimitedText:='234;23423;23423;456;5645RETE656';
sl.lines.Strings[sl.lines.Count-1]:='';
ShowMessage(sl.lines.DelimitedText);D7,winxp下测试通过。