比如C:\WINDOWS\Temp下有个temp.txt
内容如下:
--------------------------------------------------------------------------------------------------------------
  TCP    221.72.14.74:1306      221.181.70.11:5926     ESTABLISHED
  TCP    221.72.14.74:1306      221.181.70.11:5925     ESTABLISHED
  TCP    221.72.14.74:3118      119.75.217.56:80       CLOSE_WAIT
  TCP    221.72.14.74:3131      220.181.107.11:80      CLOSE_WAIT
  TCP    221.72.14.74:3132      220.181.111.15:80      TIME_WAIT
--------------------------------------------------------------------------------------------------------------我要把最后一个不是ESTABLISHED的,这一行全部去掉,然后保存到temp.txt里
那么最终temp.txt内容应该是这样:
--------------------------------------------------------------------------------------------------------------
  TCP    221.72.14.74:1306      221.181.70.11:5926     ESTABLISHED
  TCP    221.72.14.74:1306      221.181.70.11:5925     ESTABLISHED
--------------------------------------------------------------------------------------------------------------要具体代码(txt是cmd里输入netstat -n后,导入的,格式都是这样的)

解决方案 »

  1.   


    var
      list:TStringList;
      i,len:Integer;
      s:string;
    begin
      s := 'ESTABLISHED';
      len := Length(s);
      list := TStringList.Create;
      list.LoadFromFile('c:\\2.txt');
      for i := list.Count - 1 downto 0 do
      begin
        if Copy(list.Strings[i],Length(list.Strings[i])-len+1,len) <> s then
          list.Delete(i);
      end;
      list.SaveToFile('c:\1.txt');
      list.Free;
    end;
      

  2.   


    如果会出错的话,这样 var
      list,list1:TStringList;
      i,len:Integer;
      s:string;
    begin
      s := 'ESTABLISHED';
      len := Length(s);
      list := TStringList.Create;
      list1:= TStringList.Create;
      list.LoadFromFile('c:\2.txt');
      for i := list.Count - 1 downto 0 do
      begin
        if Copy(list.Strings[i],Length(list.Strings[i])-len+1,len) = s then
          list1.Add(list[i]);
      end;
      list1.SaveToFile('c:\1.txt');
      list.Free;
      list1.Free;
    end;
      

  3.   

    uses StrUtils;{$R *.dfm}procedure FormatYouFile(const FileName : string);
    var
      i : Integer;
      Content : TStrings;
    begin
      Content := TStringList.Create;
      try
        Content.LoadFromFile(FileName);    for i := Content.Count - 1 downto 0 do
        begin
          if AnsiEndsText('ESTABLISHED', Trim(Content[i])) then
            Content.Delete(i);
        end;    Content.SaveToFile(FileName);
      finally
        Content.Free;
      end;
    end;