
DELPHI里如何把TXT文档内某某标签之间的数据显示出来
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里.不知我这样表达你们能不能理解? 展开
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控件?
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下通过!给分给分