Value が引用符付き文字列の場合、引用符 (") は自動的に削除されます。
つまり、次の 2 つのステートメントは、
A.WriteString('Section','Key','"abcde"')
と
A.WriteString('Section','Key','abcde')
異ならないということです。
私のコードを見てください(非常に明確です):
program project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, IniFiles, sysutils
{ you can add units after this };
var
List: TIniFile;
A, B: String;
begin
List := TIniFile.Create('file.ini');
A := '"abcde"';
List.WriteString('Section', 'Key', A);
List.Free;
List := TIniFile.Create('file.ini');
B := List.ReadString('Section', 'Key', '');
List.Free;
if A<>B then raise Exception.Create(Format('A<>B (A=[%s] but B=[%s])', [A, B]));
end.
前のコードでは、次の例外が発生します。A<>B (A=["abcde"] but B=[abcde])
A.WriteString('Section', 'Key', List.CommaText);
私は次のようなコードを書きたいと思っていますList.CommaText
:
それはバグですか、それとも機能ですか?TStrings
を に保存するにはどうすればよいTIniFile
ですか?