Differenze tra le versioni di "Scrivere una stringa in un vettore di tipo Byte"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
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.
+
#REDIRECT [[Ottenere un vettore di tipo Byte da una Stringa]]
 
 
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 è: <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
 
.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[]<FONT Color=#B22222>.FromString</font>(s)
 
 
 
<FONT Color=gray>' ''Verifichiamo ora il contenuto del vettore "bb":''</font>
 
  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''. <SUP>&#091;[[#Note|Nota 2]]&#093;</sup>
 
 
 
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)]
 
 
 
<FONT Color=gray>' ''Scriviamo la stringa nel vettore "bb":''</font>
 
  st = Memory bb.Data For Write
 
  Write #st, s
 
  st.Close
 
 
 
<FONT Color=gray>' ''Verifichiamo ora il contenuto del vettore "bb":''</font>
 
  For Each b In bb
 
    Print Hex(b); " = "; Chr(b)
 
  Next
 
 
 
<FONT Color=gray>' ''...o anche così, dereferenziando il "Puntatore":''</font>
 
  Print String@(bb.Data)
 
 
<FONT Color=gray>' ''...oppure usando il Metodo ".To String()" del vettore":''</font>
 
  Print bb.ToString()
 
 
 
'''End'''
 
 
 
 
 
 
 
=Note=
 
[1] Vedere anche questa pagina: [[Ottenere_un_vettore_di_tipo_Byte_da_una_Stringa|Ottenere un vettore di tipo Byte da una Stringa]]
 
 
 
[2] Sulla scrittura (e lettura) dei dati di una variabile array, è possibile consultare anche la seguente pagina: [[Leggere_e_scrivere_in_un_vettore_mediante_i_Memory_Stream|Leggere e scrivere in un vettore mediante i Memory Stream]]
 

Versione attuale delle 14:35, 11 set 2022