一个截取字符串的问题!

jericho3164 2003-10-06 10:28:12
怎样取出一个字符串的中间某段?比如说:200601ABC,要取出2006后ABC之前的中间段。中间有可能是两位也可能是多位的!怎么办?
...全文
62 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjy1001 2003-10-08
  • 打赏
  • 举报
回复
用pos加copy加length 就可以实现了
例如 s:='1234567890abcdefghijklmnopqrstuvwxyz';
你想找 s1:='789' 后面到 s2:='ijk' 前面的串,可以这样写。

var
i,j:integer;
ss:string;
begin
i:=pos(s1,s);
j:=pos(s2,s);
ss:=copy(s,i+length(s1)+1,j-i-length(s1));
end;
ss 为所求。
不过1楼的注意 在知道确定的位置 确实也可以。



novas 2003-10-08
  • 打赏
  • 举报
回复
>我发现一个问题,有一字符串
>str:='二1一23';
>copy(str,2,2)与midstr(str,2,2)都得出'?',目前还没找到解决方法


汉字是二字节的,所以你copy得到的字符不一定能正常显示
kejian 2003-10-07
  • 打赏
  • 举报
回复
copy and mdistr功能相同,但midstr须要引用StrUtils单元.

cnhgj(戏子)有没搞错啊? 第一个2是起始位置,第二个是长度.



soldier7451 2003-10-06
  • 打赏
  • 举报
回复
还是用copy好,走哪儿都适用。
tiexinliu 2003-10-06
  • 打赏
  • 举报
回复
//ss source string;ds destination str
var
len:integer;
begin
len:=字符串长度-7;
ds:=copy(ss,3,len);
FrameSniper 2003-10-06
  • 打赏
  • 举报
回复
HOHO,一楼的方法好,偶还没有用过这个函数!
dyxfkj 2003-10-06
  • 打赏
  • 举报
回复
copy(Str,起始位置,长度)
gdwyh 2003-10-06
  • 打赏
  • 举报
回复
uses StrUtils;

MidStr(字符串,截取起始位置,截取长度);
cnhgj 2003-10-06
  • 打赏
  • 举报
回复
晕你起始位置跟结束位置都有一样啊
cnhgj 2003-10-06
  • 打赏
  • 举报
回复
用copy吧
gdwyh 2003-10-06
  • 打赏
  • 举报
回复
我发现一个问题,有一字符串
str:='二1一23';
copy(str,2,2)与midstr(str,2,2)都得出'?',目前还没找到解决方法
sy_315 2003-10-06
  • 打赏
  • 举报
回复
copy()

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