[fpc-pascal] TInifile does not handle " " (space) as a value.
Michael Van Canneyt
michael at freepascal.org
Fri Aug 4 09:47:21 CEST 2017
On Fri, 4 Aug 2017, Torsten Bonde Christiansen wrote:
> Dear List.
>
> I was trying to use the ini file for our program to store a single space
> " " as a value, but this does not seem to be posible.
>
> From the Wikipedia definition of INI file
> (https://en.wikipedia.org/wiki/INI_file#Whitespace) whitespace in values
> does not seem to be well defined, so it may just be a design choice.
>
> The following illustrates the issue:
>
> program Project1;
>
> {$mode objfpc}{$H+}
>
> uses
> Classes, IniFiles;
>
> var
> Ini: TIniFile;
> S: String;
> begin
> Ini := TIniFile.Create('/tmp/test.ini');
> Ini.WriteString('sec1', 'S', ' ');
> Ini.Free;
>
> Ini := TIniFile.Create('/tmp/test.ini');
> S := Ini.ReadString('sec1', 'S', 'ZZ'); // S is '' and not ' ' as
> expected
> Ini.Free;
> end.
>
>
> Is this considered a bug or "by design"?
This is by design.
As you said, whitespace is not so well defined.
Probably an option can be added not to trim whitespace, but I fear this will
lead to more inconsistencies.
As a workaround, try quoting your spaces, something like " "
Michael.
More information about the fpc-pascal
mailing list