logo       

Re: taille des types / streams: msg#00040

lang.ada.france

Subject: Re: taille des types / streams


Le lundi, 31 mars 2003, à 12:48 Europe/Paris, Laurent Pautet a écrit :

On 31/03, Thomas De Contes wrote:
|
| type diffBranches is new Natural range 0..2**
| Natural'min(donneesBranches'size,Natural'size) -1;

Une solution generale consiste a redefinir les attributs read et write
de diffBranches.

bonne idée :-)

procedure Write
(S : access Ada.Streams.Root_Stream_Type'Class;
X : in diffBranches)
is
SEA : Ada.Streams.Stream_Element_Array (1 .. 1);
begin
SEA (1) := Stream_Element (X);
Ada.Streams.Write (S.all, SEA);
end Write;

sauf que là c'est figé à 1 octet, si j'avait voulu faire ça j'aurais figé Natural'min(donneesBranches'size,Natural'size) à 8

caractère est passé en générique, si ça avait été wide-caractère, il aurait fallut que la longueur de la liste (qui contient pas plus d'1 fois chaque wide-caractère mais peut les contenir tous) soit écrit sur 2 octets
(tant pis pour le cas où ils y sont effectivement tous et où ça déborde ;-) , j'aviserais quand ça arrivera)

mais merci pour l'exemple pour écrire directement dans le flot, ça peut me faire avancer :-)

_______________________________________________
Site WWW de l'association Ada-France: http://www.ada-france.org/
Ada-France@xxxxxxxxxxxxxx
http://www.ada-france.org/mailman/listinfo/ada-france



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise