Les Snippets

Connexion

Inserer Bytes dans un Stream

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 15/04/2009 23:16:30 et initié par cirec [Liste]
Vue : 1417
Catégorie(s) : Fichier / Disque
Langages dispo pour ce code :
- Delphi 5



Langage : Delphi 5
Date ajout : 15/04/2009
Posté par cirec [Liste]

(* 
function InsertInStream( 
  buffer: Pointer;  Pointeur sur les données à ajouter 
  aOffset, Position de l'ajout dans le  stream si aOffset est > Size les données sont ajoutées  
                               à la fin du Stream 
  BufferSize: Int64;  Taille des données à ajouter 
  const aStream: TMemoryStream Le Stream à  modifier 
  ): Boolean; 
*) 
Function  InsertInStream(buffer: Pointer; aOffset, BufferSize: Int64;  
                        Const aStream:  TMemoryStream): Boolean; 
Var CurrentSize:  Int64; 
Begin 
  Result :=  Assigned(aStream); 
  If Result Then 
    With aStream Do  
    Try 
      CurrentSize := Size; 
      SetSize(Size +  BufferSize); 
      If aOffset <  CurrentSize Then  
        Move(Pointer(Integer(Memory)+aOffset)^,  Pointer(Integer(Memory)+aOffset+BufferSize)^, Size-BufferSize+aOffset)  
      Else 
        aOffset :=  CurrentSize; 
      Move(buffer^, Pointer(Integer(Memory)+aOffset)^,  BufferSize); 
    Except 
      Result  := False; 
    End; 
End; 

Remarque :
// Exemple sur Fichier texte
procedure TFrm_Main.Button3Click(Sender: TObject);
var MS: TMemoryStream;
    strAjout: string;
    aLen: Integer;
begin
  strAjout := 'Ligne ajoutée le, à:'+DateTimeToStr(Now)+#13#10;
  aLen := Length(strAjout);
  MS := TMemoryStream.Create;
  with MS do
  try
    if FileExists('TextTest.dat') then
      LoadFromFile('TextTest.dat');
    // Ajout en début de fichier
    if InsertInStream(@strAjout[1], 0, aLen, MS) then
      Memo1.Lines.LoadFromStream(MS)
    else
      ShowMessage('Echec de la modification !!!!');
  finally
    SaveToFile('TextTest.dat');
    Free;
  end;
end;

// Exemple sur fichier binaire séquentiel
type
  TNameRec = packed record
    Nom: string[15];
    Prenom: string[10];
    BDay: TDate;
  end;

procedure TFrm_Main.Button4Click(Sender: TObject);
var FS : TMemoryStream;
    aNameRec: TNameRec;
begin
  aNameRec.Nom := 'Caribensila';
  aNameRec.Prenom := 'Francky';
  aNameRec.BDay := Now;
  FS := TMemoryStream.Create;
  try
    if FileExists('TestRecord.dat') then
      FS.LoadFromFile('TestRecord.dat');
    // ajoute les données à la 3ème position
    if InsertInStream(@aNameRec, 2*SizeOf(TNameRec), SizeOf(TNameRec), FS) then
      ShowMessage('Modification réussit ^^')
    else
      ShowMessage('Echec de la modification !!!!')
  finally
    FS.SaveToFile('TestRecord.dat');
  end;
end;

Snippets en rapport avec : Byte, Stream, Inserer



Codes sources en rapport avec : Byte, Stream, Inserer

{Visual Basic, VB6, VB.NET, VB 2005} INSERER TOUT TYPE DE FICHIERS DANS ORACLE EN VB.NET
Ce petit code permet d'ajouter tout type de fichiers dans oracle et par la suite de les récupérer, l...

{C# / C#.NET} REMPLACER UNE SÉQUENCE DE BYTE
Cette méthode sert à remplacer simultanément dans une séquence byte[] A toutes les sous-séquences by...

{Visual Basic, VB6, VB.NET, VB 2005} GESTION DE SOCKET EN VB.NET
Ce bout de code permet de gérer des sockets automatiquement, en effet on peux créer autant de socket...

{ASP / ASP.NET} RESPONSE.FILTER : MANIPULATION DU STREAM DE SORTIE ASP.NET
Dans certains cas, on a besoin de pouvoir manipuler le Stream dans lequel écrit ASP.net. Par exemple...

{PHP} BITWISE HANDLER : GESTION DES BITS POUR GÉRER LES DROITS
Après la lecture de la source intéressante de malalam : http://www.phpcs.com/codes/SQUELETTE-GESTION...

{Delphi} TEXTURE PACKER - OU COMMENT GÉRER UNE BANQUE DE TEXTURES FACILEMENT !
Bonjour, voici un editeur de banques de textures : vous pouvez mettre n'importe quel bitmap de moin...

{C# / C#.NET} UN RICHTEXTBOX À PARTIR D'UN MEMORYSTREAM
Bonjour, Voici un objet de formatage pour un RichTextBox, Rapide, et souple. Le formatage se fait ...

{PHP} [POO PHP5] RÉCUPÉRATION DES INFOS DES STREAMS DE PULSRADIO
Hello all ^^ Aparté : je venais d'écrire une très belle introduction et j'étais sur le point d'en...

{PHP} STREAMING EN PHP
System de streaming en php. Vous verrez tous est bien commentée. Liste des argument à envoyer en m...

{Visual Basic, VB6, VB.NET, VB 2005} TÉLÉCHARGER UNE IMAGE D'UN SITE WEB ET L'AFFICHER DANS UN PICTUREBOX
Bonjour, Voici un simple exemple qui illustre l'utilisation des deux classes HttpWebRequest et Ht...