判斷取出有效字串 ( 积分: 100 )

  • 主题发起人 主题发起人 zxy666666
  • 开始时间 开始时间
Z

zxy666666

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好!

比如有一個很長的字串str:='27 02 01 F8 25 02 01 F8 23 02 01 F8 21 02 01 F8 2C 02 01 F8...'

請問如何判斷首尾字串(分別為01,02),取出中間有效字串如'F8 25','F8 23'...
並將取出的字串加至一個StringList的變數或者Memo中顯示.
請各位幫忙一下.謝謝!
 
大家好!

比如有一個很長的字串str:='27 02 01 F8 25 02 01 F8 23 02 01 F8 21 02 01 F8 2C 02 01 F8...'

請問如何判斷首尾字串(分別為01,02),取出中間有效字串如'F8 25','F8 23'...
並將取出的字串加至一個StringList的變數或者Memo中顯示.
請各位幫忙一下.謝謝!
 
用正则式
 
不懂啊,請再說一下了,謝謝
 
给你个关于正则式的介绍。
http://www.blueidea.com/bbs/newsdetail.asp?id=303249
当然如果对正则式不熟悉的话,最快的方法就是用pos查找字符串位置然后用copy复制出需要的字符。
 
//现写了一个,试试
procedure GetBodyStr(const str, head, tail: string
var sl: TStringList);
var
s: string;
nHeadLen, nTailLen, nHead, nTail: Word;
begin
s := str;
nHeadLen := Length(head);
nTailLen := Length(tail);
nHead := 1;
nTail := nHead;
while (nHead > 0) and (nTail > 0) do
begin
nHead := Pos(head, s);
Delete(s, 1, nHead + nHeadLen - 1);
nTail := Pos(tail, s);
if nTail > 1 then
sl.Add(Copy(s, 1, nTail - 1));
Delete(s, 1, nTail + nTailLen);
end;
end;
 
感谢以上两位朋友的相助![:)]
 
后退
顶部