Differenze tra le versioni di "Rimuovere da una stringa tutti i caratteri non-stampabili eventualmente presenti"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "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 "...") |
|||
Riga 1: | Riga 1: | ||
− | 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''". | + | 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. | + | 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: | + | Se si intende eliminare da una stringa di caratteri tutti quelli "''non-stampabili'' ", eventualmente presenti, è possibile adottare agevolmente questa funzione: |
'''Private''' Function RimNonStamp(car As String) As String | '''Private''' Function RimNonStamp(car As String) As String | ||
Riga 9: | Riga 9: | ||
Dim b 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''' | '''End''' | ||
Riga 25: | Riga 25: | ||
Dim b 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''' | '''End''' |
Versione delle 19:26, 11 mag 2023
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:
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