有下面的文本C:\1.TXT
      1列    2列        三列
       1     ZLD         MPG
       2     MAL         DLP
       3     ZCL         NMP
       4     CCE         FNO如果上面的文本的第二列第一个字符有Z或者第三列的第一个字符是F那么就选出来,
上面的文本是固定格式。
另存为最后另存为2.txt
即生成2.txt后的内容为
       1     ZLD         MPG
       3     ZCL         NMP
       4     CCE         FNO

解决方案 »

  1.   

    var
      sl1, sl2: TStrings;
      i: Integer;
      sTemp: String;
    begin
      sl1 := TStringList.Create;
      sl2 := TStringList.Create;
      try
        sl1.LoadFromFile('d:\temp\test.txt');    for i := (sl1.Count - 1) downto 0 do
        begin
          sTemp := sl1.Strings[i];
          sl2.Clear;
          ExtractStrings([' '], [], PAnsiChar(sTemp), sl2);
          if (Copy(sl2.Strings[1], 1, 1) <> 'Z') and (Copy(sl2.Strings[2], 1, 1) <> 'F') then
            sl1.Delete(i);
        end;
        sl1.SaveToFile('d:\temp\test1.txt');
      finally
        sl1.Free;
        sl2.Free;
      end;
    end;
      

  2.   

    var sl:TStrings;
        str,tStr:string;
        filetext:TextFile;
        index:integer;
        c1,c2:char;
    begin
      sl:= TStringList.Create;
      try
      assignfile(filetext,'c\1.txt');
      reset(filetext);
      while not eof(filetext) do
      begin
        readln(filetext,str);
        index:=pos(' ',str);
        while (str[index]=' ')do
           inc(index);
        c1:=str[index];
        tStr:=copy(str,index,Length(str)-index);
        index:=pos(' ',tStr);
        while (tStr[index]=' ') do
           inc(index);
        c2:=tStr[index];
       if (c1='Z')or(c2='F') then
       begin
         sl.add(str);
       end;
      end;
      sl.SaveToFile('c\2.txt');
      finally
       sl.free;
      end;
    end;