我想把字符串存到文本文件中 请哪位高人指点一下 delphi

2024-10-30 13:31:18
有2个网友回答
网友(1):

procedure TForm1.Button1Click(Sender: TObject);
var
  s:TStringList;
  i,j:Integer;
  str1,str2:string;
begin
  OpenDialog1.Execute;
  s:=TStringList.Create;
  s.Text:=Memo1.Text; //先给s值,
  str1:='插入值';     //我这里在有#号的位置的前面写上“插入值”
  str2:=s.Text;       //再给str2变量赋一个s的值,用于后面的循环
  i:=0;               //初始化循环中的变量
  j:=0;               //初始化循环中的变量
  while Pos('#',str2) > 0 do      //while..do 循环,循环到str2里面有没#号为止
  begin
    i:=Pos('#',str2);            //首选获取str2的#的位置,
    j:=i+j;
    {然后+上j的值,这里逻辑可能有点复杂,j用于copy  s的值,i用于copy str2的值
    因为str2的值每次循环都会删除#号前面的部分,所以会越来越少,而s值每次循环会再#号前加str1,所以会越来越多
    所以用i和j区分,i每次循环重新定义,j每次循环累加。 }
    s.Text:=Copy(s.Text,0,j-1) + str1 + Copy(s.Text,j,Length(s.Text));
    //copy看你代码用过,应该会用,这里就是截取,#号前的值+str1+#号后面的值,如果你加'',
    //那么记得到时候j还要加上你这个字符的长度。
    j:=j+length(str1); //每次结束后,j还要加上插入值的长度
    str2:=Copy(str2,i+1,Length(str2)); //这里就是将str2中#号以及#号之前的部分删除,然后继续循环,直到没有#号
  end;
  s.SaveToFile(OpenDialog1.FileName);  //存入文本就这么写。没有问题的。
  {这是我自己写的DOME运算的值:
      sdfasdfasdfhjsf#123123123
      sdfskj#12312
      dcvnm,nf#53242
      fksjflkas#12315
  下面是结束后文本保存的值
      sdfasdfasdfhjsf插入值#123123123
      sdfskj插入值#12312
      dcvnm,nf插入值#53242
      fksjflkas插入值#12315
  }
end;

网友(2):

FINI:= TIniFile.Create(Extractfilepath(Application.ExeName)+'aaa.ini');
FINI.WriteString('Configuration','A', 'bbb'));
FINI.Destroy;