比如: 123|456|789|||45789
我要取出45789,但是它的位置不是固定的,因此只能从第5个"|"之后开始取,不知道如何获取第5个"|"的位置呢? 请大侠们赐教!!!
我要取出45789,但是它的位置不是固定的,因此只能从第5个"|"之后开始取,不知道如何获取第5个"|"的位置呢? 请大侠们赐教!!!
解决方案 »
- 关于一个可能比较傻的和编写组件有关的问题
- Delphi高手看过来,关于IXMLNodeList处理XML子节点问题!
- 请教:调用了CreateComObject生成了实例,在程序退出时程序异常,找不到正确的释放方法。
- 我想将普通的过程当成TNotifyEvent类型的过程使用,我应该怎么做呢..........
- 怎么屏蔽控件自带的异常捕获过程?
- 各位兄弟,在这里请教你们一个问题.
- 多条记录求和
- 我在北京,有丰富开发经验,想找一份兼职程序员的工作,请帮帮忙,up有分。
- 有点难度的问题,喜欢挑战的大侠请进
- 请问如何在delphi中如何表示ctrl+enter
- 用batchmove对数据库导入表格数据出错!
- 兄弟的心理话,压力巨大。希望各位兄弟多提宝贵意见
p1,p2:pchar;
s:string;
s1:string;
begin
s:='123|456|789|||45789';
p1:=pchar(s);
p2:=AnsiStrRScan(p1,'|');
s1:=p2;
//结果为|45789,其余你自己解决啦
end;
begin
with TStringList.Create do try
Delimiter := '|';
DelimitedText := '123|456|789|||45789';
if Count >= 5 then ShowMessage(Strings[5]);
finally
Free;
end;
end;
function GetBlockStr(s:String;n:integer;BlockChar:char):String;
var loc:integer;
begin
Loc:=pos(BlockChar,s);
if Loc=0 then
if n=1 then Result:=s else Result:=''
else
if n=1 then
Result:=Copy(s,1,loc-1)
else
Result:=GetBlockStr(copy(s,loc+1,length(s)-loc),n-1,BlockChar);
end;然后使用
GetBlockStr('123|456|789|||45789',6,'|') 就可以得到你想要的结果了. :) 很好用的.