Je souhaite convertir un boolean de telle manière que :
false = '0' en string;
true = '1' en string;
La fonction BoolToStr(valeur,flag) donne false 0 et true -1 si flag
est false et donne la première valeur des array TrueBoolStrs et
FalseBoolStrs si flag est true, avec par défaut les string 'true'
et 'false'.
Ces array ne sont apparement pas directement accessible et il faudrait les créer ce que j'ai fait :
SetLength(TrueBoolStrs,2);
SetLength(FalseBoolStrs,2);
TrueBoolStrs[0] := '1';
trueBoolStrs[1] := 'true';
FalseBoolStrs[0] := '0';
FalseBoolStrs[1] := 'false';
Et bien cela ne marche pas!
booltostr(true,true) donne 'true' et booltostr(false,true) donne 'false'.
Quoi moi y en a pas compris
Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.
function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
const
cSimpleBoolStrs: array [boolean] of String = ('0', '-1');
begin
if UseBoolStrs then
begin
VerifyBoolStrArray;
if B then
Result := TrueBoolStrs[0]
else
Result := FalseBoolStrs[0];
end
else
Result := cSimpleBoolStrs[B];
end;
et
procedure VerifyBoolStrArray;
begin
if Length(TrueBoolStrs) = 0 then
begin
SetLength(TrueBoolStrs, 1);
TrueBoolStrs[0] := DefaultTrueBoolStr; //= 'True'
end;
if Length(FalseBoolStrs) = 0 then
begin
SetLength(FalseBoolStrs, 1);
FalseBoolStrs[0] := DefaultFalseBoolStr; //= 'False'
end;
end;
Si ça peux t'aider ...
Tu peux aussi faire :
const
BoolStrArray : array[false..true] of string = ('0','1');
et
ShowMessage(BollStrArray[UnBoolean]);
Salut, une méthode très simple, si j'ai bien compris la question :
Convertir une variable boolean en une interprétation string:
Ord(True) 1 & Ord(False) 0 donc....
var teste: boolean;
begin
teste := true;
showmessage(inttostr(ord(teste)));
end;
sinon on peut faire ça propre fonction qui examinerai le boolean et qui retournerai un string en fonction de celui-ci.
Je tien à rapeller que ce que j'ai dis (ord(true) [...]) n'est valable que pour un type BOOLEAN et non pas pour les types ByteBool, WordBool, LongBool vu qu'eux Ord(True) <> 0 (-1). Donc dans ce cas, une solution simple serait la création d'une fonction minime qui effectue la comparaison.