DELPHI里如何把TXT文档内某某标签之间的数据显示出来

比方说:vartmp:string;begintmp:=IDHTTP1.GET('HTTP://XXX.COM')EDN;TMP里面包含了这些东西<liclass="qr... 比方说:
var
tmp:string;
begin
tmp:=IDHTTP1.GET('http://XXX.COM')
EDN;
TMP里面包含了这些东西
<li class="qred">111111</li>
<li class="qred">555555</li>
<li class="qred">666666</li>
如何将这中间的数字提取出来分别放到3个EDIT.TEXT里?请放上代码,测试成功立马放分,俺还是个新手.谢谢.
谢谢你们参入问题的回答.可能是我没把意思表达清楚,TMP=整个网页源码,我只想提取<li class="qred">和</li>之间的数字.保存到EDIT.TEXT里,一条<li class="qred">111111</li>用一个EDIT.TXET存放,多个的话由多个EDIT.TEXT存放,我的目的不是要将这些数列出来,而是要放到EDIT.TEXT里.不知我这样表达你们能不能理解?
展开
 我来答
zzluo
2009-06-05 · TA获得超过496个赞
知道小有建树答主
回答量:440
采纳率:0%
帮助的人:480万
展开全部

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

type

  TForm1 = class(TForm)

    Memo1: TMemo;

    Memo2: TMemo;

    Button1: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

function BetweenString(SourceStr,BeginStr, EndStr: String): String;

var

  L, B,E: Integer;

begin

  Result := '';

  B := Pos(BeginStr, SourceStr);

  B := B + Length(BeginStr);

  E := Pos(EndStr, SourceStr);

  if B < E then

  begin

    L := E - B;

    Result := Copy(SourceStr, B, L);

  end;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

  I: Integer;

begin

  Memo2.Lines.Clear;

  for I := 0 to Memo1.Lines.Count - 1 do

  begin

    Memo2.Lines.Add(BetweenString(Memo1.Lines[I], Edit1.Text, Edit2.Text));

  end;

end;

end. 

给你这个BetweenString函数就是让你方便的达到目的,直接给edit.text赋值就行了。

你提问问的就是字符的提取问题。

你的意思是不是还想知道如何动态的创建TEdit控件?

blackscreen
2009-06-05 · TA获得超过459个赞
知道小有建树答主
回答量:522
采纳率:0%
帮助的人:673万
展开全部
temp这里是字符串类型,用苯方法可以解析字符串获取,取>和<之间的字符串。当然有很大的局限性:)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rainroser
2009-06-05 · 超过24用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:77.9万
展开全部
procedure TForm1.btn1Click(Sender: TObject);
var
vstr:string;
i,j,k:integer;
ContentArray :array of string;
begin
vstr:='<li class="qred">111111</li> <li class="qred">555555</li> <li class="qred">666666</li>';
SetLength(ContentArray,0);
i:=0;
i:=Pos('<',vstr);
while i<>0 do
begin
vstr:=Copy(vstr,i+1,Length(vstr));
j:=Pos('>',vstr);
vstr:=Copy(vstr,j+1,Length(vstr));
k:=Pos('</',vstr);
SetLength(ContentArray,Length(ContentArray)+1);
ContentArray[Length(ContentArray)-1]:=Copy(vstr,1,k-1);
vstr:=Copy(vstr,k+2,Length(vstr));
i:=Pos('<',vstr);
end;
if Length(ContentArray)>=1 then
Edit1.Text:=ContentArray[0];
if Length(ContentArray)>=2 then
Edit2.Text:=ContentArray[1];
if Length(ContentArray)>=3 then
Edit3.Text:=ContentArray[2];
end;

Delphi7下通过!给分给分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式