delphi array 数组筛选  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi array 数组筛选


360截图-207726328.png


unit Unit1;


interface


uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,

  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,

  Vcl.StdCtrls, IniFiles;


type

  TForm1 = class(TForm)

    Memo1: TMemo;

    Memo2: TMemo;

    Button1: TButton;

    Button2: TButton;

    Label1: TLabel;

    Label2: TLabel;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Memo1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public



      //AllName = (钟瑞秋, 彭紫夏, 周佳慧, 陈可佳, 刘思琦, 陈欣怡, 钟佳婷, 黄育宸, 熊子嫣, 伍妙思, 牛艺涵, 张书涵, 刘淼, 刘晨宇, 严恺昕, 项雨泽, 廖羽良, 杨宇轩, 伍宇乐, 肖哲浩, 闻怡航, 简博成, 刘子文, 伍依铭, 施丽媛, 廖思凯, 袁雨辰, 黄皓翔, 黄宇泉, 钟艺轩, 林颖希, 刘子渊, 梁振楠, 郭雨辰, 黄雨泉, 刘俊佑);

    var

      Mystat: array of string;

      MyList: THashedStringList;


    { Public declarations }

  end;


var

  Form1: TForm1;


implementation

{$R *.dfm}


procedure TForm1.Button2Click(Sender: TObject);

var

  EName1: string;

  Userinput1: string;

  EIndex1: Integer;

begin

  Memo2.lines.Clear;

  EIndex1 := 0;

  Userinput1 := memo1.Text;

  try

    MyList := THashedStringList.Create;

    MyList.DefaultEncoding := TEncoding.UTF8;

    MyList.LoadFromFile('班级人员名单.txt');

    for EName1 in MyList do

    begin

      if EName1.IndexOf(Userinput1) = -1 then     //这里用的IndexOf方法,不存在会返回-1

      begin

        memo2.Text := Memo2.Text + EName1 + '没有完成作业' + #13#10;

        Inc(EIndex1);

      end;

    end;

    Memo2.text := Memo2.text + '共计' + IntToStr(EIndex1) + '人未交作业.' + #13#10 + DateTimeToStr(now);

  finally

    MyList.Free;

  end;


end;


procedure TForm1.FormCreate(Sender: TObject);

begin

  SetLength(Mystat, 38);

  Mystat := ['钟瑞秋', '黄佳敏', '钟佳婷', '彭紫夏', '周佳慧', '陈可佳', '刘思琦', '陈欣怡', '钟佳婷', '黄育宸', '熊子嫣', '伍妙思', '牛艺涵', '张书涵', '刘淼', '刘晨宇', '严恺昕', '项雨泽', '廖羽良', '杨宇轩', '伍宇乐', '肖哲浩', '闻怡航', '简博成', '刘子文', '伍依铭', '施丽媛', '廖思凯', '袁雨辰', '黄皓翔', '黄宇泉', '钟艺轩', '林颖希', '刘子渊', '梁振楠', '郭雨辰', '黄雨泉', '刘俊佑'];


end;


procedure TForm1.Memo1Click(Sender: TObject);

begin

  Memo1.Lines.Clear;

end;


procedure TForm1.Button1Click(Sender: TObject);

var

  EName: string;

  Userinput: string;

  EIndex: Integer;

begin

  Memo2.lines.Clear;

  EIndex := 0;

  Userinput := memo1.Text;

  for EName in Mystat do

  begin

    if Pos(EName, Userinput) = 0 then           //Pos方法,不存在会返回0,但是Pos好像更慢

    begin

      memo2.Text := Memo2.Text + EName + '没有完成作业' + #13#10;

      //Memo2.Lines.Add(EName + '没交作业' + #10);   //这种速度更慢

      Inc(EIndex);

    end;


  end;


  Memo2.text := Memo2.text + '共计' + IntToStr(EIndex) + '人未交作业.' + #13#10 + DateTimeToStr(now);

end;


end.



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.033190011978149 seconds