本帖最后由 YINLINGWO 于 2009-09-11 13:18:43 编辑

解决方案 »

  1.   

    ifrom:=1;
    bDel:=false;
    for i:=ifrom+1 to 1000 do
      if bDel and 存在(i) then
      begin
        靠右输出:format('%.3d-%.3d',[ifrom,i-1]);
        bDel:=false;
        ifrom:=i;
      end
      else
      if not bDel and not 存在(i) then
      begin
        靠左输出:format('%.3d-%.3d',[ifrom,i-1]);
        bDel:=true;
        ifrom:=i;
      end;
      

  2.   

    var
    sl:tstringlist;
    i:integer;begin
        i:=sl.IndexOf('0004');
       if i>0 then sl[i]:='    '+   sl[i];
    end;
      

  3.   


    // 窗体 unit1.dfm
    object Form1: TForm1
      Left = 218
      Top = 155
      Width = 728
      Height = 437
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Memo1: TMemo
        Left = 24
        Top = 32
        Width = 137
        Height = 289
        Lines.Strings = (
          '0001'
          '0002'
          '0003'
          '0004'
          '0005'
          '0006'
          '0007'
          '0008'
          '0009'
          '0010'
          '0011')
        TabOrder = 0
      end
      object Memo2: TMemo
        Left = 184
        Top = 32
        Width = 129
        Height = 289
        Lines.Strings = (
          '0004'
          '0007'
          '0008'
          '0009')
        TabOrder = 1
      end
      object Memo3: TMemo
        Left = 336
        Top = 32
        Width = 145
        Height = 289
        TabOrder = 2
      end
      object Button1: TButton
        Left = 504
        Top = 40
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 3
        OnClick = Button1Click
      end
    end//单元 unit1.pasunit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Memo2: TMemo;
        Memo3: TMemo;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      str1: string;
      sl: tstringlist;
    begin
      str1:= '';
      for i:=memo1.Lines.Count downto 0 do
        if memo2.Lines.IndexOf(memo1.Lines.Strings[i]) <> -1 then
          memo1.Lines.Strings[i]:= ' ';
      for i:= memo2.Lines.Count-1 downto 1 do
        if strtoint(memo2.Lines.Strings[i]) <> strtoint(memo2.Lines.Strings[i-1])+1 then
          memo2.Lines.Insert(i,' ');  for i:=0 to memo1.Lines.Count -1 do
        str1:= str1+memo1.Lines.Strings[i]+'-';  sl:= tstringlist.Create;
      sl.Delimiter:= ' ';
      sl.DelimitedText:= str1;
      for i:= sl.Count -1 downto 0 do
      begin
        sl.Strings[i]:= stringreplace(sl.Strings[i],'-','',[rfReplaceAll]);
        if trim(sl.Strings[i]) = '' then
          sl.Delete(i)
        else
          if length(sl.Strings[i]) > 4 then
            sl.Strings[i]:= copy(sl.Strings[i],1,4)+'-'+
              copy(sl.Strings[i],length(sl.Strings[i])-3,4);
      end;  for i:= 0 to sl.Count -1 do
        memo3.Lines.Append(sl.Strings[i]);  str1:= '';
      for i:=0 to memo2.Lines.Count -1 do
        str1:= str1+memo2.Lines.Strings[i]+'-';  sl.Delimiter:= ' ';
      sl.DelimitedText:= str1;
      for i:= sl.Count -1 downto 0 do
      begin
        sl.Strings[i]:= stringreplace(sl.Strings[i],'-','',[rfReplaceAll]);
        if trim(sl.Strings[i]) = '' then
          sl.Delete(i)
        else
          if length(sl.Strings[i]) > 4 then
            sl.Strings[i]:= copy(sl.Strings[i],1,4)+'-'+
              copy(sl.Strings[i],length(sl.Strings[i])-3,4);
      end;  for i:= 0 to sl.Count -1 do
        memo3.Lines.Strings[i]:= memo3.Lines.Strings[i]+'  '+sl.Strings[i];end;end.
    结帖吧