Lecture et écriture d'une chaine en binaire
Publié : sam. 13/août/2005 6:51
Je viens de complèter deux petites commandes écrire une Structure de données contenant des Chaînes de caractère et des nombres flottant.
En espérant que ça puisse aider certaine personne.
A+
Guimauve
En espérant que ça puisse aider certaine personne.
A+
Guimauve
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure >>>>>
Structure Ship
Name.s
Speed.f
Size.f
EndStructure
; <<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les mutateurs >>>>>
Procedure SetShipName(*ObjetA.Ship, Name.s)
*ObjetA\Name = Name
EndProcedure
Procedure SetShipSpeed(*ObjetA.Ship, Speed.f)
*ObjetA\Speed = Speed
EndProcedure
Procedure SetShipSize(*ObjetA.Ship, Size.f)
*ObjetA\Size = Size
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les observateurs >>>>>
Procedure.s GetShipName(*ObjetA.Ship)
ProcedureReturn *ObjetA\Name
EndProcedure
Procedure.f GetShipSpeed(*ObjetA.Ship)
ProcedureReturn *ObjetA\Speed
EndProcedure
Procedure.f GetShipSize(*ObjetA.Ship)
ProcedureReturn *ObjetA\Size
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Update >>>>>
Procedure UpdateShip(*ObjetA.Ship, Name.s, Speed.f, Size.f)
SetShipName(*ObjetA, Name)
SetShipSpeed(*ObjetA, Speed)
SetShipSize(*ObjetA, Size)
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Equal >>>>>
Procedure EqualShip(*ObjetA.Ship, *ObjetB.Ship)
SetShipName(*ObjetA, GetShipName(*ObjetB))
SetShipSpeed(*ObjetA, GetShipSpeed(*ObjetB))
SetShipSize(*ObjetA, GetShipSize(*ObjetB))
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure WriteBinaryString(String$)
WriteLong(Len(String$))
WriteData(String$, Len(String$))
EndProcedure
Procedure.s ReadBinaryString()
Length = ReadLong()
String$ = Space(Length)
ReadData(String$, Length)
ProcedureReturn String$
EndProcedure
; Début de la démonstation
UnVaisseau.Ship
UpdateShip(UnVaisseau,"Mirage V",2500.0,20.00)
Debug "On créer un fichier de type binaire"
If CreateFile(0, "UnVaisseau.ship")
WriteBinaryString(GetShipName(UnVaisseau))
WriteFloat(GetShipSpeed(UnVaisseau))
WriteFloat(GetShipSize(UnVaisseau))
CloseFile(0)
EndIf
Load.Ship
Debug "On ouvre le fichier de type binaire et"
Debug "on copie les données dans une structure"
If ReadFile(0, "UnVaisseau.ship")
SetShipName(Load,ReadBinaryString())
SetShipSpeed(Load,ReadFloat())
SetShipSize(Load,ReadFloat())
CloseFile(0)
EndIf
Debug "On affiche le contenu de la Structure"
Debug GetShipName(Load)
Debug GetShipSpeed(Load)
Debug GetShipSize(Load)