以<为起始符号,以>为结束符号
内容情况如下:
------------------------------<
第100
名
〉<
第101
名
〉...------------------------------
希望得到结果如下:
------------------------------
第100名第101名...
请大牛们帮帮忙,谢谢!!
内容情况如下:
------------------------------<
第100
名
〉<
第101
名
〉...------------------------------
希望得到结果如下:
------------------------------
第100名第101名...
请大牛们帮帮忙,谢谢!!
解决方案 »
- 可用分小于20分的人接分之三,Delphi区五帖,五一后结贴
- delphi读取注册表
- 一个简单问题?
- IWTreeview是怎样用的?
- 一个class内的form,怎么不能在class的destroy事件中释放?
- 怎样检测一个系统上是否装有EXCEL!!检测注册表吗?
- 哪里可以下载Delphi 6中文版啊
- 哪里有DBGridEh For D6下载(带源码)?
- 有关于一个随机序列问题,请教各位高手
- 菜的不能再菜的问题:在''中再套一个''应如何写? 'he said:'i love you''
- 大家帮我看看这个函数,内存越来越大!线程的
- adoquery查不到结果,select语句在sqlserver中测试过是没问题的
var
i:integer;
TmpStr,str:string;
begin
for i:=0 to Memo1.Lines.Count-1 do
begin
str:= Memo1.Lines.Strings[i];
if str='<' then
TmpStr:=''
else if str='>' then
Memo2.Lines.Add(TmpStr)
else if str<>'' then
TmpStr:=TmpStr + str;
end;
end;
===============================================
执行代码之前
===============================================
<
OK
>
<>
<>
<
RING
>
<
NMBR =>
< 1866623>
<8311
>
<>
<>
<
RING
>
===============================================
执行kaikai_kk热心提供代码之后
===============================================
OK
RING
NMBR =>< 1866623><8311
RING~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
总结:确实有效,但有点美中不足,请问能有进一步的方法吗?
谢谢!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var
Sour , Dest : WideString;
PSour , PDest : PWideChar;
i , nSize : integer;
bKey , bText : Boolean;
begin
//源内容装入到Memo1中
Sour := Trim(Memo1.Lines.Text);
SetLength(Dest , Length(Sour)*2);
PSour := Pointer(Sour);
PDest := Pointer(Dest);
bKey := False;
bText := False;
nSize := 0;
for i:=1 to Length(Sour) do begin
Case PSour^ of
#13,#10,#9,' ':;
'<' : begin bKey := True; bText := False;end;
'>' :
if bKey and bText then begin
PDest^ := #13;
inc(PDest);
PDest^ := #10;
inc(PDest);
inc(nSize,2);
bKey := False;
end;
else begin
if bKey then begin
PDest^ := PSour^;
inc(PDest);
inc(nSize);
bText := True;
end;
end;
end;
inc(PSour);
end;
//输出到Memo2中
Memo2.Text := Copy(Dest , 1 , nSize);
end;
var i:integer;
begin
for i:=s.Count-1 downto 0 do begin
if (Length(Trim(s[i]))<3)or(Trim(s[i])='RING') then s.Delete(i)
else if s[i][1]='<' then
s[i]:=copy(s[i],2,length(s[i]));
if pos('=',s[i])>0 then
s[i]:=copy(s[i],1,pos('=',s[i])-1);
if pos('>',s[i])>0 then
s[i]:=copy(s[i],1,pos('>',s[i])-1);
s[i]:=Trim(s[i]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetMatchResult(memo1.Lines);
end;