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

Da Gambas-it.org - Wikipedia.
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.
+
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à:
 
Sono possibili almeno due possibilità:
* con il metodo ''.FromString( )'' dei vettori di tipo ''Byte[ ]'';
+
* con il Metodo ".FromString()" dei vettori di tipo "Byte[]";
* con i ''Memory Stream'' e la proprietà ''.Data'' dei vettori di tipo ''Byte[ ]'' .
+
* con i ''Memory Stream'' e la Proprietà ".Data" dei vettori di tipo "Byte[]" .
  
 
+
==Uso del Metodo ".FromString()"==
==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 è:
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[]
 
  .FromString( String As String ) As Byte[]
 
 
Di seguito mostriamo un semplice esempio:
 
Di seguito mostriamo un semplice esempio:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
Riga 16: Riga 14:
 
   Dim s As String
 
   Dim s As String
 
   Dim b As Byte
 
   Dim b As Byte
 +
 +
  s = "Testo qualsiasi"
 +
 
 +
  bb = Byte[].FromString(s)
 
    
 
    
  s = "Testo qualsiasi"
 
 
 
  bb = Byte[].FromString(s)
 
 
 
 
  <FONT Color=gray>' ''Verifichiamo ora il contenuto del vettore "bb":''</font>
 
  <FONT Color=gray>' ''Verifichiamo ora il contenuto del vettore "bb":''</font>
    For Each b In bb
+
  For Each b In bb
      Print Hex(b); " = "; Chr(b)
+
    Print Hex(b); " = "; Chr(b)
    Next
+
  Next
 
+
 
  '''End'''
 
  '''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 1]]&#093;</sup>
==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>[ [[#Note|Nota 1]] ]</sup>
 
 
 
  
 
Mostriamo di seguito un semplice esempio:
 
Mostriamo di seguito un semplice esempio:
Riga 43: Riga 38:
 
   Dim st As Stream
 
   Dim st As Stream
 
   Dim b As Byte
 
   Dim b As Byte
 +
 +
  s = "Testo qualsiasi"
 +
 
 +
  bb = New Byte[String.Len(s)]
 
    
 
    
  s = "Testo qualsiasi"
 
 
 
  bb = New Byte[String.Len(s)]
 
 
 
 
  <FONT Color=gray>' ''Scriviamo la stringa nel vettore "bb":''</font>
 
  <FONT Color=gray>' ''Scriviamo la stringa nel vettore "bb":''</font>
  st = Memory bb.Data For Write
+
  st = Memory bb.Data For Write
  Write #st, s
+
  Write #st, s
  st.Close
+
  st.Close
 
+
 
 
  <FONT Color=gray>' ''Verifichiamo ora il contenuto del vettore "bb":''</font>
 
  <FONT Color=gray>' ''Verifichiamo ora il contenuto del vettore "bb":''</font>
  For Each b In bb
+
  For Each b In bb
    Print Hex(b); " = "; Chr(b)
+
    Print Hex(b); " = "; Chr(b)
  Next
+
  Next
 
+
 
 
  <FONT Color=gray>' ''...o anche così, dereferenziando il "Puntatore":''</font>
 
  <FONT Color=gray>' ''...o anche così, dereferenziando il "Puntatore":''</font>
  Print String@(bb.Data)
+
  Print String@(bb.Data)
 
+
 
 
  '''End'''
 
  '''End'''
 
  
  
  
 
=Note=
 
=Note=
[1] Sulla scrittura (e lettura) dei dati di una variabile array, è possibile consultare anche [[Leggere_e_scrivere_in_un_vettore_mediante_i_Memory_Stream|seguente pagina della WIKI]].
+
[1] 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 delle 21:42, 24 dic 2021

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 la seguente pagina: Leggere e scrivere in un vettore mediante i Memory Stream