预备役部队 影片:delphi pos用法

来源:百度文库 编辑:九乡新闻网 时间:2024/05/06 09:48:27
delphi pos用法2010-07-27 17:31
例如:123456123+QQ64,就取出64把它赋予给edit ;当 +QQefe349ejrelre这一行出现+QQ,就把上一个行+QQ后的内容删除,把本行的+QQ后的内容efe349ejrelre赋予edit

unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
     Memo1: TMemo;
     Edit1: TEdit;
     Button1: TButton;
     procedure FormCreate(Sender: TObject);
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
     procedure Button1Click(Sender: TObject);
  private
     { Private declarations }
  public
     { Public declarations }
  end;
 
var
  Form1: TForm1;
  mylist:Tstringlist;//定义一个Tstringlist类型,用来读取memo1的内容。
  m:integer;//全局变量,用来测定读取到了mylist的第几行。
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var
 i:integer;
begin
  mylist:=Tstringlist.Create;//逐行读取memo1的内容
  for i:=0 to memo1.Lines.Count-1 do
    mylist.Add(memo1.Lines.Strings[i]);
    m:=0;//初始化全局变量m
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var
 n:integer;
 s:string;
begin
 edit1.Clear;
 if m < mylist.Count then//如果未到mylist未尾进行以下步骤。
  begin
    s:=mylist.Strings[m];//读取一行
    n:=pos('+',s);//判断+号的位置
    s:=copy(s,n+3,length(s)-(n+2));//复制QQ后面的内容,位置为n+3,长度为length(s)-(n+2)
    if n <> 0 then//如果n不为0,既有+号,则进行下面步骤。
    edit1.Text:=s
    else//如果n0,既没有+号,则edit1中注明没有。
    edit1.Text:=''+inttostr(m+1)+'行没有QQ';
    m:=m+1;//m增加1,下次读mylist的下一行
  end
  else//如果读到了mylist未尾,则进行下面步骤。
  begin
  m:=0;//m恢复为0,下次点击button1时,从mylist的第一行开始。
  edit1.Text:='搜索完毕,点击重新开始!';
  edit1.SetFocus;
 end;
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 mylist.Free;//释放mylist
end;