Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1760 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Comment copier un string dans un TByteDynArray ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment copier un string dans un TByteDynArray ?

n°2044038
HERIBERT
Posté le 23-12-2010 à 12:57:01  profilanswer
 

Bonjour à tous :)
 
Voilà : la question est toute bête, mais j'ai tout essayé (StrCopy() etc) rien ne passe. Et comme le TByteDynArray en question est dynamique, je ne peux pas savoir combien de cases il contient à sa déclaration n'est-ce pas ? Autrement, j'essayerais d'affecter chaque caractère de ma string à caque case du tableau.  
 
Si qqn peut m'aider, merci.  

mood
Publicité
Posté le 23-12-2010 à 12:57:01  profilanswer
 

n°2051160
PatG
ANIMA SANA IN COMPUTERE SANO.
Posté le 23-01-2011 à 12:51:35  profilanswer
 

Au cas où :
 
J'ai trouvé ça sur http://www.experts-exchange.com :
 
function StringToByteArray(const Str: string): TByteDynArray;
var
  MSTream: TMemoryStream;
  pTemp: pointer;
begin
  MStream := TMemoryStream.Create;
  MStream.Write(str,length(str));
  MStream.Position := 0;
 
  SetLength(Result, MStream.Size);
  pTemp := @Result[0];
  MStream.Position := 0;
  MStream.Read(pTemp^, MStream.Size);
 
  MStream.Free;
end;
 
 
function ByteArrayToString(const ByteArray: TByteDynArray): string;
var
  MStream: TMemoryStream;
begin
  MStream := TMemoryStream.Create;
  CopyToStream(ByteArray, MStream);
  MStream.Position := 0;
  try
    MStream.Read(result,MStream.Size);
  finally
    MStream.Free;
  end;
end;

n°2051318
HERIBERT
Posté le 24-01-2011 à 08:20:26  profilanswer
 

PatG a écrit :

Au cas où :
 
J'ai trouvé ça sur http://www.experts-exchange.com :
 
function StringToByteArray(const Str: string): TByteDynArray;
var
  MSTream: TMemoryStream;
  pTemp: pointer;
begin
  MStream := TMemoryStream.Create;
  MStream.Write(str,length(str));
  MStream.Position := 0;
 
  SetLength(Result, MStream.Size);
  pTemp := @Result[0];
  MStream.Position := 0;
  MStream.Read(pTemp^, MStream.Size);
 
  MStream.Free;
end;
 
 
function ByteArrayToString(const ByteArray: TByteDynArray): string;
var
  MStream: TMemoryStream;
begin
  MStream := TMemoryStream.Create;
  CopyToStream(ByteArray, MStream);
  MStream.Position := 0;
  try
    MStream.Read(result,MStream.Size);
  finally
    MStream.Free;
  end;
end;


 
Merci : je le note aussi. Le source et la source également !
 
J'avais trouvé ça :  
 
function StringToByteArray(const S: AnsiString): TByteDynArray;
var
  Len: Integer;
begin
  Len := Length(S);
  SetLength(Result, Len);
  Move(S[1], Result[0], Len);
end;
 
 

n°2052141
PatG
ANIMA SANA IN COMPUTERE SANO.
Posté le 26-01-2011 à 19:04:38  profilanswer
 

plus court et facilement compréhensible : c'est mieux ;)

n°2052304
HERIBERT
Posté le 27-01-2011 à 12:04:55  profilanswer
 

PatG a écrit :

plus court et facilement compréhensible : c'est mieux ;)


Peut-être.  
 
Mais je n'aurais pas pensé à cette utilisation des streams. Il faut que je m'intéresse de plus près aux flux :heink: . En tout cas merci qd-même :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Comment copier un string dans un TByteDynArray ?

 

Sujets relatifs
[BAT]Copier un fichier d'un bureau vers les autres profilshexa string vers decimal string
Copier feuille Excel vers un autre classeur qui bloque[VBA/EXCEL07] Copier une chaîne dans plusieurs cellules
Aide VBA : Copier des cellules non vides ...Copier la ligne sélectionnée dans 1 ligne vide d'une autre feuille
Copier une base MySQL dans SQL Server 2008 [Resolu]copier des cellules d'une feuille vers une feuille spécifique
[Macro Word] Copier/Coller depuis diff docsmanipulation de string
Plus de sujets relatifs à : Comment copier un string dans un TByteDynArray ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR