Differenze tra le versioni di "Convertire i valori di tipo Byte di un vettore in valori di tipo Stringa"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Gambas, per convertire i valori di tipo Byte contenuti in una variabile vettoriale (''array'') in valori di tipo Stringa, mette a disposizione il Metodo ''.ToString()''.
+
Gambas, per convertire i valori di tipo Byte contenuti in una variabile vettoriale (''array'') in valori di tipo Stringa, mette a disposizione il Metodo ".ToString()".
  
 
La sua sintassi è:
 
La sua sintassi è:
 
  .ToString( [ Inizio As Integer, Lunghezza As Integer ] ) As String
 
  .ToString( [ Inizio As Integer, Lunghezza As Integer ] ) As String
 
laddove ''Inizio'' è l'indice del primo byte da cui cominciare la conversione. Esso è di default uguale a zero. ''Lunghezza'' è il numero di byte da convertire. Di default è fino all'ultimo byte del vettore.
 
laddove ''Inizio'' è l'indice del primo byte da cui cominciare la conversione. Esso è di default uguale a zero. ''Lunghezza'' è il numero di byte da convertire. Di default è fino all'ultimo byte del vettore.
 
  
 
Esempio:
 
Esempio:
Riga 11: Riga 10:
 
   Dim bb As Byte[] = [97, 98, 99, 10, 100, 101, 102]
 
   Dim bb As Byte[] = [97, 98, 99, 10, 100, 101, 102]
 
   Dim s As String
 
   Dim s As String
   
+
 
    s = bb<FONT color=#B22222>.ToString</font>(0, bb.Count)  <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
+
  s = bb<FONT color=#B22222>.ToString</font>(0, bb.Count)  <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
 
    Print s
 
 
'''End'''
 
  
 +
  Print s
  
===Modalità alternativa a ''.ToString()'' dereferenziando la proprietà ''.Data'' con la specifica funzione ''String@( )''===
+
'''End'''
Per ottenere i valori contenuti da una variabile vettoriale di tipo ''Byte[]'' in formato Stringa, si può dereferenziare il Puntatore restituito dalla proprietà ''.Data'' appartenente a tali variabili.
 
  
 +
===Modalità alternativa al Metodo ".ToString()" dereferenziando la Proprietà ".Data" con la specifica funzione "String@()"===
 +
Per ottenere i valori contenuti da una variabile vettoriale di tipo "Byte[]" in formato Stringa, si può dereferenziare il Puntatore restituito dalla Proprietà ".Data" appartenente a tali variabili.
  
 
Esempio:
 
Esempio:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
+
 
 
   Dim bb As Byte[] = [97, 98, 99, 10, 100, 101, 102]
 
   Dim bb As Byte[] = [97, 98, 99, 10, 100, 101, 102]
 
   Dim s As String
 
   Dim s As String
 
 
      s = <FONT color=#B22222>String@</font>(bb.Data)
 
 
   
 
   
      Print s
+
  s = <FONT color=#B22222>String@</font>(bb.Data)
 +
 +
  Print s
 
   
 
   
 
  '''End'''
 
  '''End'''
 
  
 
==Ottenere da un vettore di tipo Byte[] i soli dati ASCII utili di testo diversi dal valore &h00 (Null)==
 
==Ottenere da un vettore di tipo Byte[] i soli dati ASCII utili di testo diversi dal valore &h00 (Null)==
Se il vettore di tipo Byte[] contiene una stringa di caratteri alfanumerici e di altro tipo (spazi bianchi, di ritorno, etc.) seguiti da almeno un valore &h00, come ad esempio la parola "Gambas" seguita da tre valori &h00:
+
Se il vettore di tipo "Byte[]" contiene una stringa di caratteri alfanumerici e di altro tipo (spazi bianchi, di ritorno, etc.) seguiti da almeno un valore &h00, come ad esempio la parola "Gambas" seguita da tre valori &h00:
 
  47 61 6D 62 61 73 00 00 00
 
  47 61 6D 62 61 73 00 00 00
 
   G  a  m  b  a  s
 
   G  a  m  b  a  s
 
per ottenere la sola parte testuale, ossia i soli caratteri "Gambas" si possono usare le modalità già viste nei paragrafi precedenti.
 
per ottenere la sola parte testuale, ossia i soli caratteri "Gambas" si possono usare le modalità già viste nei paragrafi precedenti.
  
