Differenze tra le versioni di "Rimuovere da una stringa tutti i caratteri non-stampabili eventualmente presenti"
Da Gambas-it.org - Wikipedia.
Riga 4: | Riga 4: | ||
Se si intende eliminare da una stringa di caratteri tutti quelli "''non-stampabili'' ", eventualmente presenti, è possibile adottare agevolmente questa funzione: <SUP>[[[#Note|nota 1]]]</sup> | Se si intende eliminare da una stringa di caratteri tutti quelli "''non-stampabili'' ", eventualmente presenti, è possibile adottare agevolmente questa funzione: <SUP>[[[#Note|nota 1]]]</sup> | ||
− | + | Private Function RimNonStamp(car As String) As String | |
Dim bb As Byte[] | Dim bb As Byte[] | ||
Riga 15: | Riga 15: | ||
Return car | Return car | ||
− | + | ||
− | + | End | |
− | |||
− | |||
oppure questa: | oppure questa: | ||
− | + | Private Function RimNonStamp(car As String) As String | |
Dim bb As Byte[] | Dim bb As Byte[] | ||
Riga 37: | Riga 35: | ||
Return bb.ToString(0, bb.Count) | Return bb.ToString(0, bb.Count) | ||
− | + | End | |
Versione attuale delle 16:34, 29 giu 2024
Come è noto, i caratteri sono rappresentati numericamenti dalla codifica ASCII. Nella codifica a 7 bit (quindi fino al valore 127) sono compresi anche 33 caratteri definiti "non stampabili ", in quanto definiti solitamente come "caratteri di controllo ".
All'interno della tabella ASCII i caratteri, definiti "non stampabili " sono quelli rappresentati dal numero 0 sino al numero 31, nonché il numero 127.
Se si intende eliminare da una stringa di caratteri tutti quelli "non-stampabili ", eventualmente presenti, è possibile adottare agevolmente questa funzione: [nota 1]
Private Function RimNonStamp(car As String) As String Dim bb As Byte[] Dim b As Byte For b = 0 To 31 car = Replace(car, Chr(b), Null) Next car = Replace(car, Chr(127), Null) Return car End
oppure questa:
Private Function RimNonStamp(car As String) As String Dim bb As Byte[] Dim b As Byte bb = Byte[].FromString(car) Repeat If (bb[b] < &20) Or (bb[b] = &7F) Then bb.Remove(b, 1) Continue Endif Inc b Until b == bb.max Return bb.ToString(0, bb.Count) End
Note
[1] Vedere anche le seguenti pagine: