截取字符串的问题
  s:=112,113,114,115,116,117
  要求把其变成0112__0113_0114_0115_0115_0117
  并保存成文本文件

解决方案 »

  1.   

    rocedure TForm1.Button1Click(Sender: TObject);
    var
      vTemp:String;
      OldStr,NewStr:String;
    begin
      Edit2.Text:= AnsiReplaceText(Edit1.Text,',','_');    //将","换成"_"
      vTemp:=Edit2.Text;
      while pos('_',vTemp)>0 do
      begin
        OldStr:=copy(vTemp,1,pos('_',vTemp)-1); //转换前的字符串
        NewStr:=format('0%s',[OldStr]);    //转换后的字符串
        Edit2.Text:= AnsiReplaceText(Edit2.Text,OldStr,NewStr);  //转换字符串
        vTemp:=copy(vTemp,pos('_',vTemp)+1,Length(vTemp));
      end;
    end;
      

  2.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
      str:string;
    begin
      str := '112,113,114,115,116,117';
      str := '0' + AnsiReplaceText(str, ',', '_0'); //转换
      Memo1.Lines.Add(str);
      Memo1.Lines.SaveToFile('D:\x.txt');     //保存
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      vTemp:String;
      OldStr,NewStr:String;
      vF:TextFile;
    begin
      Edit2.Text:= AnsiReplaceText(Edit1.Text,',','_');
      vTemp:=Edit2.Text;
      NewStr:='';
      while pos('_',vTemp)>0 do
      begin
        OldStr:=copy(vTemp,1,pos('_',vTemp)-1);
        NewStr:=format('0%s',[OldStr]);
        Edit2.Text:= AnsiReplaceText(Edit2.Text,OldStr,NewStr);
        vTemp:=copy(vTemp,pos('_',vTemp)+1,Length(vTemp));
      end;
      AssignFile(vF,'c:\a.txt');  
      Rewrite(vF);
      Writeln(vF,Edit2.Text);
      CloseFile(vF);
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      sourse:string;
      terget:string;
      temp:array[1..100] of string[3];
      i:integer;
      j:integer;
      k:integer;
      f:textfile;
    begin
      for i:=1 to 100 do temp[i]:='';
      i:=0;
      sourse:='112,113,114,115,116,117...';  
      j:=length(sourse);
      if j>0 then begin        //拆分
        k:=1;
        repeat
          inc(i);
          repeat
            temp[i]:=temp[i]+sourse[k];
            inc(k);
            until (sourse(k)=',') or (k>j);
          if k<j then inc(k);
          until k>j;
        end;
      if i>0 then begin        //合并
        target:='';
        case i of
          1:target:='0'+temp[1];
          2:target:='0'+temp[1]+'_'+'0'+temp[2];
          else begin
            target:='0'+temp[1];
            for j:=2 to i-1 do target:=target+'_'+'0'+temp[j];
            target:=target+'_'+'0'+temp[i];
            end;
          end;
        end;
      if i>0 then begin
        assignfile(f,'result.txt');
        rewrite(f);
        writeln(f,target);
        closefile(f);
        end;
      end;这样的结构,S有多少个段也能搞定,但楼主发这个贴前先用用脑吧,这么简单也要发问,难怪现在的学生说读书是为了拿个证。
      

  5.   

    TO: MMas(凌乱) 
    这里是一个交流的地方,没有人强迫你来回答!你这样回答我感觉很伤人自尊的!所以我瞧不起你!
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var i,j,k:integer;
         s:string;
         myFStream:Tstringlist;
    begin
    myfstream:=Tstringlist.Create;
    i:=-1;
    s:='123,456,788,123';
    for j:=i+1 to length(s)do
    begin
    i:=pos(',',s);
    K:=i;
      if k<>0 then
      begin
      delete(s,i,1);
      insert('-',s,i);
      end;
    end;
    myfstream.Append(s);
    myfstream.SaveToFile('123.txt');
    end;
      

  7.   

    这下可以了。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s : String;
      ts : TStringList;
    begin
      s := '112,113,114,115,116,117';
      s := StringReplace(s, ',', '_0',[rfReplaceAll]); //把','替换成'_0'
      s := '0' + s;     //添加第一个0
      ts := TStringList.Create;
      ts.Add(s);
      ts.SaveToFile('c:\a.txt');   //保存
      ts.Free;
    end;
      

  8.   

    看错了
    procedure TForm1.Button1Click(Sender: TObject);
    var i,j,k:integer;
         s:string;
         myFStream:Tstringlist;
    begin
    myfstream:=Tstringlist.Create;
    i:=-1;
    s:='123,456,788,123';
    insert('0',s,0);
    for j:=i+1 to length(s)do
    begin
    i:=pos(',',s);
    K:=i;
      if k<>0 then
      begin
      delete(s,i,1);
      insert('0',s,i);
      insert('-',s,i);
      end;
    end;
    myfstream.Append(s);
    myfstream.SaveToFile('123.txt');
    end;