文本文件内容为
a,1
b,1
c,1两个label控件,作为某一行的两列值,并且将label1的值作为索引值
修改过程
若label1为b,label2为5,则对文本文件的b行修改,变为
a,1
b,5
c,1
添加过程
若label1为d,label2为3,则对文本文件添加一行,变为
a,1
b,5
c,1
d,3

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string[3];
      i:integer;
    begin
      i:=0;
      while i<Memo1.Lines.Count do begin  //可改成TSTRINGLIST.
        s:=Memo1.Lines[i];
        if label1.Caption=s[1] then begin
          Memo1.Lines.Insert(i,Label1.Caption+','+Label2.Caption);
          Memo1.Lines.Delete(i+1);
          i:=Memo1.Lines.Count;end;
        inc(i);
      end;
      if i=Memo1.Lines.Count then
        Memo1.Lines.Add(Label1.Caption+','+Label2.Caption);
    end;
      

  2.   

    var
      tl: TStrings;
      i: Integer;
      sTemp1, sTemp2: String;
      bFound: Boolean;
    begin
      tl := TStringList.Create;  with tl do
      try
        LoadFromFile('文本文件.txt');
        sTemp1 := Label1.Caption;
        sTemp2 := Label2.Caption;    bFound := False;
        for i := 0 to (Count - 1) do
          if (Pos(sTemp1 + ',', Strings[i]) > 0) then    //找到则修改
          begin
            bFound := True;
            Strings[i] := sTemp1 + ',' + sTemp2;
            Break;
          end;    if (bFound = False) then Add(sTemp1 + ',' + sTemp2); //没找到则添加
      finally
        tl.Free;
      end;
    end;
      

  3.   

    var
      tl: TStrings;
      i: Integer;
      sTemp1, sTemp2: String;
      bFound: Boolean;
    begin
      tl := TStringList.Create;  with tl do
      try
        LoadFromFile('文本文件.txt');
        sTemp1 := Label1.Caption;
        sTemp2 := Label2.Caption;    bFound := False;
        for i := 0 to (Count - 1) do
          if (Pos(sTemp1 + ',', Strings[i]) > 0) then    //找到则修改
          begin
            bFound := True;
            Strings[i] := sTemp1 + ',' + sTemp2;
            Break;
          end;    if (bFound = False) then Add(sTemp1 + ',' + sTemp2); //没找到则添加
        SaveToFile('文本文件.txt');  //保存回去
      finally
        tl.Free;
      end;
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      SStrlist,TempStrList:TStringList;
      BAdd:boolean;
      i:integer;
    begin
      SStrlist:=TStringList.Create;
      TempStrList:=TStringList.Create;
      try
        SStrlist.LoadFromFile('F:\1.txt');
        //Memo1.Lines.AddStrings(SStrlist);
        BAdd:=true;
        for  i:=0  to SStrlist.Count-1 do
        begin
          TempStrList.Clear;
          ExtractStrings([','],[],pchar(SStrlist.Strings[i]),TempStrList);
          if TempStrList.Strings[0]=Label1.Caption then
          begin
            BAdd:=false;
            SStrlist.Strings[i]:=Label1.Caption+','+Label2.Caption;
          end;
        end;
        if BAdd then SStrlist.Add(Label1.Caption+','+Label2.Caption);
        //Memo2.Lines.AddStrings(SStrlist);
        SStrlist.SaveToFile('F:\temp.txt');
      finally
        SStrlist.Free;
        TempStrList.Free;
      end;
    end;