TXT 文件
  EE,02,79,0C,01,D1,60,A8,04,01,18,05,3A,29,04,01,18,06,00,04,53
  
说明:
     位置 EE 的位置是1 
          02 的位置是2
          79 的位置是3
       依次类推 
    要求将位置=5 的替换成 00
    即结果应是 EE,02,79,0C,00,D1,60,A8,04,01,18,05,3A,29,04,01,18,06,00,04,53

解决方案 »

  1.   

    begin
      with TStringList.Create do try
        Delimiter := ',';
        DelimitedText := 'EE,02,79,0C,01,D1,60,A8,04,01,18,05,3A,29,04,01,18,06,00,04,53';
        Strings[4] := '00';
        ShowMessage(DelimitedText);
      finally
        Free;
      end;
    end;
      

  2.   

    var
      Strings: TStringList;
    begin
     try
        Strings := TStringList.Create;
        Strings.LoadFromFile('xxx.txt');
        Strings.Delimiter := ',';
        Strings[4] := '00';
        ShowMessage(Strings.text);
      finally
        Strings.Free;
      end;
    end;
      

  3.   

    此题扩展 要求将位置=5 的替换成 00,把位置是10 的替换成 88 
    结果是EE,02,79,0C,00,D1,60,A8,04,88,18,05,3A,29,04,01,18,06,00,04,53
      

  4.   

    參考  zswangII 的代碼
     //Strings[4] := '00';
     
    >>要求将位置=5 的替换成 00,把位置是10 的替换成 88 
      Strings[10-1] :=
    就是你要的了
      

  5.   

    自己做一个函数:
    Function ReplaceStr(i:Integer,s:string);
    var
      Strings: TStringList;
    begin
     try
        Strings := TStringList.Create;
        Strings.LoadFromFile('xxx.txt');
        Strings.Delimiter := ',';
        try
          Strings[i] := s;
        except
          showmessage('没有第'+IntToStr(i)+'个字符');
        end;
        Strings.SaveToFile('xxx.txt');
      finally
        Strings.Free;
      end;
    end;
    然后你ReplaceStr(5,'00')再ReplaceStr(10,'88')
      

  6.   

    对了,应该为:
    自己做一个函数:
    Function ReplaceStr(i:Integer,s:string);
    var
      Strings: TStringList;
    begin
     try
        Strings := TStringList.Create;
        Strings.LoadFromFile('xxx.txt');
        Strings.Delimiter := ',';
        try
          Strings[i-1] := s;
        except
          showmessage('没有第'+IntToStr(i)+'个字符');
          Abort;
        end;
        Strings.SaveToFile('xxx.txt');
      finally
        Strings.Free;
      end;
    end;
    然后你ReplaceStr(5,'00')再ReplaceStr(10,'88')
      

  7.   

    还有我用什么方法知道"EE,02,79,0C,00,D1,60,A8,04,88,18,05,3A,29,04,01,18,06,00,04,53"共有多少个位置呀!位置要求是动态求。多谢大家帮忙,问题解决立马给分
      

  8.   

    //有什么问题,能不能一次问完?~~  with TStringList.Create do try
        Delimiter := ',';
        DelimitedText := 'EE,02,79,0C,01,D1,60,A8,04,01,18,05,3A,29,04,01,18,06,00,04,53';   
        ShowMessage(IntToStr(Count));
      finally
        Free;
      end;
    end;