[英]'No overloaded version' error when replacing string in a stringlist
我正在嘗試替換TStringList中的char,但是編譯器給我一個'沒有重載版本'錯誤。 這是我的代碼。
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]);
至於什么是正確的代碼,我不知道,因為您沒有指定要實現的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.