Differenze tra le versioni di "Porre a "Null" tutti gli elementi di un vettore di tipo Stringa"
Da Gambas-it.org - Wikipedia.
Riga 3: | Riga 3: | ||
==Assegnare il valore ''Null'' mediante un ciclo== | ==Assegnare il valore ''Null'' mediante un ciclo== | ||
− | '''Public''' Sub | + | '''Public''' Sub Main() |
Dim ss As String[] = ["a", "b", "c", "d", "e"] | Dim ss As String[] = ["a", "b", "c", "d", "e"] | ||
Riga 18: | Riga 18: | ||
− | '''Public''' Sub | + | '''Public''' Sub Main() |
Dim ss As String[] = ["a", "b", "c", "d", "e"] | Dim ss As String[] = ["a", "b", "c", "d", "e"] | ||
Riga 24: | Riga 24: | ||
− | While b < | + | While b < ss.Count <FONT color=gray>' ''Il ciclo continua finché "b" è minore di 5''</font> |
ss[b] = Null | ss[b] = Null | ||
Riga 35: | Riga 35: | ||
− | '''Public''' Sub | + | '''Public''' Sub Main() |
Dim ss As String[] = ["a", "b", "c", "d", "e"] | Dim ss As String[] = ["a", "b", "c", "d", "e"] | ||
Riga 48: | Riga 48: | ||
<FONT color=gray>' ''Il ciclo continua finché "b" non è uguale a 5:''</font> | <FONT color=gray>' ''Il ciclo continua finché "b" non è uguale a 5:''</font> | ||
− | Loop Until b = | + | Loop Until b = ss.Count |
'''End''' | '''End''' | ||
Riga 54: | Riga 54: | ||
==Modalità con il metodo ''.Fill()''== | ==Modalità con il metodo ''.Fill()''== | ||
− | '''Public''' Sub | + | '''Public''' Sub Main() |
Dim ss As String[] = ["a", "b", "c", "d", "e"] | Dim ss As String[] = ["a", "b", "c", "d", "e"] | ||
− | ss.Fill(Null, 0, | + | ss.Fill(Null, 0, ss.Count) |
'''End''' | '''End''' | ||
Riga 66: | Riga 66: | ||
==Modalità con la funzione esterna di C: ''memset ()''== | ==Modalità con la funzione esterna di C: ''memset ()''== | ||
E' possibile utilizzare anche la funzione esterna di C: "memset()", dichiarando sia la funzione medesima mediante ''Extern'', sia la libreria C, nella quale essa è contenuta. | E' possibile utilizzare anche la funzione esterna di C: "memset()", dichiarando sia la funzione medesima mediante ''Extern'', sia la libreria C, nella quale essa è contenuta. | ||
− | ''' | + | <FONT color=gray>' ''void *memset(void *str, int c, size_t n)'' |
+ | ' ''Copies the character c (an unsigned char) to the first n characters of the string pointed to by the argument str.''</font> | ||
+ | Private Extern memset(dest As Pointer, c As Integer, count As Integer) In "libc:6" | ||
− | '''Public''' Sub | + | '''Public''' Sub Main() |
Dim ss As String[] = ["a", "b", "c", "d", "e"] | Dim ss As String[] = ["a", "b", "c", "d", "e"] | ||
Riga 76: | Riga 78: | ||
<FONT color=gray>' ''La funzione "memset" carica un valore in tutti i byte di un'area di memoria:''</font> | <FONT color=gray>' ''La funzione "memset" carica un valore in tutti i byte di un'area di memoria:''</font> | ||
− | memset(ss, Null, ss.Count * SizeOf(gb.String)) | + | memset(ss.Data, Null, ss.Count * SizeOf(gb.String)) |
<FONT color=gray>' ''Verifichiamo in console il risultato:''</font> | <FONT color=gray>' ''Verifichiamo in console il risultato:''</font> |
Versione delle 11:50, 26 gen 2015
Per azzerare tutti gli elementi di una variabile vettoriale (array) di tipo Stringa, è possibile utilizzare almeno le modalità che di seguito si espongono.
Assegnare il valore Null mediante un ciclo
Public Sub Main() Dim ss As String[] = ["a", "b", "c", "d", "e"] Dim b As Byte For b = 0 To ss.Max ss[b] = Null Next End
Public Sub Main() Dim ss As String[] = ["a", "b", "c", "d", "e"] Dim b As Byte While b < ss.Count ' Il ciclo continua finché "b" è minore di 5 ss[b] = Null Inc b Wend End
Public Sub Main() Dim ss As String[] = ["a", "b", "c", "d", "e"] Dim b As Byte Do ss[b] = Null Inc b ' Il ciclo continua finché "b" non è uguale a 5: Loop Until b = ss.Count End
Modalità con il metodo .Fill()
Public Sub Main() Dim ss As String[] = ["a", "b", "c", "d", "e"] ss.Fill(Null, 0, ss.Count) End
Modalità con la funzione esterna di C: memset ()
E' possibile utilizzare anche la funzione esterna di C: "memset()", dichiarando sia la funzione medesima mediante Extern, sia la libreria C, nella quale essa è contenuta.
' void *memset(void *str, int c, size_t n) ' Copies the character c (an unsigned char) to the first n characters of the string pointed to by the argument str. Private Extern memset(dest As Pointer, c As Integer, count As Integer) In "libc:6" Public Sub Main() Dim ss As String[] = ["a", "b", "c", "d", "e"] Dim b As Byte ' La funzione "memset" carica un valore in tutti i byte di un'area di memoria: memset(ss.Data, Null, ss.Count * SizeOf(gb.String)) ' Verifichiamo in console il risultato: For b = 0 To ss.Max Print ss[b] Next End