-1

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ですか?

4

2 に答える 2