Petit souci avec BoolToStr

Résolu
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006 - 7 juil. 2005 à 12:25
vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 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.

Vincent Stryckmans.
A voir également:

4 réponses

roud59 Messages postés 99 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 26 juillet 2007 2
7 juil. 2005 à 13:46
Bonjour

Curieux en effet. J'ai essayé avec Delphi7 :

SetLength(TrueBoolStrs,2);
SetLength(FalseBoolStrs,2);TrueBoolStrs[0] := '1';

trueBoolStrs[1] := 'true';
FalseBoolStrs[0] := '0';
FalseBoolStrs[1] := 'false';


ShowMessage(booltostr(true,true))

et j'obtiens '1' comme prévu ???

voici ce que trouve dans le sysutil.pas

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]);

Roud59
3
Rejoignez-nous