Differenze tra le versioni di "Convertire i valori di tipo Byte di un vettore in valori di tipo Stringa"
(4 versioni intermedie di uno stesso utente non sono mostrate) | |||
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 | + | 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: | ||
− | + | 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 = bb<FONT color=#B22222>.ToString</font>(0, bb.Count) <SUP>[[[#Note|Nota 1]]]</sup> | |
+ | |||
+ | 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: | Esempio: | ||
− | + | 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 | |
+ | |||
+ | 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<FONT color=#B22222>.Find</font>(&h00)) As String | ||
+ | oppure usando la funzione di dereferenziazione "String@()": | ||
+ | String@(bb.Data) As String | ||
=Note= | =Note= | ||
− | [1] Come è possibile notare, | + | [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 vettore As Byte[] = [97, 98, 99, 10, 100, 101, 102] | ||
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 | ||
− | + | End |
Versione attuale delle 04:53, 10 giu 2024
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