vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006
-
7 juil. 2005 à 12:25
vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006
-
8 juil. 2005 à 08:09
Salut,
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]);
taye78
Messages postés106Date d'inscriptionmardi 18 juin 2002StatutMembreDernière intervention13 janvier 2007 8 juil. 2005 à 00:40
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.
taye78
Messages postés106Date d'inscriptionmardi 18 juin 2002StatutMembreDernière intervention13 janvier 2007 8 juil. 2005 à 00:43
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.