Stream stringwriter... une micro-librairie pour écrire des chaines dans un flux

Description

Cette micro-librairie (2 fonctions seulement) permet de lire et écrire des chaines de caractères dans un flux

Source / Exemple :


unit uStreamAccess;

{

  Version 1.1 (17 Octobre 2010)

	Cette mini librairie permet de lire et écrire des chaines de caractères dans un Stream

}

interface

Uses
  Classes, Dialogs, SysUtils;

  Procedure WriteString(Const StringToWrite : String; Stream : tStream);  // Ecrit une chaine dans un flux, sous la forme suivante : 4 octets pour la taille de la chaine puis le texte lui même
  Function ReadString(Stream : tStream) : String;                         // Lit une chaine dans un flux, sous la forme suivante : 4 octets pour la taille de la chaine puis le texte lui même

implementation

Procedure WriteString(Const StringToWrite : String; Stream : tStream);	// Ecrit une chaine dans un flux, sous la forme suivante : 4 octets pour la taille de la chaine puis le texte lui même
Var
  StrSize : Integer;

Begin                
StrSize := Length(StringToWrite);		// Calcul la longueur de la chaine
Stream.WriteBuffer(StrSize, SizeOf(StrSize));	// Ecrit cette longueur dans le flux
Stream.WriteBuffer(StringToWrite[1], StrSize);	// Ecrit la chaine dans la flux
End;

Function ReadString(Stream : tStream) : String;	// Lit une chaine dans un flux, sous la forme suivante : 4 octets pour la taille de la chaine puis le texte lui même
Var
   StrSize : Integer;

Begin
Stream.ReadBuffer(StrSize, SizeOf(StrSize));	// Charge la taille de la chaine
SetLength(Result, StrSize);			// Formate la chaine de destination à la bonne longueur
Stream.ReadBuffer(Result[1], StrSize);		// Charge la chaine
End;

end.

Conclusion :


J'imagine que des exemples come celui-çi sont déja disponibles, disposé mes fonctions dans une unité séparée pour deux raison :

- Offrir une meilleure lisibilité du code pour les débutants
- Leur permettre de réutiliser l'unité uStreamAccess dans leurs projets par un simple import du fichier

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.