Delphi ';没有重载版本';替换字符串列表中的字符串时出错

Delphi ';没有重载版本';替换字符串列表中的字符串时出错,delphi,Delphi,我试图替换TStringList中的字符,但编译器给了我一个“无重载版本”错误。这是我的密码 procedure TForm1.bImportCSVClick(Sender: TObject); var aCSVFile : TStringList; aCSVLine : TStringList; aString : string; begin if OpenDialog1.execute then begin aCSVFile := TStringList.Crea

我试图替换TStringList中的字符,但编译器给了我一个“无重载版本”错误。这是我的密码

procedure TForm1.bImportCSVClick(Sender: TObject);
var
  aCSVFile : TStringList;
  aCSVLine : TStringList;
  aString : string;
begin
  if OpenDialog1.execute then
  begin
    aCSVFile := TStringList.Create;
    aCSVLine := TStringList.Create;
    try
      aCSVFile.LoadFromFile(OpenDialog1.FileName);

      aCSVFile := StringReplace(aCSVFile, ' ', '', [rfReplaceAll]); //Error

      aCSVLine.Delimiter := ';';
      for aString in aCSVFile do
      begin
        aCSVLine.DelimitedText := aString;
        ClientDataSet1.InsertRecord([aCSVLine[0]]);
      end;
    finally
      aCSVFile.Free;
      aCSVLine.Free;
    end;
  end;
我尝试了以下方法:

      for aString in aCSVFile do
      begin
        aCSVLine.DelimitedText := aString;
        aCSVLine[0] := StringReplace(aCSVLine[0], ' ', '', [rfReplaceAll]);
        ClientDataSet1.InsertRecord([aCSVLine[0]]);
      end;
  • StringReplace
    的第一个参数的类型为
    string
    。您通过
    TStringList
  • StringReplace
    的返回值属于
    string
    类型。您分配给
    TStringList
您需要对单个字符串而不是整个列表进行操作。例如,如果要对列表中的每个项目进行操作,请编写:

for i := 0 to aCSVFile.Count-1 do
  aCSVFile[i] := StringReplace(aCSVFile[i], ' ', '', [rfReplaceAll]);

至于您的正确代码是什么,我不知道,因为您没有指定要实现什么。

字符串列表是字符串列表。您需要从列表中选择一个字符串来更改其字符。您希望使用列表中的哪个字符串进行操作?它是每行的第一个字符串编译器消息的意思与它所说的完全相同。你的问题是什么?就是这个。只需将“”替换为“”(我需要从poscode中删除空格)非常感谢