On Sat, Oct 4, 2014 at 6:28 AM, Reinier Olislagers < reinierolislag...@gmail.com> wrote:
> On 03/10/2014 21:16, silvioprog wrote: > > When I use the TIniFile to save my configurations, it saves the boolean > > values as 0 and 1. > > > > Is there any way to save these values as string (true/false) instead > > of integer (0/1)? If not, can I send a patch to implement that?! > > 1. Write your own wrapper? > 2. AFAIR, there already is a bug report+patch in the bug tracker on > extending TInifiles. Thanks. Internally it uses this functions: ... function CharToBool(AChar: char): boolean; begin Result := (Achar = '1'); end; function BoolToChar(ABool: boolean): char; begin if ABool then Result := '1' else Result := '0'; end; ... This functions could be replaced by functions from SysUtils functions, allowing compatibility with words like 0/1 (as is now), true/false, yes/no (USA), sim/não (Brazil), foo/bar (any) etc. Then: Instead of: function TCustomIniFile.ReadBool(const Section, Ident: string; Default: Boolean): Boolean; var s: string; begin Result := Default; s := ReadString(Section, Ident, ''); if s > '' then Result := CharToBool(s[1]); end; Could be: function TCustomIniFile.ReadBool(const Section, Ident: string; Default: Boolean): Boolean; var s: string; begin Result := Default; s := ReadString(Section, Ident, ''); if s > '' then Result := SysUtils.StrToBoolDef(s[1], False); end; And, instead of: procedure TCustomIniFile.WriteBool(const Section, Ident: string; Value: Boolean); begin WriteString(Section, Ident, BoolToChar(Value)); end; Could be: procedure TCustomIniFile.WriteBool(const Section, Ident: string; Value: Boolean); begin WriteString(Section, Ident, SysUtils.BoolToStr(Value, True)); end; So I could use with: initialization SetLength(SysUtils.TrueBoolStrs, 1); SetLength(SysUtils.FalseBoolStrs, 1); SysUtils.TrueBoolStrs[0] := 'true'; // or other SysUtils.FalseBoolStrs[0] := 'false'; // or other Just ideas hehe.. -- Silvio Clécio My public projects - github.com/silvioprog
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal