Scrivere una stringa in un vettore di tipo Byte

Da Gambas-it.org - Wikipedia.

Scrivere una stringa in un vettore di tipo Byte[ ], significa memorizzare ciascun carattere della stringa (secondo il rispettivo valore numerico ASCII) in un elemento della predetta variabile vettoriale.

Sono possibili almeno due possibilità:

  • con il metodo .FromString( ) dei vettori di tipo Byte[ ];
  • con i Memory Stream e la proprietà .Data dei vettori di tipo Byte[ ] .


Uso del metodo .FromString( )

Gli array di tipo Byte[ ] dipongono di un apposito metodo per memorizzare i dati costituenti una stringa di caratteri, la cui sintassi è:

.FromString( String As String ) As Byte[]

Di seguito mostriamo un semplice esempio:

Public Sub Main()
 
 Dim bb As Byte[]
 Dim s As String
 Dim b As Byte
 
  s = "Testo qualsiasi"
  
  bb = Byte[].FromString(s)
  
' Verifichiamo ora il contenuto del vettore "bb":
   For Each b In bb
     Print Hex(b); " = "; Chr(b)
   Next
 
End


Uso dei Memory Stream con la proprietà .Data degli array

Le variabili vettoriali posseggono, fra le altre, anche la proprietà .Data che restituisce un Puntatore all'area di memoria dell'oggetto vettore contenente i dati.

E' possibile, dunque, utilizzare quel Puntatore per scrivere i dati di una stringa mediante i Memory Stream. [ Nota 1 ]


Mostriamo di seguito un semplice esempio:

 Public Sub Main()
 
 Dim bb As Byte[]
 Dim s As String
 Dim st As Stream
 Dim b As Byte
 
  s = "Testo qualsiasi"
  
  bb = New Byte[String.Len(s)]
  
' Scriviamo la stringa nel vettore "bb":
  st = Memory bb.Data For Write
  Write #st, s
  st.Close
  
' Verifichiamo ora il contenuto del vettore "bb":
  For Each b In bb
    Print Hex(b); " = "; Chr(b)
  Next
  
' ...o anche così, dereferenziando il "Puntatore":
  Print String@(bb.Data)
  
End



Note

[1] Sulla scrittura (e lettura) dei dati di una variabile array, è possibile consultare anche seguente pagina della WIKI.