Usando il Metodo ''.ToString( )'' della Classe array del tipo Byte[]. In questo caso si cerca la posizione del primo valore Null (&h00) per fermare la lettura un carattere prima.
+
Usando il Metodo ".ToString()" della Classe array del tipo "Byte[]". In questo caso si cerca la posizione del primo valore Null (&h00) per fermare la lettura un carattere prima.
 
  bb.ToString(0, bb<FONT color=#B22222>.Find</font>(&h00)) As String
 
  bb.ToString(0, bb<FONT color=#B22222>.Find</font>(&h00)) As String
oppure usando la funzione di dereferenziazione ''String@( )'':
+
oppure usando la funzione di dereferenziazione "String@()":
 
  String@(bb.Data) As String
 
  String@(bb.Data) As String
 
  
  
  
 
=Note=
 
=Note=
[1] Come è possibile notare, la funzione ''.ToString()'' agevola il compito che potrebbe essere effettuato con la funzione ''Chr()'' su ciascun elemento del vettore, usando, però, un ciclo:
+
[1] Come è possibile notare, il Metodo ".ToString()" agevola il compito che potrebbe essere effettuato con la funzione "Chr()" su ciascun elemento del vettore, usando, però, un ciclo:
 
   '''Public''' Sub Main()
 
   '''Public''' Sub Main()
 
   
 
   
Riga 57: Riga 52:
 
   Dim s As String
 
   Dim s As String
 
   Dim i As Integer
 
   Dim i As Integer
 
 
  For i = 0 To vettore.Max
 
    s &= Chr(vettore[i])
 
  Next
 
 
   
 
   
  Print s
+
  For i = 0 To vettore.Max
 +
    s &= Chr(vettore[i])
 +
  Next
 +
 +
  Print s
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 22:08, 24 dic 2021

Gambas, per convertire i valori di tipo Byte contenuti in una variabile vettoriale (array) in valori di tipo Stringa, mette a disposizione il Metodo ".ToString()".

La sua sintassi è:

.ToString( [ Inizio As Integer, Lunghezza As Integer ] ) As String

laddove Inizio è l'indice del primo byte da cui cominciare la conversione. Esso è di default uguale a zero. Lunghezza è il numero di byte da convertire. Di default è fino all'ultimo byte del vettore.

Esempio:

Public Sub Main()

 Dim bb As Byte[] = [97, 98, 99, 10, 100, 101, 102]
 Dim s As String
  
 s = bb.ToString(0, bb.Count)   [Nota 1]
 Print s
End

Modalità alternativa al Metodo ".ToString()" dereferenziando la Proprietà ".Data" con la specifica funzione "String@()"

Per ottenere i valori contenuti da una variabile vettoriale di tipo "Byte[]" in formato Stringa, si può dereferenziare il Puntatore restituito dalla Proprietà ".Data" appartenente a tali variabili.

Esempio:

Public Sub Main()
 Dim bb As Byte[] = [97, 98, 99, 10, 100, 101, 102]
 Dim s As String

 s = String@(bb.Data)

 Print s

End

Ottenere da un vettore di tipo Byte[] i soli dati ASCII utili di testo diversi dal valore &h00 (Null)

Se il vettore di tipo "Byte[]" contiene una stringa di caratteri alfanumerici e di altro tipo (spazi bianchi, di ritorno, etc.) seguiti da almeno un valore &h00, come ad esempio la parola "Gambas" seguita da tre valori &h00:

47 61 6D 62 61 73 00 00 00
 G  a  m  b  a  s

per ottenere la sola parte testuale, ossia i soli caratteri "Gambas" si possono usare le modalità già viste nei paragrafi precedenti.

Usando il Metodo ".ToString()" della Classe array del tipo "Byte[]". In questo caso si cerca la posizione del primo valore Null (&h00) per fermare la lettura un carattere prima.

bb.ToString(0, bb.Find(&h00)) As String

oppure usando la funzione di dereferenziazione "String@()":

String@(bb.Data) As String


Note

[1] Come è possibile notare, il Metodo ".ToString()" agevola il compito che potrebbe essere effettuato con la funzione "Chr()" su ciascun elemento del vettore, usando, però, un ciclo:

 Public Sub Main()

 Dim vettore As Byte[] = [97, 98, 99, 10, 100, 101, 102]
 Dim s As String
 Dim i As Integer

 For i = 0 To vettore.Max
   s &= Chr(vettore[i])
 Next

 Print s

End